Pārlūkot izejas kodu

故障上报及维修工单的调拨处理

lipenghui 2 mēneši atpakaļ
vecāks
revīzija
25a7e1951a

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/failure/IotFailureReportMapper.java

@@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportPageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -46,4 +47,9 @@ public interface IotFailureReportMapper extends BaseMapperX<IotFailureReportDO>
                 .betweenIfPresent(IotFailureReportDO::getCreateTime, reqVO.getCreateTime()));
     }
 
+    default List<IotFailureReportDO> selectByStatusAndDeviceId(List<String> statusList, List<Long> deviceIds) {
+        return selectList(new LambdaQueryWrapperX<IotFailureReportDO>()
+                .in(IotFailureReportDO::getStatus, statusList)
+                .in(IotFailureReportDO::getDeviceId, deviceIds));
+    }
 }

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/maintain/IotMaintainMapper.java

@@ -50,4 +50,10 @@ public interface IotMaintainMapper extends BaseMapperX<IotMaintainDO> {
                 .betweenIfPresent(IotMaintainDO::getCreateTime, reqVO.getCreateTime()));
     }
 
+    default List<IotMaintainDO> selectByStatusAndAuditStatusAndDeviceId(String status, Integer auditStatus, List<Long> deviceIds) {
+        return selectList(new LambdaQueryWrapperX<IotMaintainDO>()
+                .eq(IotMaintainDO::getStatus, status)
+                .eq(IotMaintainDO::getAuditStatus, auditStatus)
+                .in(IotMaintainDO::getDeviceId, deviceIds));
+    }
 }

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportService.java

@@ -59,4 +59,10 @@ public interface IotFailureReportService {
      */
     PageResult<IotFailureReportDO> getIotFailureReportPage(IotFailureReportPageReqVO pageReqVO);
 
+    /**
+     * 调拨后同步 维修 保养 巡检 工单历史数据
+     * @param deviceIds 设备id集合
+     * @param deptId 调拨后的部门id
+     */
+    void syncWordOrderData(List<Long> deviceIds, Long deptId);
 }

+ 10 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/failure/IotFailureReportServiceImpl.java

@@ -28,6 +28,7 @@ import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
 import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
+import com.google.common.collect.ImmutableList;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -217,4 +218,13 @@ public class IotFailureReportServiceImpl implements IotFailureReportService {
         return iotFailureReportMapper.selectPage(pageReqVO, ids);
     }
 
+    @Override
+    public void syncWordOrderData(List<Long> deviceIds, Long deptId) {
+        List<IotFailureReportDO> failureReportDOS = iotFailureReportMapper.selectByStatusAndDeviceId(ImmutableList.of("finished", "orderfinished", "close"), deviceIds);
+        failureReportDOS.forEach(failureReport -> {
+            failureReport.setDeptId(deptId);
+        });
+        iotFailureReportMapper.updateBatch(failureReportDOS);
+    }
+
 }

+ 6 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainService.java

@@ -58,4 +58,10 @@ public interface IotMaintainService {
      */
     PageResult<IotMaintainDO> getIotMaintainPage(IotMaintainPageReqVO pageReqVO);
 
+    /**
+     * 调拨后同步 维修 保养 巡检 工单历史数据
+     * @param deviceIds 设备id集合
+     * @param deptId 调拨后的部门id
+     */
+    void syncWordOrderData(List<Long> deviceIds, Long deptId);
 }

+ 16 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/maintain/IotMaintainServiceImpl.java

@@ -43,6 +43,7 @@ import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import cn.iocoder.yudao.module.system.service.dept.DeptService;
 import com.google.common.collect.ImmutableMap;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -212,9 +213,9 @@ public class IotMaintainServiceImpl implements IotMaintainService {
         validateIotMaintainExists(updateReqVO.getMaintain().getId());
         // 更新
         IotMaintainDO updateObj = BeanUtils.toBean(updateReqVO.getMaintain(), IotMaintainDO.class);
-        if ("out".equals(updateObj.getType())&&updateObj.getAuditStatus()==20){
+        //if ("out".equals(updateObj.getType())&&updateObj.getAuditStatus()==20){
             updateObj.setStatus("finished");
-        }
+        //}
         iotMaintainMapper.updateById(updateObj);
         //删除工单bom及物料
         iotMaintainBomMapper.delete("maintain_id", String.valueOf(updateObj.getId()));
@@ -256,6 +257,12 @@ public class IotMaintainServiceImpl implements IotMaintainService {
             String msg = "【PMS】有新的委外维修流程, 请前往系统审批";
             sendMessage(BeanUtils.toBean(updateReqVO, IotMaintainDO.class), "maintain-out", msg);
         }
+        //故障上报处理转为工单已完成-orderfinished
+        if (StringUtils.isNotBlank(updateReqVO.getMaintain().getFailureId())){
+            IotFailureReportDO iotFailureReportDO = iotFailureReportMapper.selectById(updateReqVO.getMaintain().getFailureId());
+            iotFailureReportDO.setStatus("orderfinished");
+            iotFailureReportMapper.updateById(iotFailureReportDO);
+        }
     }
 
     /**
@@ -357,4 +364,11 @@ public class IotMaintainServiceImpl implements IotMaintainService {
         return iotMaintainMapper.selectPage(pageReqVO, ids);
     }
 
+    @Override
+    public void syncWordOrderData(List<Long> deviceIds, Long deptId) {
+        List<IotMaintainDO> maintainDOS = iotMaintainMapper.selectByStatusAndAuditStatusAndDeviceId("finished", 20, deviceIds);
+        maintainDOS.forEach(maintainDO -> maintainDO.setDeptId(deptId));
+        iotMaintainMapper.updateBatch(maintainDOS);
+    }
+
 }