From 8904f9e6005e7e1f3cc06f415fdcde0033c32332 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 21 七月 2025 20:33:53 +0800
Subject: [PATCH] art: 技术状态鉴定工单-生成逻辑优化

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationExpiredJob.java |   78 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 1 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationExpiredJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationExpiredJob.java
index a59bd65..dffc190 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationExpiredJob.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationExpiredJob.java
@@ -1,4 +1,80 @@
 package org.jeecg.modules.eam.job;
 
-public class TechnicalStatusEvaluationExpiredJob {
+import cn.hutool.core.collection.CollectionUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderStatusEnum;
+import org.jeecg.modules.eam.constant.TechnologyStatusEnum;
+import org.jeecg.modules.eam.entity.EamEquipmentExtend;
+import org.jeecg.modules.eam.entity.EamTechnicalStatusEvaluationOrder;
+import org.jeecg.modules.eam.service.IEamEquipmentExtendService;
+import org.jeecg.modules.eam.service.IEamTechnicalStatusEvaluationOrderService;
+import org.jeecg.modules.quartz.entity.QuartzJob;
+import org.jeecg.modules.quartz.entity.SysQuartzLog;
+import org.jeecg.modules.quartz.service.IQuartzJobService;
+import org.jeecg.modules.quartz.service.ISysQuartzLogService;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+@Component
+@Slf4j
+public class TechnicalStatusEvaluationExpiredJob implements Job {
+    @Autowired
+    private IEamTechnicalStatusEvaluationOrderService evaluationOrderService;
+    @Autowired
+    private IEamEquipmentExtendService equipmentExtendService;
+    @Autowired
+    private ISysQuartzLogService sysQuartzLogService;
+    @Autowired
+    private IQuartzJobService quartzJobService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        //浠诲姟鏃ュ織
+        SysQuartzLog quartzLog = new SysQuartzLog();
+        quartzLog.setCreateTime(new Date());
+        List<QuartzJob> jobClassName = quartzJobService.findByJobClassName(this.getClass().getName());
+        if (jobClassName != null && !jobClassName.isEmpty()) {
+            quartzLog.setJobId(jobClassName.get(0).getId());
+        }
+        long startTime = System.currentTimeMillis();
+        List<EamTechnicalStatusEvaluationOrder> list = evaluationOrderService.selectUncompletedEvaluationOrderList();
+        if (CollectionUtil.isEmpty(list)) {
+            log.info("娌℃湁闇�瑕佽繃鏈熺殑宸ュ崟锛佹棩鏈燂細{}", DateUtils.date2Str(DateUtils.date_sdf.get()));
+            quartzLog.setIsSuccess(0);
+            long endTime = System.currentTimeMillis();
+            quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+            quartzLog.setExceptionDetail("娌℃湁闇�瑕佽繃鏈熺殑宸ュ崟锛屾棩鏈燂細" + DateUtils.date2Str(DateUtils.date_sdf.get()));
+            sysQuartzLogService.save(quartzLog);
+            return;
+        }
+        int expiredCount = 0;
+        for (EamTechnicalStatusEvaluationOrder order : list) {
+            EamEquipmentExtend extend = equipmentExtendService.getById(order.getEquipmentId());
+            if (extend == null) {
+                log.error("璁惧淇℃伅涓嶅瓨鍦紝璇锋鏌ワ紒 璁惧ID锛歿}, 鏃ユ湡锛歿}", order.getEquipmentId(), DateUtils.date2Str(DateUtils.date_sdf.get()));
+                continue;
+            }
+            if (TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name().equals(order.getEvaluationStatus()) || TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name().equals(order.getEvaluationStatus())) {
+                order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.EXPIRED.name());
+                evaluationOrderService.updateById(order);
+                expiredCount++;
+            }
+            extend.setTechnologyStatus(TechnologyStatusEnum.PROHIBITED.name());
+            equipmentExtendService.updateById(extend);
+        }
+        quartzLog.setIsSuccess(0);
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        quartzLog.setExceptionDetail("杩囨湡浜唟" + expiredCount + "}涓伐鍗曪紝杩樻湁{" + (list.size() - expiredCount) + "}涓伐鍗曟鍦ㄦ墽琛屼腑锛岀鐢ㄤ簡{" + list.size() + "}鍙拌澶�, 鏃ユ湡锛�" + DateUtils.date2Str(DateUtils.date_sdf.get()));
+        sysQuartzLogService.save(quartzLog);
+    }
 }

--
Gitblit v1.9.3