lipenghui 2 сар өмнө
parent
commit
ed6e98f3c4

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

@@ -6,8 +6,10 @@ import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
 import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
 import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
 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.controller.admin.iotdeviceperson.vo.IotDevicePersonPageReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.*;
 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.dataobject.iotdeviceperson.IotDevicePersonDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectItemMapper;
 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.IotInspectOrderDetailMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderMapper;
@@ -43,6 +45,8 @@ public class InspectCreateOrderJob implements JobHandler {
     private AdminUserApi adminUserApi;
     private AdminUserApi adminUserApi;
     @Autowired
     @Autowired
     private IotInspectItemMapper iotInspectItemMapper;
     private IotInspectItemMapper iotInspectItemMapper;
+    @Autowired
+    private IotDeviceMapper iotDeviceMapper;
 
 
     @Override
     @Override
     @TenantJob
     @TenantJob
@@ -142,7 +146,11 @@ public class InspectCreateOrderJob implements JobHandler {
                         detailDO.setUrls(iotItem.getUrls());
                         detailDO.setUrls(iotItem.getUrls());
                         detailDO.setItem(iotItem.getItem());
                         detailDO.setItem(iotItem.getItem());
                     });
                     });
-                    detailDO.setDeptId(iotInspectPlan.getDeptId());
+                    IotDeviceDO iotDeviceDO = iotDeviceMapper.selectById(routeDO.getDeviceId());
+                    if (Objects.nonNull(iotDeviceDO)){
+                        detailDO.setDeptId(iotDeviceDO.getDeptId());
+                    }
+//                    detailDO.setDeptId(iotInspectPlan.getDeptId());
                     results.add(detailDO);
                     results.add(detailDO);
                 });
                 });
             });
             });

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

@@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectO
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
 
 
 import javax.validation.Valid;
 import javax.validation.Valid;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 /**
 /**
@@ -53,4 +54,10 @@ public interface IotInspectOrderService {
      */
      */
     PageResult<IotInspectOrderDO> getIotInspectOrderPage(IotInspectOrderPageReqVO pageReqVO);
     PageResult<IotInspectOrderDO> getIotInspectOrderPage(IotInspectOrderPageReqVO pageReqVO);
 
 
+    /**
+     * 调拨后同步 维修 保养 巡检 工单历史数据
+     * @param deviceIds 设备id集合
+     * @param deptId 调拨后的部门id
+     */
+    void syncWordOrderData(List<Long> deviceIds, Long deptId);
 }
 }

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

@@ -18,6 +18,7 @@ import org.springframework.validation.annotation.Validated;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 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_DETAIL_NOT_EXISTS;
@@ -158,4 +159,32 @@ public class IotInspectOrderServiceImpl implements IotInspectOrderService {
         return iotInspectOrderMapper.selectPage(pageReqVO, ids, pageReqVO.getIdList());
         return iotInspectOrderMapper.selectPage(pageReqVO, ids, pageReqVO.getIdList());
     }
     }
 
 
+    @Override
+    public void syncWordOrderData(List<Long> deviceIds, Long deptId) {
+        deviceIds.forEach(deviceId -> {
+            List<IotInspectOrderDetailDO> deviceId1 = iotInspectOrderDetailMapper.selectList("device_id", deviceId);
+            Map<Long, List<IotInspectOrderDetailDO>> collect = deviceId1.stream().collect(Collectors.groupingBy(IotInspectOrderDetailDO::getOrderId));
+            collect.forEach((k,v)->{
+                IotInspectOrderDO iotInspectOrderDO = iotInspectOrderMapper.selectById(k);
+                //已完成
+                if ("finished".equals(iotInspectOrderDO.getStatus())){
+                    IotInspectOrderDO orderDO = new IotInspectOrderDO();
+                    BeanUtils.copyProperties(iotInspectOrderDO, orderDO);
+                    iotInspectOrderDO.setDeptId(deptId);
+                    orderDO.setId(null);
+                    iotInspectOrderMapper.insert(orderDO);
+                    v.forEach(order -> {
+                        order.setDeptId(deptId);
+                        order.setOrderId(orderDO.getId());
+                    });
+                }
+
+
+
+            });
+
+        });
+
+    }
+
 }
 }

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

