From cc057177b2fb17aee9a173a6adbabdc578fd74c7 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Mon, 06 Dec 2021 10:30:44 +0800
Subject: [PATCH] 1.许可

---
 src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml |  464 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 443 insertions(+), 21 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 a66b5b3..e4e6fd3 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -37,6 +37,7 @@
         <result column="has_children" property="hasChildren"/>
     </resultMap>
 
+
     <select id="lazyList" resultMap="deptVOResultMap">
         SELECT
             dept.* ,
@@ -102,7 +103,62 @@
         ORDER BY dept.sort
     </select>
 
+    <!--查询保安公司列表,保安员管理-->
     <select id="securityLazyTree" resultMap="treeNodeResultMap" >
+        (
+        SELECT
+        id,
+        parent_id,
+        dept_name AS title,
+        id AS "value",
+        id AS "key",
+        0 AS "has_children"
+        FROM
+        blade_dept
+        where is_deleted = 0
+        and
+        (id = 1413470343230877697 or id = 1425366663452196865 or id = 1418458374477549569 or id = 1420222768149966850)
+        )
+        union
+        (
+        SELECT
+        DISTINCT
+        dept.id,
+        dept.parent_id,
+        dept.dept_name AS title,
+        dept.id AS "value",
+        dept.id AS "key",
+        (
+        SELECT
+        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+        FROM
+        blade_dept
+        WHERE
+        parent_id = dept.id and is_deleted = 0
+        ) AS "has_children"
+        FROM
+        blade_dept dept
+        left join
+        sys_information si
+        on
+        si.departmentid = dept.id
+        WHERE
+        1=1
+        and si.stats != 4
+        AND dept.is_deleted = 0
+        and dept.id !=1420222961377357825
+        and dept.parent_id!=1420222961377357825
+        and dept.parent_id!=1425365577303621633
+        and dept.id != 1425365577303621633
+        and dept.id != 1432625856013971457
+        <if test="param1!=null and param1!='' and param1!='1372091709474910209'">
+            and si.jurisdiction = #{param1}
+        </if>
+        )
+    </select>
+
+    <!--懒加载获取部门树形结构(按分类查询)-->
+    <select id="lazyTreeType" resultMap="treeNodeResultMap" >
         SELECT
         dept.id,
         dept.parent_id,
@@ -120,41 +176,368 @@
         FROM
         blade_dept dept
         WHERE
-        dept.parent_id = #{param2} AND dept.is_deleted = 0
-        and dept_category = 1
+        dept.parent_id = #{param3} AND dept.is_deleted = 0
+        <if test="param2!=null and param2!=''">
+            and dept.dept_category = #{param2}
+        </if>
         <if test="param1!=null and param1!=''">
             and dept.tenant_id = #{param1}
         </if>
         ORDER BY dept.sort
     </select>
 
