From e9a086a3b7c1c111c56025ca99b57ff560ca817d Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 21 七月 2025 15:34:56 +0800
Subject: [PATCH] art: 技术状态鉴定工单-重复校验

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java |   61 ++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 1 deletions(-)

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..1c68444 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;
 
@@ -164,6 +165,10 @@
         List<EamTechnicalStatusEvaluationStandardDetail> standardDetailList = standardDetailService.queryList(standard.getId());
         if (CollectionUtil.isEmpty(standardDetailList)) {
             throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冩鏌ラ」涓虹┖锛屾坊鍔犲け璐ワ紒");
+        }
+        EamTechnicalStatusEvaluationOrder unCompleted = checkDuplicate(request.getEquipmentId());
+        if(unCompleted != null) {
+            throw new JeecgBootException("璁惧宸插瓨鍦ㄦ湭瀹屾垚鐨勬妧鏈姸鎬侀壌瀹氬伐鍗曪紝鏃犳硶鍐嶆鏂板锛�");
         }
         EamTechnicalStatusEvaluationOrder order = new EamTechnicalStatusEvaluationOrder();
         order.setEquipmentId(request.getEquipmentId());
@@ -332,7 +337,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 +588,60 @@
         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 EamTechnicalStatusEvaluationOrder checkDuplicate(String equipmentId) {
+        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(),
+                TechnicalStatusEvaluationOrderStatusEnum.CHANGING.name()
+        );
+        queryWrapper.in(EamTechnicalStatusEvaluationOrder::getEvaluationStatus, statusList);
+        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getDelFlag, CommonConstant.DEL_FLAG_0);
+        queryWrapper.eq(EamTechnicalStatusEvaluationOrder::getEquipmentId, equipmentId);
+        List<EamTechnicalStatusEvaluationOrder> list = this.getBaseMapper().selectList(queryWrapper);
+        if (CollectionUtil.isEmpty(list)) {
+            return null;
+        }
+        return list.get(0);
+    }
+
     private void checkDetailResult(List<EamTechnicalStatusEvaluationOrderDetail> detailList, TechnicalStatusEvaluationCheckCategoryEnum checkCategory) {
         boolean b;
         switch (checkCategory) {

--
Gitblit v1.9.3