diff --git a/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml b/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml index cb51881..a8a56e4 100644 --- a/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml +++ b/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml @@ -189,11 +189,28 @@ impltTrprSe.CD_NM as IMPLT_TRPR_SE_CD_NM, sggCd.CD_NM as SGG_CD_NM FROM TB_IMPLT_TRPR_INFO iti + /* 중요로직: 메인 데이터 삭제 시 이행대상자가 조회되지 않도록 INNER JOIN 적용 */ + INNER JOIN TB_IMPLT_INFO ii ON iti.IMPLT_INFO_ID = ii.IMPLT_INFO_ID AND ii.DEL_YN = 'N' + INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N' + INNER JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N' + /* 중요로직: 조치처리상태 확인을 위한 행위정보 조인 - 미조치 건만 조회 */ + INNER JOIN ( + SELECT + CRDN_YR, + CRDN_NO, + COUNT(1) as ACT_ALL_CNT, + SUM(CASE WHEN ACTN_PRCS_STTS_CD = '3' THEN 1 ELSE 0 END) as ACT_COMPLT_CNT + FROM tb_act_info + WHERE DEL_YN = 'N' + GROUP BY CRDN_YR, CRDN_NO + ) act_cnt ON act_cnt.CRDN_YR = c.CRDN_YR AND act_cnt.CRDN_NO = c.CRDN_NO -- 코드성 데이터 조인 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 WHERE iti.IMPLT_INFO_ID = #{schImpltInfoId} AND iti.DEL_YN = 'N' + /* 중요로직: 조치처리상태가 미조치(1)인 건만 조회 - 행위정보가 있고 조치완료되지 않은 경우 */ + AND (IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 AND IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0)) group by 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 ORDER BY iti.IMPLT_TRPR_SE_CD, iti.IMPLT_TRPR_FLNM diff --git a/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml b/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml index 7f1e74c..4c9621d 100644 --- a/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml +++ b/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml @@ -56,9 +56,9 @@ AND oi2.DEL_YN = 'N') AS OWNR_FLNMS /* 소유자명 */ 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' + INNER 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 ( + INNER JOIN ( SELECT CRDN_YR, CRDN_NO, @@ -126,9 +126,9 @@ 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' + INNER 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 ( + INNER JOIN ( SELECT CRDN_YR, CRDN_NO, @@ -189,11 +189,28 @@ impltTrprSe.CD_NM as IMPLT_TRPR_SE_CD_NM, sggCd.CD_NM as SGG_CD_NM FROM TB_IMPLT_TRPR_INFO iti + /* 중요로직: 메인 데이터 삭제 시 이행대상자가 조회되지 않도록 INNER JOIN 적용 */ + INNER JOIN TB_IMPLT_INFO ii ON iti.IMPLT_INFO_ID = ii.IMPLT_INFO_ID AND ii.DEL_YN = 'N' + INNER JOIN tb_crdn c ON ii.CRDN_YR = c.CRDN_YR AND ii.CRDN_NO = c.CRDN_NO AND c.DEL_YN = 'N' + INNER JOIN tb_pstn_info p ON p.CRDN_YR = c.CRDN_YR AND p.CRDN_NO = c.CRDN_NO AND p.DEL_YN = 'N' + /* 중요로직: 조치처리상태 확인을 위한 행위정보 조인 - 미조치 건만 조회 */ + INNER JOIN ( + SELECT + CRDN_YR, + CRDN_NO, + COUNT(1) as ACT_ALL_CNT, + SUM(CASE WHEN ACTN_PRCS_STTS_CD = '3' THEN 1 ELSE 0 END) as ACT_COMPLT_CNT + FROM tb_act_info + WHERE DEL_YN = 'N' + GROUP BY CRDN_YR, CRDN_NO + ) act_cnt ON act_cnt.CRDN_YR = c.CRDN_YR AND act_cnt.CRDN_NO = c.CRDN_NO -- 코드성 데이터 조인 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 WHERE iti.IMPLT_INFO_ID = #{schImpltInfoId} AND iti.DEL_YN = 'N' + /* 중요로직: 조치처리상태가 미조치(1)인 건만 조회 - 행위정보가 있고 조치완료되지 않은 경우 */ + AND (IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 AND IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0)) group by 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 ORDER BY iti.IMPLT_TRPR_SE_CD, iti.IMPLT_TRPR_FLNM