<?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="securityLazyTree" 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_category = 1
|
AND dept.is_deleted = 0
|
and dept.id !=1420222961377357825
|
and dept.id !=1432625856013971457
|
and dept.parent_id!=1420222961377357825
|
<if test="param1!=null and param1!='' and param1!='1123598813738675201'">
|
and si.jurisdiction = #{param1}
|
</if>
|
</select>
|
|
<!--懒加载获取部门树形结构(按分类查询)-->
|
<select id="lazyTreeType" 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.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="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
|
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 dept_category=1
|
and role_alias = '保安'
|
</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 dept.id as jurisdiction,dept.dept_name AS title FROM blade_dept dept WHERE dept.dept_name like concat(concat('%', #{name}),'%')
|
</select>
|
|
<select id="selectHold" resultType="java.util.HashMap">
|
SELECT
|
ISNULL(B.cz,0) as cz,
|
ISNULL(C.wcz,0) as wcz
|
FROM (SELECT jurisdiction FROM blade_user ) A
|
LEFT JOIN (SELECT COUNT(hold) as cz,jurisdiction FROM blade_user WHERE hold=0 GROUP BY jurisdiction ) B ON A.jurisdiction=B.jurisdiction
|
LEFT JOIN (SELECT COUNT(hold) as wcz,jurisdiction FROM blade_user WHERE hold=1 GROUP BY jurisdiction ) C ON A.jurisdiction=C.jurisdiction
|
WHERE A.jurisdiction=#{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>
|
|
|
<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>
|
|
</mapper>
|