From 5836788a6aabf60014a746b724607e3e965a0d86 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期二, 10 六月 2025 10:51:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamRepairOrderServiceImpl.java |  357 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 263 insertions(+), 94 deletions(-)

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 a5e9b1f..a44565e 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
@@ -3,6 +3,7 @@
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -14,8 +15,10 @@
 import org.jeecg.common.api.vo.FileUploadResult;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.constant.DataBaseConstant;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.oConvertUtils;
 import org.jeecg.modules.eam.aspect.annotation.EquipmentHistoryLog;
 import org.jeecg.modules.eam.constant.*;
 import org.jeecg.modules.eam.entity.EamEquipment;
@@ -38,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;
@@ -46,6 +52,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description: 缁翠慨宸ュ崟
@@ -82,26 +89,75 @@
     @Resource
     private IEamEquipmentExtendService eamEquipmentExtendService;
 
+    @Autowired
+    private ISysUserService sysUserService;
+
     /**
      * 鍒嗛〉鍒楄〃
      *
      * @param page
-     * @param eamRepairOrderQuery
+     * @param query
      * @return
      */
     @Override
-    public IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrderQuery eamRepairOrderQuery) {
+    public IPage<EamRepairOrder> pageList(Page<EamRepairOrder> page, EamRepairOrderQuery query) {
+        QueryWrapper<EamRepairOrder> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0);
         //鐢ㄦ埛鏁版嵁鏉冮檺
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         if (sysUser == null) {
             return page;
         }
-        List<String> equipmentIds = new ArrayList<>();
         if (StringUtils.isNotBlank(sysUser.getEquipmentIds())) {
             //閫夋嫨浜嗚澶囷紝鏍规嵁璁惧id杩囨护璁惧
-            equipmentIds = Arrays.asList(sysUser.getEquipmentIds().split(","));
+            List<String> equipArr = Arrays.asList(sysUser.getEquipmentIds().split(","));
+            queryWrapper.in("e.equipment_code", equipArr);
+        } else {
+            //娌℃湁閫夋嫨璁惧锛屾牴鎹溅闂磋繃婊よ澶�
+            queryWrapper.exists("select 1 from mdc_user_production t where t.user_id={0} and t.pro_id=e.org_id ", sysUser.getId());
         }
-        return this.baseMapper.pageList(page, eamRepairOrderQuery, sysUser.getId(), equipmentIds);
+        //鏌ヨ鏉′欢杩囨护
+        if (query != null) {
+            if (StringUtils.isNotBlank(query.getEquipmentId())) {
+                queryWrapper.eq("wmo.equipment_id", query.getEquipmentId());
+            }
+            if (StringUtils.isNotBlank(query.getEquipmentCode())) {
+                queryWrapper.like("e.equipment_code", query.getEquipmentCode());
+            }
+            if (StringUtils.isNotBlank(query.getEquipmentName())) {
+                queryWrapper.like("e.equipment_name", query.getEquipmentName());
+            }
+            if (StringUtils.isNotBlank(query.getRepairStatus())) {
+                queryWrapper.eq("wmo.repair_status", query.getRepairStatus());
+            }
+            if (StringUtils.isNotBlank(query.getRepairer())) {
+                queryWrapper.like("wmo.repairer", query.getRepairer());
+            }
+            if (StringUtils.isNotBlank(query.getRepairCode())) {
+                queryWrapper.like("wmo.repair_code", query.getRepairCode());
+            }
+//            if(query.getStartTime() != null && query.getEndTime() != null) {
+//                queryWrapper.between("wmo.fault_start_time", query.getStartTime(), query.getEndTime());
+//            }
+            //鎺掑簭
+            if (StringUtils.isNotBlank(query.getColumn()) && StringUtils.isNotBlank(query.getOrder())) {
+                String column = query.getColumn();
+                if (column.endsWith(CommonConstant.DICT_TEXT_SUFFIX)) {
+                    column = column.substring(0, column.lastIndexOf(CommonConstant.DICT_TEXT_SUFFIX));
+                }
+                if (DataBaseConstant.SQL_ASC.equalsIgnoreCase(query.getOrder())) {
+                    queryWrapper.orderByAsc("wmo." + oConvertUtils.camelToUnderline(column));
+                } else {
+                    queryWrapper.orderByDesc("wmo." + oConvertUtils.camelToUnderline(column));
+                }
+            } else {
+                queryWrapper.orderByDesc("wmo.create_time");
+            }
+        } else {
+            queryWrapper.orderByDesc("wmo.create_time");
+        }
+
+        return baseMapper.queryPageList(page, queryWrapper);
     }
 
     @Override
