From b6d533f17a997e58133b825c5bbcc5ed3f2e5579 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期二, 01 七月 2025 13:19:33 +0800
Subject: [PATCH] fix(eims): 修复计划生成逻辑

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java |  102 +++++++++++++++++++++++++++------------------------
 1 files changed, 54 insertions(+), 48 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java
index aa2096a..73aa548 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java
@@ -4,6 +4,7 @@
 import com.aizuda.snailjob.client.job.core.dto.JobArgs;
 import com.aizuda.snailjob.client.model.ExecuteResult;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
@@ -43,57 +44,62 @@
     @SneakyThrows
     @Transactional(rollbackFor = Exception.class)
     public ExecuteResult jobExecute(JobArgs jobArgs) {
-        // 鑾峰彇浠婂ぉ鏃ユ湡
 
-        Date today = new Date();
-        LambdaQueryWrapper<EimsInspectPlan> planBoQueryWrapper = Wrappers.lambdaQuery();
+        QueryWrapper<EimsInspectPlan> planBoQueryWrapper = Wrappers.query();
         // 鏌ヨ鍚敤鐨勭偣妫�璁″垝
-        planBoQueryWrapper.eq(EimsInspectPlan::getStatus, DictConstants.SYS_NORMAL_DISABLE_DETAIL.NORMAL);
-        // 杩囨护娌℃湁涓嬫杩愯鏃堕棿
-        planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspNextTime);
-        // 杩囨护娌℃湁鐐规鍛ㄦ湡鐨勬暟鎹�
-        planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspCycle);
-        planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspCycleUnit);
+        planBoQueryWrapper.eq("ip.status", DictConstants.SYS_NORMAL_DISABLE_DETAIL.NORMAL)
+            .eq("equ.status", DictConstants.EIMS_EQU_STATUS_DETAIL.SHIYONG);
+        // 澧炲姞杩囨护鏉′欢 涓婃鐢熸垚鏃ユ湡灏忎簬褰撳墠鏃ユ湡
+        planBoQueryWrapper.and(wrapper -> wrapper.lt("ip.insp_next_time", DateUtils.getDate()).or().isNull("ip.insp_next_time"));
+//        // 杩囨护娌℃湁涓嬫杩愯鏃堕棿
+//        planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspNextTime);
+//        // 杩囨护娌℃湁鐐规鍛ㄦ湡鐨勬暟鎹�
+//        planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspCycle);
+//        planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspCycleUnit);
 
-        List<EimsInspectPlanVo> planVoList = planMapper.selectVoList(planBoQueryWrapper);
+        List<EimsInspectPlanVo> planVoList = planMapper.selectVoListJoinEqu(planBoQueryWrapper);
         for (int i = 0; i < planVoList.size(); i++) {
             EimsInspectPlanVo planVo = planVoList.get(i);
-            // 鐐规璁″垝add鐨勬椂鍊欎細鑷姩鐢熸垚涓嬫杩愯鏃堕棿
-            Date oldNext = planVo.getInspNextTime();
-            int day = DateUtils.differentDays(today, oldNext);
-            // 濡傛灉璁″垝鐢熸垚鐐规鏃ユ湡澶т簬浠婂ぉ鍒欎笉鐢熸垚鐐规璁板綍
-            if (day >= 1) {
-                continue;
-            }
+//            // 鐐规璁″垝add鐨勬椂鍊欎細鑷姩鐢熸垚涓嬫杩愯鏃堕棿
+//            Date oldNext = planVo.getInspNextTime();
+//            int day = DateUtils.differentDays(today, oldNext);
+//            // 濡傛灉璁″垝鐢熸垚鐐规鏃ユ湡澶т簬浠婂ぉ鍒欎笉鐢熸垚鐐规璁板綍
+//            if (day >= 1) {
+//                continue;
+//            }
+//
+//            // 璁$畻鐢熸垚鐐规璁板綍鏃堕棿
+//            Long inspCycle = planVo.getInspCycle();
+//            Date newNext = null;
+//            String inspCycleUnit = planVo.getInspCycleUnit();
+//            switch (inspCycleUnit) {
+//                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.DAY:
+//                    newNext = DateUtils.addDays(oldNext, inspCycle.intValue());
+//                    break;
+//                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.WEEK:
+//
+//                    newNext = DateUtils.addWeeks(oldNext, inspCycle.intValue());
+//
+//                    break;
+//                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.MONTH:
+//
+//                    newNext = DateUtils.addMonths(oldNext, inspCycle.intValue());
+//
+//                    break;
+//                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.SEASON:
+//                    newNext = DateUtils.addMonths(oldNext, inspCycle.intValue() * 3);
+//
+//                    break;
+//                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.YEAR:
+//
+//                    newNext = DateUtils.addYears(oldNext, inspCycle.intValue());
+//
+//                    break;
+//            }
 
-            // 璁$畻鐢熸垚鐐规璁板綍鏃堕棿
-            Long inspCycle = planVo.getInspCycle();
-            Date newNext = null;
-            String inspCycleUnit = planVo.getInspCycleUnit();
-            switch (inspCycleUnit) {
-                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.DAY:
-                    newNext = DateUtils.addDays(oldNext, inspCycle.intValue());
-                    break;
-                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.WEEK:
+            Date nowDate = DateUtils.getNowDate();
 
-                    newNext = DateUtils.addWeeks(oldNext, inspCycle.intValue());
-
-                    break;
-                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.MONTH:
-
-                    newNext = DateUtils.addMonths(oldNext, inspCycle.intValue());
-
-                    break;
-                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.SEASON:
-                    newNext = DateUtils.addMonths(oldNext, inspCycle.intValue() * 3);
-
-                    break;
-                case DictConstants.MAINT_CYCLE_UNIT_DETAIL.YEAR:
-
-                    newNext = DateUtils.addYears(oldNext, inspCycle.intValue());
-
-                    break;
-            }
+            Date nextDate = DateUtils.addDays(nowDate, 1);
 
             EimsInspectRecord record = new EimsInspectRecord();
             record.setEquId(planVo.getEquId());
@@ -102,16 +108,16 @@
             record.setInspUser(planVo.getInspUser());
             record.setInspDept(planVo.getInspDept());
             record.setStatus(DictConstants.EIMS_INSPECT_STATUS_DETAIL.N);
-            record.setPlanTime(oldNext);
+            record.setPlanTime(nowDate);
             record.setPlanId(planVo.getId());
             //鐐规椤瑰悕绉�
             record.setInspName(planVo.getInspName());
             record.setInspCode(codeService.generateCode("DJZD"));
             EimsInspectPlan plan = MapstructUtils.convert(planVo, EimsInspectPlan.class);
             assert plan != null;
-            plan.setInspLastTime(oldNext);
-            plan.setInspNextTime(newNext);
-            if(plan.getInspFirstTime()==null)plan.setInspFirstTime(oldNext);
+            plan.setInspLastTime(nowDate);
+            plan.setInspNextTime(nextDate);
+            if(plan.getInspFirstTime()==null)plan.setInspFirstTime(nowDate);
             boolean flag = recordMapper.insert(record) > 0;
             //TODO 鐢熸垚澶辫触锛屾坊鍔犲紓甯歌褰�
             if (!flag) continue;

--
Gitblit v1.9.3