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.

107 lines
4.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="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,
impltTaskSe.CD_NM as IMPLT_TASK_SE_CD_NM,
ru.USER_NM AS RGTR_NM, /* 등록자 명 */
mu.USER_NM AS MDFR_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
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>
ORDER BY CRDN_NO ASC
</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'
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>
</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,
actTypeCd.CD_NM AS ACT_TYPE_CD_NM,
sggCd.CD_NM as SGG_CD_NM
FROM TB_IMPLT_TRPR_INFO iti
-- 코드성 데이터 조인
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 actTypeCd ON actTypeCd.CD_GROUP_ID = 'ACT_TYPE_CD' AND actTypeCd.CD_ID = iti.ACT_NO
LEFT JOIN tb_cd_detail sggCd ON sggCd.CD_GROUP_ID = 'SGG_CD' AND sggCd.CD_ID = iti.SGG_CD
WHERE iti.IMPLT_INFO_ID = #{schImpltInfoId}
AND iti.DEL_YN = 'N'
ORDER BY iti.IMPLT_TRPR_SE_CD, iti.IMPLT_TRPR_FLNM
</select>
</mapper>