FAISP/src/main/resources/mybatisMapper/PlanMapper.xml

95 lines
3.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.dbnt.faisp.main.fpiMgt.affairPlan.mapper.PlanMapper">
<sql id="selectPlanBoardListWhere">
<where>
plan_state &lt;> 'DST008'
<if test='wrtUserSeq != null and wrtUserSeq != ""'>
and a.wrt_user_seq = #{wrtUserSeq}
</if>
<if test='wrtUserNm != null and wrtUserNm != ""'>
and a.wrt_user_nm like '%'||#{wrtUserNm}||'%'
</if>
<if test='wrtOrgan != null and wrtOrgan != ""'>
and a.wrt_organ = #{wrtOrgan}
</if>
<if test='contentTitle != null and contentTitle != ""'>
and a.content_title like '%'||#{contentTitle}||'%'
</if>
<if test='planState != null and planState != ""'>
and a.plan_state = #{planState}
</if>
<if test='dateSelector == "planDt"'>
<if test='startDate != null and startDate != ""'>
and a.plan_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and a.plan_dt &lt;= #{endDate}::date+1
</if>
</if>
<if test='dateSelector == "wrtDt"'>
<if test='startDate != null and startDate != ""'>
and a.wrt_dt >= #{startDate}::date
</if>
<if test='endDate != null and endDate != ""'>
and a.wrt_dt &lt;= #{endDate}::date+1
</if>
</if>
<if test="downOrganCdList != null">
and a.wrt_organ in
<foreach collection="downOrganCdList" item="organCd" separator="," open="(" close=")">
#{organCd}
</foreach>
</if>
<if test='userType != null and userType != ""'>
<if test='userType == "normalStayList"'>
and a.plan_state in ('DST002', 'DST004')
</if>
<if test='userType == "normalCommitList"'>
and a.plan_state in ('DST003', 'DST005', 'DST006')
</if>
<if test='userType == "sectionCommitList"'>
and a.plan_state in ('DST003', 'DST004', 'DST005', 'DST006')
</if>
<if test='userType == "headCommitList"'>
and a.plan_state in ('DST003', 'DST005', 'DST006')
</if>
<if test='userType == "managerStayList"'>
and a.plan_state in ('DST002', 'DST004')
</if>
<if test='userType == "managerCommitList"'>
and a.plan_state in ('DST003', 'DST005', 'DST006')
</if>
</if>
</where>
</sql>
<select id="selectPlanBoardList" resultType="PlanBoard" parameterType="PlanBoard">
select a.plan_key,
a.content_title,
a.plan_state,
a.plan_dt,
a.wrt_organ,
a.wrt_part,
a.wrt_user_nm,
a.wrt_user_seq,
a.wrt_dt,
b.fileCnt
from plan_board a
left outer join (select plan_key,
count(file_seq) as fileCnt
from plan_file
group by plan_key) b
on a.plan_key = b.plan_key
<include refid="selectPlanBoardListWhere"></include>
order by plan_key desc
limit #{rowCnt} offset #{firstIndex}
</select>
<select id="selectPlanBoardListCnt" resultType="int" parameterType="PlanBoard">
select count(*)
from plan_board a
<include refid="selectPlanBoardListWhere"></include>
</select>
</mapper>