hn-cloud/bonus-modules/bonus-ldlz/src/main/resources/mapper/PerformLogMapper.xml

144 lines
6.8 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.bonus.ldlz.mapper.PerformLogMapper">
<resultMap type="com.bonus.ldlz.domain.bo.PerformLogBo" id="PerformLogResult">
<result property="id" column="id" />
<result property="deptId" column="dept_id" />
<result property="postName" column="post_name" />
<result property="nickName" column="nick_name" />
<result property="isLeader" column="is_leader" />
<result property="leaderType" column="leader_type" />
<result property="xclzNum" column="xclz_num" />
<result property="xclzUnitType" column="xclz_unit_type" />
<result property="bzlzNum" column="bzlz_num" />
<result property="bzlzUnitType" column="bzlz_unit_type" />
<result property="monthXclzDays" column="month_xclz_days" />
<result property="monthBzlzDays" column="month_bzlz_days" />
<result property="yyyymm" column="yyyymm" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="status" column="status" />
<result property="statusName" column="status_name" />
<result property="leaveCnt" column="leave_cnt" />
</resultMap>
<sql id="selectPerformPostSetVo">
select id, dept_id, xclz_num, xclz_unit_type, bzlz_num, bzlz_unit_type, yyyymm, create_by, create_time, update_by, update_time, remark from perform_post_set
</sql>
<select id="selectPerformLogList" parameterType="com.bonus.ldlz.domain.bo.PerformLogBo" resultMap="PerformLogResult">
SELECT distinct
user_set.id,
dept.dept_id,
concat(deptParent.dept_name,'/',dept.dept_name) as post_name,
deptParent.dept_name as post_parent_name,
dept.leader as leader_type,
u.user_id,
u.nick_name,
CONCAT(user_set.xclz_num,user_set.xclz_unit_type) as month_xclz_days,
CONCAT(user_set.bzlz_num,user_set.bzlz_unit_type) as month_bzlz_days,
ifnull(user_set.yyyymm,pps.yyyymm) yyyymm,
user_set.remark,
1 as status,
'未完成' as status_name,
3 as leave_cnt,
u.is_leader
FROM
sys_user as u
LEFT JOIN perform_user_set user_set ON u.user_id = user_set.user_id
<if test="yyyymm != null and yyyymm != ''">
AND user_set.yyyymm = #{yyyymm}
</if>
<if test="yyyyMMStart != null ">
and user_set.yyyymm &gt;= #{yyyyMMStart}
</if>
<if test="yyyyMMEnd != null ">
and user_set.yyyymm &lt;= #{yyyyMMEnd}
</if>
<!--left join ldlz_user_post up on u.user_id=up.user_id
left join sys_dept dept on up.post_id=dept.dept_id-->
left join sys_dept dept on u.dept_id=dept.dept_id
left join sys_dept deptParent on dept.parent_id=deptParent.dept_id
left join perform_post_set pps on dept.dept_id = pps.dept_id
<if test="yyyymm != null and yyyymm != ''">
AND pps.yyyymm = #{yyyymm}
</if>
<if test="yyyyMMStart != null ">
and pps.yyyymm &gt;= #{yyyyMMStart}
</if>
<if test="yyyyMMEnd != null ">
and pps.yyyymm &lt;= #{yyyyMMEnd}
</if>
WHERE
dept.dept_type = '1' and (user_set.yyyymm is not null or pps.yyyymm is not null)
<if test="searchValue != null and searchValue != ''">
and (dept.dept_name like CONCAT('%',#{searchValue},'%')
or deptParent.dept_name like CONCAT('%',#{searchValue},'%')
or dept.leader like CONCAT('%',#{searchValue},'%')
or u.nick_name like CONCAT('%',#{searchValue},'%')
)
</if>
<if test="isLeader != null and isLeader != ''">
AND u.is_leader = #{isLeader}
</if>
<!--<if test="yyyymm != null and yyyymm != ''">-->
<!-- AND (user_set.yyyymm = #{yyyymm} or pps.yyyymm = #{yyyymm})-->
<!--</if>-->
<!--<if test="yyyyMMStart != null and yyyyMMEnd != null">-->
<!-- AND (-->
<!-- (user_set.yyyymm &gt;= #{yyyyMMStart} and user_set.yyyymm &lt;= #{yyyyMMEnd})-->
<!-- )-->
<!--</if>-->
<!--<if test="yyyyMMStart != null ">-->
<!-- and (user_set.yyyymm &gt;= #{yyyyMMStart} or pps.yyyymm &gt;= #{yyyyMMStart})-->
<!--</if>-->
<!--<if test="yyyyMMEnd != null ">-->
<!-- and (user_set.yyyymm &lt;= #{yyyyMMEnd} or pps.yyyymm &lt;= #{yyyyMMEnd})-->
<!--</if>-->
<if test="nickName != null ">
and u.nick_name like concat('%',#{yyyyMMEnd},'%')
</if>
<!-- 数据范围过滤 -->
${params.dataScope}
order by ifnull(user_set.yyyymm,pps.yyyymm) desc, dept.dept_id, u.user_id
</select>
<select id="selectPerformLogList2" parameterType="com.bonus.ldlz.domain.bo.PerformLogBo" resultMap="PerformLogResult">
SELECT
post_set.id,
concat(deptParent.dept_name,'/',dept.dept_name) as post_name,
deptParent.dept_name as post_parent_name,
dept.leader as leader_type,
dept.dept_id,
<!-- post_set.xclz_num,-->
<!-- post_set.xclz_unit_type,-->
<!-- post_set.bzlz_num,-->
<!-- post_set.bzlz_unit_type,-->
CONCAT(post_set.xclz_num,post_set.xclz_unit_type) as month_xclz_days,
CONCAT(post_set.bzlz_num,post_set.bzlz_unit_type) as month_bzlz_days,
post_set.yyyymm,
1 as status,
'未完成' as status_name,
3 as leave_cnt
FROM
sys_dept dept
LEFT JOIN perform_post_set post_set ON post_set.yyyymm = #{yyyymm} AND dept.dept_id = post_set.dept_id
left join sys_dept deptParent on dept.parent_id = deptParent.dept_id
WHERE
dept.dept_type = '1'
<if test="searchValue != null and searchValue != ''">
and (dept.dept_name like CONCAT('%',#{searchValue},'%')
or dept.leader like CONCAT('%',#{searchValue},'%')
)
</if>
</select>
</mapper>