From 63fd66413265dfc6d6248ec7f1700bd7d7837f8c Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 21 七月 2025 15:19:18 +0800
Subject: [PATCH] art: 技术状态鉴定工单-锁定、过期定时任务

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationLockedJob.java                    |   63 ++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java |   34 ++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderService.java         |   14 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationExpiredJob.java                   |   78 +++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java                  |   88 +++++++++++------
 5 files changed, 243 insertions(+), 34 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);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java
index a06c8a4..6aeba9e 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationGenerateJob.java
@@ -48,37 +48,6 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
-        //鑾峰彇鎶�鏈姸鎬侀壌瀹氱郴缁熼厤缃弬鏁�
-        SysParams threeYearOrderPreGenerationDaysParam = paramsService.getSysPramBySettingKey("three_year_order_pre_generation_days");
-        if (threeYearOrderPreGenerationDaysParam == null) {
-            log.error("鏈厤缃�3~4骞存湡鎻愬墠鐢熸垚宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛歿}", DateUtils.date2Str(DateUtils.date_sdf.get()));
-            return;
-        }
-        int threeYearOrderPreGenerationDays = Integer.parseInt(threeYearOrderPreGenerationDaysParam.getSettingValue());
-        SysParams oneYearOrderPreGenerationDaysParam = paramsService.getSysPramBySettingKey("one_year_order_pre_generation_days");
-        if (oneYearOrderPreGenerationDaysParam == null) {
-            log.error("鏈厤缃�1骞存湡鎻愬墠鐢熸垚宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛歿}", DateUtils.date2Str(DateUtils.date_sdf.get()));
-            return;
-        }
-        int oneYearOrderPreGenerationDays = Integer.parseInt(oneYearOrderPreGenerationDaysParam.getSettingValue());
-        SysParams threeYearOrderPreLockDaysParam = paramsService.getSysPramBySettingKey("three_year_order_pre_lock_days");
-        if (threeYearOrderPreLockDaysParam == null) {
-            log.error("鏈厤缃�3~4骞存湡鎻愬墠閿佸畾宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛歿}", DateUtils.date2Str(DateUtils.date_sdf.get()));
-            return;
-        }
-        int threeYearOrderPreLockDays = Integer.parseInt(threeYearOrderPreLockDaysParam.getSettingValue());
-        SysParams oneYearOrderPreLockDaysParam = paramsService.getSysPramBySettingKey("one_year_order_pre_lock_days");
-        if (oneYearOrderPreLockDaysParam == null) {
-            log.error("鏈厤缃�1骞存湡鎻愬墠閿佸畾宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛歿}", DateUtils.date2Str(DateUtils.date_sdf.get()));
-            return;
-        }
-        int oneYearOrderPreLockDays = Integer.parseInt(oneYearOrderPreLockDaysParam.getSettingValue());
-        //鑾峰彇璁惧鍒楄〃
-        List<EamEquipment> equipmentList = equipmentService.selectTechnicalEquipmentList();
-        if (CollectionUtil.isEmpty(equipmentList)) {
-            log.warn("娌℃湁闇�瑕佺敓鎴愭妧鏈姸鎬侀壌瀹氬伐鍗曞緱璁惧锛佹棩鏈燂細{}", DateUtils.date2Str(DateUtils.date_sdf.get()));
-            return;
-        }
         //浠诲姟鏃ュ織
         SysQuartzLog quartzLog = new SysQuartzLog();
         quartzLog.setCreateTime(new Date());
@@ -87,6 +56,63 @@
             quartzLog.setJobId(jobClassName.get(0).getId());
         }
         long startTime = System.currentTimeMillis();
