From fd9756db8280007572de40fc5fe8890d12863cbd Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期二, 02 七月 2024 10:41:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java | 41 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java index 3f73e92..f9ff061 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/frameworkcore/compatibility/impl/OrgDeptQueryServiceImpl.java @@ -460,4 +460,45 @@ return true; } + /** + * 鑾峰彇鎵�鏈夐儴闂ㄧ殑淇℃伅 + * @return key锛氶儴闂ㄧ敱鍚嶇О缁勬垚鐨勮矾寰勶紙/闂撮殧锛夛紝value瀵瑰簲鏈�灏忓眰绾х殑閮ㄩ棬淇℃伅 + */ + @Override + public Map<String, OrgDepartmentVO> getDeptAllTreeMap() { + List<OrgDepartmentVO> orgDepartmentVOList = listAllLevelChildrenDeptByParentOid(null, null); + Map<String, OrgDepartmentVO> stringOrgDepartmentVOMap = convertToMap(orgDepartmentVOList); + return stringOrgDepartmentVOMap; + } + + public Map<String, OrgDepartmentVO> convertToMap(List<OrgDepartmentVO> orgDepartmentVOList) { + Map<String, OrgDepartmentVO> map = new HashMap<>(); + for (OrgDepartmentVO orgDepartmentVO : orgDepartmentVOList) { + String key = buildKey(orgDepartmentVO, orgDepartmentVOList); + map.put(key, orgDepartmentVO); + } + return map; + } + + private String buildKey(OrgDepartmentVO orgDepartmentVO, List<OrgDepartmentVO> orgDepartmentVOList) { + StringBuilder keyBuilder = new StringBuilder(); + OrgDepartmentVO current = orgDepartmentVO; + while (current != null) { + keyBuilder.insert(0, current.getName()); + keyBuilder.insert(0, "/"); + current = getParentDepartment(current.getPkFatherDepartment(), orgDepartmentVOList); + } + keyBuilder.deleteCharAt(0); + return keyBuilder.toString(); + } + + private OrgDepartmentVO getParentDepartment(String pkFatherDepartment, List<OrgDepartmentVO> orgDepartmentVOList) { + for (OrgDepartmentVO orgDepartmentVO : orgDepartmentVOList) { + if (pkFatherDepartment != null && pkFatherDepartment.equals(orgDepartmentVO.getOid())) { + return orgDepartmentVO; + } + } + return null; + } + } -- Gitblit v1.9.3