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/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 44 insertions(+), 6 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 652121e..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;
 
@@ -166,14 +167,15 @@
             throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冩鏌ラ」涓虹┖锛屾坊鍔犲け璐ワ紒");
         }
         EamTechnicalStatusEvaluationOrder order = new EamTechnicalStatusEvaluationOrder();
-        order.setOrderNum(request.getOrderNum());
         order.setEquipmentId(request.getEquipmentId());
         order.setStandardId(request.getStandardId());
         order.setEvaluationDate(request.getEvaluationDate());
+        order.setFreezeOrderDate(request.getFreezeOrderDate());
+        order.setOrderExpirationDate(request.getOrderExpirationDate());
         order.setRemark(request.getRemark());
         String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.TECHNICAL_STATUS_EVALUATION_ORDER_CODE_RULE);
         order.setOrderNum(codeSeq);
-        order.setCreationMethod(OrderCreationMethodEnum.MANUAL.name());
+        order.setCreationMethod(request.getCreationMethod());
         //鐘舵�佸垵濮嬪寲
         order.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name());
         //鍒犻櫎鏍囪
@@ -331,6 +333,9 @@
         List<UserSelector> userSelectors;
         switch (status) {
             case UNDER_EVALUATION:
+                if (CollectionUtil.isEmpty(request.getTableDetailList())) {
+                    throw new JeecgBootException("妫�鏌ユ槑缁嗕俊鎭负绌猴紒");
+                }
                 boolean parallelCompletion = flowTaskService.checkParallelCompletion(flowMyBusiness.getTaskId());
                 //鎵ц瀹屾垚
                 userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
@@ -482,6 +487,7 @@
                 entity.setRepairManagerSignature(user.getUsername());
                 entity.setRepairManagerSignatureTime(new Date());
                 entity.setRepairManagerComment(request.getRepairManagerComment());
+                entity.setRepairManagerSignatureResult(request.getRepairManagerSignatureResult());
                 //璁剧疆entity
                 if (BusinessCodeConst.APPROVED.equals(request.getRepairManagerSignatureResult())) {
                     values.put("NextAssignee", userApprovalList);
@@ -528,14 +534,15 @@
                 entity.setDepartTechnicalLeaderSignature(user.getUsername());
                 entity.setDepartTechnicalLeaderSignatureTime(new Date());
                 entity.setDepartTechnicalLeaderComment(request.getDepartTechnicalLeaderComment());
+                entity.setDepartTechnicalLeaderSignatureResult(request.getDepartTechnicalLeaderSignatureResult());
                 //璁剧疆entity
                 if (BusinessCodeConst.APPROVED.equals(request.getDepartTechnicalLeaderSignatureResult())) {
                     values.put("NextAssignee", userApprovalList);
-                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name());
+                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name());
                 } else {
                     userApprovalList = Collections.singletonList(entity.getProcessTechnicianSignature());
                     values.put("NextAssignee", userApprovalList);
-                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name());
+                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name());
                 }
                 break;
             case INSPECTOR_SIGNING:
@@ -569,14 +576,45 @@
     @Transactional(rollbackFor = Exception.class)
     public boolean updateEvaluationStatus(String orderId, String evaluationStatus) {
         UpdateWrapper<EamTechnicalStatusEvaluationOrder> updateWrapper = new UpdateWrapper<>();
-        updateWrapper.eq("order_id", orderId);
+        updateWrapper.eq("id", orderId);
         updateWrapper.set("evaluation_status", evaluationStatus);
         updateWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
-        updateWrapper.eq("evaluation_status", TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name());
+        updateWrapper.in("evaluation_status", Arrays.asList(TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name(), TechnicalStatusEvaluationOrderStatusEnum.LOCKED.name()));
         int update = this.getBaseMapper().update(null, updateWrapper);
         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