You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
weaver-hrm-organization/src/com/engine/organization/mapper/department/DepartmentMapper.xml

239 lines
8.6 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.engine.organization.mapper.department.DepartmentMapper">
<resultMap id="BaseResultMap" type="com.engine.organization.entity.department.po.DepartmentPO">
<result column="id" property="id"/>
<result column="departmentMark" property="departmentMark"/>
<result column="departmentName" property="departmentName"/>
<result column="subCompanyId1" property="subCompanyId1"/>
<result column="supDepId" property="supDepId"/>
<result column="allSupDepId" property="allSupDepId"/>
<result column="canceled" property="canceled"/>
<result column="departmentCode" property="departmentCode"/>
<result column="coadjutant" property="coadjutant"/>
<result column="showOrder" property="showOrder"/>
<result column="showOrderOfTree" property="showOrderOfTree"/>
<result column="uuid" property="uuid"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
,
t.departmentMark,
t.departmentName,
t.subCompanyId1,
t.supDepId,
t.allSupDepId,
t.canceled,
t.departmentCode,
t.coadjutant,
t.showOrder,
t.showOrderOfTree,
t.uuid
</sql>
<select id="getDeptListByPId" resultType="com.engine.organization.entity.department.po.DepartmentPO">
select
<include refid="baseColumns"/>
from hrmdepartment t
where supDepId = #{PId}
</select>
<select id="getDeptNameById" resultType="string">
select t.departmentName
from hrmdepartment t
where id = #{id}
</select>
<select id="listByFilter" parameterType="com.engine.organization.entity.department.po.DepartmentPO"
resultMap="BaseResultMap">
select
<include refid="baseColumns"/>
from hrmdepartment t
where (t.canceled is null or t.canceled != '1')
<include refid="likeSQL"/>
<if test=" departmentPO.subCompanyId1 != null ">
and t.subCompanyId1 = #{departmentPO.subCompanyId1}
</if>
<if test=" departmentPO.supDepId != null ">
and t.supDepId = #{departmentPO.supDepId}
</if>
<if test=" departmentPO.departmentId != null ">
and t.id = #{departmentPO.departmentId}
</if>
<include refid="isCanceled"/>
order by ${orderSql}
</select>
<select id="listByFilterAll" parameterType="com.engine.organization.entity.department.po.DepartmentPO"
resultMap="BaseResultMap">
select
<include refid="baseColumns"/>
from hrmdepartment t
where 1=1
<include refid="likeSQL"/>
<if test=" departmentPO.subCompanyId1 != null ">
and t.subCompanyId1 = #{departmentPO.subCompanyId1}
</if>
<if test=" departmentPO.supDepId != null ">
and t.supDepId = #{departmentPO.supDepId}
</if>
<if test=" departmentPO.departmentId != null ">
and t.id = #{departmentPO.departmentId}
</if>
<include refid="isCanceled"/>
order by ${orderSql}
</select>
<select id="getDeptById" resultMap="BaseResultMap">
select
<include refid="baseColumns"/>
from hrmdepartment t
where id = #{id}
</select>
<select id="listDeptsByIds" resultType="java.util.Map">
select
id as "id",
departmentMark as "name"
from hrmdepartment t
WHERE id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</select>
<select id="listAll" resultType="com.engine.organization.entity.department.po.DepartmentPO">
SELECT
<include refid="baseColumns"/>
FROM hrmdepartment t order by ${orderSql}
</select>
<select id="listByNo" resultType="com.engine.organization.entity.department.po.DepartmentPO">
select
<include refid="baseColumns"/>
from hrmdepartment t where departmentCode = #{departmentCode}
</select>
<select id="listUsedId" resultType="java.lang.String">
select ec_department
from JCL_ORG_JOB
where delete_type = 0
union
select dept_id
from JCL_ORG_STAFF
where delete_type = 0
union
select departmentid
from hrmresource
</select>
<select id="getDeptsByIds" resultMap="BaseResultMap">
select
<include refid="baseColumns"/>
from hrmdepartment t
where id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</select>
<select id="getMaxShowOrder" resultType="java.lang.Double">
select max(showOrder)
from hrmdepartment
</select>
<select id="getIdByNameAndPid" resultType="java.lang.Integer">
select id
from hrmdepartment
where departmentmark = #{departmentName}
and subCompanyId1 = #{subCompanyId1}
and supDepId = #{supDepId}
</select>
<select id="checkRepeatNo" resultType="java.lang.Integer">
select count(1)
from hrmdepartment t
where departmentCode = #{departmentCode}
<if test=" id != null ">
and t.id != #{id}
</if>
</select>
<select id="hasSubs" resultType="java.lang.String">
select distinct supDepId
from hrmdepartment
where (canceled is null or canceled != '1')
<include refid="com.engine.organization.mapper.comp.CompMapper.subsWhere"/>
</select>
<select id="countUsedInJob" resultType="java.lang.Integer">
select count(1)
from jcl_org_job
where forbidden_tag = 0
and delete_type = 0
and parent_dept = #{supDepId}
</select>
<select id="getIdByDepartmentCode" resultType="java.lang.String">
select id
from hrmdepartment
where departmentcode = #{departmentCode}
</select>
<select id="getDepartmentPrincipal" resultType="java.lang.String">
select bmfzr
from hrmdepartmentdefined
where deptid = #{deptId}
</select>
<sql id="likeSQL">
<if test=" departmentPO.departmentCode != null and departmentPO.departmentCode != '' ">
and t.departmentCode like CONCAT('%',#{departmentPO.departmentCode},'%')
</if>
<if test=" departmentPO.departmentName != null and departmentPO.departmentName != '' ">
and t.departmentName like CONCAT('%',#{departmentPO.departmentName},'%')
</if>
</sql>
<sql id="likeSQL" databaseId="oracle">
<if test=" departmentPO.departmentCode != null and departmentPO.departmentCode != '' ">
and t.departmentCode like '%'||#{departmentPO.departmentCode}||'%'
</if>
<if test=" departmentPO.departmentName != null and departmentPO.departmentName != '' ">
and t.departmentName like '%'||#{departmentPO.departmentName}||'%'
</if>
</sql>
<sql id="likeSQL" databaseId="postgresql">
<if test=" departmentPO.departmentCode != null and departmentPO.departmentCode != '' ">
and t.departmentCode like '%'||#{departmentPO.departmentCode}||'%'
</if>
<if test=" departmentPO.departmentName != null and departmentPO.departmentName != '' ">
and t.departmentName like '%'||#{departmentPO.departmentName}||'%'
</if>
</sql>
<sql id="likeSQL" databaseId="sqlserver">
<if test=" departmentPO.departmentCode != null and departmentPO.departmentCode != '' ">
and t.departmentCode like '%'+#{departmentPO.departmentCode}+'%'
</if>
<if test=" departmentPO.departmentName != null and departmentPO.departmentName != '' ">
and t.departmentName like '%'+#{departmentPO.departmentName}+'%'
</if>
</sql>
<sql id="isCanceled">
<if test=" departmentPO.canceled != null ">
and ifnull(canceled,0)= #{departmentPO.canceled}
</if>
</sql>
<sql id="isCanceled" databaseId="oracle">
<if test=" departmentPO.canceled != null">
and nvl(canceled,0)= #{departmentPO.canceled}
</if>
</sql>
<sql id="isCanceled" databaseId="sqlserver">
<if test=" departmentPO.canceled != null">
and isnull(canceled,0)= #{departmentPO.canceled}
</if>
</sql>
<sql id="isCanceled" databaseId="postgresql">
<if test=" departmentPO.canceled != null">
and COALESCE(canceled,'0')= #{departmentPO.canceled}
</if>
</sql>
</mapper>