<?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>
|
<if test="param3.showWg != null and param3.showWg != ''">
|
and dept.dept_name not LIKE '第%网格'
|
</if>
|
ORDER BY dept.sort
|
</select>
|
|
<select id="tree" resultMap="treeNodeResultMap">
|
|
<if test="param2!=null">
|
SELECT
|
id,
|
dept_name AS title,
|
id AS "value",
|
id AS "key",
|
parent_id
|
FROM
|
( SELECT * FROM blade_dept WHERE is_deleted = 0 AND tenant_id = #{param1} ORDER BY parent_id, id )
|
org_query,
|
( SELECT @id := #{param2} ) initialisation
|
WHERE
|
(FIND_IN_SET( parent_id, @id ) > 0 or FIND_IN_SET( id, @id ) > 0)
|
AND @id := CONCAT(@id,',',id) ORDER BY sort
|
</if>
|
|
<if test="param2==null">
|
select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0
|
<if test="param1!=null and param1!=''">
|
and tenant_id = #{param1}
|
</if>
|
ORDER BY sort
|
</if>
|
|
</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>
|
<if test="param2!=null and param2!=''">
|
and dept.parent_id = #{param2}
|
</if>
|
AND dept.is_deleted = 0
|
<if test="param1!=null and param1!=''">
|
and dept.tenant_id = #{param1}
|
</if>
|
</where>
|
ORDER BY dept.sort
|
</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="getDeptById" resultType="org.springblade.modules.system.vo.DeptVO">
|
select c.*,p.dept_name as parentName from blade_dept c
|
left join blade_dept p on c.parent_id = p.id and p.is_deleted = 0
|
where c.is_deleted = 0
|
and c.id = #{id}
|
</select>
|
|
|
<select id="getDeptMap" 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
|
<if test="treeNode.id!=null and treeNode.id!=''">
|
and dept.id = #{treeNode.id}
|
</if>
|
</select>
|
|
<!--查询组织机构树数据(下级包含人员信息)(排除组织机构对应不上的人员)-->
|
<select id="getUserMap" 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="treeNode.id!=null and treeNode.id!=''">
|
and bu.dept_id like concat(concat('%',#{treeNode.id}),'%')
|
</if>
|
</select>
|
|
<!--查询网格对应的机构信息(包含父级机构名称)-->
|
<select id="getGridDeptAndParentList" resultType="org.springblade.modules.system.vo.DeptVO">
|
select bd.*,bd1.dept_name as parentName from blade_dept bd
|
left join blade_dept bd1 on bd.parent_id = bd1.id
|
where bd.dept_name like '%网格%'
|
</select>
|
|
<!--查询对应的派出所-->
|
<select id="getDeptByDeptIds" resultType="org.springblade.modules.system.entity.Dept">
|
select * from blade_dept
|
where is_deleted = 0
|
and locate(id,#{deptId})>0
|
and dept_name like '%派出所%'
|
</select>
|
|
</mapper>
|