From c800257cb6c8b45e7edc20e2e9018cd90b230806 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期三, 09 七月 2025 19:50:00 +0800
Subject: [PATCH] art: 技术状态鉴定-基础代码生成

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java |   80 +++++++++++++--------------------------
 1 files changed, 27 insertions(+), 53 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 06054ef..ab2dd0c 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
@@ -127,9 +127,11 @@
             List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                     list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
             if(!CollectionUtils.isEmpty(baseFactoryUserList)){
-                List<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toList());
-                List<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getFactoryCode).collect(Collectors.toList());
+                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
+                Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                 queryWrapper.in("e.factory_org_code", factoryCode);
+            } else {
+                return page;
             }
         }
         if(eamMaintenanceStandard != null) {
@@ -181,7 +183,7 @@
         //鍒犻櫎鏍囪
         entity.setDelFlag(CommonConstant.DEL_FLAG_0);
         //閲嶅鎬ф牎楠�
-        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory());
+        EamMaintenanceStandard exist = checkDuplicate(entity.getEquipmentId(), entity.getMaintenanceCategory(),MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
         if(exist != null){
             throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�");
         }
@@ -265,7 +267,7 @@
         //鍒犻櫎鏍囪
         newEntity.setDelFlag(CommonConstant.DEL_FLAG_0);
         //閲嶅鎬ф牎楠�
-        EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory());
+        EamMaintenanceStandard exist = checkDuplicate(newEntity.getEquipmentId(), newEntity.getMaintenanceCategory(),MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
         if(exist != null){
             throw new JeecgBootException("璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞锛�");
         }
@@ -286,12 +288,12 @@
     }
 
     @Override
-    public EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory) {
+    public EamMaintenanceStandard checkDuplicate(String equipmentId, String maintenanceCategory,String standardStatus) {
         LambdaQueryWrapper<EamMaintenanceStandard> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(EamMaintenanceStandard::getEquipmentId, equipmentId);
         queryWrapper.eq(EamMaintenanceStandard::getMaintenanceCategory, maintenanceCategory);
         queryWrapper.eq(EamMaintenanceStandard::getDelFlag, CommonConstant.DEL_FLAG_0);
-        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, MaintenanceStandardStatusEnum.WAIT_SUBMIT.name());
+        queryWrapper.eq(EamMaintenanceStandard::getStandardStatus, standardStatus);
         queryWrapper.orderByDesc(EamMaintenanceStandard::getStandardVersion);
 
         List<EamMaintenanceStandard> list = eamMaintenanceStandardMapper.selectList(queryWrapper);
@@ -567,6 +569,12 @@
             }
 
             eamMaintenanceStandard.setStandardName(name);
+
+            EamMaintenanceStandard exist = checkDuplicate(eamMaintenanceStandard.getEquipmentId(), eamMaintenanceStandard.getMaintenanceCategory(),MaintenanceStandardStatusEnum.START.name());
+            if(exist != null){
+                return Result.error(name + ": 璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞");
+            }
+
             eamMaintenanceStandardMapper.insert(eamMaintenanceStandard);
 
             // 2. 鎻愬彇姣忔棩鐐规椤圭洰
@@ -932,6 +940,7 @@
     /*瀵煎叆鐐规鏂囦欢Excel--------------------------缁撴潫*/
 
     /*瀵煎叆浜屼繚涓変繚鏂囦欢Excel--------------------------寮�濮�*/
