lipenghui 3 місяців тому
батько
коміт
dd60fd6e20

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

@@ -3,11 +3,14 @@ package cn.iocoder.yudao.module.pms.controller.admin.inspect.order;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectOrderSaveReqVO;
+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.mysql.inspect.IotInspectOrderDetailMapper;
+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 lombok.Data;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
@@ -48,6 +51,8 @@ public class IotInspectOrderController {
     private IotInspectOrderDetailService iotInspectOrderDetailService;
     @Autowired
     private IotInspectOrderDetailMapper iotInspectOrderDetailMapper;
+    @Autowired
+    private IotDeviceService iotDeviceService;
 
     @PostMapping("/create")
     @Operation(summary = "创建巡检工单")
@@ -80,12 +85,48 @@ public class IotInspectOrderController {
     public CommonResult<IotInspectOrderRespVO> getIotInspectOrder(@RequestParam("id") Long id) {
         IotInspectOrderDO iotInspectOrder = iotInspectOrderService.getIotInspectOrder(id);
         IotInspectOrderRespVO bean = BeanUtils.toBean(iotInspectOrder, IotInspectOrderRespVO.class);
-        List<IotInspectOrderDetailDO> orderId = iotInspectOrderDetailMapper.selectList("order_id", iotInspectOrder.getId());
-        Map<Long, List<IotInspectOrderDetailDO>> collect = orderId.stream().collect(Collectors.groupingBy(IotInspectOrderDetailDO::getDeviceId));
-        bean.setDetail(collect);
+//        List<IotInspectOrderDetailDO> orderId = iotInspectOrderDetailMapper.selectList("order_id", iotInspectOrder.getId());
+//        Map<Long, List<IotInspectOrderDetailDO>> collect = orderId.stream().collect(Collectors.groupingBy(IotInspectOrderDetailDO::getDeviceId));
+//        List<OrderDetail> orderDetails = new ArrayList<>();
+//        collect.forEach((k, v) -> {
+//            IotDeviceDO iotDevice = iotDeviceService.getIotDevice(k);
+//            OrderDetail orderDetail = new OrderDetail();
+//            orderDetail.setDeviceId(k);
+//            orderDetail.setDeviceName(iotDevice.getDeviceName());
+//            orderDetail.setOrderDetails(v);
+//            orderDetails.add(orderDetail);
+//        });
+//
+//        bean.setDetails(orderDetails);
         return success(bean);
     }
 
+    @GetMapping("/get/details")
+    @Operation(summary = "获得巡检工单详情")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('rq:iot-inspect-order:query')")
+    public CommonResult<List<OrderDetail>> getIotInspectOrderDetails(@RequestParam("id") Long id) {
+        List<IotInspectOrderDetailDO> orderId = iotInspectOrderDetailMapper.selectList("order_id", id);
+        Map<Long, List<IotInspectOrderDetailDO>> collect = orderId.stream().collect(Collectors.groupingBy(IotInspectOrderDetailDO::getDeviceId));
+        List<OrderDetail> orderDetails = new ArrayList<>();
+        collect.forEach((k, v) -> {
+            IotDeviceDO iotDevice = iotDeviceService.getIotDevice(k);
+            OrderDetail orderDetail = new OrderDetail();
+            orderDetail.setDeviceId(k);
+            orderDetail.setDeviceName(iotDevice.getDeviceName());
+            orderDetail.setOrderDetails(v);
+            orderDetails.add(orderDetail);
+        });
+        return success(orderDetails);
+    }
+
+    @Data
+    public static class OrderDetail {
+        private Long deviceId;
+        private String deviceName;
+        private List<IotInspectOrderDetailDO> orderDetails;
+    }
+
     @GetMapping("/page")
     @Operation(summary = "获得巡检工单分页")
     @PreAuthorize("@ss.hasPermission('rq:iot-inspect-order:query')")

+ 2 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/inspect/order/vo/IotInspectOrderRespVO.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo;
 
+import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.IotInspectOrderController;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDetailDO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
@@ -49,5 +50,5 @@ public class IotInspectOrderRespVO {
     private String chargeName;
     private String type;
 
-    private Map<Long, List<IotInspectOrderDetailDO>> detail;
+//    private List<IotInspectOrderController.OrderDetail> details;
 }

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

@@ -60,4 +60,9 @@ public class IotInspectOrderDetailDO extends BaseDO {
      */
     private Long deptId;
 
+    private String standard;
+
+    private String urls;
+
+    private String item;
 }

+ 9 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/job/InspectCreateOrderJob.java

@@ -9,6 +9,7 @@ import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
 import cn.iocoder.yudao.module.pms.controller.admin.iotdeviceperson.vo.IotDevicePersonPageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.*;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotdeviceperson.IotDevicePersonDO;
+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;
@@ -43,6 +44,8 @@ public class InspectCreateOrderJob implements JobHandler {
     private IotDevicePersonService iotDevicePersonService;
     @Resource
     private AdminUserApi adminUserApi;
+    @Autowired
+    private IotInspectItemMapper iotInspectItemMapper;
 
     @Override
     @TenantJob
@@ -122,6 +125,7 @@ public class InspectCreateOrderJob implements JobHandler {
             //List<IotInspectRouteDO> routeDOS = JSON.parseArray(v, IotInspectRouteDO.class);
             List<IotInspectOrderDetailDO> results = new ArrayList<>();
             //处理巡检项
+            List<IotInspectItemDO> items = iotInspectItemMapper.selectList();
             v.forEach(routeDO -> {
                 List<Map> itemos = JSON.parseArray(routeDO.getItemJson(), Map.class);
                 itemos.forEach(item -> {
@@ -131,6 +135,11 @@ public class InspectCreateOrderJob implements JobHandler {
                     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);
+                    items.stream().filter(e -> e.getId().equals(detailDO.getItemId())).findFirst().ifPresent(iotItem->{
+                        detailDO.setStandard(iotItem.getStandard());
+                        detailDO.setUrls(iotItem.getUrls());
+                        detailDO.setItem(iotItem.getItem());
+                    });
                     detailDO.setDeptId(iotInspectPlan.getDeptId());
                     results.add(detailDO);
                 });

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

@@ -22,6 +22,7 @@ import javax.annotation.Resource;
 import java.util.*;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_INSPECT_ORDER_DETAIL_NOT_EXISTS;
 import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_INSPECT_ORDER_NOT_EXISTS;
 
 /**
@@ -52,23 +53,18 @@ public class IotInspectOrderServiceImpl implements IotInspectOrderService {
         }
         //删除已有的
         IotInspectRouteDO routeDO1 = JSON.parseArray(order.getDeviceIds(), IotInspectRouteDO.class).stream().filter(e -> String.valueOf(e.getDeviceId()).equals(deviceId)).findFirst().get();
-        List<Map> maps1 = JSON.parseArray(routeDO1.getItemJson(), Map.class);
+//        List<Map> maps1 = JSON.parseArray(routeDO1.getItemJson(), Map.class);
 
-//        List<IotInspectOrderDetailDO> details = iotInspectOrderDetailMapper.selectByMap(ImmutableMap.of("order_id", orderId, "device_id", deviceId, "index_id", Long.valueOf(indexId)));
-//        Long itemId = details.get(0).getItemId();
-//        if (CollUtil.isNotEmpty(details)){
-//            iotInspectOrderDetailMapper.deleteByIds(details);
-//        }
-//        IotInspectOrderDetailDO detailDO = new IotInspectOrderDetailDO();
-//        detailDO.setOrderId(orderId);
-//        detailDO.setDeviceId(Long.valueOf(deviceId));
-//        detailDO.setItemId(itemId);
-//        detailDO.setIfNormal("1".equals(ifNormal));
-//        detailDO.setDescription(description);
-//        detailDO.setPicUrl(picUrl);
-//        detailDO.setIndexId(Long.valueOf(indexId));
-//        detailDO.setDeleted(false);
-//        iotInspectOrderDetailMapper.insert(detailDO);
+        List<IotInspectOrderDetailDO> details = iotInspectOrderDetailMapper.selectByMap(ImmutableMap.of("order_id", orderId, "device_id", deviceId, "index_id", Long.valueOf(indexId)));
+        if (CollUtil.isEmpty(details)){
+            throw exception(IOT_INSPECT_ORDER_DETAIL_NOT_EXISTS);
+        }
+        IotInspectOrderDetailDO detailDO = details.get(0);
+//        iotInspectOrderDetailMapper.deleteByIds(details);
+        detailDO.setIfNormal("1".equals(ifNormal));
+        detailDO.setDescription(description);
+        detailDO.setPicUrl(picUrl);
+        iotInspectOrderDetailMapper.updateById(detailDO);
         //更新order的json串
         List<IotInspectRouteDO> routeDOS = JSON.parseArray(order.getDeviceIds(), IotInspectRouteDO.class);
         List<IotInspectRouteDO> newArray = new ArrayList<>();