+        //鑾峰彇鎶�鏈姸鎬侀壌瀹氱郴缁熼厤缃弬鏁�
+        SysParams threeYearOrderPreGenerationDaysParam = paramsService.getSysPramBySettingKey("three_year_order_pre_generation_days");
+        if (threeYearOrderPreGenerationDaysParam == null) {
+            log.error("鏈厤缃�3~4骞存湡鎻愬墠鐢熸垚宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛歿}", DateUtils.date2Str(DateUtils.date_sdf.get()));
+            quartzLog.setIsSuccess(-1);
+            long endTime = System.currentTimeMillis();
+            quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+            quartzLog.setExceptionDetail("鏈厤缃�3~4骞存湡鎻愬墠鐢熸垚宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛�" + DateUtils.date2Str(DateUtils.date_sdf.get()));
+            sysQuartzLogService.save(quartzLog);
+            return;
+        }
+        int threeYearOrderPreGenerationDays = Integer.parseInt(threeYearOrderPreGenerationDaysParam.getSettingValue());
+        SysParams oneYearOrderPreGenerationDaysParam = paramsService.getSysPramBySettingKey("one_year_order_pre_generation_days");
+        if (oneYearOrderPreGenerationDaysParam == null) {
+            log.error("鏈厤缃�1骞存湡鎻愬墠鐢熸垚宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛歿}", DateUtils.date2Str(DateUtils.date_sdf.get()));
+            quartzLog.setIsSuccess(-1);
+            long endTime = System.currentTimeMillis();
+            quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+            quartzLog.setExceptionDetail("鏈厤缃�1骞存湡鎻愬墠鐢熸垚宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛�" + DateUtils.date2Str(DateUtils.date_sdf.get()));
+            sysQuartzLogService.save(quartzLog);
+            return;
+        }
+        int oneYearOrderPreGenerationDays = Integer.parseInt(oneYearOrderPreGenerationDaysParam.getSettingValue());
+        SysParams threeYearOrderPreLockDaysParam = paramsService.getSysPramBySettingKey("three_year_order_pre_lock_days");
+        if (threeYearOrderPreLockDaysParam == null) {
+            log.error("鏈厤缃�3~4骞存湡鎻愬墠閿佸畾宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛歿}", DateUtils.date2Str(DateUtils.date_sdf.get()));
+            quartzLog.setIsSuccess(-1);
+            long endTime = System.currentTimeMillis();
+            quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+            quartzLog.setExceptionDetail("鏈厤缃�3~4骞存湡鎻愬墠閿佸畾宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛�" + DateUtils.date2Str(DateUtils.date_sdf.get()));
+            sysQuartzLogService.save(quartzLog);
+            return;
+        }
+        int threeYearOrderPreLockDays = Integer.parseInt(threeYearOrderPreLockDaysParam.getSettingValue());
+        SysParams oneYearOrderPreLockDaysParam = paramsService.getSysPramBySettingKey("one_year_order_pre_lock_days");
+        if (oneYearOrderPreLockDaysParam == null) {
+            log.error("鏈厤缃�1骞存湡鎻愬墠閿佸畾宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛歿}", DateUtils.date2Str(DateUtils.date_sdf.get()));
+            quartzLog.setIsSuccess(-1);
+            long endTime = System.currentTimeMillis();
+            quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+            quartzLog.setExceptionDetail("鏈厤缃�1骞存湡鎻愬墠閿佸畾宸ュ崟鐨勭郴缁熷弬鏁帮紝鏃ユ湡锛�" + DateUtils.date2Str(DateUtils.date_sdf.get()));
+            sysQuartzLogService.save(quartzLog);
+            return;
+        }
+        int oneYearOrderPreLockDays = Integer.parseInt(oneYearOrderPreLockDaysParam.getSettingValue());
+        //鑾峰彇璁惧鍒楄〃
+        List<EamEquipment> equipmentList = equipmentService.selectTechnicalEquipmentList();
+        if (CollectionUtil.isEmpty(equipmentList)) {
+            log.warn("娌℃湁闇�瑕佺敓鎴愭妧鏈姸鎬侀壌瀹氬伐鍗曞緱璁惧锛佹棩鏈燂細{}", DateUtils.date2Str(DateUtils.date_sdf.get()));
+            quartzLog.setIsSuccess(-1);
+            long endTime = System.currentTimeMillis();
+            quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+            quartzLog.setExceptionDetail("娌℃湁闇�瑕佺敓鎴愭妧鏈姸鎬侀壌瀹氬伐鍗曞緱璁惧锛屾棩鏈燂細" + DateUtils.date2Str(DateUtils.date_sdf.get()));
+            sysQuartzLogService.save(quartzLog);
+            return;
+        }
+
         AtomicInteger successCount = new AtomicInteger(0);
         AtomicInteger failCount = new AtomicInteger(0);
         StringBuilder sb = new StringBuilder();
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationLockedJob.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationLockedJob.java
index 169595e..01d098e 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationLockedJob.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/job/TechnicalStatusEvaluationLockedJob.java
@@ -1,4 +1,65 @@
 package org.jeecg.modules.eam.job;
 
