Files
foton-slrs-system-rest/adc-da-slrs/src/main/resources/mybatis/mapper/sarInstitution/TsInstitutionMapper.xml
T

171 lines
7.7 KiB
XML

<?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="com.adc.da.slrs.sarInstitution.dao.TsInstitutionDao">
<resultMap id="InstitutionAndUser" type="com.adc.da.slrs.sarInstitution.entity.TsInstitution">
<id column="id" property="id"/>
<result column="parent_id" property="parentId"/>
<result column="level" property="level"/>
<result column="name" property="name"/>
<result column="has_child" property="hasChild"/>
<collection property="users" ofType="com.adc.da.slrs.sarInstitution.entity.TsUserVO">
<result column="usid" property="id"/>
<result column="account" property="account"/>
<result column="uname" property="name"/>
<result column="institution_id" property="institutionId"/>
</collection>
</resultMap>
<resultMap id="TsInstitution" type="com.adc.da.slrs.sarInstitution.entity.TsInstitution">
<result column="parent_id" property="parentId"/>
<result column="level" property="level"/>
<result column="name" property="name"/>
<result column="has_child" property="hasChild"/>
</resultMap>
<resultMap id="TreeVoMap" type="com.adc.da.slrs.sarInstitution.entity.TreeVo">
<result column="USID" property="id"/>
<result column="INSTITUTION_ID" property="parentId"/>
<result column="UNAME" property="name"/>
</resultMap>
<resultMap id="TreeVoMap2" type="com.adc.da.slrs.sarInstitution.entity.TreeVo">
<result column="id" property="id"/>
<result column="name" property="name"/>
</resultMap>
<resultMap id="TsUser" type="com.adc.da.slrs.sarInstitution.entity.TsUserVO">
<result column="usid" property="id"/>
<result column="account" property="account"/>
<result column="uname" property="name"/>
<result column="institution_id" property="institutionId"/>
</resultMap>
<!-- 只查询这个部门下的子一级部门-->
<select id="selectNextInstitution" resultMap="TsInstitution">
select * from ts_institution
WHERE parent_id=#{institutionId}
</select>
<select id="selectPreviousInstitution" resultMap="TsUser">
select * from ts_user
<where>
<if test="userName != null and userName != '' ">
( ts_user.ACCOUNT like concat(concat('%',#{userName}),'%') or ts_user.UNAME like concat(concat('%',#{userName}),'%') )
</if>
</where>
</select>
<select id="selectInstitution" resultType="com.adc.da.slrs.sarInstitution.entity.TsInstitution">
select * from ts_institution
WHERE
id IN
<foreach collection="pId" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="selectNextUsers" resultMap="TsUser">
select ts_user.EMAIL,ts_user.ACCOUNT,ts_user.CREATION_TIME,ts_user.DISABLE_FLAG,ts_user.EXT_INFO,ts_user.USID,
ts_user.INSTITUTION_ID,t2.name as INSTITUTION_NAME,ts_user.MODIFY_TIME,ts_user.OPER_USER,ts_user.PASSWORD,ts_user.PHONE,
ts_user.POSITION_ID,ts_user.POSITION_NAME,ts_user.SEX,ts_user.SSO_ID,ts_user.STATE,ts_user.UNLOCK_FLAG,ts_user.USER_SOURCE,
ts_user.USER_TYPE,ts_user.VALID_FLAG,ts_user.WORK_NUM,concat(ts_user.UNAME,concat(concat("(",ts_user.ACCOUNT),")")) as uname,
ts_institution.name as unit,ts_institution.id as unitId
from ts_user
left join ts_institution ON ts_institution.id = (SELECT parent_id from ts_institution WHERE id = ts_user.INSTITUTION_ID)
left join ts_institution t2 on t2.id=ts_user.INSTITUTION_ID
WHERE 1=1
<if test="institutionIds != null and institutionIds.size()> 0 ">
and ts_user.INSTITUTION_ID in
<foreach collection="institutionIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
order by ts_institution.id
</select>
<!-- 查询当前用户上几级部门-->
<select id="selectNowInst" resultMap="TsInstitution">
SELECT * from ts_institution where FIND_IN_SET(id,queryChildrenInstitution(#{institutionId},#{topNum}));
</select>
<!-- 只查询这个部门下的子一级人员-->
<select id="selectNextUser" resultMap="TsUser">
select ts_user.EMAIL,ts_user.ACCOUNT,ts_user.CREATION_TIME,ts_user.DISABLE_FLAG,ts_user.EXT_INFO,ts_user.USID,
ts_user.INSTITUTION_ID,t2.name as INSTITUTION_NAME,ts_user.MODIFY_TIME,ts_user.OPER_USER,ts_user.PASSWORD,ts_user.PHONE,
ts_user.POSITION_ID,ts_user.POSITION_NAME,ts_user.SEX,ts_user.SSO_ID,ts_user.STATE,ts_user.UNLOCK_FLAG,ts_user.USER_SOURCE,
ts_user.USER_TYPE,ts_user.VALID_FLAG,ts_user.WORK_NUM,concat(ts_user.UNAME,concat(concat("(",ts_user.ACCOUNT),")")) as uname,
ts_institution.name as unit,ts_institution.id as unitId
from ts_user
left join ts_institution ON ts_institution.id = (SELECT parent_id from ts_institution WHERE id = ts_user.INSTITUTION_ID)
left join ts_institution t2 on t2.id=ts_user.INSTITUTION_ID
WHERE institution_id=#{institutionId}
<if test="userName != null and userName != '' ">
and ( ts_user.ACCOUNT like concat(concat('%',#{userName}),'%') or ts_user.UNAME like concat(concat('%',#{userName}),'%') )
</if>
</select>
<select id="selectNextUserByIds" resultMap="TsUser">
select ts_user.EMAIL,ts_user.ACCOUNT,ts_user.CREATION_TIME,ts_user.DISABLE_FLAG,ts_user.EXT_INFO,ts_user.USID,
ts_user.INSTITUTION_ID,ts_institution.name as INSTITUTION_NAME,ts_user.MODIFY_TIME,ts_user.OPER_USER,ts_user.PASSWORD,ts_user.PHONE,
ts_user.POSITION_ID,ts_user.POSITION_NAME,ts_user.SEX,ts_user.SSO_ID,ts_user.STATE,ts_user.UNLOCK_FLAG,ts_user.USER_SOURCE,
ts_user.USER_TYPE,ts_user.VALID_FLAG,ts_user.WORK_NUM,concat(ts_user.UNAME,concat(concat("(",ts_user.ACCOUNT),")")) as uname
from ts_user
left join ts_institution on ts_user.INSTITUTION_ID=ts_institution.id
WHERE 1=1
<if test="ids != null and ids.size()> 0 ">
and ts_user.USID in
<foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select>
<select id="selectTreeByIds" resultMap="TsInstitution">
<foreach collection="rootIds" item="id">
SELECT
*
FROM
ts_institution
WHERE
FIND_IN_SET(
id,
GET_PARENT_NODE (#{id})
);
</foreach>
</select>
<select id="selectRootAndUser" resultMap="InstitutionAndUser">
select i.*,u.usid,u.account,u.uname,u.institution_id from ts_institution i
left join ts_user u
on i.id=u.institution_id
<if test="userName == null">
where i.parent_id not in (select id from ts_institution) order by i.name
</if>
<if test="userName != null">
where u.uname like concat('%','${userName}','%') or u.account like concat('%','${userName}','%')
</if>
</select>
<select id="selectAndUserByParent" resultMap="InstitutionAndUser">
select i.*,u.usid,u.account,u.uname,u.institution_id from ts_institution i
left join ts_user u
on i.id=u.institution_id
where i.parent_id = #{parentId}
</select>
<insert id="batchInsert">
insert into ts_institution (id,name,parent_id) values
<foreach collection="list" item="institution" separator=",">
( #{institution.id},#{institution.name},#{institution.parentId} )
</foreach>
</insert>
<delete id="clearData">
delete from ts_institution
</delete>
</mapper>