From d2119be0539292e0885ca0670e791fd69ba1f875 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期四, 10 七月 2025 10:02:46 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java                |    6 ++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java                           |    5 +
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IEamBaseRepairDepartService.java  |    8 ++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java                     |    2 
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java  |  100 ++++++++++++++++++++++++++++-----
 lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/EamBaseRepairDepartImpl.java |   24 ++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java                          |   12 +++
 lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java                                 |    5 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java             |    5 +
 9 files changed, 144 insertions(+), 23 deletions(-)

diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
index 2e1ec29..93a5b14 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -162,7 +162,7 @@
     /**
      * 缁翠慨鐝粍
      */
-    @Excel(name = "缁翠慨鐝粍", width = 15, orderNum = "10",dictTable = "eam_base_repair_depart",dicText = "depart_name",dicCode = "org_code")
+    @Excel(name = "缁翠慨鐝粍", width = 15, orderNum = "10")
     @ApiModelProperty(value = "缁翠慨鐝粍")
     @Dict(dictTable = "eam_base_repair_depart",dicText = "depart_name",dicCode = "org_code")
     private String repairDepartOrgCode;
@@ -185,8 +185,9 @@
     /**
      * 鐏伀鍣�
      */
-    @Excel(name = "鐏伀鍣�", width = 15, orderNum = "16")
+    @Excel(name = "鐏伀鍣�", width = 15, orderNum = "16",dicCode = "yn")
     @ApiModelProperty(value = "鐏伀鍣�")
+    @Dict(dicCode = "yn")
     private String fireExtinguisher;
 
     /**
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
index 40293d6..7839048 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
@@ -1,6 +1,8 @@
 package org.jeecg.modules.eam.request;
 
 import lombok.Data;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
 
 @Data
 public class EamEquipmentQuery {
@@ -13,7 +15,8 @@
     private String operationSystem;
     private String orgId;
     private String equipmentCategory;
-
+    private String factoryOrgCode;
+    private String repairDepartOrgCode;
     private String column;
     private String order;
 }
diff --git a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
index 6134309..00ccb1a 100644
--- a/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
+++ b/lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -205,6 +205,12 @@
             if (StringUtils.isNotBlank(eamEquipment.getEquipmentCategory())) {
                 queryWrapper.like("e.equipment_category", eamEquipment.getEquipmentCategory());
             }
+            if (StringUtils.isNotBlank(eamEquipment.getFactoryOrgCode())) {
+                queryWrapper.like("e.factory_org_code", eamEquipment.getFactoryOrgCode());
+            }
+            if (StringUtils.isNotBlank(eamEquipment.getRepairDepartOrgCode())) {
+                queryWrapper.like("e.repair_depart_org_code", eamEquipment.getRepairDepartOrgCode());
+            }
             if (StringUtils.isNotBlank(eamEquipment.getId())) {
                 queryWrapper.eq("e.id", eamEquipment.getId());
             }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
index a2233c6..16f06a7 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -29,7 +29,9 @@
 //import org.jeecg.modules.mdc.entity.MdcEquipment;
 //import org.jeecg.modules.mdc.service.IMdcEquipmentService;
 import org.jeecg.modules.system.entity.BaseFactory;
+import org.jeecg.modules.system.entity.EamBaseRepairDepart;
 import org.jeecg.modules.system.service.IBaseFactoryService;
+import org.jeecg.modules.system.service.IEamBaseRepairDepartService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -77,7 +79,8 @@
     private TranslateDictTextUtils translateDictTextUtils;
     @Autowired
     private IBaseFactoryService baseFactoryService;
-
+    @Autowired
+    private IEamBaseRepairDepartService eamBaseRepairDepartService;
     /**
      * 鍒嗛〉鍒楄〃鏌ヨ
      *
@@ -287,6 +290,13 @@
                     }else {
                         eamEquipment.setFactoryOrgCode(baseFactory.getOrgCode());
                     }
+                    EamBaseRepairDepart eamBaseRepairDepart=eamBaseRepairDepartService.searchCenterByKeyWord(eamEquipment.getRepairDepartOrgCode());
+                    if(eamBaseRepairDepart==null){
+                        sb.append(String.format("缁翠慨鐝粍淇℃伅[%s]涓嶅瓨鍦紝鏃犳硶瀵煎叆\n\r", eamEquipment.getRepairDepartOrgCode()));
+                        continue;
+                    }else {
+                        eamEquipment.setRepairDepartOrgCode(eamBaseRepairDepart.getOrgCode());
+                    }
                     EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment);
                     if (equipment == null) {
                         //淇濆瓨澶辫触锛岃烦杩囨湰娆″惊鐜�
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
index ce8b3fb..bcb724b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
@@ -87,7 +87,7 @@
     /**
      * 鐐规琛ㄥ鍏ュ叆鍙�
      */
