From e5a85d904ce028a35229ab6245ab894afbca6531 Mon Sep 17 00:00:00 2001
From: lyh <925863403@qq.com>
Date: 星期六, 26 七月 2025 17:07:30 +0800
Subject: [PATCH] 维修工单

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java |   81 ++++++++++++++++++++++++++--------------
 1 files changed, 52 insertions(+), 29 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
index 3aa977a..96338b7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -183,7 +183,7 @@
         //鍒犻櫎鏍囪
         entity.setDelFlag(CommonConstant.DEL_FLAG_0);
         //閲嶅鎬ф牎楠�
-        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
+        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.ABOLISH.name());
         if (exist != null) {
             throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�");
         }
@@ -259,7 +259,7 @@
         //鍒犻櫎鏍囪
         newEntity.setDelFlag(CommonConstant.DEL_FLAG_0);
         //閲嶅鎬ф牎楠�
-        EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
+        EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory(), MaintenanceStandardStatusEnum.ABOLISH.name());
         if (exist != null) {
             throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�");
         }
@@ -285,7 +285,7 @@
         queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId);
         queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
         queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
-        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, standardStatus);
+        queryWrapper.ne(EamMaintenanceStandard::getStandardStatus, standardStatus);
         queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion);
 
         List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper);
@@ -347,6 +347,16 @@
         variables.put("organization", "淇濆吇瑙勮寖鍚姩娴佺▼");
         variables.put("comment", "淇濆吇瑙勮寖鍚姩娴佺▼");
         variables.put("proofreading", true);
+        EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
+        List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
+        if (!CollectionUtils.isEmpty(userSelectorList)) {
+            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(usernameList)) {
+                variables.put("NextAssignee", usernameList);
+            }else {
+                throw new JeecgBootException("璁惧鏈瓨鍦ㄧ淮淇涓讳换锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+            }
+        }
         Result result = flowDefinitionService.startProcessInstanceByKey("eam_maintenance_standard", variables);
         if (!result.isSuccess()) {
             super.removeById(maintenanceStandard.getId());
@@ -363,14 +373,6 @@
             if (businessList.isEmpty()) {
                 return Result.error("娴佺▼璁板綍涓嶅瓨鍦�");
             }
-            FlowMyBusiness flowMyBusiness = businessList.get(0);
-            EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
-            List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0008);
-            if (!CollectionUtils.isEmpty(userSelectorList)) {
-                List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
-                flowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList));
-                flowMyBusinessService.updateById(flowMyBusiness);
-            }
         }
         return result;
     }
@@ -382,6 +384,7 @@
      * @return
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Result<?> auditEamMaintenanceStandard(EamMaintenanceStandardVo eamMaintenanceStandardVo) {
         try {
             // 鍙傛暟鏍¢獙
@@ -436,21 +439,11 @@
             Result result = flowTaskService.complete(eamMaintenanceStandardVo);
             if (result.isSuccess()) {
                 if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) {
+                    if ("2".equals(eamMaintenanceStandard.getRepairManagerApproveResult())) {
+                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.REJECTED.name());
+                    }
                     if (eamMaintenanceStandardVo.getRepairManagerApproveResult().equals("1")) {
-                        List<FlowMyBusiness> newbusinessList = flowMyBusinessService.list(
-                                new QueryWrapper<FlowMyBusiness>()
-                                        .eq("process_instance_id", eamMaintenanceStandardVo.getInstanceId()));
-                        FlowMyBusiness newflowMyBusiness = newbusinessList.get(0);
                         eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_TECHNICAL_DIRECTOR.name());
-                        //鑾峰彇flow鐨勬祦绋嬪疄渚媔d,璁剧疆涓嬩竴姝ョ殑澶勭悊浜哄憳
-                        EamMaintenanceStandard maintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId());
-                        EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
-                        List<UserSelector> userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0009);
-                        if (!CollectionUtils.isEmpty(userSelectorList)) {
-                            List<String> usernameList = userSelectorList.stream().map(UserSelector::getUsername).collect(Collectors.toList());
-                            newflowMyBusiness.setTodoUsers(JSON.toJSONString(usernameList));
-                            flowMyBusinessService.updateById(newflowMyBusiness);
-                        }
                     } else {
                         eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
                     }
