|
|
|
|
@ -6,12 +6,7 @@
|
|
|
|
|
<!-- 단속 목록 조회 -->
|
|
|
|
|
<select id="selectList" parameterType="CrdnRegistAndViewVO" resultType="CrdnRegistAndViewVO">
|
|
|
|
|
/* CrdnRegistAndViewMapper.selectList : 단속 목록 조회 */
|
|
|
|
|
SELECT m.*,
|
|
|
|
|
case when m.ACT_ALL_CNT = 0 then '0'
|
|
|
|
|
when m.ACT_ALL_CNT != 0 and m.ACT_ALL_CNT != m.ACT_COMPLT_CNT then '1'
|
|
|
|
|
when m.ACT_ALL_CNT != 0 and m.ACT_ALL_CNT = m.ACT_COMPLT_CNT then '2'
|
|
|
|
|
else '-'
|
|
|
|
|
end as ACT_CMPLT_CD /* [행위정보없음 0: , 미조치 : 1, 조치완료 : 3] */
|
|
|
|
|
SELECT m.*
|
|
|
|
|
FROM (
|
|
|
|
|
SELECT
|
|
|
|
|
c.CRDN_YR, /* 단속 연도 */
|
|
|
|
|
@ -70,6 +65,12 @@
|
|
|
|
|
ELSE act.VLTN_BDST END ACT_TYPE_CD_NM,
|
|
|
|
|
IFNULL(act_cnt.ACT_ALL_CNT, 0) as ACT_ALL_CNT,
|
|
|
|
|
IFNULL(act_cnt.ACT_COMPLT_CNT, 0) as ACT_COMPLT_CNT,
|
|
|
|
|
/* 중요로직: ACT_CMPLT_CD를 메인 SELECT에서 직접 계산 - 외부 SELECT에서 재계산 불필요 */
|
|
|
|
|
case when IFNULL(act_cnt.ACT_ALL_CNT, 0) = 0 then '0'
|
|
|
|
|
when IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 and IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0) then '1'
|
|
|
|
|
when IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 and IFNULL(act_cnt.ACT_ALL_CNT, 0) = IFNULL(act_cnt.ACT_COMPLT_CNT, 0) then '3'
|
|
|
|
|
else '-'
|
|
|
|
|
end as ACT_CMPLT_CD, /* [행위정보없음 0: , 미조치 : 1, 조치완료 : 2] */
|
|
|
|
|
a.USG_IDX_CD, /* 용도 지수 코드 */
|
|
|
|
|
usg.USG_NM AS USG_IDX_CD_NM
|
|
|
|
|
FROM tb_crdn c
|
|
|
|
|
@ -136,11 +137,8 @@
|
|
|
|
|
) m
|
|
|
|
|
WHERE 1=1
|
|
|
|
|
<if test='schActCmpltCd != null and schActCmpltCd != ""'>
|
|
|
|
|
AND case when m.ACT_ALL_CNT = 0 then '0'
|
|
|
|
|
when m.ACT_ALL_CNT != 0 and m.ACT_ALL_CNT != m.ACT_COMPLT_CNT then '1'
|
|
|
|
|
when m.ACT_ALL_CNT != 0 and m.ACT_ALL_CNT = m.ACT_COMPLT_CNT then '2'
|
|
|
|
|
else '-'
|
|
|
|
|
end = #{schActCmpltCd} /* [행위정보없음 0: , 미조치 : 1, 조치완료 : 3] */
|
|
|
|
|
/* 중요로직: ACT_CMPLT_CD가 메인 SELECT에서 이미 계산되어 단순 비교만 수행 */
|
|
|
|
|
AND m.ACT_CMPLT_CD = #{schActCmpltCd} /* [행위정보없음 0: , 미조치 : 1, 조치완료 : 3] */
|
|
|
|
|
</if>
|
|
|
|
|
ORDER BY m.CRDN_YR DESC, m.CRDN_NO DESC
|
|
|
|
|
<if test='pagingYn != null and pagingYn == "Y"'>
|
|
|
|
|
@ -157,7 +155,13 @@
|
|
|
|
|
c.CRDN_YR,
|
|
|
|
|
c.CRDN_NO,
|
|
|
|
|
IFNULL(act_cnt.ACT_ALL_CNT, 0) as ACT_ALL_CNT,
|
|
|
|
|
IFNULL(act_cnt.ACT_COMPLT_CNT, 0) as ACT_COMPLT_CNT
|
|
|
|
|
IFNULL(act_cnt.ACT_COMPLT_CNT, 0) as ACT_COMPLT_CNT,
|
|
|
|
|
/* 중요로직: ACT_CMPLT_CD를 메인 SELECT에서 직접 계산 - 외부 WHERE에서 재계산 불필요 */
|
|
|
|
|
case when IFNULL(act_cnt.ACT_ALL_CNT, 0) = 0 then '0'
|
|
|
|
|
when IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 and IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0) then '1'
|
|
|
|
|
when IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 and IFNULL(act_cnt.ACT_ALL_CNT, 0) = IFNULL(act_cnt.ACT_COMPLT_CNT, 0) then '3'
|
|
|
|
|
else '-'
|
|
|
|
|
end as ACT_CMPLT_CD /* [행위정보없음 0: , 미조치 : 1, 조치완료 : 3] */
|
|
|
|
|
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 (
|
|
|
|
|
@ -213,18 +217,16 @@
|
|
|
|
|
) m
|
|
|
|
|
WHERE 1=1
|
|
|
|
|
<if test='schActCmpltCd != null and schActCmpltCd != ""'>
|
|
|
|
|
AND case when m.ACT_ALL_CNT = 0 then '0'
|
|
|
|
|
when m.ACT_ALL_CNT != 0 and m.ACT_ALL_CNT != m.ACT_COMPLT_CNT then '1'
|
|
|
|
|
when m.ACT_ALL_CNT != 0 and m.ACT_ALL_CNT = m.ACT_COMPLT_CNT then '2'
|
|
|
|
|
else '-'
|
|
|
|
|
end = #{schActCmpltCd} /* [행위정보없음 0: , 미조치 : 1, 조치완료 : 3] */
|
|
|
|
|
/* 중요로직: ACT_CMPLT_CD가 메인 SELECT에서 이미 계산되어 단순 비교만 수행 */
|
|
|
|
|
AND m.ACT_CMPLT_CD = #{schActCmpltCd} /* [행위정보없음 0: , 미조치 : 1, 조치완료 : 2] */
|
|
|
|
|
</if>
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 단속 단건 조회 -->
|
|
|
|
|
<select id="selectOne" parameterType="CrdnRegistAndViewVO" resultType="CrdnRegistAndViewVO">
|
|
|
|
|
/* CrdnRegistAndViewMapper.selectOne : 단속 단건 조회 */
|
|
|
|
|
SELECT
|
|
|
|
|
/* 중요로직: tb_act_info 테이블의 행위정보 집계로 조치처리상태 계산 */
|
|
|
|
|
SELECT
|
|
|
|
|
c.CRDN_YR,
|
|
|
|
|
c.CRDN_NO,
|
|
|
|
|
c.SGG_CD,
|
|
|
|
|
@ -258,13 +260,54 @@
|
|
|
|
|
c.REG_DT,
|
|
|
|
|
c.RGTR,
|
|
|
|
|
u.USER_ACNT AS RGTR_ACNT,
|
|
|
|
|
u.USER_NM AS RGTR_NM
|
|
|
|
|
u.USER_NM AS RGTR_NM,
|
|
|
|
|
case when IFNULL(act_cnt.ACT_ALL_CNT, 0) = 0 then '0'
|
|
|
|
|
when IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 and IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0) then '1'
|
|
|
|
|
when IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 and IFNULL(act_cnt.ACT_ALL_CNT, 0) = IFNULL(act_cnt.ACT_COMPLT_CNT, 0) then '3'
|
|
|
|
|
else '-'
|
|
|
|
|
end as ACT_CMPLT_CD /* [행위정보없음 0, 미조치 1, 조치완료 3] */
|
|
|
|
|
FROM tb_crdn c
|
|
|
|
|
LEFT JOIN tb_cd_detail sgg ON sgg.CD_GROUP_ID = 'ORG_CD' AND sgg.CD_ID = c.SGG_CD
|
|
|
|
|
LEFT JOIN tb_cd_detail rgn ON rgn.CD_GROUP_ID = 'RGN_SE_CD' AND rgn.CD_ID = c.RGN_SE_CD
|
|
|
|
|
LEFT JOIN tb_cd_detail dscl ON dscl.CD_GROUP_ID = 'DSCL_MTHD_CD' AND dscl.CD_ID = c.DSCL_MTHD_CD
|
|
|
|
|
LEFT JOIN tb_cd_detail stts ON stts.CD_GROUP_ID = 'CRDN_PRCS_STTS_CD' AND stts.CD_ID = c.CRDN_PRCS_STTS_CD
|
|
|
|
|
LEFT JOIN tb_user u ON u.USER_ID = c.RGTR
|
|
|
|
|
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'
|
|
|
|
|
AND c.CRDN_YR = #{crdnYr}
|
|
|
|
|
AND c.CRDN_NO = #{crdnNo}
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 조치처리상태 코드 조회 -->
|
|
|
|
|
<select id="selectActCmpltCd" parameterType="CrdnRegistAndViewVO" resultType="String">
|
|
|
|
|
/* CrdnRegistAndViewMapper.selectActCmpltCd : 조치처리상태 코드 조회 */
|
|
|
|
|
/* 중요로직: tb_act_info 테이블의 행위정보 집계로 조치처리상태 계산 */
|
|
|
|
|
SELECT
|
|
|
|
|
case when IFNULL(act_cnt.ACT_ALL_CNT, 0) = 0 then '0'
|
|
|
|
|
when IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 and IFNULL(act_cnt.ACT_ALL_CNT, 0) != IFNULL(act_cnt.ACT_COMPLT_CNT, 0) then '1'
|
|
|
|
|
when IFNULL(act_cnt.ACT_ALL_CNT, 0) != 0 and IFNULL(act_cnt.ACT_ALL_CNT, 0) = IFNULL(act_cnt.ACT_COMPLT_CNT, 0) then '3'
|
|
|
|
|
else '-'
|
|
|
|
|
end as ACT_CMPLT_CD /* [행위정보없음 0, 미조치 1, 조치완료 3] */
|
|
|
|
|
FROM tb_crdn c
|
|
|
|
|
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'
|
|
|
|
|
AND c.CRDN_YR = #{crdnYr}
|
|
|
|
|
AND c.CRDN_NO = #{crdnNo}
|
|
|
|
|
|