-public class TechnicalStatusEvaluationLockedJob {
+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.entity.EamTechnicalStatusEvaluationOrder;
+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 TechnicalStatusEvaluationLockedJob implements Job {
+
+    @Autowired
+    private IEamTechnicalStatusEvaluationOrderService evaluationOrderService;
+    @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.selectWaitEvaluationOrderList();
+        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;
+        }
+        for (EamTechnicalStatusEvaluationOrder order : list) {
+            order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name());
+            evaluationOrderService.updateById(order);
+        }
+        quartzLog.setIsSuccess(0);
+        long endTime = System.currentTimeMillis();
+        quartzLog.setExecutionTime(Integer.parseInt(String.valueOf(endTime - startTime)));
+        quartzLog.setExceptionDetail("閿佸畾浜唟" + list.size() + "}鏉″伐鍗曪紝鏃ユ湡锛�" + DateUtils.date2Str(DateUtils.date_sdf.get()));
+        sysQuartzLogService.save(quartzLog);
+    }
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderService.java
index f2d93b9..f0439e1 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamTechnicalStatusEvaluationOrderService.java
@@ -7,6 +7,8 @@
 import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderQuery;
 import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderRequest;
 
+import java.util.List;
+
 /**
  * @Description: 鎶�鏈姸鎬侀壌瀹氬伐鍗�
  * @Author: jeecg-boot
@@ -51,4 +53,16 @@
      * @return
      */
     boolean updateEvaluationStatus(String orderId, String evaluationStatus);
+
+    /**
+     * 鑾峰彇寰呴壌瀹氱殑宸ュ崟锛岄攣瀹氬鐞嗕娇鐢�
+     * @return
+     */
+    List<EamTechnicalStatusEvaluationOrder> selectWaitEvaluationOrderList();
+
+    /**
+     * 鑾峰彇鏈畬鎴愮殑宸ュ崟淇℃伅锛岃繃鏈熷鐞嗕娇鐢�
+     * @return
+     */
+    List<EamTechnicalStatusEvaluationOrder> selectUncompletedEvaluationOrderList();
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java
index 1ebf51d..257f24f 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java
@@ -41,6 +41,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.time.LocalDate;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -332,7 +333,7 @@
         List<UserSelector> userSelectors;
         switch (status) {
             case UNDER_EVALUATION:
-                if(CollectionUtil.isEmpty(request.getTableDetailList())) {
+                if (CollectionUtil.isEmpty(request.getTableDetailList())) {
                     throw new JeecgBootException("妫�鏌ユ槑缁嗕俊鎭负绌猴紒");
                 }
                 boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId());
@@ -583,6 +584,37 @@
         return update > 0;
     }
 
+    @Override
+    public List<EamTechnicalStatusEvaluationOrder> selectWaitEvaluationOrderList() {
+        LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name());
+        queryWrapper.isNotNull(EamTechnicalStatusEvaluationOrder::getFreezeOrderDate);
+        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
+        LocalDate localDate = LocalDate.now();
+        queryWrapper.lt(EamTechnicalStatusEvaluationOrder::getFreezeOrderDate, localDate.toString());
+        return this.getBaseMapper().selectList(queryWrapper);
+    }
+
+    @Override
+    public List<EamTechnicalStatusEvaluationOrder> selectUncompletedEvaluationOrderList() {
+        LambdaQueryWrapper<EamTechnicalStatusEvaluationOrder> queryWrapper = new LambdaQueryWrapper<>();
+        List<String> statusList = Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(),
+                TechnicalStatusEvaluationOrderStatusEnum.UNDER_EVALUATION.name(),
+                TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name(),
+                TechnicalStatusEvaluationOrderStatusEnum.REPAIR_MANAGER_SIGNING.name(),
+                TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name(),
+                TechnicalStatusEvaluationOrderStatusEnum.DEPART_TECHNICAL_LEADER_SIGNING.name(),
+                TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name(),
+                TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name()
+        );
+        queryWrapper.in(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, statusList);
+        queryWrapper.isNotNull(EamTechnicalStatusEvaluationOrder::getOrderExpirationDate);
+        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
+        LocalDate localDate = LocalDate.now();
+        queryWrapper.lt(EamTechnicalStatusEvaluationOrder::getOrderExpirationDate, localDate.toString());
+        return this.getBaseMapper().selectList(queryWrapper);
+    }
+
     private void checkDetailResult(List<EamTechnicalStatusEvaluationOrderDetail> detailList, TechnicalStatusEvaluationCheckCategoryEnum checkCategory) {
         boolean b;
         switch (checkCategory) {

--
Gitblit v1.9.3