From 4d4bc8ebf380ff900201f42bffa357293cf97f27 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期六, 12 七月 2025 14:17:59 +0800
Subject: [PATCH] art: 技术状态鉴定工单-领取接口问题修改,新增接口修改

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamTechnicalStatusEvaluationOrderServiceImpl.java |  143 ++++++++++++++++++++++++++++++++++-------------
 1 files changed, 103 insertions(+), 40 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 0e594d7..2734f62 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,10 +17,7 @@
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.eam.constant.BusinessCodeConst;
-import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum;
-import org.jeecg.modules.eam.constant.OrderCreationMethodEnum;
-import org.jeecg.modules.eam.constant.TechnicalStatusEvaluationOrderStatusEnum;
+import org.jeecg.modules.eam.constant.*;
 import org.jeecg.modules.eam.entity.*;
 import org.jeecg.modules.eam.mapper.EamTechnicalStatusEvaluationOrderMapper;
 import org.jeecg.modules.eam.request.EamTechnicalStatusEvaluationOrderQuery;
@@ -67,6 +64,8 @@
     private ISysBusinessCodeRuleService businessCodeRuleService;
     @Autowired
     private IEamTechnicalStatusEvaluationStandardService standardService;
+    @Autowired
+    private IEamTechnicalStatusEvaluationStandardDetailService standardDetailService;
     @Autowired
     private IEamBaseHFCodeService hfCodeService;
     @Autowired
@@ -158,6 +157,13 @@
         if (standard == null) {
             throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冧笉瀛樺湪锛屾坊鍔犲け璐ワ紒");
         }
+        if (!TechnicalStatusEvaluationStandardEnum.ENABLE.name().equals(standard.getStandardStatus())) {
+            throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冩湭鍚敤锛屾坊鍔犲け璐ワ紒");
+        }
+        List<EamTechnicalStatusEvaluationStandardDetail> standardDetailList = standardDetailService.queryList(standard.getId());
+        if (CollectionUtil.isEmpty(standardDetailList)) {
+            throw new JeecgBootException("鎶�鏈姸鎬侀壌瀹氳鑼冩鏌ラ」涓虹┖锛屾坊鍔犲け璐ワ紒");
+        }
         EamTechnicalStatusEvaluationOrder order = new EamTechnicalStatusEvaluationOrder();
         order.setOrderNum(request.getOrderNum());
         order.setEquipmentId(request.getEquipmentId());
@@ -197,17 +203,8 @@
         order.setHfCodeC(eamBaseHFCode.getHfCode());
         this.getBaseMapper().insert(order);
         //澶勭悊鏄庣粏鏁版嵁
-        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
-            request.getTableDetailList().forEach(tableDetail -> {
-                tableDetail.setId(null);
-                tableDetail.setCreateBy(null);
-                tableDetail.setCreateTime(null);
-                tableDetail.setUpdateBy(null);
-                tableDetail.setUpdateTime(null);
-                tableDetail.setOrderId(order.getId());
-            });
-            orderDetailService.saveBatch(request.getTableDetailList());
-        }
+        List<EamTechnicalStatusEvaluationOrderDetail> orderDetailList = standardDetailList.stream().map(item -> new EamTechnicalStatusEvaluationOrderDetail(item, order.getId())).collect(Collectors.toList());
+        orderDetailService.saveBatch(orderDetailList);
         return true;
     }
 
@@ -280,7 +277,7 @@
             variables.put("other_check", userApprovalList);
             entity.setOtherCheckCompleted(CommonConstant.STATUS_0);
         } else {
-            variables.put("hasOtherCheck ", CommonConstant.STATUS_0);
+            variables.put("hasOtherCheck", CommonConstant.STATUS_0);
             variables.put("other_check", userApprovalList);
         }
         Result<?> result = flowDefinitionService.startProcessInstanceByKey("technical_status_evaluation_process", variables);
