From 67696c754ea8799a9f0de646bba61e55d8981833 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 14 七月 2025 11:59:33 +0800
Subject: [PATCH] art:技术状态鉴定工单,查询,新增接口添加

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java |   92 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 73 insertions(+), 19 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 2734f62..e0dcd6d 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
@@ -4,6 +4,7 @@
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -157,7 +158,7 @@
         if (standard == null) {
             throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冧笉瀛樺湪锛屾坊鍔犲け璐ワ紒");
         }
-        if (!TechnicalStatusEvaluationStandardEnum.ENABLE.name().equals(standard.getStandardStatus())) {
+        if (!TechnicalStatusEvaluationStandardStatusEnum.ENABLE.name().equals(standard.getStandardStatus())) {
             throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冩湭鍚敤锛屾坊鍔犲け璐ワ紒");
         }
         List<EamTechnicalStatusEvaluationStandardDetail> standardDetailList = standardDetailService.queryList(standard.getId());
@@ -367,13 +368,18 @@
                         }
                     } else {
                         //瀹夊叏瑁呯疆妫�鏌ョ粨鏋滃~鎶�
-                        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
-                            for (EamTechnicalStatusEvaluationOrderDetail detail : request.getTableDetailList()) {
-                                detail.setRepairmanSignature(user.getUsername());
-                                detail.setRepairmanSignatureTime(new Date());
-                            }
-                            orderDetailService.updateBatchById(request.getTableDetailList());
+                        List<EamTechnicalStatusEvaluationOrderDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.SAFETY_EQUIPMENT_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
+                        if(CollectionUtil.isEmpty(collect)) {
+                            throw new JeecgBootException("瀹夊叏瑁呯疆妫�鏌ラ」鏄庣粏涓虹┖锛�");
                         }
+                        //缁撴灉椤规鏌�
+                        checkDetailResult(request.getTableDetailList(), TechnicalStatusEvaluationCheckCategoryEnum.SAFETY_EQUIPMENT_CHECK);
+                        //娣诲姞鎿嶄綔浜轰俊鎭�
+                        for (EamTechnicalStatusEvaluationOrderDetail detail : collect) {
+                            detail.setRepairmanSignature(user.getUsername());
+                            detail.setRepairmanSignatureTime(new Date());
+                        }
+                        orderDetailService.updateBatchById(collect);
                         values.put("NextAssignee", userApprovalList);
                         entity.setSafetyCheckCompleted(CommonConstant.STATUS_1);
                     }
@@ -394,13 +400,18 @@
                         }
                     } else {
                         //璁惧绮惧害妫�鏌ョ粨鏋滃~鎶�
-                        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
-                            for (EamTechnicalStatusEvaluationOrderDetail detail : request.getTableDetailList()) {
-                                detail.setRepairmanSignature(user.getUsername());
-                                detail.setRepairmanSignatureTime(new Date());
-                            }
-                            orderDetailService.updateBatchById(request.getTableDetailList());
+                        List<EamTechnicalStatusEvaluationOrderDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.PRECISION_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
+                        if(CollectionUtil.isEmpty(collect)) {
+                            throw new JeecgBootException("璁惧绮惧害妫�鏌ラ」鏄庣粏涓虹┖锛�");
                         }
+                        //缁撴灉椤规鏌�
+                        checkDetailResult(request.getTableDetailList(), TechnicalStatusEvaluationCheckCategoryEnum.PRECISION_CHECK);
+                        //娣诲姞鎿嶄綔浜轰俊鎭�
+                        for (EamTechnicalStatusEvaluationOrderDetail detail : collect) {
+                            detail.setRepairmanSignature(user.getUsername());
+                            detail.setRepairmanSignatureTime(new Date());
+                        }
+                        orderDetailService.updateBatchById(collect);
                         values.put("NextAssignee", userApprovalList);
                         entity.setPrecisionCheckCompleted(CommonConstant.STATUS_1);
                     }
@@ -422,13 +433,20 @@
                         }
                     } else {
                         //鍏朵粬妫�鏌ョ粨鏋滃~鎶�
-                        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
-                            for (EamTechnicalStatusEvaluationOrderDetail detail : request.getTableDetailList()) {
-                                detail.setRepairmanSignature(user.getUsername());
-                                detail.setRepairmanSignatureTime(new Date());
-                            }
-                            orderDetailService.updateBatchById(request.getTableDetailList());
+                        List<EamTechnicalStatusEvaluationOrderDetail> collect = request.getTableDetailList().stream().filter(item -> TechnicalStatusEvaluationCheckCategoryEnum.OTHER_CHECK.name().equals(item.getCheckCategory())).collect(Collectors.toList());
+                        if(CollectionUtil.isEmpty(collect)) {
+                            throw new JeecgBootException("鍏朵粬妫�鏌ラ」鏄庣粏涓虹┖锛�");
                         }
+                        //缁撴灉椤规鏌�
+                        checkDetailResult(request.getTableDetailList(), TechnicalStatusEvaluationCheckCategoryEnum.OTHER_CHECK);
+                        //娣诲姞鎿嶄綔浜轰俊鎭�
+                        for (EamTechnicalStatusEvaluationOrderDetail detail : collect) {
+                            detail.setRepairmanSignature(user.getUsername());
+                            detail.setRepairmanSignatureTime(new Date());
+                        }
+                        orderDetailService.updateBatchById(collect);
+                        values.put("NextAssignee", userApprovalList);
+                        entity.setPrecisionCheckCompleted(CommonConstant.STATUS_1);
                         values.put("NextAssignee", userApprovalList);
                         entity.setOtherCheckCompleted(CommonConstant.STATUS_1);
                     }
@@ -554,6 +572,42 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean updateEvaluationStatus(String orderId, String evaluationStatus) {
+        UpdateWrapper<EamTechnicalStatusEvaluationOrder> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.eq("order_id", orderId);
+        updateWrapper.set("evaluation_status", evaluationStatus);
+        updateWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
+        updateWrapper.eq("evaluation_status", TechnicalStatusEvaluationOrderStatusEnum.WAIT_EVALUATION.name());
+        int update = this.getBaseMapper().update(null, updateWrapper);
+        return update > 0;
+    }
+
+    private void checkDetailResult(List<EamTechnicalStatusEvaluationOrderDetail> detailList, TechnicalStatusEvaluationCheckCategoryEnum checkCategory) {
+        boolean b;
+        switch (checkCategory) {
+            case SAFETY_EQUIPMENT_CHECK:
+                b = detailList.stream().allMatch(item -> StringUtils.isNotBlank(item.getSafetyEquipmentCheckResult()));
+                if(!b) {
+                    throw new JeecgBootException("鏈夊畨鍏ㄨ缃鏌ョ粨鏋滄湭濉啓锛�");
+                }
+                break;
+            case PRECISION_CHECK:
+                b = detailList.stream().allMatch(item -> item.getPrecisionCheckResult() != null);
+                if(!b) {
+                    throw new JeecgBootException("鏈夎澶囩簿搴︽鏌ョ粨鏋滄湭濉啓锛�");
+                }
+                break;
+            case OTHER_CHECK:
+                b = detailList.stream().allMatch(item -> StringUtils.isNotBlank(item.getOtherCheckResult()));
+                if(!b) {
+                    throw new JeecgBootException("鏈夊叾浠栨鏌ョ粨鏋滄湭濉啓锛�");
+                }
+                break;
+        }
+    }
+
+    @Override
     public void afterFlowHandle(FlowMyBusiness business) {
         business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣
         business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟

--
Gitblit v1.9.3