From 7cd4326bda3ce46633e8590ba4e36c5d92d0e001 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期三, 09 七月 2025 18:51:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 47 insertions(+), 0 deletions(-) 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 c50d112..084bb65 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 @@ -102,7 +102,54 @@ return Collections.emptyList(); } + public BaseFactory searchCenterByKeyWord(String keyWord) { + if (StringUtils.isBlank(keyWord)) { + return null; + } + if (keyWord.contains("/")) { + return searchByHierarchy(keyWord); + } else { + return searchByCode(keyWord); + } + } + + private BaseFactory searchByHierarchy(String path) { + String[] levels = path.split("/"); + int depth = levels.length; + + // 妫�鏌ュ眰绾ф繁搴� + if (depth < 2 || depth > 3) { + return null; // 鏃犳晥鐨勫眰绾ф繁搴� + } + + // 鏌ヨ绗竴绾т腑蹇� + BaseFactory center = findFactory(levels[0], 1, null); + if (center == 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()); + } + + private BaseFactory searchByCode(String code) { + LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>(); + query.like(BaseFactory::getFactoryCode, code); + return this.baseMapper.selectOne(query); // 浣跨敤selectOne閬垮厤澶氫釜缁撴灉 + } + + private BaseFactory findFactory(String name, Integer category, String parentId) { + LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>(); + query.eq(BaseFactory::getFactoryName, name); + + if (category != null) query.eq(BaseFactory::getFactoryCategory, category); + if (parentId != null) query.eq(BaseFactory::getParentId, parentId); + + return this.baseMapper.selectOne(query); + } /** * saveProductionData 瀵瑰簲 add 淇濆瓨鐢ㄦ埛鍦ㄩ〉闈㈡坊鍔犵殑鏂扮殑璁惧杞﹂棿绠$悊瀵硅薄鏁版嵁 -- Gitblit v1.9.3