From 740cecb56b03ec74dd6a9f0602f72ee891a922e8 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期六, 07 六月 2025 13:13:00 +0800
Subject: [PATCH] art: 设备管理-设备维修-维修流程审批接口

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java          |   37 +++--
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java           |   28 ++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java |  277 +++++++++++++++++++++++++++++++++------------
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java       |    2 
 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java             |    7 +
 5 files changed, 259 insertions(+), 92 deletions(-)

diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java
index 4252216..623abf2 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/TranslateDictTextUtils.java
@@ -66,7 +66,12 @@
                     break;
                 }
             }
-            result.add(dictText);
+            if(StringUtils.isNotBlank(dictText)) {
+                result.add(dictText);
+            }
+        }
+        if(CollectionUtil.isEmpty(result)) {
+            return "";
         }
         return String.join(",", result);
     }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
index 3c693d7..38583f3 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/constant/ReportRepairEnum.java
@@ -4,7 +4,7 @@
     WAIT_REPAIR, // 寰呯淮淇�
     WAIT_INTERNAL_CONFIRM, // 寰呯淮淇‘璁�
     UNDER_INTERNAL_REPAIR, // 鍐呴儴缁翠慨涓�
-    EXTERNAL_REPAIR_CONFIRM, // 澶栭儴缁翠慨纭涓� 璁惧绠$悊鍛�
+    WAIT_LEADER_CONFIRM, // 寰呴瀵肩‘璁� 璁惧绠$悊鍛�
     WAIT_EXTERNAL_CONFIRM, // 寰呮満鍔ㄥ姙纭
     UNDER_EXTERNAL_REPAIR, // 鏈哄姩鍔炵淮淇腑
     UNDER_OUTSIDE_REPAIR, // 濮斿缁翠慨涓� 璐d换浜烘槸璋侊紵
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
index 0433f30..c28502d 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamRepairOrder.java
@@ -76,7 +76,17 @@
      */
     @ApiModelProperty(value = "缁翠慨纭缁撴灉")
     @Dict(dicCode = "yn")
-    private String internalRepairFlag;
+    private String repairConfirm;
+    /**
+     * 缁翠慨纭鎰忚
+     */
+    @ApiModelProperty(value = "缁翠慨纭鎰忚")
+    private String repairConfirmComment;
+    /**
+     * 缁翠慨纭鏃堕棿
+     */
+    @ApiModelProperty(value = "缁翠慨纭鏃堕棿")
+    private Date repairConfirmTime;
     /**
      * 鏁呴殰鍘熷洜
      */
