<?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.levy.dao.LevyMapper">

<!-- 부과 대장 정보 매퍼
 ========== 변경 이력 ==========
 2023-08-30    JoJH 최초 작성
 ============================ -->

    <resultMap id="levyRow" type="cokr.xit.fims.levy.Levy"> <!-- 부과 대장 -->
        <result property="levyId"       column="LEVY_ID" />         <!-- 부과 ID -->
        <result property="sggCd"        column="SGG_CD" />          <!-- 시군구 코드 -->
        <result property="taskSeCd"     column="TASK_SE_CD" />      <!-- 업무 구분 코드 -->
        <result property="crdnId"       column="CRDN_ID" />         <!-- 단속 ID -->
        <result property="instCd"       column="INST_CD" />         <!-- 기관 코드 -->
        <result property="deptCd"       column="DEPT_CD" />         <!-- 부서 코드 -->
        <result property="fyr"          column="FYR" />             <!-- 회계 연도 -->
        <result property="acntgSeCd"    column="ACNTG_SE_CD" />     <!-- 회계 구분 코드 -->
        <result property="txitmCd"      column="TXITM_CD" />        <!-- 세목 코드 -->
        <result property="operItemCd"   column="OPER_ITEM_CD" />    <!-- 운영 항목 코드 -->
        <result property="spclBizCd"    column="SPCL_BIZ_CD" />     <!-- 특별회계 사업 코드 -->
        <result property="levyNo"       column="LEVY_NO" />         <!-- 부과 번호 -->
        <result property="ispySn"       column="ISPY_SN" />         <!-- 분납 일련번호 -->
        <result property="levySeCd"     column="LEVY_SE_CD" />      <!-- 부과 구분 코드 -->
        <result property="untySeCd"     column="UNTY_SE_CD" />      <!-- 통합 구분 코드 -->
        <result property="rdctSeCd"     column="RDCT_SE_CD" />      <!-- 감경 구분 코드 -->
        <result property="ispySeNm"     column="ISPY_SE_NM" />      <!-- 분납 구분 명 -->
        <result property="levyYmd"      column="LEVY_YMD" />        <!-- 부과 일자 -->
        <result property="frstDudtYmd"  column="FRST_DUDT_YMD" />   <!-- 최초 납기 일자 -->
        <result property="dudtYmd"      column="DUDT_YMD" />        <!-- 납기 일자 -->
        <result property="ffnlgAmt"     column="FFNLG_AMT" />       <!-- 과태료 금액 -->
        <result property="levyPcptax"   column="LEVY_PCPTAX" />     <!-- 부과 본세 -->
        <result property="levyAdamt"    column="LEVY_ADAMT" />      <!-- 부과 가산금 -->
        <result property="ispyInt"      column="ISPY_INT" />        <!-- 분납 이자 -->
        <result property="rcvmtPcptax"  column="RCVMT_PCPTAX" />    <!-- 수납 본세 -->
        <result property="rcvmtAdamt"   column="RCVMT_ADAMT" />     <!-- 수납 가산금 -->
        <result property="rdamtPcptax"  column="RDAMT_PCPTAX" />    <!-- 감액 본세 -->
        <result property="rdamtAdamt"   column="RDAMT_ADAMT" />     <!-- 감액 가산금 -->
        <result property="lastAmt"      column="LAST_AMT" />        <!-- 최종 금액 -->
        <result property="dudtAftrYmd"  column="DUDT_AFTR_YMD" />   <!-- 납기 후 일자 -->
        <result property="dudtAftrAmt"  column="DUDT_AFTR_AMT" />   <!-- 납기 후 금액 -->
        <result property="txtnThing"    column="TXTN_THING" />      <!-- 과세 물건 -->
        <result property="mngItem1"     column="MNG_ITEM1" />       <!-- 관리 아이템1 -->
        <result property="mngItem2"     column="MNG_ITEM2" />       <!-- 관리 아이템2 -->
        <result property="mngItem3"     column="MNG_ITEM3" />       <!-- 관리 아이템3 -->
        <result property="mngItem4"     column="MNG_ITEM4" />       <!-- 관리 아이템4 -->
        <result property="mngItem5"     column="MNG_ITEM5" />       <!-- 관리 아이템5 -->
        <result property="mngItem6"     column="MNG_ITEM6" />       <!-- 관리 아이템6 -->
        <result property="npmntRsnCd"   column="NPMNT_RSN_CD" />    <!-- 체납 사유 코드 -->
        <result property="rcvmtYmd"     column="RCVMT_YMD" />       <!-- 수납 일자 -->
        <result property="payMthdSeCd"  column="PAY_MTHD_SE_CD" />  <!-- 납부 방법 구분 코드 -->
        <result property="szrYmd"       column="SZR_YMD" />         <!-- 압류 일자 -->
        <result property="szrThing"     column="SZR_THING" />       <!-- 압류 물건 -->
        <result property="rpmSzrVhrno"  column="RPM_SZR_VHRNO" />   <!-- 대체 압류 자동차등록번호 -->
        <result property="szrRmvYmd"    column="SZR_RMV_YMD" />     <!-- 압류 해제 일자 -->
        <result property="szrRmvRsn"    column="SZR_RMV_RSN" />     <!-- 압류 해제 사유 -->
        <result property="etcCn"        column="ETC_CN" />          <!-- 기타 내용 -->
        <result property="epayno"       column="EPAYNO" />          <!-- 전자납부번호 -->
        <result property="bankNm"       column="BANK_NM" />         <!-- 은행 명 -->
        <result property="vrActno"      column="VR_ACTNO" />        <!-- 가상 계좌번호 -->
        <result property="bankNm2"      column="BANK_NM2" />        <!-- 은행 명 2 -->
        <result property="vrActno2"     column="VR_ACTNO2" />       <!-- 가상 계좌번호 2 -->
        <result property="bankNm3"      column="BANK_NM3" />        <!-- 은행 명 3 -->
        <result property="vrActno3"     column="VR_ACTNO3" />       <!-- 가상 계좌번호 3 -->
        <result property="bankNm4"      column="BANK_NM4" />        <!-- 은행 명 4 -->
        <result property="vrActno4"     column="VR_ACTNO4" />       <!-- 가상 계좌번호 4 -->
        <result property="bankNm5"      column="BANK_NM5" />        <!-- 은행 명 5 -->
        <result property="vrActno5"     column="VR_ACTNO5" />       <!-- 가상 계좌번호 5 -->
        <result property="bankNm6"      column="BANK_NM6" />        <!-- 은행 명 6 -->
        <result property="vrActno6"     column="VR_ACTNO6" />       <!-- 가상 계좌번호 6 -->
        <result property="bankNm7"      column="BANK_NM7" />        <!-- 은행 명 7 -->
        <result property="vrActno7"     column="VR_ACTNO7" />       <!-- 가상 계좌번호 7 -->
        <result property="bankNm8"      column="BANK_NM8" />        <!-- 은행 명 8 -->
        <result property="vrActno8"     column="VR_ACTNO8" />       <!-- 가상 계좌번호 8 -->
        <result property="bankNm9"      column="BANK_NM9" />        <!-- 은행 명 9 -->
        <result property="vrActno9"     column="VR_ACTNO9" />       <!-- 가상 계좌번호 9 -->
        <result property="bankNm10"     column="BANK_NM10" />       <!-- 은행 명 10 -->
        <result property="vrActno10"    column="VR_ACTNO10" />      <!-- 가상 계좌번호 10 -->
        <result property="bankNm11"     column="BANK_NM11" />       <!-- 은행 명 11 -->
        <result property="vrActno11"    column="VR_ACTNO11" />      <!-- 가상 계좌번호 11 -->
        <result property="bankNm12"     column="BANK_NM12" />       <!-- 은행 명 12 -->
        <result property="vrActno12"    column="VR_ACTNO12" />      <!-- 가상 계좌번호 12 -->
        <result property="bankNm13"     column="BANK_NM13" />       <!-- 은행 명 13 -->
        <result property="vrActno13"    column="VR_ACTNO13" />      <!-- 가상 계좌번호 13 -->
        <result property="bankNm14"     column="BANK_NM14" />       <!-- 은행 명 14 -->
        <result property="vrActno14"    column="VR_ACTNO14" />      <!-- 가상 계좌번호 14 -->
        <result property="bankNm15"     column="BANK_NM15" />       <!-- 은행 명 15 -->
        <result property="vrActno15"    column="VR_ACTNO15" />      <!-- 가상 계좌번호 15 -->
        <result property="bankNm16"     column="BANK_NM16" />       <!-- 은행 명 16 -->
        <result property="vrActno16"    column="VR_ACTNO16" />      <!-- 가상 계좌번호 16 -->
        <result property="bankNm17"     column="BANK_NM17" />       <!-- 은행 명 17 -->
        <result property="vrActno17"    column="VR_ACTNO17" />      <!-- 가상 계좌번호 17 -->
        <result property="bankNm18"     column="BANK_NM18" />       <!-- 은행 명 18 -->
        <result property="vrActno18"    column="VR_ACTNO18" />      <!-- 가상 계좌번호 18 -->
        <result property="bankNm19"     column="BANK_NM19" />       <!-- 은행 명 19 -->
        <result property="vrActno19"    column="VR_ACTNO19" />      <!-- 가상 계좌번호 19 -->
        <result property="bankNm20"     column="BANK_NM20" />       <!-- 은행 명 20 -->
        <result property="vrActno20"    column="VR_ACTNO20" />      <!-- 가상 계좌번호 20 -->
        <result property="nxrpLevyKey"  column="NXRP_LEVY_KEY" />   <!-- 세외수입 부과 키 -->
        <result property="delYn"        column="DEL_YN" />          <!-- 삭제 여부 -->
        <result property="createdAt"    column="REG_DT" />          <!-- 등록 일시 -->
        <result property="createdBy"    column="RGTR" />            <!-- 등록자 -->
        <result property="lastModified" column="MDFCN_DT" />        <!-- 수정 일시 -->
        <result property="modifiedBy"   column="MDFR" />            <!-- 수정자 -->
        <result property="removedAt"    column="DEL_DT" />          <!-- 삭제 일시 -->
        <result property="removedBy"    column="DLTR" />            <!-- 삭제자 -->
        <result property="delRsn"       column="DEL_RSN" />         <!-- 삭제 사유 -->
        <result property="nxrpAcbKey"   column="NXRP_ACB_KEY" />    <!-- 단속 테이블 과태료 대장키 -->
    </resultMap>

    <sql id="selectTrgtList">
        SELECT COUNT(*) OVER()           AS TNOCS
             , SUM(C.FFNLG_AMT) OVER()   AS GRAMT_FFNLG_AMT
             , SUM(C.ADVNTCE_AMT) OVER() AS GRAMT_ADVNTCE_AMT
             , C.CRDN_ID            <!-- 단속 ID -->
             , C.SGG_CD             <!-- 시군구 코드 -->
             , 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_YMD           <!-- 단속 일자 -->
             , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM   <!-- 단속 일시 -->
             , (GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':')) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
             , C.VHRNO              <!-- 차량번호 -->
             , C.CRDN_STDG_NM       <!-- 단속 법정동 명 -->
             , C.CRDN_ROAD_NM       <!-- 단속 도로 명 -->
             , C.CRDN_PLC           <!-- 단속 장소 -->
             , C.FFNLG_CRDN_AMT     <!-- 과태료 단속 금액 -->
             , C.FFNLG_AMT          <!-- 과태료 금액 -->
             , C.ADVNTCE_AMT        <!-- 사전통지 금액 -->
             , C.CRDN_STTS_CD       <!-- 단속 상태 코드 -->
             , (GET_CODE_NM('FIM010', C.CRDN_STTS_CD)) AS CRDN_STTS_NM  <!-- 단속 상태 명 -->
             , C.CRDN_STTS_CHG_DT   <!-- 단속 상태 변경 일시 -->
             , C.REG_DT             <!-- 등록 일시 -->
             , C.RGTR               <!-- 등록자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM  <!-- 등록자 명 -->
             , C.MDFCN_DT           <!-- 수정 일시 -->
             , C.MDFR               <!-- 수정자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM  <!-- 수정자 명 -->
             , V.VLTN_ID            <!-- 위반 ID -->
             , V.VLTN_CD            <!-- 위반 코드 -->
             , V.VLTN_ARTCL         <!-- 위반 항목 -->
             , CC.CVLCPT_LINK_ID    <!-- 민원 연계 ID -->
             , CC.CVLCPT_RCPT_YMD   <!-- 민원 접수 일자 -->
             , CC.CVLCPT_APLY_NO    <!-- 민원 신청 번호 -->
             , CC.CVLCPT_RCPT_NO    <!-- 민원 접수 번호 -->
             , CC.CVLCPT_PRCS_PIC_NM <!-- 민원 처리 담당자 명 -->
             , CC.CVLCPT_PRCS_SMRY  <!-- 민원 처리 요약 -->
             , CC.CVLCPT_PRCS_CD    <!-- 민원 처리 코드 -->
             , (GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD)) AS CVLCPT_PRCS_NM <!-- 민원 처리 명 -->
             , CC.CVLCPT_PRCS_CMPTN_DT  <!-- 민원 처리 완료 일시 -->
             , CC.CVLCPT_TRSM_CD    <!-- 민원 전송 코드 -->
             , (GET_CODE_NM('FIM018', CC.CVLCPT_TRSM_CD)) AS CVLCPT_TRSM_NM <!-- 민원 전송 명 -->
             , CC.CVLCPT_TRSM_DT    <!-- 민원 전송 일시 -->
             , P.RTPYR_ID           <!-- 납부자 ID -->
             , P.RTPYR_SE_CD        <!-- 납부자 구분 코드 -->
             , (GET_CODE_NM('FIM011', P.RTPYR_SE_CD)) AS RTPYR_SE_NM    <!-- 납부자 구분 명 -->
             , P.RTPYR_NO           <!-- 납부자 번호 -->
             , P.RTPYR_NM           <!-- 납부자 명 -->
             , PA.ADDR_SN           <!-- 주소 일련번호 -->
             , PA.ZIP               <!-- 우편번호 -->
             , PA.ADDR              <!-- 주소 -->
             , PA.DTL_ADDR          <!-- 상세 주소 -->
             , L.LEVY_ID            <!-- 부과 ID -->
    </sql>

    <sql id="fromTrgtList">
          FROM TB_CRDN              C
         INNER JOIN TB_VLTN         V  ON (C.VLTN_ID  = V.VLTN_ID)
    LEFT OUTER JOIN TB_CRDN_CVLCPT  CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID AND CC.DEL_YN = 'N')
    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>
            <if test="crdnIds != null">
           AND C.CRDN_ID    IN (          <!-- 단속 Ids -->
                <foreach collection="crdnIds" item="crdnId" separator=","> #{crdnId} </foreach>
                 )
            </if>
            <if test="schCrdnYmdFrom != null">
           AND C.CRDN_YMD <![CDATA[>=]]> #{schCrdnYmdFrom}    <!-- 단속 일자 시작 -->
            </if>
            <if test="schCrdnYmdTo != null">
           AND C.CRDN_YMD <![CDATA[<=]]> #{schCrdnYmdTo}      <!-- 단속 일자 종료 -->
            </if>
            <if test="schVhrno != null">
           AND C.VHRNO      =  #{schVhrno}      <!-- 차량번호 -->
            </if>
            <if test="schVltnCd != null">
           AND V.VLTN_CD    =  #{schVltnCd}     <!-- 위반 코드 -->
            </if>
            <if test="schCvlcptRcptYmdFrom != null">
           AND CC.CVLCPT_RCPT_YMD <![CDATA[>=]]> #{schCvlcptRcptYmdFrom}    <!-- 민원 접수 일자 시작 -->
            </if>
            <if test="schCvlcptRcptYmdTo != null">
           AND CC.CVLCPT_RCPT_YMD <![CDATA[<=]]> #{schCvlcptRcptYmdTo}      <!-- 민원 접수 일자 종료 -->
            </if>
            <if test="schCvlcptPrcsCmptnDtFrom != null">
           AND CC.CVLCPT_PRCS_CMPTN_DT <![CDATA[>=]]> CONCAT(#{schCvlcptPrcsCmptnDtFrom},'000000')  <!-- 민원 처리 완료 일시 시작 -->
            </if>
            <if test="schCvlcptPrcsCmptnDtTo != null">
           AND CC.CVLCPT_PRCS_CMPTN_DT <![CDATA[<=]]> CONCAT(#{schCvlcptPrcsCmptnDtTo},'235959')    <!-- 민원 처리 완료 일시 종료 -->
            </if>
            <if test="schCvlcptPrcsPic != null">
           AND CC.CVLCPT_PRCS_PIC   =  #{schCvlcptPrcsPic}  <!-- 민원 처리 담당자 -->
            </if>
            <if test="schRtpyrNo != null">
           AND P.RTPYR_NO   =  #{schRtpyrNo}    <!-- 납부자 번호 -->
            </if>
            <if test="schRtpyrNm != null">
           AND P.RTPYR_NM   =  #{schRtpyrNm}    <!-- 납부자 명 -->
            </if>
            <if test="sggCd != null">
           AND C.SGG_CD     =  #{sggCd}     <!-- 시군구 코드 -->
            </if>
            <if test="taskSeCd != null">
           AND C.TASK_SE_CD =  #{taskSeCd}  <!-- 업무 구분 코드 -->
            </if>
           AND C.DEL_YN     =  'N'          <!-- 단속 삭제 여부 -->
            <choose>
                <when test="schRegDateOpt == 'regDt'">
                    <if test="schRegDateFrom != null">
           AND C.REG_DT <![CDATA[>=]]> CONCAT(#{schRegDateFrom},'000000')       <!-- 등록 일자 시작 -->
                    </if>
                    <if test="schRegDateTo != null">
           AND C.REG_DT <![CDATA[<=]]> CONCAT(#{schRegDateTo},'235959')         <!-- 등록 일자 종료 -->
                    </if>
                </when>
                <when test="schRegDateOpt == 'mdfcnDt'">
                    <if test="schRegDateFrom != null">
           AND C.MDFCN_DT <![CDATA[>=]]> CONCAT(#{schRegDateFrom},'000000')     <!-- 수정 일자 시작 -->
                    </if>
                    <if test="schRegDateTo != null">
           AND C.MDFCN_DT <![CDATA[<=]]> CONCAT(#{schRegDateTo},'235959')       <!-- 수정 일자 종료 -->
                    </if>
                </when>
                <otherwise>
                </otherwise>
            </choose>
            <choose>
                <when test="schRgtrOpt == 'rgtr'">
                    <if test="schRgtrCd != null">
           AND C.RGTR           =  #{schRgtrCd}     <!-- 등록자 코드 -->
                    </if>
                </when>
                <when test="schRgtrOpt == 'mdfr'">
                    <if test="schRgtrCd != null">
           AND C.MDFR           =  #{schRgtrCd}     <!-- 수정자 코드 -->
                    </if>
                </when>
                <otherwise>
                </otherwise>
            </choose>
            <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 == 'crdnYmd'"> C.CRDN_YMD </when>
                            <when test="by == 'vhrno'"> C.VHRNO </when>
                            <when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
                            <when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
                            <when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
                            <when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when>
                            <when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when>
                            <when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
                            <when test="by == 'rtpyrSeCd'"> P.RTPYR_SE_CD </when>
                            <when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
                            <when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
                            <when test="by == 'zip'"> PA.ZIP </when>
                            <when test="by == 'addr'"> PA.ADDR </when>
                            <when test="by == 'dtlAddr'"> PA.DTL_ADDR </when>
                            <when test="by == 'vltnArtcl'"> V.VLTN_ARTCL </when>
                            <when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when>
                            <when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when>
                            <when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when>
                            <when test="by == 'cvlcptTrsmCd'"> CC.CVLCPT_TRSM_CD </when>
                        </choose>
                        <include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
                    </when>
                    <otherwise>
                    </otherwise>
                </choose>
            </if>
           AND C.CRDN_STTS_CD BETWEEN '21' AND '31' <!-- 단속 상태 코드 -->
           AND C.RTPYR_ID     IS NOT NULL           <!-- 납부자 ID -->
           AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00')   <!-- 민원 처리 코드 -->
           AND L.LEVY_ID      IS NULL               <!-- 부과 ID -->
        </where>
    </sql>

    <select id="selectRdctLevyTrgtList" parameterType="map" resultType="dataobject">/* 감경부과 대상 목록 조회(levyMapper.selectRdctLevyTrgtList) */
        <include refid="utility.paging-prefix" />
        <include refid="selectTrgtList" />
        <include refid="fromTrgtList" />
        <include refid="utility.orderBy" />
        <include refid="utility.paging-suffix" />
    </select>

    <select id="selectRdctLevyTrgtIds" parameterType="map" resultType="dataobject">/* 감경부과 대상 목록 조회(levyMapper.selectRdctLevyTrgtIds) */
        SELECT C.CRDN_ID        <!-- 단속 ID -->
             , C.SGG_CD         <!-- 시군구 코드 -->
             , C.TASK_SE_CD     <!-- 업무 구분 코드 -->
        <include refid="fromTrgtList" />
        <include refid="utility.orderBy" />
    </select>

    <sql id="select">
        SELECT L.LEVY_ID        <!-- 부과 ID -->
             , L.SGG_CD         <!-- 시군구 코드 -->
             , L.TASK_SE_CD     <!-- 업무 구분 코드 -->
             , (GET_CODE_NM('FIM054', L.TASK_SE_CD)) AS TASK_SE_NM  <!-- 업무 구분 명 -->
             , L.INST_CD        <!-- 기관 코드 -->
             , L.DEPT_CD        <!-- 부서 코드 -->
             , L.FYR            <!-- 회계 연도 -->
             , L.ACNTG_SE_CD    <!-- 회계 구분 코드 -->
             , (GET_CODE_NM('FIM074', L.ACNTG_SE_CD)) AS ACNTG_SE_NM    <!-- 회계 구분 명 -->
             , L.TXITM_CD       <!-- 세목 코드 -->
             , (GET_CODE_NM('FIM075', L.TXITM_CD)) AS TXITM_NM  <!-- 세목 명 -->
             , L.OPER_ITEM_CD   <!-- 운영 항목 코드 -->
             , (GET_CODE_NM('FIM076', CONCAT(L.TXITM_CD, L.OPER_ITEM_CD))) AS OPER_ITEM_NM  <!-- 운영 항목 명 -->
             , L.SPCL_BIZ_CD    <!-- 특별회계 사업 코드 -->
             , (GET_CODE_NM('FIM077', L.SPCL_BIZ_CD)) AS SPCL_BIZ_NM    <!-- 특별회계 사업 명 -->
             , L.LEVY_NO        <!-- 부과 번호 -->
             , L.ISPY_SN        <!-- 분납 일련번호 -->
             , L.LEVY_SE_CD     <!-- 부과 구분 코드 -->
             , (GET_CODE_NM('FIM040', L.LEVY_SE_CD)) AS LEVY_SE_NM  <!-- 부과 구분 코드 -->
             , L.UNTY_SE_CD     <!-- 통합 구분 코드 -->
             , (GET_CODE_NM('FIM072', L.UNTY_SE_CD)) AS UNTY_SE_NM  <!-- 통합 구분 코드 -->
             , L.RDCT_SE_CD     <!-- 감경 구분 코드 -->
             , (GET_CODE_NM('FIM046', L.RDCT_SE_CD)) AS RDCT_SE_NM  <!-- 감경 구분 코드 -->
             , L.ISPY_SE_NM     <!-- 분납 구분 명 -->
             , L.LEVY_YMD       <!-- 부과 일자 -->
             , L.FRST_DUDT_YMD  <!-- 최초 납기 일자 -->
             , L.DUDT_YMD       <!-- 납기 일자 -->
             , L.DUDT_AFTR_YMD  <!-- 납기 후 일자 -->
             , L.FFNLG_AMT      <!-- 과태료 금액 -->
             , L.LEVY_PCPTAX    <!-- 부과 본세 -->
             , L.LEVY_ADAMT     <!-- 부과 가산금 -->
             , L.ISPY_INT       <!-- 분납 이자 -->
             , L.RCVMT_PCPTAX   <!-- 수납 본세 -->
             , L.RCVMT_ADAMT    <!-- 수납 가산금 -->
             , L.RDAMT_PCPTAX   <!-- 감액 본세 -->
             , L.RDAMT_ADAMT    <!-- 감액 가산금 -->
             , L.LAST_AMT       <!-- 최종 금액 -->
             , L.DUDT_AFTR_AMT  <!-- 납기 후 금액 -->
             , L.TXTN_THING     <!-- 과세 물건 -->
             , L.MNG_ITEM1      <!-- 관리 아이템1 -->
             , L.MNG_ITEM2      <!-- 관리 아이템2 -->
             , L.MNG_ITEM3      <!-- 관리 아이템3 -->
             , L.MNG_ITEM4      <!-- 관리 아이템4 -->
             , L.MNG_ITEM5      <!-- 관리 아이템5 -->
             , L.MNG_ITEM6      <!-- 관리 아이템6 -->
             , L.NPMNT_RSN_CD   <!-- 체납 사유 코드 -->
             , (GET_CODE_NM('FIM043', L.NPMNT_RSN_CD)) AS NPMNT_RSN_NM  <!-- 체납 사유 명 -->
             , L.RCVMT_YMD      <!-- 수납 일자 -->
             , L.PAY_MTHD_SE_CD <!-- 납부 방법 구분 코드 -->
             , (GET_CODE_NM('FIM045', L.PAY_MTHD_SE_CD)) AS PAY_MTHD_SE_NM  <!-- 납부 방법 구분 명 -->
             , L.SZR_YMD        <!-- 압류 일자 -->
             , L.SZR_THING      <!-- 압류 물건 -->
             , L.RPM_SZR_VHRNO  <!-- 대체 압류 자동차등록번호 -->
             , L.SZR_RMV_YMD    <!-- 압류 해제 일자 -->
             , L.SZR_RMV_RSN    <!-- 압류 해제 사유 -->
             , L.ETC_CN         <!-- 기타 내용 -->
             , L.EPAYNO         <!-- 전자납부번호 -->
             , (GET_MASK_EPAYNO(L.EPAYNO)) AS EPAYNO_MASK   <!-- 전자납부번호 마스크 -->
             , L.BANK_NM        <!-- 은행 명 -->
             , L.VR_ACTNO       <!-- 가상 계좌번호 -->
             , L.BANK_NM2       <!-- 은행 명 2 -->
             , L.VR_ACTNO2      <!-- 가상 계좌번호 2 -->
             , L.BANK_NM3       <!-- 은행 명 3 -->
             , L.VR_ACTNO3      <!-- 가상 계좌번호 3 -->
             , L.BANK_NM4       <!-- 은행 명 4 -->
             , L.VR_ACTNO4      <!-- 가상 계좌번호 4 -->
             , L.BANK_NM5       <!-- 은행 명 5 -->
             , L.VR_ACTNO5      <!-- 가상 계좌번호 5 -->
             , L.BANK_NM6       <!-- 은행 명 6 -->
             , L.VR_ACTNO6      <!-- 가상 계좌번호 6 -->
             , L.BANK_NM7       <!-- 은행 명 7 -->
             , L.VR_ACTNO7      <!-- 가상 계좌번호 7 -->
             , L.BANK_NM8       <!-- 은행 명 8 -->
             , L.VR_ACTNO8      <!-- 가상 계좌번호 8 -->
             , L.BANK_NM9       <!-- 은행 명 9 -->
             , L.VR_ACTNO9      <!-- 가상 계좌번호 9 -->
             , L.BANK_NM10      <!-- 은행 명 10 -->
             , L.VR_ACTNO10     <!-- 가상 계좌번호 10 -->
             , L.BANK_NM11      <!-- 은행 명 11 -->
             , L.VR_ACTNO11     <!-- 가상 계좌번호 11 -->
             , L.BANK_NM12      <!-- 은행 명 12 -->
             , L.VR_ACTNO12     <!-- 가상 계좌번호 12 -->
             , L.BANK_NM13      <!-- 은행 명 13 -->
             , L.VR_ACTNO13     <!-- 가상 계좌번호 13 -->
             , L.BANK_NM14      <!-- 은행 명 14 -->
             , L.VR_ACTNO14     <!-- 가상 계좌번호 14 -->
             , L.BANK_NM15      <!-- 은행 명 15 -->
             , L.VR_ACTNO15     <!-- 가상 계좌번호 15 -->
             , L.BANK_NM16      <!-- 은행 명 16 -->
             , L.VR_ACTNO16     <!-- 가상 계좌번호 16 -->
             , L.BANK_NM17      <!-- 은행 명 17 -->
             , L.VR_ACTNO17     <!-- 가상 계좌번호 17 -->
             , L.BANK_NM18      <!-- 은행 명 18 -->
             , L.VR_ACTNO18     <!-- 가상 계좌번호 18 -->
             , L.BANK_NM19      <!-- 은행 명 19 -->
             , L.VR_ACTNO19     <!-- 가상 계좌번호 19 -->
             , L.BANK_NM20      <!-- 은행 명 20 -->
             , L.VR_ACTNO20     <!-- 가상 계좌번호 20 -->
             , L.NXRP_LEVY_KEY  <!-- 세외수입 부과 키 -->
             , L.DEL_YN         <!-- 삭제 여부 -->
             , L.REG_DT         <!-- 등록 일시 -->
             , L.RGTR           <!-- 등록자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM  <!-- 등록자 명 -->
             , L.MDFCN_DT       <!-- 수정 일시 -->
             , L.MDFR           <!-- 수정자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM  <!-- 수정자 명 -->
             , C.CRDN_ID        <!-- 단속 ID -->
             , C.CRDN_YMD       <!-- 단속 일자 -->
             , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM   <!-- 단속 일시 -->
             , (GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':')) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
             , C.VHRNO          <!-- 차량번호 -->
             , C.CRDN_STDG_NM   <!-- 단속 법정동 명 -->
             , C.CRDN_ROAD_NM   <!-- 단속 도로 명 -->
             , C.CRDN_PLC       <!-- 단속 장소 -->
             , C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
             , C.CRDN_STTS_CD   <!-- 단속 상태 코드 -->
             , (GET_CODE_NM('FIM010', C.CRDN_STTS_CD)) AS CRDN_STTS_NM  <!-- 단속 상태 명 -->
             , C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
             , V.VLTN_ID        <!-- 위반 ID -->
             , V.VLTN_CD        <!-- 위반 코드 -->
             , V.VLTN_ARTCL     <!-- 위반 항목 -->
             , P.RTPYR_ID       <!-- 납부자 ID -->
             , P.RTPYR_SE_CD    <!-- 납부자 구분 코드 -->
             , (GET_CODE_NM('FIM011', P.RTPYR_SE_CD)) AS RTPYR_SE_NM    <!-- 납부자 구분 명 -->
             , P.RTPYR_NO       <!-- 납부자 번호 -->
             , P.RTPYR_NM       <!-- 납부자 명 -->
             , PA.ADDR_SN       <!-- 주소 일련번호 -->
             , PA.ZIP           <!-- 우편번호 -->
             , PA.ADDR          <!-- 주소 -->
             , PA.DTL_ADDR      <!-- 상세 주소 -->
          FROM TB_LEVY            L
         INNER JOIN TB_CRDN       C  ON (L.CRDN_ID  = C.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)
    </sql>

    <select id="selectLevyList" parameterType="map" resultType="dataobject">/* 부과 대장 목록 조회(levyMapper.selectLevyList) */
        <include refid="utility.paging-prefix" />
        <include refid="select" />
        <where>
        	<if test="crdnId != null">AND L.CRDN_ID = #{crdnId}</if>
            <if test="schFyr != null">
           AND L.FYR    =  #{schFyr}    <!-- 회계연도 -->
            </if>
            <if test="schLevyNoFrom != null">
           AND L.LEVY_NO <![CDATA[>=]]> #{schLevyNoFrom}    <!-- 부과 번호 시작 -->
            </if>
            <if test="schLevyNoTo != null">
           AND L.LEVY_NO <![CDATA[<=]]> #{schLevyNoTo}      <!-- 부과 번호 종료 -->
            </if>
            <if test="schRdctSeCd != null">
           AND L.RDCT_SE_CD =  #{schRdctSeCd} <!-- 감경 구분 코드 -->
            </if>
            <if test="schLevyYmdFrom != null">
           AND L.LEVY_YMD <![CDATA[>=]]> #{schLevyYmdFrom}  <!-- 부과 일자 시작 -->
            </if>
            <if test="schLevyYmdTo != null">
           AND L.LEVY_YMD <![CDATA[<=]]> #{schLevyYmdTo}    <!-- 부과 일자 종료 -->
            </if>
            <if test="delYn != null">
           AND L.DEL_YN     =  #{delYn}     <!-- 삭제 여부 -->
            </if>
            <if test="schCrdnYmdFrom != null">
           AND C.CRDN_YMD <![CDATA[>=]]> #{schCrdnYmdFrom}  <!-- 단속 일자 시작 -->
            </if>
            <if test="schCrdnYmdTo != null">
           AND C.CRDN_YMD <![CDATA[<=]]> #{schCrdnYmdTo}    <!-- 단속 일자 종료 -->
            </if>
            <if test="schVhrno != null">
           AND C.VHRNO      =  #{schVhrno}      <!-- 차량번호 -->
            </if>
            <if test="schCrdnSttsCd != null">
           AND C.CRDN_STTS_CD =  #{schCrdnSttsCd}   <!-- 단속 상태 코드 -->
            </if>
            <if test="schRtpyrNo != null">
           AND P.RTPYR_NO   =  #{schRtpyrNo}    <!-- 납부자 번호 -->
            </if>
            <if test="schRtpyrNm != null">
           AND P.RTPYR_NM   =  #{schRtpyrNm}    <!-- 납부자 명 -->
            </if>
            <if test="sggCd != null">
           AND C.SGG_CD     =  #{sggCd}     <!-- 시군구 코드 -->
            </if>
            <if test="taskSeCd != null">
           AND C.TASK_SE_CD =  #{taskSeCd}  <!-- 업무 구분 코드 -->
            </if>
           AND C.DEL_YN     =  'N'          <!-- 단속 삭제 여부 -->
            <choose>
                <when test="schRegDateOpt == 'regDt'">
                    <if test="schRegDateFrom != null">
           AND L.REG_DT <![CDATA[>=]]> CONCAT(#{schRegDateFrom},'000000')   <!-- 등록 일자 시작 -->
                    </if>
                    <if test="schRegDateTo != null">
           AND L.REG_DT <![CDATA[<=]]> CONCAT(#{schRegDateTo},'235959')     <!-- 등록 일자 종료 -->
                    </if>
                </when>
                <when test="schRegDateOpt == 'mdfcnDt'">
                    <if test="schRegDateFrom != null">
           AND L.MDFCN_DT <![CDATA[>=]]> CONCAT(#{schRegDateFrom},'000000') <!-- 수정 일자 시작 -->
                    </if>
                    <if test="schRegDateTo != null">
           AND L.MDFCN_DT <![CDATA[<=]]> CONCAT(#{schRegDateTo},'235959')   <!-- 수정 일자 종료 -->
                    </if>
                </when>
                <otherwise>
                </otherwise>
            </choose>
            <choose>
                <when test="schRgtrOpt == 'rgtr'">
                    <if test="schRgtrCd != null">
           AND L.RGTR       =  #{schRgtrCd}     <!-- 등록자 코드 -->
                    </if>
                </when>
                <when test="schRgtrOpt == 'mdfr'">
                    <if test="schRgtrCd != null">
           AND L.MDFR       =  #{schRgtrCd}     <!-- 수정자 코드 -->
                    </if>
                </when>
                <otherwise>
                </otherwise>
            </choose>
            <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 == 'fyr'"> L.FYR </when>
                            <when test="by == 'acntgSeCd'"> L.ACNTG_SE_CD </when>
                            <when test="by == 'txitmCd'"> L.TXITM_CD </when>
                            <when test="by == 'levyYmd'"> L.LEVY_YMD </when>
                            <when test="by == 'levyNo'"> L.LEVY_NO </when>
                            <when test="by == 'levySeCd'"> L.LEVY_SE_CD </when>
                            <when test="by == 'rdctSeCd'"> L.RDCT_SE_CD </when>
                            <when test="by == 'frstDudtYmd'"> L.FRST_DUDT_YMD </when>
                            <when test="by == 'dudtYmd'"> L.DUDT_YMD </when>
                            <when test="by == 'ffnlgAmt'"> L.FFNLG_AMT </when>
                            <when test="by == 'levyPcptax'"> L.LEVY_PCPTAX </when>
                            <when test="by == 'levyAdamt'"> L.LEVY_ADAMT </when>
                            <when test="by == 'rcvmtPcptax'"> L.RCVMT_PCPTAX </when>
                            <when test="by == 'rcvmtAdamt'"> L.RCVMT_ADAMT </when>
                            <when test="by == 'rdamtPcptax'"> L.RDAMT_PCPTAX </when>
                            <when test="by == 'rdamtAdamt'"> L.RDAMT_ADAMT </when>
                            <when test="by == 'lastAmt'"> L.LAST_AMT </when>
                            <when test="by == 'txtnThing'"> L.TXTN_THING </when>
                            <when test="by == 'szrYmd'"> L.SZR_YMD </when>
                            <when test="by == 'szrThing'"> L.SZR_THING </when>
                            <when test="by == 'rpmSzrVhrno'"> L.RPM_SZR_VHRNO </when>
                            <when test="by == 'szrRmvYmd'"> L.SZR_RMV_YMD </when>
                            <when test="by == 'epayno'"> L.EPAYNO </when>
                            <when test="by == 'bankNm'"> L.BANK_NM </when>
                            <when test="by == 'vrActno'"> L.VR_ACTNO </when>
                            <when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
                            <when test="by == 'vhrno'"> C.VHRNO </when>
                            <when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
                            <when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
                            <when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
                            <when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when>
                            <when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when>
                            <when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
                            <when test="by == 'rtpyrSeCd'"> P.RTPYR_SE_CD </when>
                            <when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
                            <when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
                            <when test="by == 'zip'"> PA.ZIP </when>
                            <when test="by == 'addr'"> PA.ADDR </when>
                            <when test="by == 'dtlAddr'"> PA.DTL_ADDR </when>
                            <when test="by == 'vltnArtcl'"> V.VLTN_ARTCL </when>
                        </choose>
                        <include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
                    </when>
                    <otherwise>
                    </otherwise>
                </choose>
            </if>
        </where>
        <include refid="utility.orderBy" />
        <include refid="utility.paging-suffix" />
    </select>

    <select id="selectLevys" parameterType="map" resultMap="levyRow">/* 부과 대장 객체 가져오기(levyMapper.selectLevys) */
        <include refid="select" />
        <where>
            <if test="levyIds != null">
           AND L.LEVY_ID    IN (        <!-- 부과 IDs -->
                <foreach collection="levyIds" item="levyId" separator=","> #{levyId} </foreach>
               )
            </if>
            <if test="levyId != null">
           AND L.LEVY_ID    = #{levyId} <!-- 부과 ID -->
            </if>
            <if test="delYn != null">
           AND L.DEL_YN     = #{delYn}  <!-- 삭제 여부 -->
            </if>
            <if test='crdnIds != null'>AND L.CRDN_ID IN (<foreach collection="crdnIds" item="crdnId" separator=",">#{crdnId}</foreach>)</if>
            <if test="crdnId != null">
           AND C.CRDN_ID    = #{crdnId} <!-- 단속 ID -->
           AND C.DEL_YN     = 'N'       <!-- 삭제 여부 -->
            </if>
           <if test='nxrpLevyKeys != null'>AND L.NXRP_LEVY_KEY IN (<foreach collection="nxrpLevyKeys" item="nxrpLevyKey" separator=",">#{nxrpLevyKey}</foreach>)</if>
        </where>
        <include refid="utility.orderBy" />
    </select>

    <select id="selectMaxLevyNo" parameterType="map" resultType="String">/* 고지번호 가져오기(levyMapper.selectMaxLevyNo) */
        SELECT LPAD(IFNULL(MAX(LEVY_NO) + 1, 1), 6, '0') AS NEW_LEVY_NO
          FROM TB_LEVY
         WHERE SGG_CD       = #{sggCd}
           AND TASK_SE_CD   = #{taskSeCd}
           AND FYR          = #{fyr}
           AND ACNTG_SE_CD  = #{acntgSeCd}
           AND TXITM_CD     = #{txitmCd}
           AND OPER_ITEM_CD = #{operItemCd}
    </select>

    <select id="selectLevyAmt" parameterType="map" resultType="dataobject">/* 부과 금액 가져오기(levyMapper.selectLevyAmt) */
        SELECT L.LEVY_ID        <!-- 부과 ID -->
             , L.CRDN_ID        <!-- 단속 ID -->
             , L.DEPT_CD        <!-- 부서 코드 -->
             , L.SPCL_BIZ_CD    <!-- 특별회계 사업 코드 -->
             , L.FYR            <!-- 회계연도 -->
             , L.ACNTG_SE_CD    <!-- 회계 구분 코드 -->
             , L.TXITM_CD       <!-- 세목 코드 -->
             , L.OPER_ITEM_CD   <!-- 운영 항목 코드 -->
             , L.LEVY_NO        <!-- 부과 번호 -->
             , L.ISPY_SN        <!-- 분납 일련번호 -->
             , L.FFNLG_AMT      <!-- 과태료 금액 -->
             , 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.RCVMT_PCPTAX - L.RDAMT_PCPTAX AS LAST_PCPTAX   <!-- 최종 본세 -->
             , L.LEVY_ADAMT  - L.RCVMT_ADAMT  - L.RDAMT_ADAMT  AS LAST_ADAMT    <!-- 가산금 -->
             , C.CRDN_STTS_CD   <!-- 단속 상태 코드 -->
             , C.CRDN_STTS_CHG_DT   <!-- 단속 상태 변경 일시 -->
          FROM TB_LEVY      L
         INNER JOIN TB_CRDN C ON (L.CRDN_ID = C.CRDN_ID)
        <choose>
            <when test="crdnId != null">
         WHERE L.CRDN_ID      = #{crdnId}       <!-- 단속 ID -->
            </when>
            <when test="levyId != null">
         WHERE L.LEVY_ID      = #{levyId}       <!-- 부과 ID -->
            </when>
            <otherwise>
         WHERE L.DEPT_CD      = #{deptCd}       <!-- 부서 코드 -->
           AND L.SPCL_BIZ_CD  = #{spclBizCd}    <!-- 특별회계 사업 코드 -->
           AND L.FYR          = #{fyr}          <!-- 회계연도 -->
           AND L.ACNTG_SE_CD  = #{acntgSeCd}    <!-- 회계 구분 코드 -->
           AND L.TXITM_CD     = #{txitmCd}      <!-- 세목 코드 -->
           AND L.OPER_ITEM_CD = #{operItemCd}   <!-- 운영 항목 코드 -->
           AND L.LEVY_NO      = #{levyNo}       <!-- 부과 번호 -->
           AND L.ISPY_SN      = #{ispySn}       <!-- 분납 일련번호 -->
            </otherwise>
        </choose>
           AND L.DEL_YN       = 'N'             <!-- 삭제 여부 -->
    </select>

	<select id="selectPrevLevyList" parameterType="map" resultType="dataobject">/* 최근 2년 내 특정일 이전 부과 목록 조회(levyMapper.selectPrevLevyList) */
	SELECT A.SGG_CD, A.TASK_SE_CD, VHRNO, VLTN_ID, RTPYR_ID, LEVY_ID, LEVY_YMD
	  FROM TB_CRDN A
	     , TB_LEVY B
	 WHERE A.SGG_CD = #{sggCd}
	   AND A.TASK_SE_CD = #{taskSeCd}
	   AND VHRNO = #{schVhrno}
	   AND VLTN_ID = #{schVltnCd}
	   AND RTPYR_ID = #{rtpyrId}
	   AND DATEDIFF(#{date}, LEVY_YMD) &lt;= 365 * 2 <!-- 2년내 부과내역 -->
	   AND A.CRDN_STTS_CD NOT IN ('80', '81')        <!-- 80: 부과취소, 81: 부과제외 -->
	   AND A.DEL_YN = 'N'
	   AND B.DEL_YN = 'N'
	   AND A.CRDN_ID = B.CRDN_ID</select>

    <insert id="insertLevy" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장 등록(levyMapper.insertLevy) */
        <selectKey resultType="string" keyProperty="levyId" keyColumn="NEW_ID" order="BEFORE">
            <include refid="numbering.keyByYear">
                <property name="TABLE_NAME" value="TB_LEVY" />
                <property name="TABLE_KEY"  value="LEVY_ID" />
                <property name="pad"        value="20" />
            </include>
        </selectKey>
        INSERT
          INTO TB_LEVY (
               LEVY_ID          <!-- 부과 ID -->
             , SGG_CD           <!-- 시군구 코드 -->
             , TASK_SE_CD       <!-- 업무 구분 코드 -->
             , CRDN_ID          <!-- 단속 ID -->
             , INST_CD          <!-- 기관 코드 -->
             , DEPT_CD          <!-- 부서 코드 -->
             , FYR              <!-- 회계 연도 -->
             , ACNTG_SE_CD      <!-- 회계 구분 -->
             , TXITM_CD         <!-- 세목 코드 -->
             , OPER_ITEM_CD     <!-- 운영 항목 코드 -->
             , SPCL_BIZ_CD      <!-- 특별회계 사업 코드 -->
             , LEVY_NO          <!-- 부과 번호 -->
             , ISPY_SN          <!-- 분납 일련번호 -->
             , LEVY_SE_CD       <!-- 부과 구분 코드 -->
             , UNTY_SE_CD       <!-- 통합 구분 코드 -->
             , RDCT_SE_CD       <!-- 감경 구분 코드 -->
             , ISPY_SE_NM       <!-- 분납 구분 명 -->
             , LEVY_YMD         <!-- 부과 일자 -->
             , FRST_DUDT_YMD    <!-- 최초 납기 일자 -->
             , DUDT_YMD         <!-- 납기 일자 -->
             , DUDT_AFTR_YMD    <!-- 납기 후 일자 -->
             , FFNLG_AMT        <!-- 과태료 금액 -->
             , LEVY_PCPTAX      <!-- 부과 본세 -->
             , LEVY_ADAMT       <!-- 부과 가산금 -->
             , ISPY_INT         <!-- 분납 이자 -->
             , RCVMT_PCPTAX     <!-- 수납 본세 -->
             , RCVMT_ADAMT      <!-- 수납 가산금 -->
             , RDAMT_PCPTAX     <!-- 감액 본세 -->
             , RDAMT_ADAMT      <!-- 감액 가산금 -->
             , LAST_AMT         <!-- 최종 금액 -->
             , DUDT_AFTR_AMT    <!-- 납기 후 금액 -->
             , TXTN_THING       <!-- 과세 물건 -->
             , MNG_ITEM1        <!-- 관리 아이템1 -->
             , MNG_ITEM2        <!-- 관리 아이템2 -->
             , MNG_ITEM3        <!-- 관리 아이템3 -->
             , MNG_ITEM4        <!-- 관리 아이템4 -->
             , MNG_ITEM5        <!-- 관리 아이템5 -->
             , MNG_ITEM6        <!-- 관리 아이템6 -->
             , NPMNT_RSN_CD     <!-- 체납 사유 코드 -->
             , RCVMT_YMD        <!-- 수납 일자 -->
             , PAY_MTHD_SE_CD   <!-- 납부 방법 구분 코드 -->
             , SZR_YMD          <!-- 압류 일자 -->
             , SZR_THING        <!-- 압류 물건 -->
             , RPM_SZR_VHRNO    <!-- 대체 압류 자동차등록번호 -->
             , SZR_RMV_YMD      <!-- 압류 해제 일자 -->
             , SZR_RMV_RSN      <!-- 압류 해제 사유 -->
             , ETC_CN           <!-- 기타 내용 -->
             , EPAYNO           <!-- 전자납부번호 -->
             , BANK_NM          <!-- 은행 명 -->
             , VR_ACTNO         <!-- 가상 계좌번호 -->
             , BANK_NM2         <!-- 은행 명2 -->
             , VR_ACTNO2        <!-- 가상 계좌번호2 -->
             , BANK_NM3         <!-- 은행 명3 -->
             , VR_ACTNO3        <!-- 가상 계좌번호3 -->
             , BANK_NM4         <!-- 은행 명4 -->
             , VR_ACTNO4        <!-- 가상 계좌번호4 -->
             , BANK_NM5         <!-- 은행 명5 -->
             , VR_ACTNO5        <!-- 가상 계좌번호5 -->
             , BANK_NM6         <!-- 은행 명6 -->
             , VR_ACTNO6        <!-- 가상 계좌번호6 -->
             , BANK_NM7         <!-- 은행 명7 -->
             , VR_ACTNO7        <!-- 가상 계좌번호7 -->
             , BANK_NM8         <!-- 은행 명8 -->
             , VR_ACTNO8        <!-- 가상 계좌번호8 -->
             , BANK_NM9         <!-- 은행 명9 -->
             , VR_ACTNO9        <!-- 가상 계좌번호9 -->
             , BANK_NM10        <!-- 은행 명10 -->
             , VR_ACTNO10       <!-- 가상 계좌번호10 -->
             , BANK_NM11        <!-- 은행 명11 -->
             , VR_ACTNO11       <!-- 가상 계좌번호11 -->
             , BANK_NM12        <!-- 은행 명 12 -->
             , VR_ACTNO12       <!-- 가상 계좌번호 12 -->
             , BANK_NM13        <!-- 은행 명 13 -->
             , VR_ACTNO13       <!-- 가상 계좌번호 13 -->
             , BANK_NM14        <!-- 은행 명 14 -->
             , VR_ACTNO14       <!-- 가상 계좌번호 14 -->
             , BANK_NM15        <!-- 은행 명 15 -->
             , VR_ACTNO15       <!-- 가상 계좌번호 15 -->
             , BANK_NM16        <!-- 은행 명 16 -->
             , VR_ACTNO16       <!-- 가상 계좌번호 16 -->
             , BANK_NM17        <!-- 은행 명 17 -->
             , VR_ACTNO17       <!-- 가상 계좌번호 17 -->
             , BANK_NM18        <!-- 은행 명 18 -->
             , VR_ACTNO18       <!-- 가상 계좌번호 18 -->
             , BANK_NM19        <!-- 은행 명 19 -->
             , VR_ACTNO19       <!-- 가상 계좌번호 19 -->
             , BANK_NM20        <!-- 은행 명 20 -->
             , VR_ACTNO20       <!-- 가상 계좌번호 20 -->
             , NXRP_LEVY_KEY    <!-- 세외수입 부과 키 -->
             , DEL_YN           <!-- 삭제 여부 -->
             , REG_DT           <!-- 등록 일시 -->
             , RGTR             <!-- 등록자 -->
             , MDFCN_DT         <!-- 수정 일시 -->
             , MDFR             <!-- 수정자 -->
        )
        VALUES (
               #{levyId}        <!-- 부과 ID -->
             , #{sggCd}         <!-- 시군구 코드 -->
             , #{taskSeCd}      <!-- 업무 구분 코드 -->
             , #{crdnId}        <!-- 단속 ID -->
             , #{instCd}        <!-- 기관 코드 -->
             , #{deptCd}        <!-- 부서 코드 -->
             , #{fyr}           <!-- 회계 연도 -->
             , #{acntgSeCd}     <!-- 회계 구분 -->
             , #{txitmCd}       <!-- 세목 코드 -->
             , #{operItemCd}    <!-- 운영 항목 코드 -->
             , #{spclBizCd}     <!-- 특별회계 사업 코드 -->
             , #{levyNo}        <!-- 부과 번호 -->
             , #{ispySn}        <!-- 분납 일련번호 -->
             , #{levySeCd}      <!-- 부과 구분 코드 -->
             , #{untySeCd}      <!-- 통합 구분 코드 -->
             , #{rdctSeCd}      <!-- 감경 구분 코드 -->
             , #{ispySeNm}      <!-- 분납 구분 명 -->
             , #{levyYmd}       <!-- 부과 일자 -->
             , #{frstDudtYmd}   <!-- 최초 납기 일자 -->
             , #{dudtYmd}       <!-- 납기 일자 -->
             , #{dudtAftrYmd}   <!-- 납기 후 일자 -->
             , #{ffnlgAmt}      <!-- 과태료 금액 -->
             , #{levyPcptax}    <!-- 부과 본세 -->
             , #{levyAdamt}     <!-- 부과 가산금 -->
             , #{ispyInt}       <!-- 분납 이자 -->
             , #{rcvmtPcptax}   <!-- 수납 본세 -->
             , #{rcvmtAdamt}    <!-- 수납 가산금 -->
             , #{rdamtPcptax}   <!-- 감액 본세 -->
             , #{rdamtAdamt}    <!-- 감액 가산금 -->
             , #{lastAmt}       <!-- 최종 금액 -->
             , #{dudtAftrAmt}   <!-- 납기 후 금액 -->
             , #{txtnThing}     <!-- 과세 물건 -->
             , #{mngItem1}      <!-- 관리 아이템1 -->
             , #{mngItem2}      <!-- 관리 아이템2 -->
             , #{mngItem3}      <!-- 관리 아이템3 -->
             , #{mngItem4}      <!-- 관리 아이템4 -->
             , #{mngItem5}      <!-- 관리 아이템5 -->
             , #{mngItem6}      <!-- 관리 아이템6 -->
             , #{npmntRsnCd}    <!-- 체납 사유 코드 -->
             , #{rcvmtYmd}      <!-- 수납 일자 -->
             , #{payMthdSeCd}   <!-- 납부 방법 구분 코드 -->
             , #{szrYmd}        <!-- 압류 일자 -->
             , #{szrThing}      <!-- 압류 물건 -->
             , #{rpmSzrVhrno}   <!-- 대체 압류 자동차등록번호 -->
             , #{szrRmvYmd}     <!-- 압류 해제 일자 -->
             , #{szrRmvRsn}     <!-- 압류 해제 사유 -->
             , #{etcCn}         <!-- 기타 내용 -->
             , #{epayno}        <!-- 전자납부번호 -->
             , #{bankNm}        <!-- 은행 명 -->
             , #{vrActno}       <!-- 가상 계좌번호 -->
             , #{bankNm2}       <!-- 은행 명2 -->
             , #{vrActno2}      <!-- 가상 계좌번호2 -->
             , #{bankNm3}       <!-- 은행 명3 -->
             , #{vrActno3}      <!-- 가상 계좌번호3 -->
             , #{bankNm4}       <!-- 은행 명4 -->
             , #{vrActno4}      <!-- 가상 계좌번호4 -->
             , #{bankNm5}       <!-- 은행 명5 -->
             , #{vrActno5}      <!-- 가상 계좌번호5 -->
             , #{bankNm6}       <!-- 은행 명6 -->
             , #{vrActno6}      <!-- 가상 계좌번호6 -->
             , #{bankNm7}       <!-- 은행 명7 -->
             , #{vrActno7}      <!-- 가상 계좌번호7 -->
             , #{bankNm8}       <!-- 은행 명8 -->
             , #{vrActno8}      <!-- 가상 계좌번호8 -->
             , #{bankNm9}       <!-- 은행 명9 -->
             , #{vrActno9}      <!-- 가상 계좌번호9 -->
             , #{bankNm10}      <!-- 은행 명10 -->
             , #{vrActno10}     <!-- 가상 계좌번호10 -->
             , #{bankNm11}      <!-- 은행 명11 -->
             , #{vrActno11}     <!-- 가상 계좌번호11 -->
             , #{bankNm12}      <!-- 은행 명12 -->
             , #{vrActno12}     <!-- 가상 계좌번호12 -->
             , #{bankNm13}      <!-- 은행 명13 -->
             , #{vrActno13}     <!-- 가상 계좌번호13 -->
             , #{bankNm14}      <!-- 은행 명14 -->
             , #{vrActno14}     <!-- 가상 계좌번호14 -->
             , #{bankNm15}      <!-- 은행 명15 -->
             , #{vrActno15}     <!-- 가상 계좌번호15 -->
             , #{bankNm16}      <!-- 은행 명16 -->
             , #{vrActno16}     <!-- 가상 계좌번호16 -->
             , #{bankNm17}      <!-- 은행 명17 -->
             , #{vrActno17}     <!-- 가상 계좌번호17 -->
             , #{bankNm18}      <!-- 은행 명18 -->
             , #{vrActno18}     <!-- 가상 계좌번호18 -->
             , #{bankNm19}      <!-- 은행 명19 -->
             , #{vrActno19}     <!-- 가상 계좌번호19 -->
             , #{bankNm20}      <!-- 은행 명20 -->
             , #{vrActno20}     <!-- 가상 계좌번호20 -->
             , #{nxrpLevyKey}   <!-- 세외수입 부과 키 -->
             , 'N'              <!-- 삭제 여부 -->
             , <include refid="utility.now" />  <!-- 등록 일시 -->
             , #{createdBy}     <!-- 등록자 -->
             , <include refid="utility.now" />  <!-- 수정 일시 -->
             , #{modifiedBy}    <!-- 수정자 -->
        )
    </insert>

    <update id="updateLevy" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장 수정(levyMapper.updateLevy) */
        UPDATE TB_LEVY
           SET INST_CD          = #{instCd}         <!-- 기관 코드 -->
             , DEPT_CD          = #{deptCd}         <!-- 부서 코드 -->
             , FYR              = #{fyr}            <!-- 회계 연도 -->
             , ACNTG_SE_CD      = #{acntgSeCd}      <!-- 회계 구분 코드 -->
             , TXITM_CD         = #{txitmCd}        <!-- 세목 코드 -->
             , OPER_ITEM_CD     = #{operItemCd}     <!-- 운영 항목 코드 -->
             , SPCL_BIZ_CD      = #{spclBizCd}      <!-- 특별회계 사업 코드 -->
             , LEVY_NO          = #{levyNo}         <!-- 부과 번호 -->
             , ISPY_SN          = #{ispySn}         <!-- 분납 일련번호 -->
             , LEVY_SE_CD       = #{levySeCd}       <!-- 부과 구분 코드 -->
             , UNTY_SE_CD       = #{untySeCd}       <!-- 통합 구분 코드 -->
             , RDCT_SE_CD       = #{rdctSeCd}       <!-- 감경 구분 코드 -->
             , ISPY_SE_NM       = #{ispySeNm}       <!-- 분납 구분 명 -->
             , LEVY_YMD         = #{levyYmd}        <!-- 부과 일자 -->
             , FRST_DUDT_YMD    = #{frstDudtYmd}    <!-- 최초 납기 일자 -->
             , DUDT_YMD         = #{dudtYmd}        <!-- 납기 일자 -->
             , DUDT_AFTR_YMD    = #{dudtAftrYmd}    <!-- 납기 후 일자 -->
             , FFNLG_AMT        = #{ffnlgAmt}       <!-- 과태료 금액 -->
             , LEVY_PCPTAX      = #{levyPcptax}     <!-- 부과 본세 -->
             , LEVY_ADAMT       = #{levyAdamt}      <!-- 부과 가산금 -->
             , ISPY_INT         = #{ispyInt}        <!-- 분납 이자 -->
             , RCVMT_PCPTAX     = #{rcvmtPcptax}    <!-- 수납 본세 -->
             , RCVMT_ADAMT      = #{rcvmtAdamt}     <!-- 수납 가산금 -->
             , RDAMT_PCPTAX     = #{rdamtPcptax}    <!-- 감액 본세 -->
             , RDAMT_ADAMT      = #{rdamtAdamt}     <!-- 감액 가산금 -->
             , LAST_AMT         = #{lastAmt}        <!-- 최종 금액 -->
             , DUDT_AFTR_AMT    = #{dudtAftrAmt}    <!-- 납기 후 금액 -->
             , TXTN_THING       = #{txtnThing}      <!-- 과세 물건 -->
             , MNG_ITEM1        = #{mngItem1}       <!-- 관리 아이템1 -->
             , MNG_ITEM2        = #{mngItem2}       <!-- 관리 아이템2 -->
             , MNG_ITEM3        = #{mngItem3}       <!-- 관리 아이템3 -->
             , MNG_ITEM4        = #{mngItem4}       <!-- 관리 아이템4 -->
             , MNG_ITEM5        = #{mngItem5}       <!-- 관리 아이템5 -->
             , MNG_ITEM6        = #{mngItem6}       <!-- 관리 아이템6 -->
             , NPMNT_RSN_CD     = #{npmntRsnCd}     <!-- 체납 사유 코드 -->
             , RCVMT_YMD        = #{rcvmtYmd}       <!-- 수납 일자 -->
             , PAY_MTHD_SE_CD   = #{payMthdSeCd}    <!-- 납부 방법 구분 코드 -->
             , SZR_YMD          = #{szrYmd}         <!-- 압류 일자 -->
             , SZR_THING        = #{szrThing}       <!-- 압류 물건 -->
             , RPM_SZR_VHRNO    = #{rpmSzrVhrno}    <!-- 대체 압류 자동차등록번호 -->
             , SZR_RMV_YMD      = #{szrRmvYmd}      <!-- 압류 해제 일자 -->
             , SZR_RMV_RSN      = #{szrRmvRsn}      <!-- 압류 해제 사유 -->
             , ETC_CN           = #{etcCn}          <!-- 기타 내용 -->
             , EPAYNO           = #{epayno}         <!-- 전자납부번호 -->
             , BANK_NM          = #{bankNm}         <!-- 은행 명 -->
             , VR_ACTNO         = #{vrActno}        <!-- 가상 계좌번호 -->
             , BANK_NM2         = #{bankNm2}        <!-- 은행 명2 -->
             , VR_ACTNO2        = #{vrActno2}       <!-- 가상 계좌번호2 -->
             , BANK_NM3         = #{bankNm3}        <!-- 은행 명3 -->
             , VR_ACTNO3        = #{vrActno3}       <!-- 가상 계좌번호3 -->
             , BANK_NM4         = #{bankNm4}        <!-- 은행 명4 -->
             , VR_ACTNO4        = #{vrActno4}       <!-- 가상 계좌번호4 -->
             , BANK_NM5         = #{bankNm5}        <!-- 은행 명5 -->
             , VR_ACTNO5        = #{vrActno5}       <!-- 가상 계좌번호5 -->
             , BANK_NM6         = #{bankNm6}        <!-- 은행 명6 -->
             , VR_ACTNO6        = #{vrActno6}       <!-- 가상 계좌번호6 -->
             , BANK_NM7         = #{bankNm7}        <!-- 은행 명7 -->
             , VR_ACTNO7        = #{vrActno7}       <!-- 가상 계좌번호7 -->
             , BANK_NM8         = #{bankNm8}        <!-- 은행 명8 -->
             , VR_ACTNO8        = #{vrActno8}       <!-- 가상 계좌번호8 -->
             , BANK_NM9         = #{bankNm9}        <!-- 은행 명9 -->
             , VR_ACTNO9        = #{vrActno9}       <!-- 가상 계좌번호9 -->
             , BANK_NM10        = #{bankNm10}       <!-- 은행 명10 -->
             , VR_ACTNO10       = #{vrActno10}      <!-- 가상 계좌번호10 -->
             , BANK_NM11        = #{bankNm11}       <!-- 은행 명11 -->
             , VR_ACTNO11       = #{vrActno11}      <!-- 가상 계좌번호11 -->
             , BANK_NM12        = #{bankNm12}       <!-- 은행 명 12 -->
             , VR_ACTNO12       = #{vrActno12}      <!-- 가상 계좌번호 12 -->
             , BANK_NM13        = #{bankNm13}       <!-- 은행 명 13 -->
             , VR_ACTNO13       = #{vrActno13}      <!-- 가상 계좌번호 13 -->
             , BANK_NM14        = #{bankNm14}       <!-- 은행 명 14 -->
             , VR_ACTNO14       = #{vrActno14}      <!-- 가상 계좌번호 14 -->
             , BANK_NM15        = #{bankNm15}       <!-- 은행 명 15 -->
             , VR_ACTNO15       = #{vrActno15}      <!-- 가상 계좌번호 15 -->
             , BANK_NM16        = #{bankNm16}       <!-- 은행 명 16 -->
             , VR_ACTNO16       = #{vrActno16}      <!-- 가상 계좌번호 16 -->
             , BANK_NM17        = #{bankNm17}       <!-- 은행 명 17 -->
             , VR_ACTNO17       = #{vrActno17}      <!-- 가상 계좌번호 17 -->
             , BANK_NM18        = #{bankNm18}       <!-- 은행 명 18 -->
             , VR_ACTNO18       = #{vrActno18}      <!-- 가상 계좌번호 18 -->
             , BANK_NM19        = #{bankNm19}       <!-- 은행 명 19 -->
             , VR_ACTNO19       = #{vrActno19}      <!-- 가상 계좌번호 19 -->
             , BANK_NM20        = #{bankNm20}       <!-- 은행 명 20 -->
             , VR_ACTNO20       = #{vrActno20}      <!-- 가상 계좌번호 20 -->
             , NXRP_LEVY_KEY    = #{nxrpLevyKey}    <!-- 세외수입 부과 키 -->
             , MDFCN_DT         = <include refid="utility.now" />  <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy}     <!-- 수정자 -->
         WHERE LEVY_ID          = #{levyId}         <!-- 부과 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="updateRdctLevyYmd" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장에 부과일자, 최초납기일자, 납기일자 정보를 수정(levyMapper.updateRdctLevyYmd) */
        UPDATE TB_LEVY
           SET LEVY_YMD         = #{levyYmd}    <!-- 부과 일자 -->
             , FRST_DUDT_YMD    = #{frstDudtYmd} <!-- 최초 납기 일자 -->
             , DUDT_YMD         = #{dudtYmd}    <!-- 납기 일자 -->
            <if test="ffnlgAmt != null">
             , FFNLG_AMT        = #{ffnlgAmt}   <!-- 과태료 금액 -->
            </if>
            <if test="levyPcptax != null">
             , LEVY_PCPTAX      = #{levyPcptax} <!-- 본세 금액 -->
            </if>
            <if test="lastAmt != null">
             , LAST_AMT         = #{lastAmt}    <!-- 최종 금액 -->
            </if>
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
         WHERE LEVY_ID          = #{levyId}     <!-- 부과 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="updateEpaynoVrActnoLevy" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장에 전자납부번호, 가상계좌번호 정보를 수정(levyMapper.updateEpaynoVrActnoLevy) */
        UPDATE TB_LEVY
           SET EPAYNO           = #{epayno}         <!-- 전자납부번호 -->
             , BANK_NM          = #{bankNm}         <!-- 은행 명 -->
             , VR_ACTNO         = #{vrActno}        <!-- 가상 계좌번호 -->
             , BANK_NM2         = #{bankNm2}        <!-- 은행 명2 -->
             , VR_ACTNO2        = #{vrActno2}       <!-- 가상 계좌번호2 -->
             , BANK_NM3         = #{bankNm3}        <!-- 은행 명3 -->
             , VR_ACTNO3        = #{vrActno3}       <!-- 가상 계좌번호3 -->
             , BANK_NM4         = #{bankNm4}        <!-- 은행 명4 -->
             , VR_ACTNO4        = #{vrActno4}       <!-- 가상 계좌번호4 -->
             , BANK_NM5         = #{bankNm5}        <!-- 은행 명5 -->
             , VR_ACTNO5        = #{vrActno5}       <!-- 가상 계좌번호5 -->
             , BANK_NM6         = #{bankNm6}        <!-- 은행 명6 -->
             , VR_ACTNO6        = #{vrActno6}       <!-- 가상 계좌번호6 -->
             , BANK_NM7         = #{bankNm7}        <!-- 은행 명7 -->
             , VR_ACTNO7        = #{vrActno7}       <!-- 가상 계좌번호7 -->
             , BANK_NM8         = #{bankNm8}        <!-- 은행 명8 -->
             , VR_ACTNO8        = #{vrActno8}       <!-- 가상 계좌번호8 -->
             , BANK_NM9         = #{bankNm9}        <!-- 은행 명9 -->
             , VR_ACTNO9        = #{vrActno9}       <!-- 가상 계좌번호9 -->
             , BANK_NM10        = #{bankNm10}       <!-- 은행 명10 -->
             , VR_ACTNO10       = #{vrActno10}      <!-- 가상 계좌번호10 -->
             , BANK_NM11        = #{bankNm11}       <!-- 은행 명11 -->
             , VR_ACTNO11       = #{vrActno11}      <!-- 가상 계좌번호11 -->
             , BANK_NM12        = #{bankNm12}       <!-- 은행 명 12 -->
             , VR_ACTNO12       = #{vrActno12}      <!-- 가상 계좌번호 12 -->
             , BANK_NM13        = #{bankNm13}       <!-- 은행 명 13 -->
             , VR_ACTNO13       = #{vrActno13}      <!-- 가상 계좌번호 13 -->
             , BANK_NM14        = #{bankNm14}       <!-- 은행 명 14 -->
             , VR_ACTNO14       = #{vrActno14}      <!-- 가상 계좌번호 14 -->
             , BANK_NM15        = #{bankNm15}       <!-- 은행 명 15 -->
             , VR_ACTNO15       = #{vrActno15}      <!-- 가상 계좌번호 15 -->
             , BANK_NM16        = #{bankNm16}       <!-- 은행 명 16 -->
             , VR_ACTNO16       = #{vrActno16}      <!-- 가상 계좌번호 16 -->
             , BANK_NM17        = #{bankNm17}       <!-- 은행 명 17 -->
             , VR_ACTNO17       = #{vrActno17}      <!-- 가상 계좌번호 17 -->
             , BANK_NM18        = #{bankNm18}       <!-- 은행 명 18 -->
             , VR_ACTNO18       = #{vrActno18}      <!-- 가상 계좌번호 18 -->
             , BANK_NM19        = #{bankNm19}       <!-- 은행 명 19 -->
             , VR_ACTNO19       = #{vrActno19}      <!-- 가상 계좌번호 19 -->
             , BANK_NM20        = #{bankNm20}       <!-- 은행 명 20 -->
             , VR_ACTNO20       = #{vrActno20}      <!-- 가상 계좌번호 20 -->
             , NXRP_LEVY_KEY    = #{nxrpLevyKey}    <!-- 세외수입 부과 키 -->
             , MDFCN_DT         = <include refid="utility.now" />  <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy}     <!-- 수정자 -->
         WHERE LEVY_ID          = #{levyId}         <!-- 부과 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="updateLevyRdct" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장 과태료 감경 금액 수정(levyMapper.updateLevyRdct) */
        UPDATE TB_LEVY
           SET FFNLG_AMT        = #{ffnlgAmt}   <!-- 과태료 금액 -->
             , LEVY_PCPTAX      = #{levyPcptax} <!-- 부과 본세 -->
             , LAST_AMT         = #{lastAmt}    <!-- 최종 금액 -->
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
         WHERE LEVY_ID          = #{levyId}     <!-- 단속 ID -->
           AND DEL_YN           = 'N'           <!-- 삭제 여부 -->
     </update>

    <update id="updateLevyRcvmt" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장에 수납 금액 정보를 수정(levyMapper.updateLevyRcvmt) */
        UPDATE TB_LEVY
           SET RCVMT_PCPTAX     = #{rcvmtPcptax}    <!-- 수납 본세 -->
             , RCVMT_ADAMT      = #{rcvmtAdamt}     <!-- 수납 가산금 -->
             , LAST_AMT         = #{lastAmt}        <!-- 최종 금액 -->
             , DUDT_AFTR_AMT    = #{dudtAftrAmt}    <!-- 납기 후 금액 -->
             , RCVMT_YMD        = #{rcvmtYmd}       <!-- 수납 일자 -->
             , PAY_MTHD_SE_CD   = #{payMthdSeCd}    <!-- 납부 방법 구분 코드 -->
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy}     <!-- 수정자 -->
         WHERE LEVY_ID          = #{levyId}         <!-- 부과 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="updateLevyRdamt" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장에 감액 금액 정보를 수정(levyMapper.updateLevyRdamt) */
        UPDATE TB_LEVY
           SET RDAMT_PCPTAX     = #{rdamtPcptax}    <!-- 감액 본세 -->
             , RDAMT_ADAMT      = #{rdamtAdamt}     <!-- 감액 가산금 -->
             , LAST_AMT         = #{lastAmt}        <!-- 최종 금액 -->
             , DUDT_AFTR_AMT    = #{dudtAftrAmt}    <!-- 납기 후 금액 -->
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy}     <!-- 수정자 -->
         WHERE LEVY_ID          = #{levyId}         <!-- 부과 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="deleteLevy" parameterType="cokr.xit.fims.levy.Levy">/* 부과 대장 삭제(levyMapper.deleteLevy) */
        UPDATE TB_LEVY
           SET DEL_YN           = 'Y'
             , DEL_DT           = <include refid="utility.now" />   <!-- 삭제 일시 -->
             , DLTR             = #{modifiedBy} <!-- 삭제자 -->
             , DEL_RSN          = #{delRsn}     <!-- 삭제 사유 -->
         WHERE LEVY_ID          = #{levyId}     <!-- 부과 ID -->
           AND DEL_YN           = 'N'
    </update>

    <select id="selectCrdn" parameterType="string" resultType="dataobject">/* 단속 정보 가져오기(levyMapper.selectCrdn) */
        SELECT C.CRDN_ID            <!-- 단속 ID -->
             , C.SGG_CD             <!-- 시군구 코드 -->
             , C.TASK_SE_CD         <!-- 업무 구분 코드 -->
             , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL)   AS TASK_SE_NM   <!-- 업무 구분 명 -->
             , (SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL) AS CRDN_YMD_TM_MASK <!-- 단속 일시 마스크 -->
             , C.VHRNO              <!-- 차량번호 -->
             , C.CRDN_STDG_NM       <!-- 단속 법정동 명 -->
             , C.CRDN_ROAD_NM       <!-- 단속 도로 명 -->
             , C.CRDN_PLC           <!-- 단속 장소 -->
             , C.VLTN_ID            <!-- 위반 ID -->
             , C.FFNLG_CRDN_AMT     <!-- 과태료 단속 금액 -->
             , C.FFNLG_RDCRT        <!-- 과태료 감경율 -->
             , C.FFNLG_AMT          <!-- 과태료 금액 -->
             , C.ADVNTCE_BGNG_YMD   <!-- 사전통지 시작 일자 -->
             , C.ADVNTCE_DUDT_YMD   <!-- 사전통지 납기 일자 -->
             , C.ADVNTCE_AMT        <!-- 사전통지 금액 -->
             , C.CRDN_STTS_CD       <!-- 단속 상태 코드 -->
             , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM     <!-- 단속 상태 명 -->
             , V.VLTN_CD            <!-- 위반 코드 -->
             , V.VLTN_ARTCL         <!-- 위반 항목 -->
             , V.VLTN_LAW_NM        <!-- 위반 법 명 -->
             , V.VLTN_LAW1          <!-- 위반 법1 -->
             , V.VLTN_LAW2          <!-- 위반 법2 -->
             , V.VLTN_LAW_ETC       <!-- 위반 법 기타 -->
             , V.ACNTG_SE_CD        <!-- 회계 구분 코드 -->
             , V.TXITM_CD           <!-- 세목 코드 -->
             , V.OPER_ITEM_CD       <!-- 운영 항목 코드 -->
             , V.SPCL_BIZ_CD        <!-- 특별회계 사업 코드 -->
             , P.RTPYR_ID           <!-- 납부자 ID -->
             , P.RTPYR_NO           <!-- 납부자 번호 -->
             , P.RTPYR_NM           <!-- 납부자 명 -->
             , L.LEVY_ID            <!-- 부과 ID -->
          FROM TB_CRDN          C
         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_LEVY     L  ON (C.CRDN_ID  = L.CRDN_ID AND L.DEL_YN = 'N')
         WHERE C.CRDN_ID        =  #{crdnId}    <!-- 단속 ID -->
           AND C.DEL_YN         =  'N'          <!-- 삭제 여부 -->
    </select>
    
    <select id="selectLevyForGoji" parameterType="map" resultMap="levyRow">/* 고지 대상 가져오기(levyMapper.selectLevyForGoji) */
		SELECT C.NXRP_ACB_KEY,
		       L.LAST_AMT
		  FROM TB_LEVY L
		       INNER JOIN TB_CRDN C ON L.CRDN_ID = C.CRDN_ID
		 WHERE L.DEL_YN = 'N' 
		   AND L.FYR = #{schFyr}
		   AND L.LEVY_YMD BETWEEN #{schLevyYmdFrom} AND #{schLevyYmdTo}
		   AND L.FRST_DUDT_YMD BETWEEN #{schFrstDudtYmdFrom} AND #{schFrstDudtYmdTo}
		   AND C.CRDN_STTS_CD &lt; '70'
		   AND C.NXRP_CRDN_LINK_YN = 'Y'
		   AND C.NXRP_ACB_KEY IS NOT null    	   
    </select>    

</mapper>