@@ -110,17 +166,19 @@
         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());
-        eamRepairOrder.setIsUseSpare(0);
         LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         eamRepairOrder.setRepairer(user.getUsername());
         super.save(eamRepairOrder);
         EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
         // 鍚姩缁翠慨娴佺▼
-        flowCommonService.initActBusiness("缁翠慨宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + "寮�濮嬬淮淇�",
+        flowCommonService.initActBusiness("宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + ";瀹夎浣嶇疆: " + eamEquipment.getInstallationPosition(),
                 eamRepairOrder.getId(),
                 "IEamRepairOrderService",
                 "eam_repair",
@@ -137,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());
@@ -155,16 +213,18 @@
         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.setIsUseSpare(0);
         eamRepairOrder.setRepairer(eamReportRepairQuery.getRepairer());
         super.save(eamRepairOrder);
         EamEquipment eamEquipment = eamEquipmentService.getById(eamReportRepair.getEquipmentId());
         // 鍚姩缁翠慨娴佺▼
-        flowCommonService.initActBusiness("缁翠慨宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + "寮�濮嬬淮淇�",
+        flowCommonService.initActBusiness("宸ュ崟鍙凤細" + codeSeq + ", 璁惧缂栧彿锛�" + eamEquipment.getEquipmentCode() + ";瀹夎浣嶇疆: " + eamEquipment.getInstallationPosition(),
                 eamRepairOrder.getId(),
                 "IEamRepairOrderService",
                 "eam_repair",
@@ -181,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());
@@ -198,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();
@@ -227,93 +290,199 @@
             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("璁惧鏈垎閰嶈澶囩鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
-                    }
-                    if (StringUtils.isBlank(eamRepairOrder.getSparePartDescription())) {
-                        values.put("dataId", eamRepairOrder.getId());
-                        values.put("organization", "缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
-                        values.put("comment", "缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
-                        values.put("NextAssignee", Arrays.asList(equipment.getEquipmentManager().split(",")));
-                        values.put("status", 1);
-                        request.setComment("缁翠慨宸ュ崟杩涘叆绛夊浠剁姸鎬�");
-//                        eamRepairOrder.setRepairStatus(ReportRepairEnum.WAIT_SPARES.name());
-//                        eamReportRepair.setReportStatus(ReportRepairEnum.WAIT_SPARES.name());
-                        eamRepairOrder.setIsUseSpare(1);
-                    } else {
-                        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());
-                    eamRepairOrder.setIsUseSpare(0);
-                    // 澶勭悊闄勪欢
-                    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());
+                values.put("repairConfirm", request.getRepairConfirm());
+                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());
+                values.put("leaderConfirm", request.getLeaderConfirm());
+                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())) {
+                    //閫氳繃 鎻愪氦鏈哄姩鍔炵淮淇�
+                    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());
+                }else {
+                    //椹冲洖 鍙唴閮ㄧ淮淇�  缁翠慨浜鸿繘琛岀淮淇�
+                    values.put("NextAssignee", Arrays.asList(order.getRepairer().split(",")));
+                    order.setRepairStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.name());
+                    eamReportRepair.setReportStatus(ReportRepairEnum.UNDER_INTERNAL_REPAIR.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());
+                values.put("externalConfirm", request.getExternalConfirm());
+                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.getExternalConfirm())) {
+                    //鏈哄姩鍔炲彲缁翠慨  鏈哄姩鍔炵淮淇汉杩涜缁翠慨
+                    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;
@@ -326,10 +495,10 @@
             throw new JeecgBootException("瀹℃壒澶辫触锛岃鍒锋柊鏌ョ湅锛�");
         }
         //淇濆瓨宸ュ崟
-        this.baseMapper.updateById(eamRepairOrder);
+        this.baseMapper.updateById(order);
         // 鍚屾鏇存柊鎶ヤ慨琛ㄧ姸鎬�
         eamReportRepairService.updateById(eamReportRepair);
-        return eamRepairOrder;
+        return order;
     }
 
     @Override

--
Gitblit v1.9.3