From fa539d8ec0b5f4d974eafff3e4bffe9395932ff4 Mon Sep 17 00:00:00 2001
From: aix <vip_xiaobin810@163.com>
Date: Fri, 12 Jul 2024 15:49:02 +0800
Subject: [PATCH] 支持多部门

---
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java            |    2 +-
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java |    8 +++++++-
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml             |   14 +++++++++-----
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java
index aadd02d..d46b76c 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java
@@ -52,7 +52,7 @@
 	 */
 	List<DeptVO> tree(String tenantId);
 
-	List<DeptVO> treeByParentId(String parentId);
+	List<DeptVO> treeByParentId(List<String> parentIds);
 
 	/**
 	 * 懒加载获取树形节点
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml
index 295e868..055cfe6 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml
@@ -78,12 +78,16 @@
 
     <select id="treeByParentId" resultMap="treeNodeResultMap">
         select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0
-        <if test="_parameter!=null and _parameter!=''">
-            and (
-                id = #{_parameter} or parent_id = #{_parameter} or parent_id in (
-                    select b.id from blade_dept b where b.is_deleted = 0 and b.PARENT_ID = #{_parameter}
+        <if test="parentIds!=null and parentIds!=''">
+            and
+
+            <foreach item="id" collection="parentIds" open="(" separator="or" close=")">
+                id = #{id} or parent_id = #{id} or parent_id in (
+                select b.id from blade_dept b where b.is_deleted = 0 and b.PARENT_ID = #{id}
                 )
-            )
+
+            </foreach>
+
         </if>
         ORDER BY sort
     </select>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
index a0649de..5382e70 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
@@ -38,6 +38,7 @@
 import cn.gistack.system.wrapper.DeptWrapper;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -93,7 +94,12 @@
 		if (AuthUtil.isAdministrator() || AuthUtil.isAdmin()) {
 			return ForestNodeMerger.merge(baseMapper.tree(StringPool.EMPTY));
 		}
-		return ForestNodeMerger.merge(baseMapper.treeByParentId(parentId));
+		String [] parentIds = parentId.split(",");
+		List<String> parentIdList = new ArrayList<>();
+		for (String str:parentIds) {
+			parentIdList.add(str);
+		}
+		return ForestNodeMerger.merge(baseMapper.treeByParentId(parentIdList));
 	}
 
 	@Override

--
Gitblit v1.9.3