Sfoglia il codice sorgente

巡检项删除添加校验

lipenghui 3 settimane fa
parent
commit
b1ea601b08

+ 6 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/inspect/IotInspectPlanMapper.java

@@ -6,6 +6,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.plan.vo.IotInspectPlanPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectPlanDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
 import org.apache.ibatis.annotations.Mapper;
@@ -31,5 +33,8 @@ public interface IotInspectPlanMapper extends BaseMapperX<IotInspectPlanDO> {
                 .inIfPresent(IotInspectPlanDO::getDeptId, ids)
                 .orderByDesc(IotInspectPlanDO::getId));
     }
-
+    default Long selectCountByPlanCode(List<String> planCodes) {
+        return selectCount(new LambdaQueryWrapperX<IotInspectPlanDO>()
+                .inIfPresent(IotInspectPlanDO::getPlanCode, planCodes));
+    }
 }

+ 27 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectItemServiceImpl.java

@@ -1,6 +1,8 @@
 package cn.iocoder.yudao.module.pms.service.inspect;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.common.exception.ErrorCode;
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
@@ -9,9 +11,14 @@ import cn.iocoder.yudao.module.pms.controller.admin.inspect.item.vo.IotInspectIt
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRoutePageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectItemDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotProductClassifyMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectItemMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectPlanMapper;
 import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -23,6 +30,7 @@ import org.springframework.validation.annotation.Validated;
 import javax.annotation.Resource;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_INSPECT_ITEM_NOT_EXISTS;
@@ -44,6 +52,12 @@ public class IotInspectItemServiceImpl implements IotInspectItemService {
     private IotProductClassifyMapper iotProductClassifyMapper;
     @Autowired
     private DeptService deptService;
+    @Autowired
+    private IotInspectOrderMapper iotInspectOrderMapper;
+    @Autowired
+    private IotInspectOrderDetailMapper iotInspectOrderDetailMapper;
+    @Autowired
+    private IotInspectPlanMapper iotInspectPlanMapper;
 
     @Override
     public Long createIotInspectItem(IotInspectItemSaveReqVO createReqVO) {
@@ -72,6 +86,19 @@ public class IotInspectItemServiceImpl implements IotInspectItemService {
     public void deleteIotInspectItem(Long id) {
         // 校验存在
         validateIotInspectItemExists(id);
+        //查找是否有巡检计划及巡检工单及路线
+        List<IotInspectOrderDetailDO> detailDOS = iotInspectOrderDetailMapper.selectList("item_id", id);
+        if (CollUtil.isNotEmpty(detailDOS)) {
+            List<Long> orderIds = detailDOS.stream().map(IotInspectOrderDetailDO::getOrderId).distinct().collect(Collectors.toList());
+            List<IotInspectOrderDO> orderDOS = iotInspectOrderMapper.selectByIds(orderIds);
+            if (CollUtil.isNotEmpty(orderDOS)) {
+                List<String> planCodes = orderDOS.stream().map(IotInspectOrderDO::getPlanCode).distinct().collect(Collectors.toList());
+                Long l = iotInspectPlanMapper.selectCountByPlanCode(planCodes);
+                if (l > 0) {
+                    throw new ServiceException(new ErrorCode(222, "该巡检项关联计划或路线,不能删除"));
+                }
+            }
+        }
         // 删除
         iotInspectItemMapper.deleteById(id);
     }