From fd57c8510934444df5320029653d530a1abeff67 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期五, 11 七月 2025 17:57:18 +0800 Subject: [PATCH] 修改查询 --- lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java | 84 +++++++++-------------------------------- 1 files changed, 19 insertions(+), 65 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 3406dd7..0062273 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 @@ -122,87 +122,47 @@ String[] levels = path.split("/"); int depth = levels.length; - // 鏀寔澶氱鏍煎紡锛氫腑蹇�/宸ュ尯銆佷腑蹇�/宸ユ銆佷腑蹇�/宸ュ尯/宸ユ + // 鏀寔鏍煎紡锛氫腑蹇�/宸ュ尯銆佷腑蹇�/宸ユ銆佷腑蹇�/宸ュ尯/宸ユ if (depth < 2 || depth > 3) { return null; } - // 浠庡簳灞傚紑濮嬫煡璇細鏈�鍚庝竴绾у彲鑳芥槸宸ュ尯鎴栧伐娈� - String lastName = levels[depth - 1]; - BaseFactory lastLevel = searchForLastLevel(lastName); - if (lastLevel == null) return null; + // 浠庨《灞傚紑濮嬫煡璇� - 绗�1绾э細涓績鑺傜偣 + BaseFactory center = findFactory(levels[0], 1, null); + if (center == null) return null; - return validatePath(levels, lastLevel); - } - - 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; + // 绗�2绾ф煡璇細宸ュ尯鎴栧伐娈� + BaseFactory secondLevel; + if (depth == 2) { + // 鍏煎鏂规锛氫紭鍏堟煡宸ユ鍐嶆煡宸ュ尯 + secondLevel = findFactory(levels[1], 3, center.getId()); + if (secondLevel == null) { + secondLevel = findFactory(levels[1], 2, center.getId()); } + return secondLevel; // 鍙兘涓簄ull } else { - // 涓績/宸ュ尯/宸ユ - if (!("3").equals(lastLevel.getFactoryCategory())) return null; + // 绗�2绾у繀椤绘槸宸ュ尯 + BaseFactory workArea = findFactory(levels[1], 2, center.getId()); + if (workArea == null) 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; - } + // 绗�3绾э細宸ユ + return findFactory(levels[2], 3, workArea.getId()); } - 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.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) { LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>(); query.eq(BaseFactory::getFactoryName, name); @@ -210,17 +170,11 @@ if (category != null) query.eq(BaseFactory::getFactoryCategory, category); if (parentId != null) query.eq(BaseFactory::getParentId, parentId); - // 浣跨敤鍒嗛〉鏂瑰紡鍏煎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); - } /** * saveProductionData 瀵瑰簲 add 淇濆瓨鐢ㄦ埛鍦ㄩ〉闈㈡坊鍔犵殑鏂扮殑璁惧杞﹂棿绠$悊瀵硅薄鏁版嵁 -- Gitblit v1.9.3