From 3baaad59171ded6aca17340fcc907acbeeb45b7b Mon Sep 17 00:00:00 2001 From: zhuguifei <zhuguifei@zhuguifeideiMac.local> Date: 星期二, 08 四月 2025 08:14:43 +0800 Subject: [PATCH] Merge branch 'main' of http://lanpucloud.cn:1111/r/eims-master --- eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java | 124 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 124 insertions(+), 0 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 new file mode 100644 index 0000000..aa2096a --- /dev/null +++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/job/InspectPlanToRecordJob.java @@ -0,0 +1,124 @@ +package org.dromara.eims.job; + +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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.SneakyThrows; +import org.dromara.common.core.constant.DictConstants; +import org.dromara.common.core.utils.DateUtils; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.eims.domain.EimsInspectPlan; +import org.dromara.eims.domain.EimsInspectRecord; +import org.dromara.eims.domain.EimsMaintOrder; +import org.dromara.eims.domain.EimsMaintPlan; +import org.dromara.eims.domain.vo.EimsInspectPlanVo; +import org.dromara.eims.domain.vo.EimsMaintPlanVo; +import org.dromara.eims.mapper.EimsInspectPlanMapper; +import org.dromara.eims.mapper.EimsInspectRecordMapper; +import org.dromara.eims.mapper.EimsMaintOrderMapper; +import org.dromara.eims.mapper.EimsMaintPlanMapper; +import org.dromara.eims.service.IGenerateCodeService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +@Component +@RequiredArgsConstructor +@JobExecutor(name = "inspectPlanToRecordJob") +public class InspectPlanToRecordJob { + private final EimsInspectRecordMapper recordMapper; + + + private final EimsInspectPlanMapper planMapper; + + private final IGenerateCodeService codeService; + + + @SneakyThrows + @Transactional(rollbackFor = Exception.class) + public ExecuteResult jobExecute(JobArgs jobArgs) { + // 鑾峰彇浠婂ぉ鏃ユ湡 + + Date today = new Date(); + LambdaQueryWrapper<EimsInspectPlan> planBoQueryWrapper = Wrappers.lambdaQuery(); + // 鏌ヨ鍚敤鐨勭偣妫�璁″垝 + planBoQueryWrapper.eq(EimsInspectPlan::getStatus, DictConstants.SYS_NORMAL_DISABLE_DETAIL.NORMAL); + // 杩囨护娌℃湁涓嬫杩愯鏃堕棿 + planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspNextTime); + // 杩囨护娌℃湁鐐规鍛ㄦ湡鐨勬暟鎹� + planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspCycle); + planBoQueryWrapper.isNotNull(EimsInspectPlan::getInspCycleUnit); + + List<EimsInspectPlanVo> planVoList = planMapper.selectVoList(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; + } + + // 璁$畻鐢熸垚鐐规璁板綍鏃堕棿 + 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; + } + + EimsInspectRecord record = new EimsInspectRecord(); + record.setEquId(planVo.getEquId()); + record.setInspDesc(planVo.getInspDesc()); + record.setInspType(planVo.getInspType()); + record.setInspUser(planVo.getInspUser()); + record.setInspDept(planVo.getInspDept()); + record.setStatus(DictConstants.EIMS_INSPECT_STATUS_DETAIL.N); + record.setPlanTime(oldNext); + 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); + boolean flag = recordMapper.insert(record) > 0; + //TODO 鐢熸垚澶辫触锛屾坊鍔犲紓甯歌褰� + if (!flag) continue; + planMapper.updateById(plan); + + + } + return ExecuteResult.success("鐐规璁″垝鐢熸垚鐐规璁板綍鎴愬姛"); + } +} -- Gitblit v1.9.3