From d83607c0368b226e34cf3db8a0be9857933dfddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=B0=95=EC=84=B1=EC=98=81?= Date: Mon, 27 Oct 2025 10:53:08 +0900 Subject: [PATCH] =?UTF-8?q?=ED=96=89=EC=9C=84=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EC=A1=B0=EC=9D=B8=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?=EB=B0=8F=20=EB=AF=B8=EC=A1=B0=EC=B9=98=20=EC=83=81=ED=83=9C=20?= =?UTF-8?q?=ED=95=84=ED=84=B0=EB=A7=81=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/levy/levy/LevyMapper_maria.xml | 28 ++++++++++++++++++- .../levyRelevy/LevyRelevyMapper_maria.xml | 26 +++++++++++++++++ .../mybatis/mapper/noti/NotiMapper_maria.xml | 28 ++++++++++++++++++- 3 files changed, 80 insertions(+), 2 deletions(-) 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 65a2bc7..cb51881 100644 --- a/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml +++ b/src/main/resources/mybatis/mapper/levy/levy/LevyMapper_maria.xml @@ -57,6 +57,17 @@ 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 ( + 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 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 @@ -66,6 +77,8 @@ WHERE ii.CRDN_YR = #{schCrdnYr} AND ii.DEL_YN = 'N' AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2} + /* 중요로직: 조치처리상태가 미조치(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)) AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd} @@ -114,9 +127,22 @@ 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 ( + 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 WHERE ii.CRDN_YR = #{schCrdnYr} AND ii.DEL_YN = 'N' - AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2} + AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2} + /* 중요로직: 조치처리상태가 미조치(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)) AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd} diff --git a/src/main/resources/mybatis/mapper/levy/levyRelevy/LevyRelevyMapper_maria.xml b/src/main/resources/mybatis/mapper/levy/levyRelevy/LevyRelevyMapper_maria.xml index 8521b19..e59e428 100644 --- a/src/main/resources/mybatis/mapper/levy/levyRelevy/LevyRelevyMapper_maria.xml +++ b/src/main/resources/mybatis/mapper/levy/levyRelevy/LevyRelevyMapper_maria.xml @@ -94,10 +94,23 @@ LEFT JOIN tb_user u ON u.USER_ID = c.RGTR AND u.USE_YN = 'Y' 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 emd ON emd.CD_GROUP_ID = 'STDG_EMD_CD' AND emd.CD_ID = p.STDG_EMD_CD + /* 중요로직: 조치처리상태 확인을 위한 행위정보 조인 - 미조치 건만 조회 */ + LEFT 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_act_info a ON a.CRDN_YR = c.CRDN_YR and a.CRDN_NO = c.CRDN_NO AND a.DEL_YN = 'N' AND a.ACT_NO = (SELECT MIN(a1.ACT_NO) FROM tb_act_info a1 WHERE a1.CRDN_YR = a.CRDN_YR AND a1.CRDN_NO = a.CRDN_NO AND a1.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 WHERE c.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)) AND c.CRDN_YR = #{schCrdnYr} @@ -177,7 +190,20 @@ END AS RELEVY_TRGT_YN FROM tb_crdn c 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 ( + 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 WHERE c.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)) AND c.CRDN_YR = #{schCrdnYr} diff --git a/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml b/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml index 5e659dd..7f1e74c 100644 --- a/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml +++ b/src/main/resources/mybatis/mapper/noti/NotiMapper_maria.xml @@ -57,6 +57,17 @@ 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 ( + 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 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 @@ -66,6 +77,8 @@ WHERE ii.CRDN_YR = #{schCrdnYr} AND ii.DEL_YN = 'N' AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2} + /* 중요로직: 조치처리상태가 미조치(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)) AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd} @@ -114,9 +127,22 @@ 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 ( + 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 WHERE ii.CRDN_YR = #{schCrdnYr} AND ii.DEL_YN = 'N' - AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2} + AND ii.IMPLT_BGNG_YMD BETWEEN #{schImpltBgngYmd1} AND #{schImpltBgngYmd2} + /* 중요로직: 조치처리상태가 미조치(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)) AND ii.IMPLT_TASK_SE_CD = #{schImpltTaskSeCd}