@@ -153,6 +163,22 @@
     @Excel(name = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧", width = 15)
     @ApiModelProperty(value = "鐓х墖鏂囦欢ids;id浠ラ�楀彿鍒嗛殧")
     private String imageFiles;
+    /**
+     * 鎿嶄綔宸ョ‘璁�
+     */
+    @ApiModelProperty(value = "鎿嶄綔宸ョ‘璁�")
+    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
+    private String confirmer;
+    /**
+     * 鎿嶄綔宸ョ‘璁ゆ剰瑙�
+     */
+    @ApiModelProperty(value = "鎿嶄綔宸ョ‘璁ゆ剰瑙�")
+    private String confirmComment;
+    /**
+     * 鎿嶄綔宸ョ‘璁ゆ椂闂�
+     */
+    @ApiModelProperty(value = "鎿嶄綔宸ョ‘璁ゆ椂闂�")
+    private Date confirmTime;
 
     @TableField(exist = false)
     @ApiModelProperty(value = "璁惧鍚嶇О")
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java
index 0ae9b1d..d3616d8 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/request/EamRepairOrderRequest.java
@@ -33,18 +33,6 @@
     private String equipmentId;
 
     /**
-     * 缁翠慨鐘舵��
-     */
-    @ApiModelProperty(value = "缁翠慨鐘舵��")
-    private String repairStatus;
-
-    /**
-     * 鏄惁闇�瑕侀鐢ㄥ浠�  1:鏄�  0:鍚�
-     */
-    @ApiModelProperty(value = "鏄惁闇�瑕侀鐢ㄥ浠�")
-    private Integer isUseSpare;
-
-    /**
      * 鏁呴殰鍘熷洜
      */
     @ApiModelProperty(value = "鏁呴殰鍘熷洜")
@@ -65,7 +53,26 @@
     @ApiModelProperty(value = "缁翠慨鍥剧墖闆嗗悎")
     private List<FileUploadResult> imageFilesResult;
 
-    /**澶囦欢鎻忚堪*/
-    @ApiModelProperty(value = "澶囦欢鎻忚堪")
-    private String sparePartDescription;
+    /**
+     * 缁翠慨浜虹‘璁�
+     */
+    private String repairConfirm;
+    private String repairConfirmComment;
+
+    /**
+     * 棰嗗纭
+     */
+    private String leaderConfirm;
+    private String leaderConfirmComment;
+
+    /**
+     * 鏈哄姩鍔炵‘璁�
+     */
+    private String externalConfirm;
+    private String externalConfirmComment;
+
+    /**
+     * 鎿嶄綔宸ョ‘璁ゆ剰瑙�
+     */
+    private String confirmComment;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
index 9e4dad8..ec788f6 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java
@@ -41,7 +41,10 @@
 import org.jeecg.modules.flowable.service.IFlowTaskService;
 import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
+import org.jeecg.modules.system.service.ISysUserService;
+import org.jeecg.modules.system.vo.UserSelector;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -49,6 +52,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 缁翠慨宸ュ崟
@@ -84,6 +88,9 @@
 
     @Resource
     private IEamEquipmentExtendService eamEquipmentExtendService;
+
+    @Autowired
+    private ISysUserService sysUserService;
 
     /**
      * 鍒嗛〉鍒楄〃
@@ -159,9 +166,12 @@
         String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
         eamRepairOrder.setRepairCode(codeSeq);
         EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
+        if(eamReportRepair == null){
+            throw new JeecgBootException("鏁呴殰鎶ヤ慨涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
         eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
         eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
-        eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
         eamRepairOrder.setActualStartTime(DateUtils.getNow());
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         eamRepairOrder.setRepairer(user.getUsername());
@@ -185,7 +195,7 @@
         if (!result.isSuccess()) {
             super.removeById(eamRepairOrder);
         } else {
-            eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+            eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
             eamReportRepairService.updateById(eamReportRepair);
             //鏇存柊璁惧缁翠慨鐘舵��
             eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
@@ -203,9 +213,12 @@
         String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.REPAIR_ORDER_CODE_RULE);
         eamRepairOrder.setRepairCode(codeSeq);
         EamReportRepair eamReportRepair = eamReportRepairService.getById(eamReportRepairQuery.getId());
+        if(eamReportRepair == null){
+            throw new JeecgBootException("鏁呴殰鎶ヤ慨涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
         eamRepairOrder.setDelFlag(CommonConstant.DEL_FLAG_0);
         eamRepairOrder.setEquipmentId(eamReportRepair.getEquipmentId());
-        eamRepairOrder.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
         eamRepairOrder.setActualStartTime(DateUtils.getNow());
         eamRepairOrder.setRepairer(eamReportRepairQuery.getRepairer());
         super.save(eamRepairOrder);
@@ -228,7 +241,7 @@
         if (!result.isSuccess()) {
             super.removeById(eamRepairOrder);
         } else {
-            eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+            eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_INTERNAL_CONFIRM.name());
             eamReportRepairService.updateById(eamReportRepair);
             //鏇存柊璁惧缁翠慨鐘舵��
             eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.UNDER_REPAIR.name());
@@ -245,10 +258,13 @@
     @Transactional(rollbackFor = Exception.class)
     @EquipmentHistoryLog(operationTag = EquipmentOperationTagEnum.REPAIRED, businessTable = "eam_repair_order")
     public EamRepairOrder perform(EamRepairOrderRequest request) {
-        EamRepairOrder eamRepairOrder = this.baseMapper.selectById(request.getId());
-        EamReportRepair eamReportRepair = eamReportRepairService.getById(eamRepairOrder.getReportId());
-        if (eamRepairOrder == null) {
-            throw new JeecgBootException("瀹℃壒鐨勬暟鎹凡鍒犻櫎锛岃鍒锋柊閲嶈瘯锛�");
+        EamRepairOrder order = this.baseMapper.selectById(request.getId());
+        if (order == null) {
+            throw new JeecgBootException("缁翠慨宸ュ崟涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
+        }
+        EamReportRepair eamReportRepair = eamReportRepairService.getById(order.getReportId());
+        if (eamReportRepair == null) {
+            throw new JeecgBootException("鏁呴殰鎶ヤ慨涓嶅瓨鍦紝璇峰埛鏂伴噸璇曪紒");
         }
         // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -274,82 +290,195 @@
             throw new JeecgBootException("璁惧涓嶅瓨鍦紝璇锋鏌ワ紒");
         }
 
-        ReportRepairEnum status = ReportRepairEnum.getInstance(eamRepairOrder.getRepairStatus());
+        ReportRepairEnum status = ReportRepairEnum.getInstance(order.getRepairStatus());
         if (status == null) {
-            return null;
+            throw new JeecgBootException("宸ュ崟鐘舵�佷笉鍚堟硶锛岃妫�鏌ワ紒");
         }
         //娴佺▼鍙橀噺
         Map<String, Object> values = new HashMap<>();
+        List<UserSelector> userSelectors;
+        List<String> userApprovalList;
         switch (status) {
-            case UNDER_INTERNAL_REPAIR:
-                //缁翠慨涓細涓嬩竴姝� 鍒ゆ柇鏄惁闇�瑕佸浠�, 闇�瑕佸浠惰浆璁惧绠$悊鍛橀鐢ㄥ浠�, 涓嶉渶瑕佸垯杞埌璁惧鎶ヤ慨鍛樼‘璁ょ淮淇畬鎴�
-                if (request.getIsUseSpare() == 1) {
-                    // 闇�瑕�
-                    if (StringUtils.isBlank(equipment.getEquipmentManager())) {
-                        throw new JeecgBootException("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
-                    }
-
-                        values.put("dataId", eamRepairOrder.getId());
-                        values.put("organization", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
-                        values.put("comment", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
-                        values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
-                        request.setComment("缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
-                        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
-                        eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
-                        eamRepairOrder.setFaultReason(request.getFaultReason());
-                        eamRepairOrder.setRepairDescription(request.getRepairDescription());
-                        // 澶勭悊闄勪欢
-                        if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
-                            List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
-                            ObjectMapper mapper = new ObjectMapper();
-                            try {
-                                String referenceFile = mapper.writeValueAsString(fileUploadResultList);
-                                eamRepairOrder.setImageFiles(referenceFile);
-                            } catch (JsonProcessingException e) {
-                                log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
-                            }
-                        }
-                        //鏇存柊璁惧缁翠慨鐘舵��
-                        eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
-
-                } else {
-                    // 涓嶉渶瑕�
-                    values.put("dataId", eamRepairOrder.getId());
-                    values.put("organization", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
-                    values.put("comment", "缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
-                    values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
-                    values.put("status", 0);
-                    request.setComment("缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
-                    eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
-                    eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
-                    eamRepairOrder.setFaultReason(request.getFaultReason());
-                    eamRepairOrder.setRepairDescription(request.getRepairDescription());
-                    // 澶勭悊闄勪欢
-                    if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
-                        List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
-                        ObjectMapper mapper = new ObjectMapper();
-                        try {
-                            String referenceFile = mapper.writeValueAsString(fileUploadResultList);
-                            eamRepairOrder.setImageFiles(referenceFile);
-                        } catch (JsonProcessingException e) {
-                            log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
-                        }
-                    }
-                    //鏇存柊璁惧缁翠慨鐘舵��
-                    eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
+            case WAIT_INTERNAL_CONFIRM:
+                order.setRepairConfirm(request.getRepairConfirm());
+                order.setRepairConfirmComment(request.getRepairConfirmComment());
+                order.setRepairConfirmTime(new Date());
+                values.put("dataId", order.getId());
+                if(StringUtils.isNotBlank(request.getRepairConfirmComment())){
+                    values.put("organization", request.getRepairConfirmComment());
+                    values.put("comment", request.getRepairConfirmComment());
+                    request.setComment(request.getRepairConfirmComment());
+                }else {
+                    values.put("organization", "缁翠慨宸ュ崟缁翠慨浜虹‘璁ゅ畬鎴�");
+                    values.put("comment", "缁翠慨宸ュ崟缁翠慨浜虹‘璁ゅ畬鎴�");
+                    request.setComment("缁翠慨宸ュ崟缁翠慨浜虹‘璁ゅ畬鎴�");
                 }
+                if(CommonConstant.STATUS_1.equals(request.getRepairConfirm())) {
+                    //鍙唴閮ㄧ淮淇�  缁翠慨浜鸿繘琛岀淮淇�
+                    values.put("NextAssignee", Arrays.asList(order.getRepairer().split(",")));
+                    order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+                }else {
+                    //鎻愪氦鏈哄姩鍔炵淮淇紝杞﹂棿绠$悊鍛樼‘璁�
+                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0003);
+                    if (CollectionUtil.isEmpty(userSelectors)) {
+                        throw new JeecgBootException("璁惧鏈垎閰嶇粰鐝粍闀匡紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+                    }
+                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                    values.put("NextAssignee", userApprovalList);
+                    order.setRepairStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_LEADER_CONFIRM.name());
+                }
+                break;
+            case UNDER_INTERNAL_REPAIR:
+                // 鍐呴儴缁翠慨
+                values.put("dataId", order.getId());
+                values.put("organization", "缁翠慨宸ュ崟缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                values.put("comment", "缁翠慨宸ュ崟缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
+                request.setComment("缁翠慨宸ュ崟缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                order.setFaultReason(request.getFaultReason());
+                order.setRepairDescription(request.getRepairDescription());
+                order.setActualEndTime(new Date());
+                // 澶勭悊闄勪欢
+                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        order.setImageFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
+                //鏇存柊璁惧缁翠慨鐘舵��
+                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
+                break;
+            case WAIT_LEADER_CONFIRM:
+                order.setLeaderConfirm(request.getLeaderConfirm());
+                order.setLeaderConfirmComment(request.getLeaderConfirmComment());
+                order.setLeaderUser(user.getUsername());
+                order.setLeaderConfirmTime(new Date());
+                values.put("dataId", order.getId());
+                if(StringUtils.isNotBlank(request.getLeaderConfirmComment())){
+                    values.put("organization", request.getLeaderConfirmComment());
+                    values.put("comment", request.getLeaderConfirmComment());
+                    request.setComment(request.getLeaderConfirmComment());
+                }else {
+                    values.put("organization", "缁翠慨宸ュ崟棰嗗纭瀹屾垚");
+                    values.put("comment", "缁翠慨宸ュ崟棰嗗纭瀹屾垚");
+                    request.setComment("缁翠慨宸ュ崟棰嗗纭瀹屾垚");
+                }
+                if(CommonConstant.STATUS_1.equals(request.getLeaderConfirm())) {
+                    //椹冲洖 鍙唴閮ㄧ淮淇�  缁翠慨浜鸿繘琛岀淮淇�
+                    values.put("NextAssignee", Arrays.asList(order.getRepairer().split(",")));
+                    order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+                }else {
+                    //閫氳繃 鎻愪氦鏈哄姩鍔炵淮淇�
+                    userSelectors = sysUserService.selectOperatorList(equipment.getEquipmentCode(), equipment.getOrgId(), BusinessCodeConst.PCR0006);
+                    if (CollectionUtil.isEmpty(userSelectors)) {
+                        throw new JeecgBootException("璁惧鏈垎閰嶇粰鍏徃绠$悊鍛橈紝鏃犳硶杩涘叆涓嬬骇瀹℃壒锛�");
+                    }
+                    userApprovalList = userSelectors.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+                    values.put("NextAssignee", userApprovalList);
+                    order.setRepairStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_EXTERNAL_CONFIRM.name());
+                }
+                break;
+            case WAIT_EXTERNAL_CONFIRM:
+                order.setExternalConfirm(request.getExternalConfirm());
+                order.setExternalConfirmComment(request.getExternalConfirmComment());
+                order.setExternalRepairer(user.getUsername());
+                order.setExternalConfirmTime(new Date());
+                values.put("dataId", order.getId());
+                if(StringUtils.isNotBlank(request.getExternalConfirmComment())){
+                    values.put("organization", request.getExternalConfirmComment());
+                    values.put("comment", request.getExternalConfirmComment());
+                    request.setComment(request.getExternalConfirmComment());
+                }else {
+                    values.put("organization", "缁翠慨宸ュ崟鏈哄姩鍔炵‘璁ゅ畬鎴�");
+                    values.put("comment", "缁翠慨宸ュ崟鏈哄姩鍔炵‘璁ゅ畬鎴�");
+                    request.setComment("缁翠慨宸ュ崟鏈哄姩鍔炵‘璁ゅ畬鎴�");
+                }
+                if(CommonConstant.STATUS_1.equals(request.getLeaderConfirm())) {
+                    //鏈哄姩鍔炲彲缁翠慨  鏈哄姩鍔炵淮淇汉杩涜缁翠慨
+                    values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(",")));
+                    order.setRepairStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_EXTERNAL_REPAIR.name());
+                }else {
+                    //鏈哄姩鍔炰笉鍙淮淇� 杩涜濮斿缁翠慨
+                    values.put("NextAssignee", Arrays.asList(order.getExternalRepairer().split(",")));
+                    order.setRepairStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_OUTSIDE_REPAIR.name());
+                }
+                break;
+            case UNDER_EXTERNAL_REPAIR:
+                // 鏈哄姩鍔炵淮淇�
+                values.put("dataId", order.getId());
+                values.put("organization", "缁翠慨宸ュ崟鏈哄姩鍔炵淮淇畬鎴愬緟鎿嶄綔宸ョ‘璁�");
+                values.put("comment", "缁翠慨宸ュ崟鏈哄姩鍔炵淮淇畬鎴愬緟鎿嶄綔宸ョ‘璁�");
+                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
+                request.setComment("缁翠慨宸ュ崟鏈哄姩鍔炵淮淇畬鎴愬緟鎿嶄綔宸ョ‘璁�");
+                order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                order.setFaultReason(request.getFaultReason());
+                order.setRepairDescription(request.getRepairDescription());
+                order.setActualEndTime(new Date());
+                // 澶勭悊闄勪欢
+                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        order.setImageFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
+                //鏇存柊璁惧缁翠慨鐘舵��
+                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
+                break;
+            case UNDER_OUTSIDE_REPAIR:
+                // 鏈哄姩鍔炵淮淇�
+                values.put("dataId", order.getId());
+                values.put("organization", "缁翠慨宸ュ崟濮斿缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                values.put("comment", "缁翠慨宸ュ崟濮斿缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
+                request.setComment("缁翠慨宸ュ崟濮斿缁翠慨瀹屾垚寰呮搷浣滃伐纭");
+                order.setRepairStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                order.setOutsourcedUser(user.getUsername());
+                eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_CONFIRM.name());
+                order.setFaultReason(request.getFaultReason());
+                order.setRepairDescription(request.getRepairDescription());
+                order.setActualEndTime(new Date());
+                // 澶勭悊闄勪欢
+                if (CollectionUtil.isNotEmpty(request.getImageFilesResult())) {
+                    List<FileUploadResult> fileUploadResultList = request.getImageFilesResult();
+                    ObjectMapper mapper = new ObjectMapper();
+                    try {
+                        String referenceFile = mapper.writeValueAsString(fileUploadResultList);
+                        order.setImageFiles(referenceFile);
+                    } catch (JsonProcessingException e) {
+                        log.error("JSON杞崲澶辫触锛�" + e.getMessage(), e);
+                    }
+                }
+                //鏇存柊璁惧缁翠慨鐘舵��
+                eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.WAIT_CONFIRM.name());
                 break;
             case WAIT_CONFIRM:
                 // 寰呯‘璁�, 缁翠慨鍛樼淮淇畬鎴愶紝鎶ヤ慨浜虹‘璁ょ粨鏉熸祦绋�
-                values.put("dataId", eamRepairOrder.getId());
+                values.put("dataId", order.getId());
                 values.put("organization", "缁翠慨宸ュ崟娴佺▼缁撴潫");
                 values.put("comment", "缁翠慨宸ュ崟娴佺▼缁撴潫");
-                values.put("NextAssignee", Arrays.asList(eamReportRepair.getCreateBy().split(",")));
-                values.put("status", 0);
-                request.setComment("缁翠慨宸ュ崟杩涘叆鎶ヤ慨鍛樼‘璁ら樁娈�");
-                eamRepairOrder.setRepairStatus(ReportRepairEnum.COMPLETE.name());
+                request.setComment("缁翠慨宸ュ崟娴佺▼缁撴潫");
+                order.setRepairStatus(ReportRepairEnum.COMPLETE.name());
                 eamReportRepair.setReportStatus(ReportRepairEnum.COMPLETE.name());
-                eamRepairOrder.setActualEndTime(new Date());
+                order.setConfirmComment(request.getConfirmComment());
+                order.setConfirmTime(new Date());
+                order.setConfirmer(user.getUsername());
                 //鏇存柊璁惧缁翠慨鐘舵��
                 eamEquipmentExtendService.updateEquipmentRepairStatus(eamReportRepair.getEquipmentId(), EquipmentRepairStatus.NORMAL.name());
                 break;
@@ -362,10 +491,10 @@
             throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�");
         }
         //淇濆瓨宸ュ崟
-        this.baseMapper.updateById(eamRepairOrder);
+        this.baseMapper.updateById(order);
         // 鍚屾鏇存柊鎶ヤ慨琛ㄧ姸鎬�
         eamReportRepairService.updateById(eamReportRepair);
-        return eamRepairOrder;
+        return order;
     }
 
     @Override

--
Gitblit v1.9.3