From 4262e7819cb911f8109b4df82b8f80dfab1e72fe Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 15 十月 2026 17:10:16 +0800
Subject: [PATCH] 【丽水】取叶子节点方法跳转
---
ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeUtils.java | 32 ++++++++++++++++++++++++++++++--
1 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeUtils.java
index 873610d..aac16ca 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/TreeUtils.java
@@ -76,13 +76,41 @@
* 鏍规嵁 SysDept.parentId 鏋勯�犻儴闂ㄦ爲
*/
public static List<SysDept> buildDeptTree(List<SysDept> depts) {
+ // 鎸� deptId 鍘婚噸锛岄槻姝� sys_user_dept 涓�瀵瑰鍏宠仈浜х敓閲嶅鐨勭埗鑺傜偣锛屽鑷存瀯寤洪儴闂ㄦ爲鏃跺嚭鐜伴棶棰�
+ depts = distinctByDeptId(depts);
return buildTree(depts, SysDept::getDeptId, SysDept::getParentId, SysDept::setChildren);
}
/**
- * 涓�娆℃�ц幏鍙栨墍鏈夐儴闂ㄥ彾瀛愯妭鐐�
+ * 浠庢墎骞抽儴闂ㄥ垪琛ㄤ竴娆℃�ц幏鍙栨墍鏈夊彾瀛愰儴闂細鍗炽�宒eptId 涓嶅嚭鐜板湪浠讳綍鑺傜偣鐨� parentId 涓�嶇殑鑺傜偣銆�
+ * 鍏ュ弬搴斾负鎵佸钩鍒楄〃锛堜笉鏄� buildDeptTree 鐨勮繑鍥炲�硷級锛屾棤闇�鍏堝缓鏍戙��
+ * 浼氬厛鎸� deptId 鍘婚噸锛岄伩鍏� join 浜х敓鐨勯噸澶嶉儴闂ㄥ彉鎴愰噸澶嶅彾瀛愩��
*/
public static List<SysDept> getLeafDepts(List<SysDept> depts) {
- return getLeafNodes(depts, SysDept::getHisDeptId, SysDept::getHisParentId);
+ return getLeafNodes(distinctByDeptId(depts), SysDept::getDeptId, SysDept::getParentId);
+ }
+
+ /**
+ * 鎸� deptId 瀵归儴闂ㄥ垪琛ㄥ幓閲嶏紝淇濈暀棣栨鍑虹幇鐨勮妭鐐广��
+ * 鏌ヨ缁撴灉閫氳繃 dept_code 鍏宠仈 sys_user_dept锛屽悓涓�閮ㄩ棬鍙兘鍑虹幇澶氭潯璁板綍锛堥噸澶嶇殑鐖惰妭鐐癸級锛�
+ * 鏋勫缓閮ㄩ棬鏍戝墠闇�鍘婚噸锛岄伩鍏嶉噸澶嶈妭鐐瑰鑷存爲缁撴瀯寮傚父銆�
+ *
+ * @param list 閮ㄩ棬鍒楄〃锛屽厑璁镐负 null
+ * @return 鍘婚噸鍚庣殑閮ㄩ棬鍒楄〃锛涘叆鍙備负 null 鎴栫┖鏃跺師鏍疯繑鍥�
+ */
+ private static List<SysDept> distinctByDeptId(List<SysDept> list) {
+ if (list == null || list.isEmpty()) {
+ return list;
+ }
+ Set<Long> deptIdSet = new HashSet<>();
+ List<SysDept> distinctList = new ArrayList<>(list.size());
+ for (SysDept dept : list) {
+ Long deptId = dept.getDeptId();
+ // deptId 涓虹┖鏃朵繚鐣欙紝閬垮厤璇悎骞朵笉鍚岄儴闂�
+ if (deptId == null || deptIdSet.add(deptId)) {
+ distinctList.add(dept);
+ }
+ }
+ return distinctList;
}
}
\ No newline at end of file
--
Gitblit v1.9.3