فهرست منبع

维修工单调整优化调拨逻辑

Zimo 1 هفته پیش
والد
کامیت
377273ea21

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

@@ -81,8 +81,8 @@ public interface IotMaintainMapper extends BaseMapperX<IotMaintainDO> {
 
     default List<IotMaintainDO> selectByStatusAndAuditStatusAndDeviceId(String status, Integer auditStatus, List<Long> deviceIds) {
         return selectList(new LambdaQueryWrapperX<IotMaintainDO>()
-                .eq(IotMaintainDO::getStatus, status)
-                .eq(IotMaintainDO::getAuditStatus, auditStatus)
+                .eqIfPresent(IotMaintainDO::getStatus, status)
+                .eqIfPresent(IotMaintainDO::getAuditStatus, auditStatus)
                 .in(IotMaintainDO::getDeviceId, deviceIds));
     }
     IPage<OrderVo> selectNotice(IPage<OrderVo> page, @Param("reqVO")OrderVo reqVO);

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

@@ -1,30 +1,26 @@
 package cn.iocoder.yudao.module.pms.service.maintain;
 
-import java.util.*;
-import javax.validation.*;
-
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.pms.controller.admin.failure.vo.IotFailureReportProcessVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.IotMaintainController;
-import cn.iocoder.yudao.module.pms.controller.admin.maintain.material.vo.IotMaintainMaterialPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
-import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveReqVO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainSaveVO;
-import cn.iocoder.yudao.module.pms.controller.admin.stat.IotStaticController;
 import cn.iocoder.yudao.module.pms.controller.admin.stat.vo.OrderVo;
 import cn.iocoder.yudao.module.pms.controller.admin.stat.vo.ReportCost;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
-import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.material.IotMaintainMaterialDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.oa.IotOaPersonDO;
 import cn.iocoder.yudao.module.pms.oa.CallBackOaVo;
 
+import javax.validation.Valid;
+import java.util.List;
+
 /**
  * 维修工单 Service 接口
  *
  * @author phli
  */
 public interface IotMaintainService {
+    Boolean ifFinished(List<Long> deviceIds);
     PageResult<ReportCost> getReportCost(IotMaintainPageReqVO reqVO);
     void methodDeal(IotMaintainController.MaintainMethod method);
     void oaDeal(CallBackOaVo callBackOaVo);

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

@@ -432,7 +432,7 @@ public class IotMaintainServiceImpl implements IotMaintainService {
     @Override
     public void syncWordOrderData(List<Long> deviceIds, Long deptId) {
         List<IotMaintainDO> maintainDOS = iotMaintainMapper.selectByStatusAndAuditStatusAndDeviceId("finished", 20, deviceIds);
-        if(maintainDOS.size()>0){
+        if(!maintainDOS.isEmpty()){
             maintainDOS.forEach(maintainDO -> maintainDO.setDeptId(deptId));
             iotMaintainMapper.updateBatch(maintainDOS);
         }
@@ -642,6 +642,13 @@ public class IotMaintainServiceImpl implements IotMaintainService {
     }
 
 
+    @Override
+    public Boolean ifFinished(List<Long> deviceIds) {
+        List<IotMaintainDO> maintains = iotMaintainMapper.selectByStatusAndAuditStatusAndDeviceId(null, null, deviceIds);
+        boolean todo = maintains.stream().anyMatch(e -> !"finished".equals(e.getStatus()));
+        return !todo;
+    }
+
     @Override
     public PageResult<ReportCost> getReportCost(IotMaintainPageReqVO pageReqVO) {
         IPage<ReportCost> page = iotMaintainMapper.getCost(