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