From 0a27a9c0f9e1213dff16162d73a03dba0473b96e Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期五, 27 六月 2025 11:06:36 +0800
Subject: [PATCH] refactor(lb-eims):优化维护计划生成订单功能

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java |   95 ++++++++++++++++++-----------------------------
 1 files changed, 36 insertions(+), 59 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java
index 1058f6d..ff3f097 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/MaintPlanToOrderJob.java
@@ -3,8 +3,6 @@
 import com.aizuda.snailjob.client.job.core.annotation.JobExecutor;
 import com.aizuda.snailjob.client.job.core.dto.JobArgs;
 import com.aizuda.snailjob.client.model.ExecuteResult;
-import com.aizuda.snailjob.common.core.util.JsonUtil;
-import com.aizuda.snailjob.common.log.SnailJobLog;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -14,18 +12,11 @@
 import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.eims.domain.*;
-import org.dromara.eims.domain.bo.EimsMaintPlanBo;
 import org.dromara.eims.domain.vo.EimsMaintPlanVo;
-import org.dromara.eims.domain.vo.EimsMaintStandVo;
 import org.dromara.eims.mapper.EimsMaintOrderMapper;
-import org.dromara.eims.mapper.EimsMaintOrditmMapper;
 import org.dromara.eims.mapper.EimsMaintPlanMapper;
