|
|
@@ -10,14 +10,20 @@ import cn.iocoder.yudao.module.iscs.controller.admin.isolationpoint.vo.Isolation
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.isolationpoint.vo.IsolationPointSaveReqVO;
|
|
|
import cn.iocoder.yudao.module.iscs.controller.admin.isolationpoint.vo.PointDetailVO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dataobject.isolationpoint.IsolationPointDO;
|
|
|
+import cn.iocoder.yudao.module.iscs.dal.dataobject.lotostation.LotoStationDO;
|
|
|
+import cn.iocoder.yudao.module.iscs.dal.dataobject.mappoint.MapPointDO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.dto.hardwareApi.UpdateSwitchStatusDTO;
|
|
|
import cn.iocoder.yudao.module.iscs.dal.mysql.isolationpoint.IsolationPointMapper;
|
|
|
+import cn.iocoder.yudao.module.iscs.service.lotostation.LotoStationService;
|
|
|
+import cn.iocoder.yudao.module.iscs.service.mappoint.MapPointService;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import jakarta.annotation.Resource;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import java.util.List;
|
|
|
@@ -37,11 +43,46 @@ public class IsolationPointServiceImpl extends ServiceImpl<IsolationPointMapper,
|
|
|
|
|
|
@Resource
|
|
|
private IsolationPointMapper isolationPointMapper;
|
|
|
- @Autowired
|
|
|
+ @Resource
|
|
|
private RedisCacheUtil redisCacheUtil;
|
|
|
+ @Lazy
|
|
|
+ @Resource
|
|
|
+ private LotoStationService lotoStationService;
|
|
|
+ @Lazy
|
|
|
+ @Resource
|
|
|
+ private MapPointService mapPointService;
|
|
|
|
|
|
+
|
|
|
+ @Transactional
|
|
|
@Override
|
|
|
public Long createIsolationPoint(IsolationPointSaveReqVO createReqVO) {
|
|
|
+ // 断言校验
|
|
|
+ Assert.isTrue(StringUtils.isNotBlank(createReqVO.getPointName()), "隔离点名称不可为空!");
|
|
|
+ List<IsolationPointDO> list = list(Wrappers.<IsolationPointDO>lambdaQuery()
|
|
|
+ .eq(IsolationPointDO::getPointName, createReqVO.getPointName()));
|
|
|
+ Assert.isTrue(list.isEmpty(), "该隔离点名称已被使用!");
|
|
|
+ List<IsolationPointDO> list2 = list(Wrappers.<IsolationPointDO>lambdaQuery()
|
|
|
+ .eq(IsolationPointDO::getRfidId, createReqVO.getRfidId()));
|
|
|
+ Assert.isTrue(list2.isEmpty(), "该NFC已被使用!");
|
|
|
+ List<IsolationPointDO> list3 = list(Wrappers.<IsolationPointDO>lambdaQuery()
|
|
|
+ .eq(IsolationPointDO::getPointCode, createReqVO.getPointCode()));
|
|
|
+ Assert.isTrue(list3.isEmpty(), "该编号已被使用!");
|
|
|
+ List<IsolationPointDO> list4 = list(Wrappers.<IsolationPointDO>lambdaQuery()
|
|
|
+ .eq(IsolationPointDO::getPointSerialNumber, createReqVO.getPointSerialNumber()));
|
|
|
+ Assert.isTrue(list4.isEmpty(), "该序列号已被使用!");
|
|
|
+ IsolationPointDO isolationPointDO = BeanUtils.toBean(createReqVO, IsolationPointDO.class);
|
|
|
+ save(isolationPointDO);
|
|
|
+ // 如果绑定的loto站已经绑定了mapId,则需要往is_map_point插入数据
|
|
|
+ if (createReqVO.getLotoId() != null) {
|
|
|
+ LotoStationDO lotoStation = lotoStationService.getById(createReqVO.getLotoId());
|
|
|
+ if (lotoStation.getMapId() != null) {
|
|
|
+ MapPointDO point = new MapPointDO();
|
|
|
+ point.setMapId(lotoStation.getMapId());
|
|
|
+ point.setMapType("2");
|
|
|
+ point.setEntityId(createReqVO.getId());
|
|
|
+ mapPointService.save(point);
|
|
|
+ }
|
|
|
+ }
|
|
|
// 插入
|
|
|
IsolationPointDO isolationPoint = BeanUtils.toBean(createReqVO, IsolationPointDO.class);
|
|
|
isolationPointMapper.insert(isolationPoint);
|
|
|
@@ -54,6 +95,21 @@ public class IsolationPointServiceImpl extends ServiceImpl<IsolationPointMapper,
|
|
|
public void updateIsolationPoint(IsolationPointSaveReqVO updateReqVO) {
|
|
|
// 校验存在
|
|
|
validateIsolationPointExists(updateReqVO.getId());
|
|
|
+ // 断言校验
|
|
|
+ Assert.notNull(updateReqVO.getId(), "隔离点ID不可为空!");
|
|
|
+ Assert.isTrue(StringUtils.isNotBlank(updateReqVO.getPointName()), "隔离点名称不可为空!");
|
|
|
+ List<IsolationPointDO> list = list(Wrappers.<IsolationPointDO>lambdaQuery()
|
|
|
+ .eq(IsolationPointDO::getPointName, updateReqVO.getPointName())
|
|
|
+ .ne(IsolationPointDO::getId, updateReqVO.getId()));
|
|
|
+ Assert.isTrue(list.isEmpty(), "该隔离点名称已被使用!");
|
|
|
+ List<IsolationPointDO> list2 = list(Wrappers.<IsolationPointDO>lambdaQuery()
|
|
|
+ .eq(IsolationPointDO::getRfidId, updateReqVO.getRfidId())
|
|
|
+ .ne(IsolationPointDO::getId, updateReqVO.getId()));
|
|
|
+ Assert.isTrue(list2.isEmpty(), "该NFC已被使用!");
|
|
|
+ List<IsolationPointDO> list4 = list(Wrappers.<IsolationPointDO>lambdaQuery()
|
|
|
+ .eq(IsolationPointDO::getPointSerialNumber, updateReqVO.getPointSerialNumber())
|
|
|
+ .ne(IsolationPointDO::getId, updateReqVO.getId()));
|
|
|
+ Assert.isTrue(list4.isEmpty(), "该序列号已被使用!");
|
|
|
// 更新
|
|
|
IsolationPointDO updateObj = BeanUtils.toBean(updateReqVO, IsolationPointDO.class);
|
|
|
isolationPointMapper.updateById(updateObj);
|