Browse Source

巡检计划的巡检路线设备的工单排序

lipenghui 1 month ago
parent
commit
38df63f6d1

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

@@ -128,6 +128,9 @@ public class IotInspectOrderController {
             IotDeviceDO iotDevice = iotDeviceService.getIotDevice(k);
             OrderDetail orderDetail = new OrderDetail();
             orderDetail.setDeviceId(k);
+            if (CollUtil.isNotEmpty(v)) {
+                orderDetail.setRouteIndex(v.get(0).getRouteIndex());
+            }
             if (Objects.nonNull(iotDevice)) {
                 orderDetail.setDeviceName(iotDevice.getDeviceCode()+iotDevice.getDeviceName());
                 orderDetail.setOrderDetails(v);
@@ -137,7 +140,7 @@ public class IotInspectOrderController {
         if (CollUtil.isEmpty(orderDetails)) {
             throw new ServiceException(ErrorCodeConstant.INSPECT_DEVICE_CHANGE);
         }
-        return success(orderDetails);
+        return success(orderDetails.stream().sorted(Comparator.comparing(OrderDetail::getRouteIndex)).collect(Collectors.toList()));
     }
 
     @Data
@@ -145,6 +148,7 @@ public class IotInspectOrderController {
         private Long deviceId;
         private String deviceName;
         private String deviceCode;
+        private Long routeIndex;
         private List<IotInspectOrderDetailDO> orderDetails;
     }
 

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

@@ -57,4 +57,7 @@ public class IotInspectRouteRespVO {
 
     @Schema(description = "部门名称")
     private String deptName;
+
+    @Schema(description = "路线排序")
+    private Long index;
 }

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

@@ -66,4 +66,6 @@ public class IotInspectOrderDetailDO extends BaseDO {
     private String urls;
 
     private String item;
+
+    private Long routeIndex;
 }

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

@@ -9,6 +9,7 @@ import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
 import cn.iocoder.yudao.module.pms.constant.PmsConstants;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderSaveReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRouteRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDevicePageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
@@ -201,7 +202,7 @@ public class IotInspectOrderServiceImpl implements IotInspectOrderService {
 
     @Transactional(rollbackFor = Exception.class)
     public void createPlan(IotInspectPlanDO iotInspectPlan)  {
-        Map<Long, List<IotInspectRouteDO>> generate = generate(iotInspectPlan.getDeviceIds());
+        Map<Long, List<IotInspectRouteRespVO>> generate = generate(iotInspectPlan.getDeviceIds());
         generate.forEach((k, v)->{
             List<IotInspectOrderDetailDO> results = new ArrayList<>();
             //处理巡检项
@@ -221,6 +222,7 @@ public class IotInspectOrderServiceImpl implements IotInspectOrderService {
                             detailDO.setItemId(Objects.isNull(item.get("itemId"))?null:Long.valueOf(String.valueOf(item.get("itemId"))));
                             detailDO.setIndexId(Long.valueOf(String.valueOf(item.get("index"))));
                             detailDO.setDeleted(false);
+                            detailDO.setRouteIndex(routeDO.getIndex());
                             items.stream().filter(e -> e.getId().equals(detailDO.getItemId())).findFirst().ifPresent(iotItem->{
                                 detailDO.setStandard(iotItem.getStandard());
                                 detailDO.setUrls(iotItem.getUrls());
@@ -264,12 +266,12 @@ public class IotInspectOrderServiceImpl implements IotInspectOrderService {
         });
     }
 
-    private Map<Long, List<IotInspectRouteDO>> generate(String deviceIds) {
-        List<IotInspectRouteDO> routeDOS = JSON.parseArray(deviceIds, IotInspectRouteDO.class);
+    private Map<Long, List<IotInspectRouteRespVO>> generate(String deviceIds) {
+        List<IotInspectRouteRespVO> routeDOS = JSON.parseArray(deviceIds, IotInspectRouteRespVO.class);
 
-        Map<Long, List<IotInspectRouteDO>> personToDevices = new HashMap<>();
+        Map<Long, List<IotInspectRouteRespVO>> personToDevices = new HashMap<>();
 
-        for (IotInspectRouteDO routeDO : routeDOS) {
+        for (IotInspectRouteRespVO routeDO : routeDOS) {
             IotDevicePersonPageReqVO iotDevicePersonPageReqVO = new IotDevicePersonPageReqVO();
             iotDevicePersonPageReqVO.setDeviceIds(ImmutableList.of(routeDO.getDeviceId()));
             List<IotDevicePersonDO> persons = iotDevicePersonService.getPersonsByDeviceIds(iotDevicePersonPageReqVO);