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/comp/CompMapper.xml

250 lines
8.4 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.comp.CompMapper">
<resultMap id="BaseResultMap" type="com.engine.organization.entity.company.po.CompPO">
<result column="id" property="id"/>
<result column="subCompanyName" property="subCompanyName"/>
<result column="subCompanyDesc" property="subCompanyDesc"/>
<result column="companyId" property="companyId"/>
<result column="supSubComId" property="supSubComId"/>
<result column="url" property="url"/>
<result column="canceled" property="canceled"/>
<result column="subCompanyCode" property="subCompanyCode"/>
<result column="outKey" property="outKey"/>
<result column="limitUsers" property="limitUsers"/>
<result column="uuid" property="uuid"/>
<result column="showOrder" property="showOrder"/>
<result column="showOrderOfTree" property="showOrderOfTree"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
, t.subCompanyName
, t.subCompanyDesc
, t.companyId
, t.supSubComId
, t.url
, t.canceled
, t.subCompanyCode
, t.outKey
, t.limitUsers
, t.uuid
, t.showOrder
, t.showOrderOfTree
</sql>
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
hrmsubcompany t
order by ${orderSql}
</select>
<select id="listByFilter" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
hrmsubcompany t
WHERE 1=1
<include refid="likeSQL"/>
<if test=" CompanyPO.supSubComId != null ">
and t.supSubComId = #{CompanyPO.supSubComId}
</if>
<if test=" CompanyPO.canceled != null ">
<include refid="isCanceled"/>
</if>
order by ${orderSql}
</select>
<select id="listUsedId" resultType="java.lang.String">
select SUBCOMPANYID1
from hrmdepartment
union
select ec_company
from JCL_ORG_JOB
where delete_type = 0
union
select ec_company
from JCL_ORG_STAFF
where delete_type = 0
</select>
<select id="listUsedIds" resultType="java.lang.String">
select ec_company
from JCL_ORG_STAFFPLAN
where delete_type = 0
union
select ec_rolelevel
from jcl_org_detach
where delete_type = 0
</select>
<select id="listChild" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
hrmsubcompany t
WHERE supsubcomid IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</select>
<select id="listById" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
hrmsubcompany t
WHERE id = #{id}
</select>
<select id="getCompsByIds" resultMap="BaseResultMap">
select
<include refid="baseColumns"/>
from hrmsubcompany t
WHERE (t.canceled is null or t.canceled != '1') and id IN
<foreach collection="ids" index="index" open="(" item="id" separator="," close=")">
<if test="(index % 999) == 998"> NULL) OR id IN(</if>#{id}
</foreach>
</select>
<select id="listParent" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
hrmsubcompany t
WHERE t.SUPSUBCOMID = 0 and (t.canceled is null or t.canceled != '1')
</select>
<select id="hasSubs" resultType="java.lang.String">
select supsubcomid
from hrmsubcompany
where (canceled is null or canceled != '1')
<include refid="subsWhere"/>
union
select subcompanyid1
from hrmdepartment
where (canceled is null or canceled != '1')
<include refid="subsWhere"/>
</select>
<select id="hasDetachSubs" resultType="java.lang.String">
select supsubcomid
from hrmsubcompany
where (canceled is null or canceled != '1')
<include refid="subsWhere"/>
and id in
<foreach collection="companyIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
union
select subcompanyid1
from hrmdepartment
where (canceled is null or canceled != '1')
<include refid="subsWhere"/>
and subcompanyid1 in
<foreach collection="companyIds" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</select>
<select id="getIdByNameAndPid" resultType="java.lang.Integer">
select id
from hrmsubcompany
where subcompanyname = #{subCompanyName}
and supsubcomid = #{supSubComId}
</select>
<select id="getMaxShowOrder" resultType="java.lang.Integer">
select max(showorder)
from hrmsubcompany
</select>
<select id="getIdBySubCompanyCode" resultType="java.lang.Integer">
select id
from hrmsubcompany
where subcompanycode = #{subCompanyCode}
</select>
<sql id="likeSQL">
<if test=" CompanyPO.subCompanyCode != null and CompanyPO.subCompanyCode != '' ">
and t.subCompanyCode like CONCAT('%',#{CompanyPO.subCompanyCode},'%')
</if>
<if test=" CompanyPO.subCompanyDesc != null and CompanyPO.subCompanyDesc != '' ">
and t.subCompanyDesc like CONCAT('%',#{CompanyPO.subCompanyDesc},'%')
</if>
<if test=" CompanyPO.subCompanyName != null and CompanyPO.subCompanyName != '' ">
and t.subCompanyName like CONCAT('%',#{CompanyPO.subCompanyName},'%')
</if>
</sql>
<sql id="likeSQL" databaseId="oracle">
<if test=" CompanyPO.subCompanyCode != null and CompanyPO.subCompanyCode != '' ">
and t.subCompanyCode like '%'||#{CompanyPO.subCompanyCode}||'%'
</if>
<if test=" CompanyPO.subCompanyDesc != null and CompanyPO.subCompanyDesc != '' ">
and t.subCompanyDesc like '%'||#{CompanyPO.subCompanyDesc}||'%'
</if>
<if test=" CompanyPO.subCompanyName != null and CompanyPO.subCompanyName != '' ">
and t.subCompanyName like '%'||#{CompanyPO.subCompanyName}||'%'
</if>
</sql>
<sql id="likeSQL" databaseId="postgresql">
<if test=" CompanyPO.subCompanyCode != null and CompanyPO.subCompanyCode != '' ">
and t.subCompanyCode like '%'||#{CompanyPO.subCompanyCode}||'%'
</if>
<if test=" CompanyPO.subCompanyDesc != null and CompanyPO.subCompanyDesc != '' ">
and t.subCompanyDesc like '%'||#{CompanyPO.subCompanyDesc}||'%'
</if>
<if test=" CompanyPO.subCompanyName != null and CompanyPO.subCompanyName != '' ">
and t.subCompanyName like '%'||#{CompanyPO.subCompanyName}||'%'
</if>
</sql>
<sql id="likeSQL" databaseId="sqlserver">
<if test=" CompanyPO.subCompanyCode != null and CompanyPO.subCompanyCode != '' ">
and t.subCompanyCode like '%'+#{CompanyPO.subCompanyCode}+'%'
</if>
<if test=" CompanyPO.subCompanyDesc != null and CompanyPO.subCompanyDesc != '' ">
and t.subCompanyDesc like '%'+#{CompanyPO.subCompanyDesc}+'%'
</if>
<if test=" CompanyPO.subCompanyName != null and CompanyPO.subCompanyName != '' ">
and t.subCompanyName like '%'+#{CompanyPO.subCompanyName}+'%'
</if>
</sql>
<sql id="subsWhere">
and ifnull(canceled,0)=0
</sql>
<sql id="subsWhere" databaseId="oracle">
and nvl(canceled,0)=0
</sql>
<sql id="subsWhere" databaseId="sqlserver">
and isnull(canceled,0)=0
</sql>
<sql id="subsWhere" databaseId="postgresql">
and COALESCE(canceled,'0')='0'
</sql>
<sql id="isCanceled">
and ifnull(canceled,0)=
#{CompanyPO.canceled}
</sql>
<sql id="isCanceled" databaseId="oracle">
and nvl(canceled,0)=
#{CompanyPO.canceled}
</sql>
<sql id="isCanceled" databaseId="sqlserver">
and isnull(canceled,0)=
#{CompanyPO.canceled}
</sql>
<sql id="isCanceled" databaseId="postgresql">
and COALESCE(canceled,'0')=
#{CompanyPO.canceled}
</sql>
</mapper>