浏览代码

巡检计划执行异常处理

lipenghui 2 月之前
父节点
当前提交
30939267eb

+ 18 - 14
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/inspect/IotInspectOrderServiceImpl.java

@@ -192,18 +192,6 @@ public class IotInspectOrderServiceImpl implements IotInspectOrderService {
     public void createPlan(IotInspectPlanDO iotInspectPlan)  {
         Map<Long, List<IotInspectRouteDO>> generate = generate(iotInspectPlan.getDeviceIds());
         generate.forEach((k, v)->{
-            IotInspectOrderDO iotInspectOrderDO = new IotInspectOrderDO();
-            AdminUserRespDTO user = adminUserApi.getUser(k);
-            iotInspectOrderDO.setInspectOrderTitle((Objects.nonNull(user)?user.getNickname():"")+"/"+ DateUtil.format(LocalDateTime.now(), "yyyy-MM-dd")+"-巡检工单");
-            iotInspectOrderDO.setInspectOrderCode("IN"+ DateUtil.format(new Date(),"yyyyMMddHHmmss")+UUID.randomUUID().toString().substring(0, 4));
-            iotInspectOrderDO.setCharge(k);
-            iotInspectOrderDO.setStatus("todo");
-            iotInspectOrderDO.setType("计划生成");
-            iotInspectOrderDO.setPlanCode(iotInspectPlan.getPlanCode());
-            iotInspectOrderDO.setDeleted(false);
-            iotInspectOrderDO.setChargeName(Objects.nonNull(user)?user.getNickname():"");
-            iotInspectOrderDO.setDeptId(v.get(0).getDeptId());
-            TenantUtils.execute(1L, () -> iotInspectOrderMapper.insert(iotInspectOrderDO));
             List<IotInspectOrderDetailDO> results = new ArrayList<>();
             //处理巡检项
             List<IotInspectItemDO> items = iotInspectItemMapper.selectList();
@@ -216,7 +204,7 @@ public class IotInspectOrderServiceImpl implements IotInspectOrderService {
                         //如果部门id没调拨过
                         if (deviceDO.getDeptId().equals(routeDO.getDeptId())){
                             IotInspectOrderDetailDO detailDO = new IotInspectOrderDetailDO();
-                            detailDO.setOrderId(iotInspectOrderDO.getId());
+                            //detailDO.setOrderId(iotInspectOrderDO.getId());
                             detailDO.setDeviceId(routeDO.getDeviceId());
                             detailDO.setRouteId(routeDO.getId());
                             detailDO.setItemId(Objects.isNull(item.get("itemId"))?null:Long.valueOf(String.valueOf(item.get("itemId"))));
@@ -237,8 +225,24 @@ public class IotInspectOrderServiceImpl implements IotInspectOrderService {
                 });
             });
             if (CollUtil.isEmpty(results)){
-                throw new RuntimeException();
+                return;
             }
+
+            IotInspectOrderDO iotInspectOrderDO = new IotInspectOrderDO();
+            AdminUserRespDTO user = adminUserApi.getUser(k);
+            iotInspectOrderDO.setInspectOrderTitle((Objects.nonNull(user)?user.getNickname():"")+"/"+ DateUtil.format(LocalDateTime.now(), "yyyy-MM-dd")+"-巡检工单");
+            iotInspectOrderDO.setInspectOrderCode("IN"+ DateUtil.format(new Date(),"yyyyMMddHHmmss")+UUID.randomUUID().toString().substring(0, 4));
+            iotInspectOrderDO.setCharge(k);
+            iotInspectOrderDO.setStatus("todo");
+            iotInspectOrderDO.setType("计划生成");
+            iotInspectOrderDO.setPlanCode(iotInspectPlan.getPlanCode());
+            iotInspectOrderDO.setDeleted(false);
+            iotInspectOrderDO.setChargeName(Objects.nonNull(user)?user.getNickname():"");
+            iotInspectOrderDO.setDeptId(v.get(0).getDeptId());
+            TenantUtils.execute(1L, () -> iotInspectOrderMapper.insert(iotInspectOrderDO));
+            results.forEach(result->{
+                result.setOrderId(iotInspectOrderDO.getId());
+            });
             TenantUtils.execute(1L, () -> {
                 iotInspectOrderDetailMapper.insertBatch(results);
                 iotInspectPlan.setLastCreateTime(LocalDateTime.now());