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