-    public Result<?> importPointInspectionExcel(MultipartFile file);
+    Result<?> importPointInspectionExcel(MultipartFile file);
 
 
     Result<?> importMaintenanceStandard(MultipartFile file, String type);
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 ab2dd0c..56d59d2 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
@@ -762,6 +762,7 @@
             // 鍒涘缓椤圭洰璇︽儏
             EamMaintenanceStandardDetail detail = new EamMaintenanceStandardDetail();
             detail.setStandardId(standard.getId());
+            detail.setItemCode(Integer.parseInt(getCellStringValue(row.getCell(0))));
             detail.setItemName(getCellStringValue(row.getCell(1)));
             detail.setItemCategory(itemCategory);
 
@@ -1044,15 +1045,17 @@
             if (!items.isEmpty()) {
                 items.remove(0);
             }
-
             // 2. 涓虹己澶遍儴浣嶇殑鏁版嵁濉厖鍓嶄竴鏉$殑淇濆吇閮ㄤ綅
             String lastPart = "";
+            int i =1;
             for (EamMaintenanceStandardDetail item : items) {
+                item.setItemCode(i);
                 if (item.getItemPart() != null && !item.getItemPart().isEmpty()) {
                     lastPart = item.getItemPart();
                 } else if (!lastPart.isEmpty()) {
                     item.setItemPart(lastPart);
                 }
+                i++;
             }
         }
     }
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IEamBaseRepairDepartService.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IEamBaseRepairDepartService.java
index 7d43f89..edbd45d 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IEamBaseRepairDepartService.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IEamBaseRepairDepartService.java
@@ -63,6 +63,12 @@
      * 鏍规嵁鐢ㄦ埛id鑾峰彇浜х嚎涓嬫媺鏍戦�夐」
      */
     List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId);
+
+
+    /**
+     * 鏍规嵁鍏抽敭瀛楄幏鍙栦腑蹇冩暟鎹�
+     */
+    EamBaseRepairDepart searchCenterByKeyWord(String keyWord);
 //
 //    /**
 //     * 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣
@@ -89,5 +95,5 @@
 //     * @return
 //     */
 //    EamBaseRepairDepart findMaintainDepartList(String equipmentId);
-    
+
 }
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
index 084bb65..d1faf69 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.commons.lang3.StringUtils;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.constant.FillRuleConstant;
@@ -110,7 +111,7 @@
         if (keyWord.contains("/")) {
             return searchByHierarchy(keyWord);
         } else {
-            return searchByCode(keyWord);
+            return searchByCodeOrName(keyWord);
         }
     }
 
@@ -118,27 +119,85 @@
         String[] levels = path.split("/");
         int depth = levels.length;
 
-        // 妫�鏌ュ眰绾ф繁搴�
+        // 鏀寔澶氱鏍煎紡锛氫腑蹇�/宸ュ尯銆佷腑蹇�/宸ユ銆佷腑蹇�/宸ュ尯/宸ユ
         if (depth < 2 || depth > 3) {
-            return null; // 鏃犳晥鐨勫眰绾ф繁搴�
+            return null;
         }
 
-        // 鏌ヨ绗竴绾т腑蹇�
-        BaseFactory center = findFactory(levels[0], 1, null);
-        if (center == null) return null;
+        // 浠庡簳灞傚紑濮嬫煡璇細鏈�鍚庝竴绾у彲鑳芥槸宸ュ尯鎴栧伐娈�
+        String lastName = levels[depth - 1];
+        BaseFactory lastLevel = searchForLastLevel(lastName);
+        if (lastLevel == null) return null;
 
-        // 鏌ヨ绗簩绾у伐鍖�
-        BaseFactory workArea = findFactory(levels[1], null, center.getId());
-        if (workArea == null || depth == 2) return workArea;
-
-        // 鏌ヨ绗笁绾у伐娈�
-        return findFactory(levels[2], null, workArea.getId());
+        return validatePath(levels, lastLevel);
     }
 