+
     /**
      * 缁熶竴淇濆吇瑙勮寖瀵煎叆鍏ュ彛
      * @param file 涓婁紶鏂囦欢
@@ -951,7 +960,6 @@
 
             List<XWPFTable> tables = doc.getTables();
             EamMaintenanceStandard standard = null;
-            boolean firstTableProcessed = false;
             List<EamMaintenanceStandardDetail> items = new ArrayList<>();
             String standardId = null;
 
@@ -967,13 +975,17 @@
                     }
 
                     // 鎻愬彇璁惧淇℃伅
-                    standard = extractDeviceInfo(table);
+                    standard = extractDeviceInfo(table,type);
                     if (standard == null) {
                         return Result.error(fileName + ": 璁惧淇℃伅鎻愬彇澶辫触");
                     }
 
                     // 閰嶇疆绫诲瀷鐩稿叧鍙傛暟
                     configureStandard(standard, type, file);
+                    EamMaintenanceStandard exist = checkDuplicate(standard.getEquipmentId(), standard.getMaintenanceCategory(),MaintenanceStandardStatusEnum.START.name());
+                    if(exist != null){
+                        return Result.error(fileName + ": 璁惧鏍囧噯宸插瓨鍦紝涓嶈兘閲嶅娣诲姞");
+                    }
                     eamMaintenanceStandardMapper.insert(standard);
                     standardId = standard.getId();
 
@@ -984,8 +996,7 @@
                         items.addAll(extractThirdMaintenanceItems(table, standardId, true));
                     }
 
-                    firstTableProcessed = true;
-                } else if (firstTableProcessed) { // 鍚庣画椤甸潰
+                } else { // 鍚庣画椤甸潰
                     // 鎻愬彇鍚庣画椤甸潰鐨勪繚鍏婚」鐩�
                     if ("SECOND".equals(type)) {
                         items.addAll(extractSecondMaintenanceItems(table, standardId, false));
@@ -1173,7 +1184,7 @@
             } else if (cellContents.size() == 1) {
                 // 鍗曞垪妯″紡锛氳涓哄唴瀹�
                 item.setItemName(cellContents.get(0));
-            } else if (cellContents.isEmpty() && !isRowEmpty(row)) {
+            } else if (!isRowEmpty(row)) {
                 // 鐗规畩澶勭悊锛氳闈炵┖浣嗘病鏈夋彁鍙栧埌鍐呭锛堝彲鑳芥槸澶嶆潅鍚堝苟鍗曞厓鏍硷級
                 // 灏濊瘯鎻愬彇鏁磋鏂囨湰浣滀负鍐呭
                 StringBuilder content = new StringBuilder();
@@ -1257,7 +1268,7 @@
     /**
      * 鎻愬彇璁惧鍩烘湰淇℃伅
      */
-    private EamMaintenanceStandard extractDeviceInfo(XWPFTable table) {
+    private EamMaintenanceStandard extractDeviceInfo(XWPFTable table,String type) {
         if (table.getNumberOfRows() < 2) return null;
 
         // 鎻愬彇鍓嶄袱琛屾暟鎹�
@@ -1279,15 +1290,15 @@
             }else {
                 standard.setEquipmentId(equipments.getId());
             }
+            if (type.equals("THIRD")){
+                EamEquipmentExtend eamEquipmentExtend=eamEquipmentExtendService.getById(standard.getEquipmentId());
+                standard.setMaintenancePeriod(eamEquipmentExtend.getThirdMaintenancePeriod());
+            }
         }
 
         return standard;
     }
 
-    // 绠�鏄撶増瀛楃涓查潪绌哄垽鏂�
-    private boolean isNotBlank(String str) {
-        return str != null && !str.trim().isEmpty();
-    }
 
     /**
      * 琛ㄦ牸琛屾暟鎹В鏋�
@@ -1371,21 +1382,6 @@
     }
 
     /**
-     * 鍒涘缓淇濆吇椤圭洰
-     */
-    private EamMaintenanceStandardDetail createItem(
-            EamMaintenanceStandardDetailCategory category,
-            String content,
-            String standardId) {
-
-        EamMaintenanceStandardDetail item = new EamMaintenanceStandardDetail();
-        item.setItemCategory(category.name());
-        item.setStandardId(standardId);
-        item.setItemName(cleanContent(content));
-        return item;
-    }
-
-    /**
      * 鍏煎鐗堝崟鍏冩牸鏂囨湰鎻愬彇
      */
     private String getCellText(XWPFTableCell cell) {
@@ -1405,28 +1401,6 @@
             }
         }
         return text.toString();
-    }
-
-    /**
-     * 鍐呭娓呯悊
-     */
-    private String cleanContent(String text) {
-        if (text == null) return "";
-
-        // 鏇挎崲鐗规畩绌烘牸鍜屽悎骞惰繛缁┖鏍�
-        text = text.replace('\u00A0', ' ')
-                .replace('\u2007', ' ')
-                .replace('\u202F', ' ')
-                .replaceAll("\\s+", " ");
-
-        // 瑙勮寖鏍囩偣绗﹀彿
-        return text.replace(',', '銆�')
-                .replace('锛�', '銆�')
-                .replace(';', '锛�')
-                .replace('锛�', '锛�')
-                .replace(':', '锛�')
-                .replace('锛�', '锛�')
-                .trim();
     }
 
     /**

--
Gitblit v1.9.3