package com.ruoyi.oa.service.impl;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.http.HttpStatus;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.PageUtils;
|
import com.ruoyi.common.core.page.PagePlus;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.oa.domain.DevEquipmentCode;
|
import com.ruoyi.oa.mapper.DevEquipmentCodeMapper;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.ruoyi.oa.domain.bo.DevEquipmentBo;
|
import com.ruoyi.oa.domain.vo.DevEquipmentVo;
|
import com.ruoyi.oa.domain.DevEquipment;
|
import com.ruoyi.oa.mapper.DevEquipmentMapper;
|
import com.ruoyi.oa.service.IDevEquipmentService;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Collection;
|
|
/**
|
* 智控设备Service业务层处理
|
*
|
* @author ruoyi
|
* @date 2021-12-05
|
*/
|
@Service
|
public class DevEquipmentServiceImpl extends ServicePlusImpl<DevEquipmentMapper, DevEquipment, DevEquipmentVo> implements IDevEquipmentService {
|
|
@Autowired
|
private DevEquipmentCodeMapper devEquipmentCodeMapper;
|
|
@Override
|
public DevEquipmentVo queryById(Long id) {
|
return getVoById(id);
|
}
|
|
@Override
|
public TableDataInfo<DevEquipmentVo> queryPageList(DevEquipmentBo bo) {
|
PagePlus<DevEquipment, DevEquipmentVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
|
return PageUtils.buildDataInfo(result);
|
}
|
|
@Override
|
public List<DevEquipmentVo> queryList(DevEquipmentBo bo) {
|
return listVo(buildQueryWrapper(bo));
|
}
|
|
private LambdaQueryWrapper<DevEquipment> buildQueryWrapper(DevEquipmentBo bo) {
|
Map<String, Object> params = bo.getParams();
|
LambdaQueryWrapper<DevEquipment> lqw = Wrappers.lambdaQuery();
|
lqw.like(bo.getSerialNumber() != null, DevEquipment::getSerialNumber, bo.getSerialNumber());
|
lqw.eq(bo.getType() != null, DevEquipment::getType, bo.getType());
|
lqw.like(bo.getSequenceCode() != null, DevEquipment::getSequenceCode, bo.getSequenceCode());
|
lqw.like(bo.getEdition() != null, DevEquipment::getEdition, bo.getEdition());
|
lqw.eq(bo.getSchoolId() != null, DevEquipment::getSchoolId, bo.getSchoolId());
|
lqw.like(bo.getHostId() != null, DevEquipment::getHostId, bo.getHostId());
|
lqw.like(bo.getNetworkId() != null, DevEquipment::getNetworkId, bo.getNetworkId());
|
lqw.eq(bo.getFrequencyBand() != null, DevEquipment::getFrequencyBand, bo.getFrequencyBand());
|
lqw.eq(bo.getUseStatus() != null, DevEquipment::getUseStatus, bo.getUseStatus());
|
lqw.orderByDesc(DevEquipment::getUpdateTime);
|
return lqw;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public Boolean insertByBo(DevEquipmentBo bo) {
|
List<DevEquipment> list = baseMapper.selectList(new QueryWrapper<DevEquipment>().lambda()
|
.eq(DevEquipment::getSequenceCode, bo.getSequenceCode()));
|
if (list.size() > 0) {
|
throw new ServiceException("硬件序列码重复", HttpStatus.HTTP_PARTIAL);
|
}
|
DevEquipment add = BeanUtil.toBean(bo, DevEquipment.class);
|
validEntityBeforeSave(add);
|
boolean flag = save(add);
|
if (flag) {
|
bo.setId(add.getId());
|
}
|
return flag;
|
}
|
|
@Override
|
public Boolean updateByBo(DevEquipmentBo bo) {
|
List<DevEquipment> list = baseMapper.selectList(new QueryWrapper<DevEquipment>().lambda()
|
.eq(DevEquipment::getSequenceCode, bo.getSequenceCode())
|
.ne(DevEquipment::getId, bo.getId()));
|
if (list.size() > 0) {
|
throw new ServiceException("硬件序列码重复", HttpStatus.HTTP_PARTIAL);
|
}
|
DevEquipment update = BeanUtil.toBean(bo, DevEquipment.class);
|
validEntityBeforeSave(update);
|
return updateById(update);
|
}
|
|
/**
|
* 保存前的数据校验
|
*
|
* @param entity 实体类数据
|
*/
|
private void validEntityBeforeSave(DevEquipment entity) {
|
//TODO 做一些数据校验,如唯一约束
|
}
|
|
@Override
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
if (isValid) {
|
//TODO 做一些业务上的校验,判断是否需要校验
|
}
|
return removeByIds(ids);
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public DevEquipment externalAdd(DevEquipmentBo bo) {
|
DevEquipment po = baseMapper.selectOne(new QueryWrapper<DevEquipment>().lambda()
|
.eq(DevEquipment::getSequenceCode, bo.getSequenceCode()));
|
// 设备存在,直接返回设备信息
|
if (StringUtils.isNotEmpty(po)) {
|
return po;
|
}
|
// 设备不存在则新建
|
else {
|
// 先根据序列码生成序列号
|
DevEquipmentCode c = new DevEquipmentCode();
|
c.setCreateTime(DateUtils.getNowDate());
|
devEquipmentCodeMapper.insert(c);
|
// 添加设备
|
DevEquipment add = BeanUtil.toBean(bo, DevEquipment.class);
|
add.setSerialNumber(c.getId());
|
baseMapper.insert(add);
|
return add;
|
}
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public DevEquipment equipmentEdit(DevEquipmentBo bo) {
|
DevEquipment po = baseMapper.selectById(bo.getId());
|
if (po == null) {
|
throw new ServiceException("没有设备信息", HttpStatus.HTTP_PARTIAL);
|
}
|
if (null != bo.getSchoolId()) {
|
po.setSchoolId(bo.getSchoolId());
|
}
|
if (StringUtils.isNotBlank(bo.getHostId())) {
|
po.setHostId(bo.getHostId());
|
}
|
// if (StringUtils.isEmpty(bo.getNetworkId())) {
|
// po.setNetworkId(bo.getNetworkId());
|
// }
|
// if (StringUtils.isEmpty(bo.getFrequencyBand())) {
|
// po.setFrequencyBand(bo.getFrequencyBand());
|
// }
|
// if (null != bo.getBatchId()) {
|
// po.setBatchId(bo.getBatchId());
|
// }
|
// if (StringUtils.isEmpty(bo.getRemarks())) {
|
// po.setRemarks(bo.getRemarks());
|
// }
|
baseMapper.updateById(po);
|
return po;
|
}
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public void submitComment(DevEquipmentBo bo) {
|
DevEquipment po = baseMapper.selectById(bo.getId());
|
if (po == null) {
|
throw new ServiceException("没有设备信息", HttpStatus.HTTP_PARTIAL);
|
}
|
if (null != bo.getBatchId()) {
|
po.setBatchId(bo.getBatchId());
|
}
|
if (StringUtils.isNotBlank(bo.getRemarks())) {
|
po.setRemarks(bo.getRemarks());
|
}
|
baseMapper.updateById(po);
|
}
|
}
|