@@ -355,22 +352,22 @@
                 }
                 if ("safety_equipment_check".equals(flowMyBusiness.getTaskNameId())) {
                     //鎵ц瀹夊叏妫�鏌�
-                    if(CommonConstant.STATUS_1.equals(entity.getSafetyCheckCompleted())) {
+                    if (CommonConstant.STATUS_1.equals(entity.getSafetyCheckCompleted())) {
                         values.put("safetyEquipmentCheckFlag", request.getSafetyCheckConfirmResult());
                         entity.setSafetyCheckConfirmResult(request.getSafetyCheckConfirmResult());
                         entity.setSafetyCheckConfirm(user.getUsername());
                         entity.setSafetyCheckConfirmTime(new Date());
                         entity.setSafetyCheckConfirmComment(request.getSafetyCheckConfirmComment());
                         //缁翠慨瀹や富浠诲鎵�
-                        if(!CommonConstant.STATUS_1.equals(request.getSafetyCheckConfirmResult())) {
+                        if (!CommonConstant.STATUS_1.equals(request.getSafetyCheckConfirmResult())) {
                             //椹冲洖 缁欑洃瀵熶汉
                             userApprovalList = Collections.singletonList(request.getTableDetailList().get(0).getRepairmanSignature());
                             values.put("NextAssignee", userApprovalList);
                             entity.setSafetyCheckCompleted(CommonConstant.STATUS_0);
                         }
-                    }else {
+                    } else {
                         //瀹夊叏瑁呯疆妫�鏌ョ粨鏋滃~鎶�
-                        if(CollectionUtil.isNotEmpty(request.getTableDetailList())) {
+                        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
                             for (EamTechnicalStatusEvaluationOrderDetail detail : request.getTableDetailList()) {
                                 detail.setRepairmanSignature(user.getUsername());
                                 detail.setRepairmanSignatureTime(new Date());
@@ -382,22 +379,22 @@
                     }
                 } else if ("equipment_precision_check".equals(flowMyBusiness.getTaskNameId())) {
                     //澶勭悊绮惧害妫�楠�
-                    if(CommonConstant.STATUS_1.equals(entity.getPrecisionCheckCompleted())) {
+                    if (CommonConstant.STATUS_1.equals(entity.getPrecisionCheckCompleted())) {
                         values.put("precisionCheckFlag", request.getPrecisionCheckConfirmResult());
                         entity.setPrecisionCheckConfirmResult(request.getPrecisionCheckConfirmResult());
                         entity.setPrecisionCheckConfirm(user.getUsername());
                         entity.setPrecisionCheckConfirmTime(new Date());
                         entity.setPrecisionCheckConfirmComment(request.getPrecisionCheckConfirmComment());
                         //缁翠慨瀹や富浠诲鎵�
-                        if(!CommonConstant.STATUS_1.equals(request.getPrecisionCheckConfirmResult())) {
+                        if (!CommonConstant.STATUS_1.equals(request.getPrecisionCheckConfirmResult())) {
                             //椹冲洖 缁欑洃瀵熶汉
                             userApprovalList = Collections.singletonList(request.getTableDetailList().get(0).getRepairmanSignature());
                             values.put("NextAssignee", userApprovalList);
                             entity.setPrecisionCheckCompleted(CommonConstant.STATUS_0);
                         }
-                    }else {
+                    } else {
                         //璁惧绮惧害妫�鏌ョ粨鏋滃~鎶�
-                        if(CollectionUtil.isNotEmpty(request.getTableDetailList())) {
+                        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
                             for (EamTechnicalStatusEvaluationOrderDetail detail : request.getTableDetailList()) {
                                 detail.setRepairmanSignature(user.getUsername());
                                 detail.setRepairmanSignatureTime(new Date());
@@ -408,24 +405,24 @@
                         entity.setPrecisionCheckCompleted(CommonConstant.STATUS_1);
                     }
 
-                } else if("other_check".equals(flowMyBusiness.getTaskNameId())) {
+                } else if ("other_check".equals(flowMyBusiness.getTaskNameId())) {
                     //澶勭悊鍏朵粬妫�鏌�
-                    if(CommonConstant.STATUS_1.equals(entity.getOtherCheckCompleted())) {
+                    if (CommonConstant.STATUS_1.equals(entity.getOtherCheckCompleted())) {
                         values.put("otherCheckFlag", request.getOtherCheckResult());
                         entity.setOtherCheckResult(request.getOtherCheckConfirmResult());
                         entity.setOtherCheckConfirm(user.getUsername());
                         entity.setOtherCheckConfirmTime(new Date());
                         entity.setOtherCheckConfirmComment(request.getOtherCheckConfirmComment());
                         //缁翠慨瀹や富浠诲鎵�
-                        if(!CommonConstant.STATUS_1.equals(request.getOtherCheckConfirmResult())) {
+                        if (!CommonConstant.STATUS_1.equals(request.getOtherCheckConfirmResult())) {
                             //椹冲洖 缁欑洃瀵熶汉
                             userApprovalList = Collections.singletonList(request.getTableDetailList().get(0).getRepairmanSignature());
                             values.put("NextAssignee", userApprovalList);
                             entity.setOtherCheckCompleted(CommonConstant.STATUS_0);
                         }
-                    }else {
+                    } else {
                         //鍏朵粬妫�鏌ョ粨鏋滃~鎶�
-                        if(CollectionUtil.isNotEmpty(request.getTableDetailList())) {
+                        if (CollectionUtil.isNotEmpty(request.getTableDetailList())) {
                             for (EamTechnicalStatusEvaluationOrderDetail detail : request.getTableDetailList()) {
                                 detail.setRepairmanSignature(user.getUsername());
                                 detail.setRepairmanSignatureTime(new Date());
@@ -438,11 +435,11 @@
                 }
                 break;
             case REPAIRER_SIGNING:
-                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(),equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
+                //缁翠慨宸ョ瀛�
+                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
                 if (CollectionUtil.isEmpty(userSelectors)) {
                     throw new JeecgBootException("璁惧鏈垎閰嶇粰缁翠慨瀹や富浠伙紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
                 }
-                //缁翠慨宸ョ瀛�
                 userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
                 values.put("dataId", entity.getId());
                 values.put("organization", "缁翠慨宸ョ瀛楀畬鎴�");
@@ -459,23 +456,89 @@
                 entity.setOtherCheckResult(request.getOtherCheckResult());
                 break;
             case REPAIR_MANAGER_SIGNING:
-//                values.put("dataId", entity.getId());
-//                values.put("organization", request.getLeaderConfirmComment());
-//                values.put("comment", request.getLeaderConfirmComment());
-//                request.setComment(request.getLeaderConfirmComment());
-//                //璁剧疆entity
-//                entity.setMaintenanceStatus(ThirdMaintenanceStatusEnum.COMPLETE.name());
-//                entity.setConfirmLeader(user.getUsername());
-//                entity.setLeaderConfirmComment(request.getLeaderConfirmComment());
-//                entity.setLeaderConfirmTime(new Date());
+                //缁翠慨瀹や富浠荤瀛�
+                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0007);
+                if (CollectionUtil.isEmpty(userSelectors)) {
+                    throw new JeecgBootException("璁惧鏈垎閰嶇粰宸ヨ壓鍛橈紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+                }
+                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                values.put("dataId", entity.getId());
+                values.put("organization", request.getRepairManagerComment());
+                values.put("comment", request.getRepairManagerComment());
+                request.setComment(request.getRepairManagerComment());
+                values.put("repairManagerApprovalFlag", request.getRepairManagerSignatureResult());
+                entity.setRepairManagerSignature(user.getUsername());
+                entity.setRepairManagerSignatureTime(new Date());
+                entity.setRepairManagerComment(request.getRepairManagerComment());
+                //璁剧疆entity
+                if (BusinessCodeConst.APPROVED.equals(request.getRepairManagerSignatureResult())) {
+                    values.put("NextAssignee", userApprovalList);
+                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name());
+                } else {
+                    userApprovalList = Collections.singletonList(entity.getRepairerSignature());
+                    values.put("NextAssignee", userApprovalList);
+                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.REPAIRER_SIGNING.name());
+                }
 //                //鏇存柊璁惧淇濆吇鐘舵��
 //                eamEquipmentExtendService.updateEquipmentMaintenanceStatus(entity.getEquipmentId(), EquipmentMaintenanceStatus.NORMAL.name());
                 break;
             case PROCESS_TECHNICIAN_SIGNING:
+                //宸ヨ壓鍛樼瀛�
+                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0010);
+                if (CollectionUtil.isEmpty(userSelectors)) {
+                    throw new JeecgBootException("璁惧鏈垎閰嶇粰浣跨敤鍗曚綅鎶�鏈富绠★紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+                }
+                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                values.put("dataId", entity.getId());
+                values.put("organization", request.getProcessTechnicianComment());
+                values.put("comment", request.getProcessTechnicianComment());
+                values.put("NextAssignee", userApprovalList);
+                request.setComment(request.getProcessTechnicianComment());
+                //璁剧疆entity
+                entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.DEPART_TECHNICAL_LEADER_SIGNING.name());
+                entity.setProcessTechnicianSignature(user.getUsername());
+                entity.setProcessTechnicianSignatureTime(new Date());
+                entity.setSampleCheckResult(request.getSampleCheckResult());
+                entity.setProcessTechnicianComment(request.getProcessTechnicianComment());
                 break;
             case DEPART_TECHNICAL_LEADER_SIGNING:
+                //浣跨敤鍗曚綅鎶�鏈富绠$瀛�
+                userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getFactoryOrgCode(), BusinessCodeConst.PCR0003);
+                if (CollectionUtil.isEmpty(userSelectors)) {
+                    throw new JeecgBootException("璁惧鏈垎閰嶇粰璁惧妫�楠屽憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+                }
+                userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                values.put("dataId", entity.getId());
+                values.put("organization", request.getDepartTechnicalLeaderComment());
+                values.put("comment", request.getDepartTechnicalLeaderComment());
+                request.setComment(request.getDepartTechnicalLeaderComment());
+                values.put("technicalLeaderApprovalFlag", request.getDepartTechnicalLeaderSignatureResult());
+                entity.setDepartTechnicalLeaderSignature(user.getUsername());
+                entity.setDepartTechnicalLeaderSignatureTime(new Date());
+                entity.setDepartTechnicalLeaderComment(request.getDepartTechnicalLeaderComment());
+                //璁剧疆entity
+                if (BusinessCodeConst.APPROVED.equals(request.getDepartTechnicalLeaderSignatureResult())) {
+                    values.put("NextAssignee", userApprovalList);
+                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.PROCESS_TECHNICIAN_SIGNING.name());
+                } else {
+                    userApprovalList = Collections.singletonList(entity.getProcessTechnicianSignature());
+                    values.put("NextAssignee", userApprovalList);
+                    entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.INSPECTOR_SIGNING.name());
+                }
                 break;
             case INSPECTOR_SIGNING:
+                //璁惧妫�瀵熷憳绛惧瓧
+                values.put("dataId", entity.getId());
+                values.put("organization", request.getInspectorComment());
+                values.put("comment", request.getInspectorComment());
+                request.setComment(request.getInspectorComment());
+                //璁剧疆entity
+                entity.setEvaluationStatus(TechnicalStatusEvaluationOrderStatusEnum.COMPLETED.name());
+                entity.setInspectorSignature(user.getUsername());
+                entity.setInspectorSignatureTime(new Date());
+                entity.setInspectorComment(request.getInspectorComment());
+                entity.setEvaluationResult(request.getEvaluationResult());
+                entity.setEvaluationReason(request.getEvaluationReason());
                 break;
         }
         request.setValues(values);

--
Gitblit v1.9.3