<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="org.springblade.modules.system.mapper.DeptMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="deptResultMap" type="org.springblade.modules.system.entity.Dept">
|
<id column="id" property="id"/>
|
<result column="parent_id" property="parentId"/>
|
<result column="dept_name" property="deptName"/>
|
<result column="full_name" property="fullName"/>
|
<result column="ancestors" property="ancestors"/>
|
<result column="dept_category" property="deptCategory"/>
|
<result column="sort" property="sort"/>
|
<result column="remark" property="remark"/>
|
<result column="is_deleted" property="isDeleted"/>
|
</resultMap>
|
|
<resultMap id="deptVOResultMap" type="org.springblade.modules.system.vo.DeptVO">
|
<id column="id" property="id"/>
|
<result column="parent_id" property="parentId"/>
|
<result column="dept_name" property="deptName"/>
|
<result column="full_name" property="fullName"/>
|
<result column="ancestors" property="ancestors"/>
|
<result column="dept_category" property="deptCategory"/>
|
<result column="sort" property="sort"/>
|
<result column="remark" property="remark"/>
|
<result column="is_deleted" property="isDeleted"/>
|
<result column="has_children" property="hasChildren"/>
|
</resultMap>
|
|
<resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
|
<id column="id" property="id"/>
|
<result column="parent_id" property="parentId"/>
|
<result column="title" property="title"/>
|
<result column="value" property="value"/>
|
<result column="key" property="key"/>
|
<result column="has_children" property="hasChildren"/>
|
</resultMap>
|
|
<select id="lazyList" resultMap="deptVOResultMap">
|
SELECT
|
dept.* ,
|
(
|
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="param1!=null and param1!=''">
|
and dept.tenant_id = #{param1}
|
</if>
|
<if test="param2!=null">
|
and dept.parent_id = #{param2}
|
</if>
|
<if test="param3.deptName!=null and param3.deptName!=''">
|
and dept.dept_name like concat(concat('%', #{param3.deptName}),'%')
|
</if>
|
<if test="param3.fullName!=null and param3.fullName!=''">
|
and dept.full_name like concat(concat('%', #{param3.fullName}),'%')
|
</if>
|
ORDER BY dept.sort
|
</select>
|
|
<select id="tree" 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 tenant_id = #{_parameter}
|
</if>
|
ORDER BY sort
|
</select>
|
|
<select id="lazyTree" 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 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="param2!=null and param2!=0">
|
and dept.parent_id = #{param2}
|
</if>
|
<if test="param1!=null and param1!=''">
|
and dept.tenant_id = #{param1}
|
</if>
|
ORDER BY dept.sort
|
</select>
|
|
<!--懒加载获取部门树形结构(包含用户数据)-->
|
<!-- <select id="lazyTreeUser" resultMap="treeNodeResultMap">-->
|
<!-- select DISTINCT * 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-->
|
<!-- )-->
|
|
<!-- union-->
|
|
<!-- (select-->
|
<!-- id,-->
|
<!-- dept_id parent_id,-->
|
<!-- real_name AS title,-->
|
<!-- id AS "value",-->
|
<!-- id AS "key",-->
|
<!-- 0 as "has_children"-->
|
<!-- from blade_user-->
|
<!-- )-->
|
<!-- )c-->
|
<!-- </select> -->
|
|
<!--懒加载获取部门树形结构(包含用户数据)-->
|
<select id="lazyTreeUser" resultMap="treeNodeResultMap">
|
select DISTINCT * 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
|
left join
|
sys_information si
|
on
|
si.departmentid = dept.id
|
WHERE
|
dept.is_deleted = 0
|
and si.stats = 2
|
and si.departmentid !=1432626178757275649
|
and si.departmentid !=1445980335107002370
|
and si.departmentid !=1442115701350387714
|
)
|
union
|
(select
|
bu.id,
|
bu.dept_id parent_id,
|
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
|
sys_information si
|
on
|
si.departmentid = bd.id
|
where bd.is_deleted = 0
|
and bu.is_deleted = 0
|
and bu.`status` =1
|
and si.stats = 2
|
and si.departmentid !=1432626178757275649
|
and si.departmentid !=1445980335107002370
|
and si.departmentid !=1442115701350387714
|
)
|
)c
|
</select>
|
|
<!--懒加载获取部门树形结构(包含用户数据)-->
|
<!-- <select id="lazyTreeUser" resultMap="treeNodeResultMap">-->
|
<!-- select DISTINCT * 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-->
|
<!-- left join-->
|
<!-- sys_information si-->
|
<!-- on-->
|
<!-- si.departmentid = dept.id-->
|
<!-- WHERE-->
|
<!-- dept.is_deleted = 0-->
|
<!-- and si.stats = 2-->
|
<!-- and (si.departmentid = 1442114073838800898-->
|
<!-- or si.departmentid = 1442115701350387714)-->
|
<!-- )-->
|
|
<!-- union-->
|
|
<!-- (select-->
|
<!-- bu.id,-->
|
<!-- bu.dept_id parent_id,-->
|
<!-- 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-->
|
<!-- sys_information si-->
|
<!-- on-->
|
<!-- si.departmentid = bd.id-->
|
<!-- where bd.is_deleted = 0-->
|
<!-- and bu.is_deleted = 0-->
|
<!-- and bu.`status` =1-->
|
<!-- and si.stats = 2-->
|
<!-- and (si.departmentid = 1442114073838800898-->
|
<!-- or si.departmentid = 1442115701350387714)-->
|
<!-- )-->
|
<!-- )c-->
|
<!-- </select>-->
|
|
<!--懒加载获取部门树形结构(包含用户数据)-->
|
<select id="lazyTreeUsers" 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="type==1">
|
and dept_category=1
|
</if>
|
<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
|
<if test="type==1">
|
and dept_category=1
|
</if>
|
<if test="type==2 or type==3">
|
and dept_category=2
|
</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="type==2 or type==3">
|
and dept_category=2
|
</if>
|
<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
|
<if test="type==2 or type==3">
|
and dept_category=2
|
</if>
|
<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="type==2 or type==3">
|
and dept_category=2
|
</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
|
<if test="type==2 or type==3">
|
and dept_category=2
|
</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
|
dept_name
|
FROM
|
blade_dept
|
WHERE
|
id IN
|
<foreach collection="array" item="ids" index="index" open="(" close=")" separator=",">
|
#{ids}
|
</foreach>
|
and is_deleted = 0
|
</select>
|
|
<select id="selectIn" resultType="java.util.HashMap">
|
SELECT
|
id as deptid,
|
dept_name as deptname
|
FROM
|
blade_dept where is_deleted = 0
|
</select>
|
|
<!--统计单位类型数量-->
|
<select id="selectCount" resultType="java.util.HashMap">
|
SELECT
|
id as jurisdiction,
|
dept_name AS title
|
FROM
|
sys_jurisdiction
|
WHERE
|
is_deleted = 0 AND parent_id!=0
|
</select>
|
|
<select id="selectHold" resultType="java.util.HashMap">
|
SELECT IFNULL(B.cz, 0) as cz,
|
IFNULL(C.wcz, 0) as wcz
|
FROM (SELECT departmentid,jurisdiction FROM sys_information) A
|
LEFT JOIN (SELECT COUNT(hold) as cz, dept_id
|
FROM blade_user
|
WHERE hold = 1
|
AND role_id = '1412226235153731586'
|
and status = 1
|
GROUP BY dept_id) B ON A.departmentid = B.dept_id
|
LEFT JOIN (SELECT COUNT(hold) as wcz, dept_id
|
FROM blade_user
|
WHERE hold = 2
|
AND role_id = '1412226235153731586'
|
and status = 1
|
GROUP BY dept_id) C ON A.departmentid = C.dept_id
|
WHERE A.jurisdiction in(${deptid})
|
GROUP BY cz, wcz
|
</select>
|
|
<!--查询部门下面的所有单位-->
|
<select id="selectId" resultType="java.util.HashMap">
|
SELECT id FROM blade_dept WHERE parent_id =#{id} and is_deleted = 0
|
</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>
|
</mapper>
|