From 764d883b5ea3bdc06abbec548b6df0511e567978 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Tue, 03 Sep 2024 09:46:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/binlog' into binlog

---
 src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml |   90 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
index c22b69a..5211eec 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -170,6 +170,73 @@
         </if>
     </select>
 
+    <select id="getDeptMapAndChildren" resultType="org.springblade.modules.system.node.DeptUserTreeNode">
+
+        SELECT
+        cast(dept.id as char) as id,
+        dept.parent_id parentId,
+        dept.dept_name AS name,
+        1 as isMan,
+        0 AS phone,
+        0 as email,
+        (SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM blade_dept  WHERE  parent_id = dept.id and is_deleted = 0) AS hasChildren,
+        IFNULL(bu.num,0) AS userCount
+        FROM
+        blade_dept dept
+        LEFT JOIN
+        (
+        SELECT COUNT(*) num,dept_id FROM blade_user where is_deleted = 0 GROUP BY dept_id
+        ) bu on dept.id = bu.dept_id
+        WHERE dept.is_deleted = 0
+        <if test="treeNode.id!=null and treeNode.id!=''">
+            and dept.id = #{treeNode.id}
+        </if>
+
+        union
+
+        SELECT
+        cast(dept.id as char) as id,
+        dept.parent_id parentId,
+        dept.dept_name AS name,
+        1 as isMan,
+        0 AS phone,
+        0 as email,
+        (SELECT CASE WHEN count(1) > 0 THEN 1 ELSE 0 END FROM blade_dept  WHERE  parent_id = dept.id and is_deleted = 0) AS hasChildren,
+        IFNULL(bu.num,0) AS userCount
+        FROM
+        blade_dept dept
+        LEFT JOIN
+        (
+        SELECT COUNT(*) num,dept_id FROM blade_user where is_deleted = 0 GROUP BY dept_id
+        ) bu on dept.id = bu.dept_id
+        WHERE dept.is_deleted = 0
+        <if test="treeNode.id!=null and treeNode.id!=''">
+            AND ancestors LIKE CONCAT( '%',  #{treeNode.id}, '%')
+        </if>
+
+
+
+
+    </select>
+
+    <select id="getDeptMapAndChild" resultType="org.springblade.modules.system.node.DeptUserTreeNode">
+
+        SELECT
+            cast( dept.id AS CHAR ) AS id,
+            dept.parent_id parentId,
+            dept.dept_name AS NAME,
+            1 AS isMan,
+            0 AS phone,
+            ( SELECT CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END FROM blade_dept WHERE parent_id = dept.id AND is_deleted = 0 ) AS hasChildren
+        FROM
+            blade_dept dept
+        WHERE
+            dept.is_deleted = 0
+          AND dept.parent_id = #{treeNode.id}
+
+    </select>
+
+
     <!--查询组织机构树数据(下级包含人员信息)(排除组织机构对应不上的人员)-->
     <select id="getUserMap" resultType="org.springblade.modules.system.node.DeptUserTreeNode">
         select
@@ -183,10 +250,31 @@
         from blade_user bu join blade_dept bd on find_in_set(bu.dept_id,bd.id)
         where 1=1 and bu.is_deleted = 0 and bu.status = 1
         <if test="treeNode.id!=null and treeNode.id!=''">
-            and bu.dept_id like concat(concat('%',#{treeNode.id}),'%')
+            and (bu.dept_id = #{treeNode.id} or bd.ancestors LIKE CONCAT( '%',  #{treeNode.id}, '%'))
         </if>
     </select>
 
+    <select id="getUserMapByDeptIds" resultType="org.springblade.modules.system.node.DeptUserTreeNode">
+        select
+        bu.id,
+        bu.dept_id parentId,
+        bu.real_name AS name,
+        bu.phone,
+        bu.email,
+        2 as isMan,
+        0 as hasChildren
+        from blade_user bu join blade_dept bd on find_in_set(bu.dept_id,bd.id)
+        where 1=1 and bu.is_deleted = 0 and bu.status = 1
+        <if test="deptIds !=null and deptIds!=''">
+            and bu.dept_id in
+            <foreach collection="deptIds.split(',')" item="id" open="(" separator="," close=")">
+                #{id}
+            </foreach>
+        </if>
+    </select>
+
+
+
     <!--查询网格对应的机构信息(包含父级机构名称)-->
     <select id="getGridDeptAndParentList" resultType="org.springblade.modules.system.vo.DeptVO">
         select bd.*,bd1.dept_name as parentName from blade_dept bd

--
Gitblit v1.9.3