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/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java |   35 +++++++++++++++++++++++++++++++++--
 1 files changed, 33 insertions(+), 2 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 257f24f..4fa6923 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
@@ -17,6 +17,7 @@
 import org.jeecg.common.constant.DataBaseConstant;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.eam.constant.*;
 import org.jeecg.modules.eam.entity.*;
@@ -165,6 +166,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());
@@ -497,8 +502,6 @@
                     values.put("NextAssignee", userApprovalList);
                     entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name());
                 }
-//                //鏇存柊璁惧淇濆吇鐘舵��
-//                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
                 break;
             case PROCESS_TECHNICIAN_SIGNING:
                 //宸ヨ壓鍛樼瀛�
@@ -558,6 +561,11 @@
                 entity.setInspectorComment(request.getInspectorComment());
                 entity.setEvaluationResult(request.getEvaluationResult());
                 entity.setEvaluationReason(request.getEvaluationReason());
+                //鏇存柊璁惧鎶�鏈姸鎬�
+                // 鎸夌収濉姤瀹屾垚鏃ユ湡璁$畻鏈涓変繚鏃ユ湡锛屽幓闄ゆ椂鍒嗙
+                Date evaluationDate = DateUtils.localDateToDate(DateUtils.dateToLocalDate(entity.getActualEndTime()));
+                equipmentExtendService.updateTechnologyParam(equipment.getId(), entity.getEvaluationResult(),
+                        evaluationDate, CommonConstant.STATUS_0);
                 break;
         }
         request.setValues(values);
@@ -615,6 +623,29 @@
         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