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.

130 lines
5.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="go.kr.project.noti.mapper.NotiMapper">
<!-- ==================== 이행정보(TB_IMPLT_INFO) 관련 쿼리 ==================== -->
<!-- 이행정보 조회 -->
<select id="selectImpltInfoList" parameterType="NotiImpltInfoVO" resultType="NotiImpltInfoVO">
SELECT
ii.IMPLT_INFO_ID,
ii.SGG_CD,
ii.CRDN_YR,
ii.CRDN_NO,
ii.IMPLT_TASK_SE_CD,
ii.IMPLT_BGNG_YMD,
ii.IMPLT_END_YMD,
ii.REG_DT,
ii.RGTR,
ii.MDFCN_DT,
ii.MDFR,
ii.DEL_YN,
ii.DEL_DT,
ii.DLTR,
-- 단속 정보 (조인)
c.DSCL_YMD,
c.EXMNR,
c.RGN_SE_CD,
rgnSeCd.CD_NM as RGN_SE_CD_NM,
p.STDG_EMD_CD,
stdgEmdCd.CD_NM as STDG_EMD_CD_NM,
p.LOTNO_ADDR,
p.LOTNO_MNO,
p.LOTNO_SNO,
p.LOTNO_WHOL_ADDR,
impltTaskSe.CD_NM as IMPLT_TASK_SE_CD_NM,
ru.USER_NM AS RGTR_NM, /* 등록자 명 */
mu.USER_NM AS MDFR_NM, /* 수정자 명 */
a.ACT_NO,
a.ACT_TYPE_CD,
act.VLTN_BDST AS ACT_TYPE_CD_NM,
a.USG_IDX_CD,
usg.USG_NM AS USG_IDX_CD_NM
FROM TB_IMPLT_INFO ii
INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N'
LEFT JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N'
-- 코드성 데이터 조인
LEFT JOIN tb_cd_detail impltTaskSe ON impltTaskSe.CD_GROUP_ID = 'IMPLT_TASK_SE_CD' AND impltTaskSe.CD_ID = ii.IMPLT_TASK_SE_CD
LEFT JOIN tb_cd_detail stdgEmdCd ON stdgEmdCd.CD_GROUP_ID = 'STDG_EMD_CD' AND stdgEmdCd.CD_ID = p.STDG_EMD_CD
LEFT JOIN tb_cd_detail rgnSeCd ON rgnSeCd.CD_GROUP_ID = 'RGN_SE_CD' AND rgnSeCd.CD_ID = c.RGN_SE_CD
LEFT JOIN tb_user ru ON ii.RGTR = ru.USER_ID
LEFT JOIN tb_user mu ON ii.MDFR = mu.USER_ID
LEFT JOIN tb_act_info a ON a.CRDN_YR = c.CRDN_YR and a.CRDN_NO = c.CRDN_NO AND a.DEL_YN = 'N'
LEFT JOIN tb_act_type act ON act.ACT_TYPE_CD = a.ACT_TYPE_CD
LEFT JOIN tb_usg_idx usg ON usg.USG_IDX_CD = a.USG_IDX_CD AND usg.DEL_YN = 'N'
WHERE ii.CRDN_YR = #{schCrdnYr}
AND ii.DEL_YN = 'N'
AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2}
<if test='schImpltTaskSeCd != null and schImpltTaskSeCd != ""'>
AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd}
</if>
<if test='schImpltTaskSeCd == null or schImpltTaskSeCd == ""'>
AND ii.IMPLT_TASK_SE_CD IN ('1', '2', '3')
</if>
ORDER BY ii.CRDN_NO DESC, a.ACT_NO ASC
<if test='pagingYn != null and pagingYn == "Y"'>
LIMIT #{startIndex}, #{perPage}
</if>
</select>
<!-- 이행정보 조회 -->
<select id="selectImpltInfoListTotalCount" parameterType="NotiImpltInfoVO" resultType="int">
SELECT Count(*)
FROM TB_IMPLT_INFO ii
INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N'
LEFT JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N'
LEFT JOIN tb_act_info a ON a.CRDN_YR = c.CRDN_YR and a.CRDN_NO = c.CRDN_NO AND a.DEL_YN = 'N'
WHERE ii.CRDN_YR = #{schCrdnYr}
AND ii.DEL_YN = 'N'
AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2}
<if test='schImpltTaskSeCd != null and schImpltTaskSeCd != ""'>
AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd}
</if>
<if test='schImpltTaskSeCd == null or schImpltTaskSeCd == ""'>
AND ii.IMPLT_TASK_SE_CD IN ('1', '2', '3')
</if>
</select>
<!-- ==================== 이행 대상자 정보(TB_IMPLT_TRPR_INFO) 관련 쿼리 ==================== -->
<!-- 이행 대상자 정보 목록 조회 -->
<select id="selectImpltTrprInfoList" parameterType="NotiImpltTrprInfoVO"
resultType="NotiImpltTrprInfoVO">
SELECT
iti.IMPLT_TRPR_INFO_ID,
iti.SGG_CD,
iti.IMPLT_INFO_ID,
iti.IMPLT_TRPR_FLNM,
iti.IMPLT_TRPR_ADDR,
iti.IMPLT_TRPR_DADDR,
iti.IMPLT_TRPR_ZIP,
iti.IMPLT_TRPR_SE_CD,
iti.OWNR_ACTR_INFO_ID,
iti.REG_DT,
iti.RGTR,
iti.MDFCN_DT,
iti.MDFR,
iti.DEL_YN,
iti.DEL_DT,
iti.DLTR,
iti.ACT_NO,
-- 코드성 데이터 조인 (코드명)
impltTrprSe.CD_NM as IMPLT_TRPR_SE_CD_NM,
sggCd.CD_NM as SGG_CD_NM,
a.ACT_TYPE_CD,
act.VLTN_BDST AS ACT_TYPE_CD_NM
FROM TB_IMPLT_TRPR_INFO iti
JOIN TB_IMPLT_INFO ii ON iti.IMPLT_INFO_ID = ii.IMPLT_INFO_ID AND ii.DEL_YN = 'N'
-- 코드성 데이터 조인
LEFT JOIN tb_cd_detail impltTrprSe ON impltTrprSe.CD_GROUP_ID = 'IMPLT_TRPR_SE_CD' AND impltTrprSe.CD_ID = iti.IMPLT_TRPR_SE_CD
LEFT JOIN tb_cd_detail sggCd ON sggCd.CD_GROUP_ID = 'SGG_CD' AND sggCd.CD_ID = iti.SGG_CD
LEFT JOIN tb_act_info a ON a.CRDN_YR = ii.CRDN_YR and a.CRDN_NO = ii.CRDN_NO AND a.ACT_NO = iti.ACT_NO AND a.DEL_YN = 'N'
LEFT JOIN tb_act_type act ON act.ACT_TYPE_CD = a.ACT_TYPE_CD
WHERE iti.IMPLT_INFO_ID = #{schImpltInfoId}
AND iti.ACT_NO = #{schActNo}
AND iti.DEL_YN = 'N'
ORDER BY iti.IMPLT_TRPR_SE_CD, iti.IMPLT_TRPR_FLNM
</select>
</mapper>