@@ -6,13 +6,16 @@ import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectR
 import cn.iocoder.yudao.module.pms.controller.admin.inspect.route.vo.IotInspectRouteRespVO;
 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.inspect.route.vo.IotInspectRouteSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.vo.IotDeviceRespVO;
 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.IotProductClassifyDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO;
 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.IotInspectRouteMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectRouteMapper;
 import cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant;
 import cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant;
 import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
 import cn.iocoder.yudao.module.pms.service.IotProductClassifyService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 
 
@@ -34,6 +37,8 @@ public class IotInspectRouteServiceImpl implements IotInspectRouteService {
     private IotInspectRouteMapper iotInspectRouteMapper;
     private IotInspectRouteMapper iotInspectRouteMapper;
     @Resource
     @Resource
     private IotProductClassifyService iotProductClassifyService;
     private IotProductClassifyService iotProductClassifyService;
+    @Autowired
+    private IotDeviceMapper iotDeviceMapper;
 
 
     @Override
     @Override
     public Long createIotInspectRoute(IotInspectRouteSaveReqVO createReqVO) {
     public Long createIotInspectRoute(IotInspectRouteSaveReqVO createReqVO) {
@@ -44,6 +49,13 @@ public class IotInspectRouteServiceImpl implements IotInspectRouteService {
         if (Objects.nonNull(iotProductClassify)) {
         if (Objects.nonNull(iotProductClassify)) {
             iotInspectRoute.setDeviceClassifyName(iotProductClassify.getName());
             iotInspectRoute.setDeviceClassifyName(iotProductClassify.getName());
         }
         }
+        //如果有设备存的就是设备的部门id
+        if (Objects.nonNull(iotInspectRoute.getDeviceId())) {
+            IotDeviceDO iotDeviceDO = iotDeviceMapper.selectById(iotInspectRoute.getDeviceId());
+            if (Objects.nonNull(iotDeviceDO)) {
+                iotInspectRoute.setDeptId(iotDeviceDO.getDeptId());
+            }
+        }
         iotInspectRouteMapper.insert(iotInspectRoute);
         iotInspectRouteMapper.insert(iotInspectRoute);
         // 返回
         // 返回
         return iotInspectRoute.getId();
         return iotInspectRoute.getId();

+ 2 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/IotInspectRouteMapper.xml

@@ -10,11 +10,11 @@
      -->
      -->
     <select id="getRoute"
     <select id="getRoute"
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO">
             resultType="cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectRouteDO">
-        select* from (select * from (select route.route_name, device.device_name, device.id device_id,route.id, route.item_json,route.create_time from (select * from rq_iot_inspect_route where device_id is null) route
+        select* from (select * from (select route.route_name, device.device_name, device.id device_id,route.id, route.item_json,route.create_time,device.dept_id from (select * from rq_iot_inspect_route where device_id is null) route
         left join rq_iot_device device on route.device_classify = device.asset_class)a where a.device_id not in (select device_id from rq_iot_inspect_route where device_id is not null)
         left join rq_iot_device device on route.device_classify = device.asset_class)a where a.device_id not in (select device_id from rq_iot_inspect_route where device_id is not null)
 
 
         union all
         union all
-        select route_name, device_name, device_id,id,item_json,create_time from rq_iot_inspect_route where device_id is not null)fin
+        select route_name, device_name, device_id,id,item_json,create_time,dept_id from rq_iot_inspect_route where device_id is not null)fin
         <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
         <if test="reqVO.deviceName!=null and reqVO.deviceName!=''">
             AND fin.device_name LIKE concat(concat("%",#{reqVO.deviceName}),"%")
             AND fin.device_name LIKE concat(concat("%",#{reqVO.deviceName}),"%")
         </if>
         </if>