-import org.dromara.eims.mapper.EimsMaintStandMapper;
-import org.dromara.eims.service.IEimsMaintOrderService;
-import org.dromara.eims.service.IEimsMaintPlanService;
 import org.dromara.eims.service.IGenerateCodeService;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -38,9 +29,6 @@
 public class MaintPlanToOrderJob {
     private final EimsMaintOrderMapper orderMapper;
 
-    private final EimsMaintStandMapper standMapper;
-
-    private final EimsMaintOrditmMapper orditmMapper;
 
     private final EimsMaintPlanMapper planMapper;
 
@@ -53,24 +41,24 @@
         // 鑾峰彇浠婂ぉ鏃ユ湡
 
         Date today = new Date();
-        LambdaQueryWrapper<EimsMaintPlan> planBoQueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper<EimsMaintPlan> planBoQueryWrapper = Wrappers.query();
         // 鏌ヨ鍚敤鐨勪繚鍏昏鍒�
-        planBoQueryWrapper.eq(EimsMaintPlan::getStatus, DictConstants.SYS_NORMAL_DISABLE_DETAIL.NORMAL);
-        // 杩囨护娌℃湁棣栨杩愯鏃堕棿
-        planBoQueryWrapper.isNotNull(EimsMaintPlan::getMaintFirstTime);
-        // 杩囨护娌℃湁涓嬫杩愯鏃堕棿
-        planBoQueryWrapper.isNotNull(EimsMaintPlan::getMaintNextTime);
-        // 杩囨护娌℃湁淇濆吇鍛ㄦ湡鐨勬暟鎹�
-        planBoQueryWrapper.isNotNull(EimsMaintPlan::getMaintCycle);
-        planBoQueryWrapper.isNotNull(EimsMaintPlan::getMaintCycleUnit);
-        planBoQueryWrapper.isNotNull(EimsMaintPlan::getMaintRule);
 
-        List<EimsMaintPlanVo> planVoList = planMapper.selectVoList(planBoQueryWrapper);
+        planBoQueryWrapper.eq("mp.status", DictConstants.SYS_NORMAL_DISABLE_DETAIL.NORMAL);
+        planBoQueryWrapper .eq("equ.status", DictConstants.EIMS_EQU_STATUS_DETAIL.SHIYONG);
+        // 杩囨护涓嬫杩愯鏃堕棿绛変簬褰撳ぉ鏃堕棿鐨�
+//        planBoQueryWrapper.eq("mp.maint_next_time", DateUtils.getDate());
+        // 杩囨护娌℃湁淇濆吇鍛ㄦ湡鐨勬暟鎹�
+        planBoQueryWrapper.isNotNull("mp.maint_cycle");
+        planBoQueryWrapper.isNotNull("mp.maint_cycle_unit");
+        planBoQueryWrapper.isNotNull("mp.maint_rule");
+
+        List<EimsMaintPlanVo> planVoList = planMapper.selectVoListJoinEqu(planBoQueryWrapper);
         for (int i = 0; i < planVoList.size(); i++) {
             EimsMaintPlanVo planVo = planVoList.get(i);
             // 淇濆吇璁″垝add鐨勬椂鍊欎細鑷姩鐢熸垚涓嬫杩愯鏃堕棿
-            Date createOrderTime = planVo.getMaintNextTime();
-            int day = DateUtils.differentDays(today,createOrderTime );
+            Date oldNext = planVo.getMaintNextTime();
+            int day = DateUtils.differentDays(today, oldNext);
             // 濡傛灉璁″垝鐢熸垚宸ュ崟鏃ユ湡澶т簬浠婂ぉ鍒欎笉鐢熸垚宸ュ崟
             if (day >= 1) {
                 continue;
@@ -78,64 +66,53 @@
 
             // 璁$畻鐢熸垚宸ュ崟鏃堕棿
             Long maintCycle = planVo.getMaintCycle();
-            String maintRule = planVo.getMaintRule();
-            Date firstTime = planVo.getMaintFirstTime();
-            Date lastTime = planVo.getMaintLastTime();
-            Date nextTime = null;
+            Date newNext = null;
             String maintCycleUnit = planVo.getMaintCycleUnit();
             switch (maintCycleUnit) {
                 case DictConstants.MAINT_CYCLE_UNIT_DETAIL.DAY:
+                    newNext = DateUtils.addDays(oldNext, maintCycle.intValue());
                     break;
                 case DictConstants.MAINT_CYCLE_UNIT_DETAIL.WEEK:
-                    maintCycle *= 7;
+
+                    newNext = DateUtils.addWeeks(oldNext, maintCycle.intValue());
+
                     break;
                 case DictConstants.MAINT_CYCLE_UNIT_DETAIL.MONTH:
-                    maintCycle *= 30;
+
+                    newNext = DateUtils.addMonths(oldNext, maintCycle.intValue());
+
                     break;
                 case DictConstants.MAINT_CYCLE_UNIT_DETAIL.SEASON:
-                    maintCycle *= 90;
+                    newNext = DateUtils.addMonths(oldNext, maintCycle.intValue() * 3);
+
                     break;
                 case DictConstants.MAINT_CYCLE_UNIT_DETAIL.YEAR:
-                    maintCycle *= 365;
+
+                    newNext = DateUtils.addYears(oldNext, maintCycle.intValue());
+
                     break;
             }
-            // 棣栨
-            if (lastTime == null ) {
-                nextTime = DateUtils.addDays(createOrderTime, maintCycle.intValue());
-            } else {
-                nextTime = DateUtils.addDays(lastTime, maintCycle.intValue());
-            }
+
             EimsMaintOrder order = new EimsMaintOrder();
             BeanUtils.copyProperties(planVo, order);
             order.setId(null);
             order.setStatus(DictConstants.MAINT_ORDER_STATUS_DETAIL.DAIBAOYANG);
-            order.setPlanTime(createOrderTime);
+            order.setPlanTime(oldNext);
+            order.setPlanId(planVo.getId());
+            order.setMaintName(planVo.getMaintName());
             order.setMaintCode(codeService.generateCode("BYZD"));
             EimsMaintPlan plan = MapstructUtils.convert(planVo, EimsMaintPlan.class);
             assert plan != null;
-            plan.setLastGenerateDate(new Date());
-            plan.setMaintLastTime(createOrderTime);
-            plan.setMaintNextTime(nextTime);
-            boolean flag  = orderMapper.insert(order) > 0;
+            plan.setLastOrderDate(new Date());
+            plan.setMaintLastTime(oldNext);
+            plan.setMaintNextTime(newNext);
+            if(plan.getMaintFirstTime()==null)plan.setMaintFirstTime(oldNext);
+            boolean flag = orderMapper.insert(order) > 0;
             //TODO 鐢熸垚澶辫触锛屾坊鍔犲紓甯歌褰�
             if (!flag) continue;
             planMapper.updateById(plan);
 
-            //鐢熸垚淇濆吇鏄庣粏
-            Long equId = plan.getEquId();
-            List<EimsMaintStandVo> standList = standMapper.selectVoList(new LambdaQueryWrapper<EimsMaintStand>().eq(EimsMaintStand::getEquId, equId));
-            //TODO 娌℃湁淇濆吇椤癸紝娣诲姞寮傚父璁板綍
-            if(standList.isEmpty()) continue;
-            for (int j = 0; j < standList.size(); j++) {
-                EimsMaintStandVo stand = standList.get(j);
-                EimsMaintOrditm itm = new EimsMaintOrditm();
-                itm.setOrderId(order.getId());
-                itm.setEquId(equId);
-                itm.setItmName(stand.getName());
-                itm.setItmAction(stand.getStand());
-                itm.setItmUser(order.getMaintUser());
-                orditmMapper.insert(itm);
-            }
+
         }
         return ExecuteResult.success("淇濆吇璁″垝鐢熸垚淇濆吇宸ュ崟鎴愬姛");
     }

--
Gitblit v1.9.3