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