-    private BaseFactory searchByCode(String code) {
+    private BaseFactory validatePath(String[] levels, BaseFactory lastLevel) {
+        if (levels.length == 2) {
+            // 涓績/宸ュ尯 鎴� 涓績/宸ユ
+            BaseFactory center = findParentCenter(lastLevel);
+            if (center != null &&
+                    center.getFactoryName().equals(levels[0]) &&
+                    ("1").equals(center.getFactoryCategory())) {
+                return lastLevel;
+            }
+        } else {
+            // 涓績/宸ュ尯/宸ユ
+            if (!("3").equals(lastLevel.getFactoryCategory())) return null;
+
+            BaseFactory workArea = getById(lastLevel.getParentId());
+            if (workArea == null ||
+                    !("2").equals(workArea.getFactoryCategory())) return null;
+
+            BaseFactory center = getById(workArea.getParentId());
+            if (center == null ||
+                    !("1").equals(center.getFactoryCategory())) return null;
+
+            if (workArea.getFactoryName().equals(levels[1]) &&
+                    center.getFactoryName().equals(levels[0])) {
+                return lastLevel;
+            }
+        }
+        return null;
+    }
+
+    private BaseFactory searchForLastLevel(String name) {
+        // 鍏堝皾璇曟煡璇㈠伐娈碉紙绫诲埆3锛�
+        BaseFactory workshop = findFactory(name, 3, null);
+        if (workshop != null) return workshop;
+
+        // 濡傛灉娌℃湁鎵惧埌宸ユ锛屽皾璇曟煡璇㈠伐鍖猴紙绫诲埆2锛�
+        return findFactory(name, 2, null);
+    }
+
+    private BaseFactory findParentCenter(BaseFactory entity) {
+        if (("1").equals(entity.getFactoryCategory())) {
+            return entity; // 鏈韩灏辨槸涓績
+        }
+
+        BaseFactory parent = getById(entity.getParentId());
+        if (parent == null) return null;
+
+        if (("1").equals(parent.getFactoryCategory())) {
+            return parent; // 鐩存帴鐖剁骇鏄腑蹇�
+        }
+
+        // 濡傛灉鐖剁骇涓嶆槸涓績锛屽皾璇曟壘鐖剁骇鐨勭埗绾�
+        return getById(parent.getParentId());
+    }
+
+    private BaseFactory searchByCodeOrName(String keyword) {
+        // 浣跨敤鍒嗛〉鏂瑰紡鍏煎SQL Server
         LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
-        query.like(BaseFactory::getFactoryCode, code);
-        return this.baseMapper.selectOne(query); // 浣跨敤selectOne閬垮厤澶氫釜缁撴灉
+        query.and(q -> q.eq(BaseFactory::getFactoryName, keyword)
+                .or()
+                .like(BaseFactory::getFactoryCode, keyword));
+
+        // 浣跨敤鍒嗛〉鏌ヨ鑾峰彇绗竴鏉¤褰�
+        Page<BaseFactory> page = new Page<>(1, 1);
+        Page<BaseFactory> resultPage = baseMapper.selectPage(page, query);
+
+        return resultPage.getRecords().isEmpty() ? null : resultPage.getRecords().get(0);
     }
 
     private BaseFactory findFactory(String name, Integer category, String parentId) {
@@ -148,7 +207,16 @@
         if (category != null) query.eq(BaseFactory::getFactoryCategory, category);
         if (parentId != null) query.eq(BaseFactory::getParentId, parentId);
 
-        return this.baseMapper.selectOne(query);
+        // 浣跨敤鍒嗛〉鏂瑰紡鍏煎SQL Server
+        Page<BaseFactory> page = new Page<>(1, 1);
+        Page<BaseFactory> resultPage = baseMapper.selectPage(page, query);
+
+        return resultPage.getRecords().isEmpty() ? null : resultPage.getRecords().get(0);
+    }
+
+    private BaseFactory getById(String id) {
+        if (StringUtils.isBlank(id)) return null;
+        return baseMapper.selectById(id);
     }
 
     /**
diff --git a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/EamBaseRepairDepartImpl.java b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/EamBaseRepairDepartImpl.java
index 6f2db32..0034b41 100644
--- a/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/EamBaseRepairDepartImpl.java
+++ b/lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/EamBaseRepairDepartImpl.java
@@ -309,4 +309,28 @@
         }
     }
 
+    /**
+     * 鏍规嵁鍏抽敭瀛楄幏鍙栦腑蹇冩暟鎹�
+     */
+    @Override
+    public EamBaseRepairDepart searchCenterByKeyWord(String keyWord) {
+        if (StringUtils.isBlank(keyWord)) {
+            return null;
+        }
+        // 鍏堟寜鍚嶇О鏌ヨ
+        LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<>();
+        query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+        query.eq(EamBaseRepairDepart::getDepartName, keyWord);
+        EamBaseRepairDepart result = this.baseMapper.selectOne(query);
+        if (result != null) {
+            return result;
+        }
+
+        // 鍐嶆寜缂栫爜鏌ヨ
+        query = new LambdaQueryWrapper<>();
+        query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
+        query.eq(EamBaseRepairDepart::getDepartCode, keyWord);
+        return this.baseMapper.selectOne(query);
+    }
+
 }

--
Gitblit v1.9.3