浏览代码

巡检路线描述处理

lipenghui 3 周之前
父节点
当前提交
ad43315b48

+ 12 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/order/IotInspectOrderController.java

@@ -17,12 +17,14 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 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.IotInspectPlanDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderDetailMapper;
 import cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant;
 import cn.iocoder.yudao.module.pms.service.IotDeviceService;
 import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderDetailService;
 import cn.iocoder.yudao.module.pms.service.inspect.IotInspectOrderService;
 import cn.iocoder.yudao.module.pms.service.inspect.IotInspectPlanService;
+import cn.iocoder.yudao.module.pms.service.inspect.IotInspectRouteService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -63,6 +65,8 @@ public class IotInspectOrderController {
     private IotInspectPlanService iotInspectPlanService;
     @Autowired
     private IotInspectOrderDetailService iotInspectOrderDetailService;
+    @Autowired
+    private IotInspectRouteService iotInspectRouteService;
 
     @PostMapping("/create")
     @Operation(summary = "创建巡检工单")
@@ -141,6 +145,13 @@ public class IotInspectOrderController {
             orderDetail.setDeviceId(k);
             if (CollUtil.isNotEmpty(v)) {
                 orderDetail.setRouteIndex(v.get(0).getRouteIndex());
+                Long routeId = v.get(0).getRouteId();
+                if (Objects.nonNull(routeId)) {
+                    IotInspectRouteDO iotInspectRoute = iotInspectRouteService.getIotInspectRoute(routeId);
+                    if (Objects.nonNull(iotInspectRoute)) {
+                        orderDetail.setRouteDesc(iotInspectRoute.getRouteDesc());
+                    }
+                }
             }
             if (Objects.nonNull(iotDevice)) {
                 orderDetail.setDeviceName(iotDevice.getDeviceCode()+iotDevice.getDeviceName());
@@ -165,6 +176,7 @@ public class IotInspectOrderController {
         private Long itemNormal;
         private Long itemException;
         private Long itemNeed;
+        private String routeDesc;
     }
 
     @GetMapping("/page")

+ 2 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/route/vo/IotInspectRouteRespVO.java

@@ -60,4 +60,6 @@ public class IotInspectRouteRespVO {
 
     @Schema(description = "路线排序")
     private Long index;
+    @Schema(description = "路线描述")
+    private String routeDesc;
 }

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/route/vo/IotInspectRouteSaveReqVO.java

@@ -41,4 +41,8 @@ public class IotInspectRouteSaveReqVO {
 
     @Schema(description = "资产编码")
     private String deviceCode;
+
+    @Schema(description = "路线描述")
+    private String routeDesc;
+
 }

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/inspect/IotInspectRouteDO.java

@@ -62,4 +62,8 @@ public class IotInspectRouteDO extends BaseDO {
      * 设备编码
      */
     private String deviceCode;
+    /**
+     * 路线描述
+     */
+    private String routeDesc;
 }

+ 19 - 5
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectRouteServiceImpl.java

@@ -1,19 +1,22 @@
 package cn.iocoder.yudao.module.pms.service.inspect;
 
+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.object.BeanUtils;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRoutePageReqVO;
-import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRouteRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRouteSaveReqVO;
-import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectPlanDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectPlanMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectRouteMapper;
 import cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant;
 import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,9 +24,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
-import java.util.HashSet;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 
@@ -44,6 +45,8 @@ public class IotInspectRouteServiceImpl implements IotInspectRouteService {
     private IotDeviceMapper iotDeviceMapper;
     @Autowired
     private DeptService deptService;
+    @Autowired
+    private IotInspectPlanMapper iotInspectPlanMapper;
 
     @Override
     public Long createIotInspectRoute(IotInspectRouteSaveReqVO createReqVO) {
@@ -79,6 +82,17 @@ public class IotInspectRouteServiceImpl implements IotInspectRouteService {
     public void deleteIotInspectRoute(Long id) {
         // 校验存在
         validateIotInspectRouteExists(id);
+        List<IotInspectPlanDO> planDOS = iotInspectPlanMapper.selectList();
+        List<Long> routeIds = new ArrayList<>();
+        planDOS.forEach(planDO -> {
+            List<IotInspectRouteDO> routeDOS = JSON.parseArray(planDO.getDeviceIds(), IotInspectRouteDO.class);
+            routeDOS.forEach(routeDO -> {
+                routeIds.add(routeDO.getId());
+            });
+        });
+        if (routeIds.contains(id)) {
+            throw new ServiceException(new ErrorCode(223, "存在关联该路线的巡检计划,暂无法删除"));
+        }
         // 删除
         iotInspectRouteMapper.deleteById(id);
     }