+    <!--懒加载获取部门树形结构(包含用户数据)app-->
+    <select id="lazyTreeUserApp" resultType="org.springblade.modules.system.vo.DeptAndUserVO" >
+        select DISTINCT
+            *
+        from (
+            (SELECT
+            dept.id,
+            dept.parent_id,
+            dept.dept_name AS label,
+            dept.id AS "key",
+            dept.id AS "value",
+            1 as idCardNo,
+            (
+                SELECT
+                CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+                FROM
+                blade_dept
+                WHERE
+                parent_id = dept.id and dept.is_deleted = 0
+                ) AS "has_children"
+                FROM
+                blade_dept dept
+                left join
+                blade_user bu
+                on
+                bu.dept_id = dept.id
+                WHERE
+                dept.is_deleted = 0
+                and bu.is_deleted = 0
+                <if test="type==1">
+                    and dept_category=1
+                    AND dept.parent_id = "1413470343230877697"
+                </if>
+                <if test="type==2 or type==3">
+                    and dept_category=2
+                    AND dept.parent_id = "1123598813738675201"
+                </if>
+                <if test="type==4 and jurisdiction!=null and jurisdiction!=''">
+                    and dept_category=1
+                    AND dept.parent_id = "1413470343230877697"
+                    and bu.jurisdiction = #{jurisdiction}
+                </if>
+            )
+
+            union all
+
+            (
+                select
+                bu.id,
+                bu.dept_id  parent_id,
+                bu.real_name AS label,
+                bu.id AS "key",
+                bu.id AS "value",
+                bu.cardid as idCardNo,
+                0 as "has_children"
+                from blade_user bu
+                left join
+                blade_dept bd
+                on
+                bd.id = bu.dept_id
+                where 1=1
+                and bu.is_deleted = 0
+                and bu.status = 1
+                <if test="type==1">
+                    and dept_category=1
+                </if>
+                <if test="type==2 or type==3">
+                    and dept_category=2
+                </if>
+                <if test="type==4 and jurisdiction!=null and jurisdiction!=''">
+                    and dept_category=1
+                    and bu.jurisdiction = #{jurisdiction}
+                </if>
+            )
+        )c
+    </select>
+
+    <!--懒加载获取部门树形结构(包含用户数据)-->
+    <select id="lazyTreeUser" resultMap="treeNodeResultMap" >
+        select DISTINCT
+            c.id,
+            c.parent_id,
+            c.title,
+            c.value,
+            c.key,
+            (
+            SELECT
+            CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+            FROM
+            blade_dept
+            where
+            id = c.parent_id
+            <if test="parentId!=null and parentId!=''">
+                and dept_category=1
+                AND id = #{parentId}
+            </if>
+            ) AS "has_children"
+        from (
+            (SELECT
+              dept.id,
+              dept.parent_id,
+              dept.dept_name AS title,
+              dept.id AS "value",
+              dept.id AS "key",
+                        (
+                            SELECT
+                                CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+                            FROM
+                                blade_dept
+                            WHERE
+                                parent_id = dept.id and is_deleted = 0
+                        ) AS "has_children"
+                    FROM
+                        blade_dept dept
+                    WHERE
+                        dept.is_deleted = 0
+                    <if test="parentId!=null and parentId!=''">
+                        and dept_category=1
+                        AND dept.parent_id = #{parentId}
+                    </if>
+            )
+
+            union
+
+            (select
+                bu.id,
+                bu.dept_id  parent_id,
+                bu.real_name AS title,
+                bu.id AS "value",
+                bu.id AS "key",
+                0 as "has_children"
+                from blade_user bu
+                left join
+                blade_dept bd
+                on
+                bd.id = bu.dept_id
+                where 1=1
+                and bu.is_deleted = 0
+                <if test="parentId!=null and parentId!=''">
+                    and dept_category=1
+                    AND bu.dept_id = #{parentId}
+                </if>
+            )
+        )c
+    </select>
 
 
-    <select id="lazyTrees" resultMap="treeNodeResultMap" >
-    SELECT
+    <!--懒加载获取部门树形结构(包含用户数据),未删除,在职-->
+    <select id="lazyTreeUsers" resultType="org.springblade.modules.system.node.TreeNodes" >
+        select DISTINCT
+        *
+        from (
+        (SELECT
         dept.id,
-        dept.parent_id,
+        dept.parent_id parentId,
         dept.dept_name AS title,
         dept.id AS "value",
         dept.id AS "key",
         (
-            SELECT
-                CASE WHEN count(1) > 0 THEN 0 ELSE 1 END
-            FROM
-                blade_dept
-            WHERE
-                parent_id = dept.id and is_deleted = 0
+        SELECT
+        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+        FROM
+        blade_dept
+        WHERE
+        parent_id = dept.id and is_deleted = 0
         ) AS "has_children"
-    FROM
-        blade_dept dept WHERE (
-                                  SELECT
-                                      CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
-                                  FROM
-                                      blade_dept
-                                  WHERE
-                                      parent_id = dept.id and is_deleted = 0
-                              ) =1
-</select>
+        FROM
+        blade_dept dept
+        left join
+        sys_information si
+        on
+        si.departmentid = dept.id
+        WHERE
+        dept.is_deleted = 0
+        <if test="deptId!=null and deptId!=''">
+            and dept.id = #{deptId}
+        </if>
+        )
+
+        union
+
+        (select
+        bu.id,
+        bu.dept_id  parentId,
+        bu.real_name AS title,
+        bu.id AS "value",
+        bu.id AS "key",
+        0 as "has_children"
+        from blade_user bu
+        left join
+        blade_dept bd
+        on
+        bd.id = bu.dept_id
+        left join
+        blade_role br
+        on
+        br.id = bu.role_id
+        where 1=1
+        and bu.is_deleted = 0
+        and bu.status = 1
+        <if test="type==1">
+            and role_alias = '保安'
+        </if>
+        <if test="deptId!=null and deptId!=''">
+            and bu.dept_id = #{deptId}
+        </if>
+        <if test="jurisdiction!=null and jurisdiction!=''">
+            and bu.jurisdiction = #{jurisdiction}
+        </if>
+        )
+        )c
+    </select>
+
+    <!--懒加载获取部门树形结构(包含用户数据)-->
+    <select id="lazyTreeUsersPublicSecurity" resultType="org.springblade.modules.system.node.TreeNodes" >
+        select DISTINCT
+        *
+        from (
+        (SELECT
+        dept.id,
+        dept.parent_id parentId,
+        dept.dept_name AS title,
+        dept.id AS "value",
+        dept.id AS "key",
+        (
+        SELECT
+        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+        FROM
+        blade_dept
+        WHERE
+        parent_id = dept.id and is_deleted = 0
+        ) AS "has_children"
+        FROM
+        blade_dept dept
+        left join
+        sys_information si
+        on
+        si.departmentid = dept.id
+        WHERE
+        dept.is_deleted = 0
+        <if test="deptId!=null and deptId!=''">
+            and (dept.parent_id = #{deptId} or dept.id = #{deptId})
+        </if>
+        )
+
+        union
+
+        (select
+        bu.id,
+        bu.dept_id  parentId,
+        bu.real_name AS title,
+        bu.id AS "value",
+        bu.id AS "key",
+        0 as "has_children"
+        from blade_user bu
+        left join
+        blade_dept bd
+        on
+        bd.id = bu.dept_id
+        where 1=1
+        and bu.is_deleted = 0
+        and bu.status = 1
+        <if test="deptId!=null and deptId!=''">
+            and (bd.parent_id = #{deptId} or bd.id = #{deptId})
+        </if>
+        )
+        )c
+    </select>
+
+    <!--懒加载获取部门树形结构(包含用户数据)-->
+    <select id="lazyTreeUsersPublicSecuritys" resultType="org.springblade.modules.system.node.TreeNodes" >
+        select DISTINCT
+        *
+        from (
+        (SELECT
+        dept.id,
+        dept.parent_id parentId,
+        dept.dept_name AS title,
+        dept.id AS "value",
+        dept.id AS "key",
+        (
+        SELECT
+        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+        FROM
+        blade_dept
+        WHERE
+        parent_id = dept.id and is_deleted = 0
+        ) AS "has_children"
+        FROM
+        blade_dept dept
+        left join
+        sys_information si
+        on
+        si.departmentid = dept.id
+        WHERE
+        dept.is_deleted = 0
+        <if test="deptId!=null and deptId!=''">
+            and  dept.id = #{deptId}
+        </if>
+        )
+
+        union
+
+        (select
+        bu.id,
+        bu.dept_id  parentId,
+        bu.real_name AS title,
+        bu.id AS "value",
+        bu.id AS "key",
+        0 as "has_children"
+        from blade_user bu
+        left join
+        blade_dept bd
+        on
+        bd.id = bu.dept_id
+        where 1=1
+        and bu.is_deleted = 0
+        and bu.status = 1
+        <if test="deptId!=null and deptId!=''">
+            and  bd.id = #{deptId}
+        </if>
+        )
+        )c
+    </select>
+
+
+
+    <select id="lazyTrees" resultMap="treeNodeResultMap" >
+        SELECT
+            dept.id,
+            dept.parent_id,
+            dept.dept_name AS title,
+            dept.id AS "value",
+            dept.id AS "key",
+            (
+                SELECT
+                    CASE WHEN count(1) > 0 THEN 0 ELSE 1 END
+                FROM
+                    blade_dept
+                WHERE
+                    parent_id = dept.id and is_deleted = 0
+            ) AS "has_children"
+        FROM
+            blade_dept dept WHERE (
+                                      SELECT
+                                          CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+                                      FROM
+                                          blade_dept
+                                      WHERE
+                                          parent_id = dept.id and is_deleted = 0
+                                  ) =1
+    </select>
 
     <select id="getDeptNames" resultType="java.lang.String">
         SELECT
@@ -197,4 +580,43 @@
         SELECT id FROM blade_dept WHERE parent_id =#{id} and is_deleted = 0
     </select>
 
+
+    <insert id="add" parameterType="org.springblade.modules.system.entity.Dept" useGeneratedKeys="true" keyProperty="id">
+        insert into blade_dept(tenant_id, parent_id,ancestors,dept_category,dept_name) values(#{tenantId}, #{parentId}, #{ancestors}, #{deptCategory}, #{deptName})
+    </insert>
+    <select id="selectInfo" resultMap="treeNodeResultMap">
+        SELECT
+            DISTINCT
+            dept.id,
+            dept.parent_id,
+            dept.dept_name AS title,
+            dept.id AS "value",
+            dept.id AS "key",
+            (
+                SELECT
+                    CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+                FROM
+                    blade_dept
+                WHERE
+                    parent_id = dept.id and is_deleted = 0
+            ) AS "has_children"
+        FROM
+            blade_dept dept
+                left join
+            sys_information si
+            on
+                si.departmentid = dept.id
+        WHERE
+            1=1
+          AND dept.is_deleted = 0
+          and dept.id !=1420222961377357825
+          and dept.id !=1432625856013971457
+        and dept.parent_id!=1420222961377357825
+        and dept.parent_id!=1432625856013971457
+    </select>
+
+    <!--查询所有的部门信息-->
+    <select id="selDeptList" resultType="org.springblade.common.vo.DeptVo">
+        select id ,dept_name deptName from blade_dept where is_deleted=0
+    </select>
 </mapper>

--
Gitblit v1.9.3