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.

334 lines
16 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="cokr.xit.fims.sprt.dao.IntegrationSearchMapper">
<select id="selectIntegrationDataList" parameterType="map" resultType="dataobject">
/* 통합 자료 목록 조회(integrationSearchMapper.selectIntegrationDataList) */
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, (SELECT SGG_NM FROM TB_SGG WHERE SGG_CD = C.SGG_CD) AS SGG_NM
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, (GET_CODE_NM('FIM054', C.TASK_SE_CD)) AS TASK_SE_NM
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
, (GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD)) AS CRDN_INPT_SE_NM
, C.CRDN_REG_SE_CD <!-- 단속 등록 구분 코드 -->
, (GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD)) AS CRDN_REG_SE_NM
, CA.CRDN_SE_CD <!-- 단속 구분 코드 -->
, (GET_CODE_NM('FIM002', CA.CRDN_SE_CD)) AS CRDN_SE_NM
, C.CVLCPT_LINK_YN <!-- 민원 연계 여부 -->
, C.CVLCPT_LINK_TBL_NM <!-- 민원 연계 테이블 명 -->
, C.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, CONCAT(C.CRDN_YMD, C.CRDN_TM) AS CRDN_YMD_TM
, C.VHRNO <!-- 차량번호 -->
, L.RPM_SZR_VHRNO <!-- 대체차량번호 -->
, (GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD)) AS FFNLG_CARMDL_NM
, C.ATCH_FILE_CNT <!-- 첨부 파일 수 -->
, CA.PRK_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
, (GET_CODE_NM('FIM034', CA.PRK_PSBLTY_RSLT_CD)) AS PRK_PSBLTY_RSLT_NM
, P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_INPT_SE_CD <!-- 납부자 입력 구분 코드 -->
, P.RTPYR_SE_CD <!-- 납부자 구분 코드 -->
, (GET_CODE_NM('FIM011', P.RTPYR_SE_CD)) AS RTPYR_SE_NM
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, P.RTPYR_TELNO <!-- 납부자 전화번호 -->
, P.RTPYR_MBL_TELNO <!-- 납부자 휴대 전화번호 -->
, P.RTPYR_EML <!-- 납부자 이메일 -->
, P.RTPYR_STTS_CD <!-- 납부자 상태 코드 -->
, (GET_CODE_NM('FIM014', P.RTPYR_STTS_CD)) AS RTPYR_STTS_NM
, PA.ADDR_SE_CD <!-- 주소 구분 코드 -->
, (GET_CODE_NM('FIM013', PA.ADDR_SE_CD)) AS ADDR_SE_NM
, PA.ZIP AS RTPYR_ZIP <!-- 우편번호 -->
, PA.ADDR AS RTPYR_ADDR <!-- 주소 -->
, PA.DTL_ADDR AS RTPYR_DTL_ADDR <!-- 상세 주소 -->
, CONCAT(PA.ADDR,' ',PA.DTL_ADDR) AS RTPYR_FULL_ADDR
, C.ETC_CN <!-- 기타 내용 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (GET_CODE_NM('FIM010', C.CRDN_STTS_CD)) AS CRDN_STTS_NM
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, CA.DTL_CRDN_PLC <!-- 상세 단속 장소 -->
, C.VLTN_ID <!-- 위반 ID -->
, V.VLTN_ARTCL <!-- 위반 항목 -->
, V.VLTN_LAW_NM <!-- 위반 법 명 -->
, IFNULL(CA.TOWNG_YN,'N') AS TOWNG_YN
, (GET_CODE_NM('CMN006', IFNULL(CA.TOWNG_YN,'N'))) AS TOWNG_YN_NM
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
, SUBSTR(C.CRDN_STTS_CHG_DT,1,8) AS CRDN_STTS_CHG_YMD
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_RDCRT <!-- 과태료 감경율 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.ADVNTCE_BGNG_YMD <!-- 사전통지 시작 일자 -->
, C.ADVNTCE_DUDT_YMD <!-- 사전통지 납기 일자 -->
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
, IFNULL(C.OPNN_SBMSN_YN,'N') AS OPNN_SBMSN_YN
, (GET_CODE_NM('CMN006', IFNULL(C.OPNN_SBMSN_YN,'N'))) AS OPNN_SBMSN_YN_NM
, L.LEVY_ID <!-- 부과 ID -->
, L.INST_CD <!-- 기관 코드 -->
, L.DEPT_CD <!-- 부서 코드 -->
, L.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, L.FYR <!-- 회계 연도 -->
, L.ACNTG_SE_CD <!-- 회계 구분 -->
, L.TXITM_CD <!-- 세목 코드 -->
, L.LEVY_NO <!-- 부과 번호 -->
, L.ISPY_SN <!-- 분납 일련번호 -->
, CONCAT(L.FYR, '-', L.LEVY_NO) AS GOJI_NO
, L.LEVY_SE_CD <!-- 부과 구분 코드 -->
, (GET_CODE_NM('FIM040', L.LEVY_SE_CD)) AS LEVY_SE_NM
, L.RDCT_SE_CD <!-- 감경 구분 코드 -->
, (GET_CODE_NM('FIM046', L.RDCT_SE_CD)) AS RDCT_SE_NM
, L.LEVY_PCPTAX <!-- 부과 본세 -->
, L.LEVY_ADAMT <!-- 부과 가산금 -->
, L.RCVMT_PCPTAX <!-- 수납 본세 -->
, L.RCVMT_ADAMT <!-- 수납 가산금 -->
, L.RDAMT_PCPTAX <!-- 감액 본세 -->
, L.RDAMT_ADAMT <!-- 감액 가산금 -->
, L.LAST_AMT <!-- 최종 금액 -->
, (L.LEVY_PCPTAX + L.LEVY_ADAMT) AS LEVY_AMT <!-- 부과 금액 -->
, (L.RCVMT_PCPTAX + L.RCVMT_ADAMT) AS RCVMT_AMT <!-- 수납 금액 -->
, (L.RDAMT_PCPTAX + L.RDAMT_ADAMT) AS REDUC_AMT <!-- 감액 금액 -->
, GET_MINAP_AMT(C.CRDN_ID) AS MINAP_AMT <!-- 미납 금액 -->
, L.LEVY_YMD <!-- 부과 일자 -->
, L.FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, L.DUDT_YMD <!-- 납기 일자 -->
, L.DUDT_AFTR_YMD <!-- 납기후 금액 -->
, L.DUDT_AFTR_AMT <!-- 납기후 일자 -->
, L.RCVMT_YMD <!-- 수납 일자 -->
, L.PAY_MTHD_SE_CD <!-- 납부 방법 구분 코드 -->
, (GET_CODE_NM('FIM045', L.PAY_MTHD_SE_CD)) AS PAY_MTHD_SE_NM
, L.EPAYNO <!-- 전자납부번호 -->
, L.BANK_NM <!-- 은행명 -->
, L.VR_ACTNO <!-- 가상계좌번호 -->
, L.SZR_YMD <!-- 압류 일자 -->
, L.SZR_RMV_YMD <!-- 압류 해제 일자 -->
, V.TXITM_NM <!-- 세목 명 -->
, (CASE WHEN C.CRDN_STTS_CD IN ('81','82','83','84','85','86','87','88') THEN 'Y'
ELSE 'N'
END) AS RCVMT_ETC_YN <!-- 수납,기타 여부 -->
, (CASE
WHEN C.CRDN_STTS_CD IN ('81','82','83','84','85','86','87','88')
THEN
CASE WHEN C.CRDN_STTS_CD IN ('88') THEN '법원이송'
WHEN C.CRDN_STTS_CD IN ('71','72','73','74','75') THEN '수납'
WHEN C.CRDN_STTS_CD IN ('76','77') THEN '결손'
ELSE '기타'
END
ELSE
CASE WHEN C.CRDN_STTS_CD IN ('55') THEN '압류'
WHEN C.CRDN_STTS_CD IN ('53','54') THEN '압류예정'
WHEN C.CRDN_STTS_CD IN ('52') THEN '독촉'
WHEN C.CRDN_STTS_CD IN ('51','61') THEN '부과'
WHEN C.CRDN_STTS_CD IN ('41','42','43') THEN '자납부과'
WHEN C.CRDN_STTS_CD IN ('31') THEN '의견진술접수'
ELSE '단속'
END
END) AS TAB_GROUP <!-- 탭 그룹 -->
FROM TB_CRDN C <!-- 단속 대장 -->
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) <!-- 단속 부가 정보 -->
INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) <!-- 위반 정보 -->
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) <!-- 납부자 대장 -->
LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN) <!-- 납부자 주소 대장 -->
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') <!-- 부과 대장 -->
WHERE C.DEL_YN = 'N'
<if test='crdnIds != null'>
AND C.CRDN_ID IN (<foreach collection="crdnIds" item="CRDN_ID" separator=",">#{CRDN_ID}</foreach>)
</if>
<if test='sggCd != null'>
AND C.SGG_CD = #{sggCd}
</if>
<if test="taskSeCd != null">
AND C.TASK_SE_CD = #{taskSeCd}
</if>
<!-- 통합조회 키워드 -->
<if test="ischKeywordSet != null">
<foreach collection="ischKeywordSet" item="item">
<choose>
<when test="item.name == 'vhrno'">
AND (C.VHRNO = #{item.value} OR L.RPM_SZR_VHRNO = #{item.value})
</when>
<when test="item.name == 'rpmSzrVhrno'">
<choose>
<when test="item.similar != null">
AND L.RPM_SZR_VHRNO LIKE CONCAT ('%' , #{item.value} , '%')
</when>
<otherwise>
AND L.RPM_SZR_VHRNO = #{item.value}
</otherwise>
</choose>
</when>
<when test="item.name == 'crdnVhrno'">
<choose>
<when test="item.similar != null">
AND C.VHRNO LIKE CONCAT ('%' , #{item.value} , '%')
</when>
<otherwise>
AND C.VHRNO = #{item.value}
</otherwise>
</choose>
</when>
<when test="item.name == 'rtpyrNm'">
<choose>
<when test="item.similar != null">
AND P.RTPYR_NM LIKE CONCAT ('%' , #{item.value} , '%')
</when>
<otherwise>
AND P.RTPYR_NM = #{item.value}
</otherwise>
</choose>
</when>
<when test="item.name == 'rtpyrNo'">
AND P.RTPYR_NO = #{item.value}
</when>
<when test="item.name == 'rtpyrBrdt'">
AND P.RTPYR_BRDT = #{item.value} AND P.RTPYR_SE_CD = '01'
</when>
<when test="item.name == 'crdnYmd'">
<if test="item.from != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{item.from}
</if>
<if test="item.to != null">
AND C.CRDN_YMD <![CDATA[ <= ]]> #{item.to}
</if>
</when>
<when test="item.name == 'crdnTm'">
<if test="item.from != null">
AND C.CRDN_TM <![CDATA[ >= ]]> #{item.from}
</if>
<if test="item.to != null">
AND C.CRDN_TM <![CDATA[ <= ]]> #{item.to}
</if>
</when>
<when test="item.name == 'rtpyrAddr'">
AND PA.ADDR LIKE CONCAT ('%', #{item.value}, '%')
</when>
<when test="item.name == 'rtpyrDtlAddr'">
AND PA.DTL_ADDR LIKE CONCAT ('%', #{item.value}, '%')
</when>
<when test="item.name == 'gojiNo'">
AND CONCAT(L.FYR, L.LEVY_NO) = REPLACE(#{item.value}, '-', '')
</when>
<when test="item.name == 'epayno'">
AND L.EPAYNO = #{item.value}
</when>
<when test="item.name == 'vltnCd'">
AND V.VLTN_CD = #{item.value}
</when>
<when test="item.name == 'crdnSttsCd'">
AND C.CRDN_STTS_CD = #{item.value}
</when>
<when test="item.name == 'crdnRegSeCd'">
AND C.CRDN_REG_SE_CD = #{item.value}
</when>
<when test="item.name == 'crdnInptSeCd'">
AND C.CRDN_INPT_SE_CD = #{item.value}
</when>
<when test="item.name == 'crdnStdgNm'">
AND C.CRDN_STDG_NM = #{item.value}
</when>
<when test="item.name == 'crdnPlc'">
AND C.CRDN_PLC LIKE CONCAT ('%' , #{item.value} , '%')
</when>
</choose>
</foreach>
</if>
<!-- 특정자료만 조회 -->
<if test="ischOnlyDataSet != null">
<foreach collection="ischOnlyDataSet" item="item">
<choose>
<!-- 미납자료만 조회 -->
<when test="item == 'minap'">
AND C.CRDN_STTS_CD BETWEEN '01' AND '61'
</when>
</choose>
</foreach>
</if>
<!-- 특정자료 제외 -->
<if test="ischExclDataSet != null">
<foreach collection="ischExclDataSet" item="item">
</foreach>
</if>
<!-- 동적 검색 -->
<if test="@org.egovframe.rte.fdl.string.EgovStringUtil@isNotEmpty(by) and @org.egovframe.rte.fdl.string.EgovStringUtil@isNotEmpty(term)">
<choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" />
<choose>
<when test="by == 'taskSeCd'">C.TASE_SE_CD</when>
<when test="by == 'crdnInptSeCd'">C.CRDN_INPT_SE_CD</when>
<when test="by == 'crdnYmd'">C.CRDN_YMD</when>
<when test="by == 'vhrno'">C.VHRNO</when>
<when test="by == 'rpmSzrVhrno'">L.RPM_SZR_VHRNO</when>
<when test="by == 'atchFileCnt'">C.ATCH_FILE_CNT</when>
<when test="by == 'prkPsbltyRsltCd'">CA.PRK_PSBLTY_RSLT_CD</when>
<when test="by == 'rtpyrNm'">P.RTPYR_NM</when>
<when test="by == 'rtPyrNo'">P.RTPYR_NO</when>
<when test="by == 'crdnSttsCd'">C.CRDN_STTS_CD</when>
<when test="by == 'etcCn'">C.ETC_CN</when>
<when test="by == 'rdctSeCd'">L.RDCT_SE_CD</when>
<when test="by == 'gojiNo'">CONCAT(L.FYR, L.LEVY_NO)</when>
<when test="by == 'crdnSttsChgDt'">C.CRDN_STTS_CHG_YMD</when>
<when test="by == 'crdnPlc'">C.CRDN_PLC</when>
<when test="by == 'crdnSeCd'">C.CRDN_SE_CD</when>
<when test="by == 'opnnSbmsnYn'">IFNULL(C.OPNN_SBMSN_YN,'N')</when>
<when test="by == 'advntceDudtYmd'">C.ADVNTCE_DUDT_YMD</when>
<when test="by == 'towngYn'">IFNULL(CA.TOWNG_YN,'N')</when>
<when test="by == 'szrYmd'">L.SZR_YMD</when>
<when test="by == 'szrRmvYmd'">L.SZR_RMV_YMD</when>
<when test="by == 'lastAmt'">L.LAST_AMT</when>
<when test="by == 'minapAmt'">GET_MINAP_AMT(C.CRDN_ID)</when>
<when test="by == 'levyAmt'">(L.LEVY_PCPTAX+L.LEVY_ADAMT)</when>
<when test="by == 'levyPcptax'">L.LEVY_PCPTAX</when>
<when test="by == 'levyAdamt'">L.LEVY_ADAMT</when>
<when test="by == 'dudtYmd'">L.DUDT_YMD</when>
<when test="by == 'dudtAftrYmd'">L.DUDT_AFTR_YMD</when>
<when test="by == 'dudtAftrAmt'">L.DUDT_AFTR_AMT</when>
<when test="by == 'vrActno'">L.VR_ACTNO</when>
<when test="by == 'epayno'">L.EPAYNO</when>
<when test="by == 'payMthdSeCd'">L.PAY_MTHD_SE_CD</when>
<when test="by == 'rcvmtYmd'">L.RCVMT_YMD</when>
<when test="by == 'rcvmtAmt'">(L.RCVMT_PCPTAX+L.RCVMT_ADAMT)</when>
<when test="by == 'rcvmtPcptax'">L.RCVMT_PCPTAX</when>
<when test="by == 'rcvmtAdamt'">L.RCVMT_ADAMT</when>
<when test="by == 'crdnRegSeCd'">C.CRDN_REG_SE_CD</when>
<when test="by == 'rtpyrFullAddr'">CONCAT(PA.ADDR,' ',PA.DTL_ADDR)</when>
<when test="by == 'rtpyrSttsCd'">P.RTPYR_STTS_CD</when>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
<otherwise>
<if test="by == 'sggCd'"> AND (SELECT COUNT(*) FROM TB_SGG WHERE SGG_NM = #{term}) = 1 </if>
</otherwise>
</choose>
</if>
<include refid="utility.sortBy" />
</select>
<select id="selectLatestSndngDtlInfo" parameterType="string" resultType="dataObject">
/* 최근 발송 상세 정보 조회(integrationSearchMapper.selectLatestSndngDtlInfo) */
SELECT *
FROM
(
SELECT ROW_NUMBER() OVER (ORDER BY SD.SNDNG_DTL_ID) AS ROWNUM
, SD.SNDNG_DTL_ID
, SD.SNDNG_YMD
, SD.RG_NO
, SD.CRDN_ID
FROM TB_SNDNG_DTL SD
WHERE SD.CRDN_ID = #{crdnId}
AND SD.DEL_YN = 'N'
) SD2
WHERE SD2.ROWNUM=1
</select>
</mapper>