@@ -460,6 +453,9 @@
                     eamMaintenanceStandard.setRepairManagerApproveComment(eamMaintenanceStandardVo.getComment());
                 }
                 if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult() != null) {
+                    if ("2".equals(eamMaintenanceStandard.getTechnicalManagerApproveResult())) {
+                        eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.REJECTED.name());
+                    }
                     if (eamMaintenanceStandardVo.getTechnicalManagerApproveResult().equals("1")) {
                         eamMaintenanceStandard.setStandardStatus(MaintenanceStandardStatusEnum.START.name());
                         //鍒ゆ柇鏄惁杩涜鍗囩増锛岄�氳繃璁惧缂栧彿銆佷繚鍏诲垎绫汇�佺姸鎬佽繘琛岀瓫閫�
@@ -508,6 +504,16 @@
             values.put("organization", eamMaintenanceStandardVo.getTechnicalManagerApproveComment());
             values.put("comment", eamMaintenanceStandardVo.getTechnicalManagerApproveComment());
         }
+        List<UserSelector> userSelectorList=new ArrayList<>();
+        if (eamMaintenanceStandardVo.getRepairManagerApproveResult() != null) {
+            //鑾峰彇flow鐨勬祦绋嬪疄渚媔d,璁剧疆涓嬩竴姝ョ殑澶勭悊浜哄憳
+            EamMaintenanceStandard maintenanceStandard = this.getById(eamMaintenanceStandardVo.getDataId());
+            EamEquipment eamEquipment = eamEquipmentService.getById(maintenanceStandard.getEquipmentId());
+            userSelectorList = sysUserService.selectOperatorList(eamEquipment.getEquipmentCode(), eamEquipment.getFactoryOrgCode(), BusinessCodeConst.PCR0009);
+            if (CollectionUtils.isEmpty(userSelectorList)) {
+                throw new JeecgBootException("璁惧鏈瓨鍦ㄧ鐞嗗憳锛屾棤娉曡繘鍏ヤ笅绾у鎵癸紒");
+            }
+        }
         return values;
     }
 
@@ -531,8 +537,9 @@
 
     @Override
     public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) {
-        //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞�
-        return null;
+        //鑾峰彇涓嬩竴姝ュ鐞嗕汉
+        Object object = values.get("NextAssignee");
+        return (List<String>) object;
     }
 
     /*娴佺▼涓氬姟浠g爜--------------------------缁撴潫*/
@@ -562,11 +569,11 @@
 
             // 妫�鏌ラ噸澶�
             EamMaintenanceStandard exist = checkDuplicate(eamMaintenanceStandard.getEquipmentId(),
-                    eamMaintenanceStandard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.START.name());
+                    eamMaintenanceStandard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.ABOLISH.name());
             if (exist != null) {
                 return Result.error(name + ": 璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞");
             }
-
+            eamMaintenanceStandard.setInitialDate(new Date());
             eamMaintenanceStandardMapper.insert(eamMaintenanceStandard);
 
             Map<Integer, String> rowErrors = new HashMap<>();
@@ -1081,6 +1088,21 @@
         String fileName = file.getOriginalFilename();
 
         try (XWPFDocument doc = new XWPFDocument(file.getInputStream())) {
+            // 鑾峰彇鏂囨。鏍囬锛堢涓�涓潪绌烘钀斤級
+            String documentTitle = null;
+            for (XWPFParagraph p : doc.getParagraphs()) {
+                String text = p.getText();
+                if (text != null && !text.trim().isEmpty()) {
+                    documentTitle = text.trim();
+                    break; // 鎵惧埌绗竴涓潪绌烘钀藉嵆閫�鍑�
+                }
+            }
+
+            // 鍩虹楠岃瘉
+            if (doc.getTables().isEmpty()) {
+                return Result.error(fileName + ": 鏂囨。涓湭鎵惧埌琛ㄦ牸");
+            }
+
             // 鍩虹楠岃瘉
             if (doc.getTables().isEmpty()) {
                 return Result.error(fileName + ": 鏂囨。涓湭鎵惧埌琛ㄦ牸");
@@ -1110,10 +1132,11 @@
 
                     // 閰嶇疆绫诲瀷鐩稿叧鍙傛暟
                     configureStandard(standard, type, file);
-                    EamMaintenanceStandard exist = checkDuplicate(standard.getEquipmentId(), standard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.START.name());
+                    EamMaintenanceStandard exist = checkDuplicate(standard.getEquipmentId(), standard.getMaintenanceCategory(), MaintenanceStandardStatusEnum.ABOLISH.name());
                     if (exist != null) {
                         return Result.error(fileName + ": 璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞");
                     }
+                    standard.setStandardName(documentTitle);
                     eamMaintenanceStandardMapper.insert(standard);
                     standardId = standard.getId();
 

--
Gitblit v1.9.3