<?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.sndb.dao.SndngDtlMapper">

<!-- 발송 상세 정보 매퍼
 ========== 변경 이력 ==========
 2023-08-25	JoJH 최초 작성
 ============================ -->

	<resultMap id="sndngDtlRow" type="cokr.xit.fims.sndb.SndngDtl"> <!-- 발송 상세 -->
		<result property="sndngDtlId"			column="SNDNG_DTL_ID" />			<!-- 발송 상세 ID -->
		<result property="sndngId"				column="SNDNG_ID" />				<!-- 발송 ID -->
		<result property="svbtcId"				column="SVBTC_ID" />				<!-- 공시송달 ID -->
		<result property="crdnId"				column="CRDN_ID" />					<!-- 단속 ID -->
		<result property="linkTrgtCd"			column="LINK_TRGT_CD" />			<!-- 연계 대상 코드 -->
		<result property="linkMngKey"			column="LINK_MNG_KEY" />			<!-- 연계 관리 키 -->
		<result property="sndngSeCd"			column="SNDNG_SE_CD" />				<!-- 발송 구분 코드 -->
		<result property="sndngYmd"				column="SNDNG_YMD" />				<!-- 발송 일자 -->
		<result property="sndngEndYmd"			column="SNDNG_END_YMD" />			<!-- 발송 종료 일자 -->
		<result property="vhrno"				column="VHRNO" />					<!-- 차량번호 -->
		<result property="crdnDt"				column="CRDN_DT" />					<!-- 단속 일시 -->
		<result property="crdnStdgNm"			column="CRDN_STDG_NM" />			<!-- 단속 법정동 명 -->
		<result property="crdnPlc"				column="CRDN_PLC" />				<!-- 단속 장소 -->
		<result property="fyr"					column="FYR" />						<!-- 회계연도 -->
		<result property="levyNo"				column="LEVY_NO" />					<!-- 부과 번호 -->
		<result property="levyYmd"				column="LEVY_YMD" />				<!-- 부과 일자 -->
		<result property="dudtYmd"				column="DUDT_YMD" />				<!-- 납기 일자 -->
		<result property="dudtAftrYmd"			column="DUDT_AFTR_YMD" />			<!-- 납기 후 일자 -->
		<result property="ffnlgAmt"				column="FFNLG_AMT" />				<!-- 과태료 금액 -->
		<result property="pcptax"				column="PCPTAX" />					<!-- 본세 -->
		<result property="adamt"				column="ADAMT" />					<!-- 가산금 -->
		<result property="lastAmt"				column="LAST_AMT" />				<!-- 최종 금액 -->
		<result property="dudtAftrAmt"			column="DUDT_AFTR_AMT" />			<!-- 납기 후 금액 -->
		<result property="rcpnNm"				column="RCPN_NM" />					<!-- 수령인 명 -->
		<result property="rcpnBrdt"				column="RCPN_BRDT" />				<!-- 수령인 생년월일 -->
		<result property="rcpnAddr"				column="RCPN_ADDR" />				<!-- 수령인 주소 -->
		<result property="rcpnDtlAddr"			column="RCPN_DTL_ADDR" />			<!-- 수령인 상세 주소 -->
		<result property="rcpnZip"				column="RCPN_ZIP" />				<!-- 수령인 우편번호 -->
		<result property="conKey"				column="CON_KEY" />					<!-- 외부연계식별키 -->
		<result property="rgNo"					column="RG_NO" />					<!-- 등기 번호 -->
		<result property="dlvrYmd"				column="DLVR_YMD" />				<!-- 배달 일자 -->
		<result property="dlvrTm"				column="DLVR_TM" />					<!-- 배달 시각 -->
		<result property="undlvrRsnCd"			column="UNDLVR_RSN_CD" />			<!-- 미배달 사유 코드 -->
		<result property="undlvrRsnNm"			column="UNDLVR_RSN_NM" />			<!-- 미배달 사유 명 -->
		<result property="actlRcpnNm"			column="ACTL_RCPN_NM" />			<!-- 실제 수령인 명 -->
		<result property="rcpnRelNm"			column="RCPN_REL_NM" />				<!-- 수령인 관계 명 -->
		<result property="sndngDtlSttsCd"		column="SNDNG_DTL_STTS_CD" />		<!-- 발송 상세 상태 코드 -->
		<result property="bfrSndngDtlSttsCd"	column="BFR_SNDNG_DTL_STTS_CD" />	<!-- 전 발송 상세 상태 코드 -->
		<result property="bfrDlvrYmd"			column="BFR_DLVR_YMD" />			<!-- 전 배달 일자 -->
		<result property="bfrDlvrTm"			column="BFR_DLVR_TM" />				<!-- 전 배달 시각 -->
		<result property="sndngRcvmtCd"			column="SNDNG_RCVMT_CD" />			<!-- 발송 수납 코드 -->
		<result property="addrChgCd"			column="ADDR_CHG_CD" />				<!-- 주소 변경 코드 -->
		<result property="taxNo"				column="TAX_NO" />					<!-- 납세 번호 -->
		<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="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" />					<!-- 삭제 사유 -->
	</resultMap>
	
	<select id="selectSndngDetails" parameterType="map" resultMap="sndngDtlRow">/* 발송상세 객체 조회(sndngDtlMapper.selectSndngDetails) */
	SELECT *
	  FROM TB_SNDNG_DTL
	  WHERE SNDNG_DTL_ID IN (<foreach collection="sndngDtlIds" item="sndngDtlId" separator=",">#{sndngDtlId}</foreach>)
	</select>

	<sql id="selectList">
        SELECT SD.SNDNG_DTL_ID      <!-- 발송 상세 ID -->
             , SD.SNDNG_ID          <!-- 발송 ID -->
             , SD.CRDN_ID           <!-- 단속 ID -->
             , SD.SVBTC_ID          <!-- 공시송달 ID -->
             , SD.LINK_TRGT_CD      <!-- 연계 대상 코드 -->
             , SD.LINK_MNG_KEY      <!-- 연계 관리 키 -->
             , SD.SNDNG_SE_CD       <!-- 발송 구분 코드 -->
             , (GET_CODE_NM('FIM047', SD.SNDNG_SE_CD)) AS SNDNG_SE_NM   <!-- 발송 구분 명 -->
             , SD.SNDNG_YMD         <!-- 발송 일자 -->
             , (GET_MASK_DATE(SD.SNDNG_YMD, '-')) AS SNDNG_YMD_MASK <!-- 발송 일자 -->
             , SD.SNDNG_END_YMD     <!-- 발송 종료 일자 -->
             , (GET_MASK_DATE(SD.SNDNG_END_YMD, '-')) AS SNDNG_END_YMD_MASK <!-- 발송 종료 일자 -->
             , SD.RCPN_NM           <!-- 수령인 명 -->
             , SD.RCPN_BRDT         <!-- 수령인 생년월일 -->
             , (GET_BRDT_FORMAT(SD.RCPN_BRDT, '.')) AS RCPN_BRDT_MASK   <!-- 수령인 생년월일 마스크 -->
             , SD.RCPN_ADDR         <!-- 수령인 주소 -->
             , SD.RCPN_DTL_ADDR     <!-- 수령인 상세 주소 -->
             , SD.RCPN_ZIP          <!-- 수령인 우편번호 -->
             , SD.CON_KEY           <!-- 외부연계식별키 -->
             , SD.RG_NO             <!-- 등기 번호 -->
             , SD.DLVR_YMD          <!-- 배달 일자 -->
             , SD.DLVR_TM           <!-- 배달 시각 -->
             , SD.UNDLVR_RSN_CD     <!-- 미배달 사유 코드 -->
             , SD.UNDLVR_RSN_NM     <!-- 미배달 사유 명 -->
             , SD.ACTL_RCPN_NM      <!-- 실제 수령인 명 -->
             , SD.RCPN_REL_NM       <!-- 수령인 관계 명 -->
             , SD.SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
             , (GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD)) AS SNDNG_DTL_STTS_NM   <!-- 발송 상세 상태 명 -->
             , SD.BFR_SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
             , (GET_CODE_NM('FIM050', SD.BFR_SNDNG_DTL_STTS_CD)) AS BFR_SNDNG_DTL_STTS_NM   <!-- 전 발송 상세 상태 명 -->
             , SD.BFR_DLVR_YMD      <!-- 전 배달 일자 -->
             , SD.BFR_DLVR_TM       <!-- 전 배달 시각 -->
             , SD.SNDNG_RCVMT_CD    <!-- 발송 수납 코드 -->
             , (GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD)) AS SNDNG_RCVMT_NM <!-- 발송 수납 명 -->
             , SD.ADDR_CHG_CD       <!-- 주소 변경 코드 -->
             , SD.CRDN_DT           <!-- 단속 일시 -->
             , SD.VHRNO             <!-- 차량번호 -->
             , SD.CRDN_STDG_NM      <!-- 단속 법정동 명 -->
             , SD.CRDN_PLC          <!-- 단속 장소 -->
             , SD.FYR               <!-- 회계연도 -->
             , SD.LEVY_NO           <!-- 부과 번호 -->
             , SD.LEVY_YMD          <!-- 부과 일자 -->
             , (GET_MASK_DATE(SD.LEVY_YMD, '.')) AS LEVY_YMD_MASK   <!-- 부과 일자 -->
             , SD.DUDT_YMD          <!-- 납기 일자 -->
             , (GET_MASK_DATE(SD.DUDT_YMD, '.')) AS DUDT_YMD_MASK   <!-- 납기 일자 -->
             , (GET_MASK_DATE(SD.DUDT_YMD, 'K')) AS DUDT_YMD_MASK_KOR   <!-- 납기 일자(한글표기) -->
             , SD.DUDT_AFTR_YMD     <!-- 납기 후 일자 -->
             , (GET_MASK_DATE(SD.DUDT_AFTR_YMD, '.')) AS DUDT_AFTR_YMD_MASK <!-- 납기 후 일자 -->
             , SD.FFNLG_AMT         <!-- 과태료 금액 -->
             , SD.PCPTAX            <!-- 본세 -->
             , SD.ADAMT             <!-- 가산금 -->
             , SD.LAST_AMT          <!-- 최종 금액 -->
             , SD.DUDT_AFTR_AMT     <!-- 납기 후 금액 -->
             , SD.TAX_NO            <!-- 납세 번호 -->
             , SD.EPAYNO            <!-- 전자납부번호 -->
             , (GET_MASK_EPAYNO(SD.EPAYNO)) AS EPAYNO_MASK  <!-- 전자납부번호 -->
             , SD.BANK_NM           <!-- 은행 명 -->
             , SD.VR_ACTNO          <!-- 가상 계좌번호 -->
             , SD.BANK_NM2          <!-- 은행 명 2 -->
             , SD.VR_ACTNO2         <!-- 가상 계좌번호 2 -->
             , SD.BANK_NM3          <!-- 은행 명 3 -->
             , SD.VR_ACTNO3         <!-- 가상 계좌번호 3 -->
             , SD.BANK_NM4          <!-- 은행 명 4 -->
             , SD.VR_ACTNO4         <!-- 가상 계좌번호 4 -->
             , SD.BANK_NM5          <!-- 은행 명 5 -->
             , SD.VR_ACTNO5         <!-- 가상 계좌번호 5 -->
             , SD.BANK_NM6          <!-- 은행 명 6 -->
             , SD.VR_ACTNO6         <!-- 가상 계좌번호 6 -->
             , SD.BANK_NM7          <!-- 은행 명 7 -->
             , SD.VR_ACTNO7         <!-- 가상 계좌번호 7 -->
             , SD.BANK_NM8          <!-- 은행 명 8 -->
             , SD.VR_ACTNO8         <!-- 가상 계좌번호 8 -->
             , SD.BANK_NM9          <!-- 은행 명 9 -->
             , SD.VR_ACTNO9         <!-- 가상 계좌번호 9 -->
             , SD.BANK_NM10         <!-- 은행 명 10 -->
             , SD.VR_ACTNO10        <!-- 가상 계좌번호 10 -->
             , SD.BANK_NM11         <!-- 은행 명 11 -->
             , SD.VR_ACTNO11        <!-- 가상 계좌번호 11 -->
             , SD.BANK_NM12         <!-- 은행 명 12 -->
             , SD.VR_ACTNO12        <!-- 가상 계좌번호 12 -->
             , SD.BANK_NM13         <!-- 은행 명 13 -->
             , SD.VR_ACTNO13        <!-- 가상 계좌번호 13 -->
             , SD.BANK_NM14         <!-- 은행 명 14 -->
             , SD.VR_ACTNO14        <!-- 가상 계좌번호 14 -->
             , SD.BANK_NM15         <!-- 은행 명 15 -->
             , SD.VR_ACTNO15        <!-- 가상 계좌번호 15 -->
             , SD.BANK_NM16         <!-- 은행 명 16 -->
             , SD.VR_ACTNO16        <!-- 가상 계좌번호 16 -->
             , SD.BANK_NM17         <!-- 은행 명 17 -->
             , SD.VR_ACTNO17        <!-- 가상 계좌번호 17 -->
             , SD.BANK_NM18         <!-- 은행 명 18 -->
             , SD.VR_ACTNO18        <!-- 가상 계좌번호 18 -->
             , SD.BANK_NM19         <!-- 은행 명 19 -->
             , SD.VR_ACTNO19        <!-- 가상 계좌번호 19 -->
             , SD.BANK_NM20         <!-- 은행 명 20 -->
             , SD.VR_ACTNO20        <!-- 가상 계좌번호 20 -->
             , SD.REG_DT            <!-- 등록 일시 -->
             , SD.RGTR              <!-- 등록자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.RGTR) AS RGTR_NM     <!-- 등록자 명 -->
             , SD.MDFCN_DT          <!-- 수정 일시 -->
             , SD.MDFR              <!-- 수정자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.MDFR) AS MDFR_NM     <!-- 수정자 명 -->
             , C.CRDN_STTS_CD       <!-- 단속 상태 코드 -->
             , C.CRDN_STTS_CHG_DT   <!-- 단속 상태 변경 일시 -->
             , P.RTPYR_TELNO        <!-- 전화번호 -->
             , P.RTPYR_MBL_TELNO    <!-- 휴대전화번호 -->
             , S.SGG_CD             <!-- 시군구 코드 -->
             , S.DEPT_CD            <!-- 부서 코드 -->
             , S.TASK_SE_CD         <!-- 업무 구분 코드 -->
             , S.SNDNG_REG_SE_CD    <!-- 발송 등록 구분 코드 -->
             , S.LEVY_BGNG_YMD      <!-- 부과 시작 일자 -->
             , S.LEVY_END_YMD       <!-- 부과 종료 일자 -->
             , S.TTL_NM             <!-- 제목 명 -->
             , S.DOC_NO             <!-- 문서 번호 -->
             , S.ETC_CN             <!-- 기타 내용 -->
             , S.TNOCS              <!-- 총건수 -->
             , S.GRAMT              <!-- 총금액 -->
             , S.DIV_KB             <!-- 취급 구분 -->
             , (GET_CODE_NM('EGP002', S.DIV_KB)) AS DIV_KB_NM   <!-- 취급 구분 명 -->
             , S.EPOST_NOTICE_ID    <!-- 전자우편 안내문 ID -->
             , S.SNDNG_STTS_CD      <!-- 발송 상태 코드 -->
             , S.RSND_YN            <!-- 재발송 여부 -->
          FROM TB_SNDNG_DTL     SD
         INNER JOIN TB_CRDN     C  ON (SD.CRDN_ID  = C.CRDN_ID)
         INNER JOIN TB_PAYER    P ON (C.RTPYR_ID  = P.RTPYR_ID)
    LEFT OUTER JOIN TB_SNDNG    S  ON (SD.SNDNG_ID = S.SNDNG_ID)
	</sql>

	<select id="selectSndngDtlList" parameterType="map" resultType="dataobject">/* 발송 상세 목록 조회(sndngDtlMapper.selectSndngDtlList) */
		<include refid="utility.paging-prefix" />
		<include refid="selectList" />
        <where>
            <if test="sndngId != null">
           AND SD.SNDNG_ID      =  #{sndngId}   <!-- 발송 Id -->
            </if>
            <if test="sndngDtlIds != null">
           AND SD.SNDNG_DTL_ID  IN (            <!-- 발송 상세 Ids -->
                <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
             )
            </if>
            <if test="sndngDtlId != null">
           AND SD.SNDNG_DTL_ID  =  #{sndngDtlId} <!-- 발송 상세 Id -->
            </if>
            <if test="crdnId != null">
           AND SD.CRDN_ID       =  #{crdnId}    <!-- 단속 Id -->
            </if>
            <if test="sndngSeCd != null">
           AND SD.SNDNG_SE_CD   =  #{sndngSeCd} <!-- 발송 구분 코드 -->
            </if>
            <if test="schSndngYmd != null">
           AND SD.SNDNG_YMD     =  #{schSndngYmd}   <!-- 발송 일자 -->
            </if>
            <if test="schRcpnNm != null">
           AND SD.RCPN_NM       =  #{schRcpnNm} <!-- 수령인 명 -->
            </if>
            <if test="schRgNo != null">
           AND SD.RG_NO         =  #{schRgNo}   <!-- 등기번호 -->
            </if>
            <if test="schVhrno != null">
           AND SD.VHRNO         =  #{schVhrno}  <!-- 차량번호 -->
            </if>
            <if test="schFyr != null">
           AND SD.FYR           =  #{schFyr}    <!-- 회계연도 -->
            </if>
            <if test="schVhrno != null">
           AND SD.VHRNO         =  #{schVhrno}  <!-- 차량번호 -->
            </if>
            <if test="schLevyNoFrom != null">
           AND SD.LEVY_NO <![CDATA[>=]]> #{schLevyNoFrom}   <!-- 고지 번호 시작 -->
            </if>
            <if test="schSndngYmdTo != null">
           AND SD.LEVY_NO <![CDATA[<=]]> #{schLevyNoTo}     <!-- 고지 번호 종료 -->
            </if>
            <if test="delYn != null">
           AND SD.DEL_YN        =  #{delYn}     <!-- 삭제 여부 -->
            </if>
            <if test="sggCd != null">
           AND S.SGG_CD         =  #{sggCd}     <!-- 시군구 코드 -->
            </if>
            <if test="taskSeCd != null">
           AND S.TASK_SE_CD     =  #{taskSeCd}  <!-- 업무 구분 코드 -->
            </if>
        </where>
		<include refid="utility.orderBy" />
		<include refid="utility.paging-suffix" />
	</select>

	<select id="selectSndngDtls" parameterType="map" resultType="dataobject">/* 발송 상세 객체 가져오기(sndngDtlMapper.selectSndngDtls) */
		<include refid="selectList" />
        <where>
            <if test="sndngDtlIds != null">
           AND SD.SNDNG_DTL_ID  IN (            <!-- 발송 상세 Ids -->
                <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
             )
            </if>
            <if test="sndngDtlId != null">
           AND SD.SNDNG_DTL_ID  =  #{sndngDtlId} <!-- 발송 상세 Id -->
            </if>
            <if test="sndngId != null">
           AND SD.SNDNG_ID      =  #{sndngId}   <!-- 발송 ID -->
            </if>
            <if test="crdnId != null">
           AND SD.CRDN_ID       =  #{crdnId}    <!-- 단속 ID -->
            </if>
            <if test="delYn != null">
           AND SD.DEL_YN        =  #{delYn}     <!-- 삭제 여부 -->
            </if>
        </where>
		<include refid="utility.orderBy" />
    </select>

	<select id="selectSndngTrgtDtlIds" parameterType="map" resultType="dataobject">/* 발송 ID로 발송상세 ID를 가져오기(sndngDtlMapper.selectSndngTrgtDtlIds) */
        SELECT SNDNG_DTL_ID         <!-- 발송 상세 ID -->
             , CRDN_ID              <!-- 단속 ID -->
             , LINK_TRGT_CD         <!-- 연계 대상 코드 -->
             , LINK_MNG_KEY         <!-- 연계 관리 키 -->
             , SNDNG_DTL_STTS_CD    <!-- 발송 상세 상태 코드 -->
          FROM TB_SNDNG_DTL
        <choose>
            <when test="sndngDtlIds != null">
         WHERE SNDNG_DTL_ID IN (            <!-- 발송 상세 Ids -->
                <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
               )
            </when>
            <otherwise>
         WHERE SNDNG_ID     =  #{sndngId}   <!-- 발송 ID -->
            </otherwise>
        </choose>
        <if test="sndngDtlSttsCd != null">
           AND SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd}    <!-- 발송 상세 상태 코드 -->
        </if>
           AND DEL_YN       = 'N'   <!-- 삭제 여부 -->
         ORDER BY SNDNG_DTL_ID
    </select>

    <insert id="insertSndngDtl" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송 상세 등록(sndngDtlMapper.insertSndngDtl) */
        <selectKey resultType="string" keyProperty="sndngDtlId" keyColumn="NEW_ID" order="BEFORE">
            <include refid="numbering.keyBySggAndYear">
                <property name="TABLE_NAME" value="TB_SNDNG_DTL" />
                <property name="TABLE_KEY" value="SNDNG_DTL_ID" />
                <property name="sggCd" value="#{sggCd}" />
                <property name="pad" value="20" />
            </include>
        </selectKey>
        INSERT INTO TB_SNDNG_DTL (
               SNDNG_DTL_ID     <!-- 발송 상세 ID -->
             , SNDNG_ID         <!-- 발송 ID -->
             , CRDN_ID          <!-- 단속 ID -->
             , SVBTC_ID         <!-- 공시송달 ID -->
             , LINK_TRGT_CD     <!-- 연계 대상 코드 -->
             , LINK_MNG_KEY     <!-- 연계 관리 키 -->
             , SNDNG_SE_CD      <!-- 발송 구분 코드 -->
             , SNDNG_YMD        <!-- 발송 일자 -->
             , SNDNG_END_YMD    <!-- 발송 종료 일자 -->
             , RCPN_NM          <!-- 수령인 명 -->
             , RCPN_BRDT        <!-- 수령인 생년월일 -->
             , RCPN_ADDR        <!-- 수령인 주소 -->
             , RCPN_DTL_ADDR    <!-- 수령인 상세 주소 -->
             , RCPN_ZIP         <!-- 수령인 우편번호 -->
             , CON_KEY          <!-- 외부연계식별키 -->
             , RG_NO            <!-- 등기 번호 -->
             , DLVR_YMD         <!-- 배달 일자 -->
             , DLVR_TM          <!-- 배달 시각 -->
             , UNDLVR_RSN_CD    <!-- 미배달 사유 코드 -->
             , UNDLVR_RSN_NM    <!-- 미배달 사유 명 -->
             , ACTL_RCPN_NM     <!-- 실제 수령인 명 -->
             , RCPN_REL_NM      <!-- 수령인 관계 명 -->
             , SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
             , BFR_SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
             , BFR_DLVR_YMD     <!-- 전 배달 일자 -->
             , BFR_DLVR_TM      <!-- 전 배달 시각 -->
             , SNDNG_RCVMT_CD   <!-- 발송 수납 코드 -->
             , ADDR_CHG_CD      <!-- 주소 변경 코드 -->
             , CRDN_DT          <!-- 단속 일시 -->
             , VHRNO            <!-- 차량번호 -->
             , CRDN_STDG_NM     <!-- 단속 법정동 명 -->
             , CRDN_PLC         <!-- 단속 장소 -->
             , FYR              <!-- 회계연도 -->
             , LEVY_NO          <!-- 부과 번호 -->
             , LEVY_YMD         <!-- 부과 일자 -->
             , DUDT_YMD         <!-- 납기 일자 -->
             , DUDT_AFTR_YMD    <!-- 납기 후 일자 -->
             , FFNLG_AMT        <!-- 과태료 금액 -->
             , PCPTAX           <!-- 본세 -->
             , ADAMT            <!-- 가산금 -->
             , LAST_AMT         <!-- 최종 금액 -->
             , DUDT_AFTR_AMT    <!-- 납기 후 금액 -->
             , TAX_NO           <!-- 납세 번호 -->
             , 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 -->
             , DEL_YN           <!-- 삭제 여부 -->
             , REG_DT           <!-- 등록 일시 -->
             , RGTR             <!-- 등록자 -->
             , MDFCN_DT         <!-- 수정 일시 -->
             , MDFR             <!-- 수정자 -->
        ) VALUES (
               #{sndngDtlId}    <!-- 발송 상세 ID -->
             , #{sndngId}       <!-- 발송 ID -->
             , #{crdnId}        <!-- 단속 ID -->
             , #{svbtcId}       <!-- 공시송달 ID -->
             , #{linkTrgtCd}    <!-- 연계 대상 코드 -->
             , #{linkMngKey}    <!-- 연계 관리 키 -->
             , #{sndngSeCd}     <!-- 발송 구분 코드 -->
             , #{sndngYmd}      <!-- 발송 일자 -->
             , #{sndngEndYmd}   <!-- 발송 종료 일자 -->
             , #{rcpnNm}        <!-- 수령인 명 -->
             , #{rcpnBrdt}      <!-- 수령인 생년월일 -->
             , #{rcpnAddr}      <!-- 수령인 주소 -->
             , #{rcpnDtlAddr}   <!-- 수령인 상세 주소 -->
             , #{rcpnZip}       <!-- 수령인 우편번호 -->
             , #{conKey}        <!-- 외부연계식별키 -->
             , #{rgNo}          <!-- 등기 번호 -->
             , #{dlvrYmd}       <!-- 배달 일자 -->
             , #{dlvrTm}        <!-- 배달 시각 -->
             , #{undlvrRsnCd}   <!-- 미배달 사유 코드 -->
             , #{undlvrRsnNm}   <!-- 미배달 사유 명 -->
             , #{actlRcpnNm}    <!-- 실제 수령인 명 -->
             , #{rcpnRelNm}     <!-- 수령인 관계 명 -->
             , #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
             , #{bfrSndngDtlSttsCd} <!-- 전 발송 상세 상태 코드 -->
             , #{bfrDlvrYmd}    <!-- 전 배달 일자 -->
             , #{bfrDlvrTm}     <!-- 전 배달 시각 -->
             , #{sndngRcvmtCd}  <!-- 발송 수납 코드 -->
             , #{addrChgCd}     <!-- 주소 변경 코드 -->
             , #{crdnDt}        <!-- 단속 일시 -->
             , #{vhrno}         <!-- 차량번호 -->
             , #{crdnStdgNm}    <!-- 단속 법정동 명 -->
             , #{crdnPlc}       <!-- 단속 장소 -->
             , #{fyr}           <!-- 회계연도 -->
             , #{levyNo}        <!-- 부과 번호 -->
             , #{levyYmd}       <!-- 부과 일자 -->
             , #{dudtYmd}       <!-- 납기 일자 -->
             , #{dudtAftrYmd}   <!-- 납기 후 일자 -->
             , #{ffnlgAmt}      <!-- 과태료 금액 -->
             , #{pcptax}        <!-- 본세 -->
             , #{adamt}         <!-- 가산금 -->
             , #{lastAmt}       <!-- 최종 금액 -->
             , #{dudtAftrAmt}   <!-- 납기 후 금액 -->
             , #{taxNo}         <!-- 납세 번호 -->
             , #{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 -->
             , 'N'              <!-- 삭제 여부 -->
             , <include refid="utility.now" />  <!-- 등록 일시 -->
             , #{createdBy}     <!-- 등록자 -->
             , <include refid="utility.now" />  <!-- 수정 일시 -->
             , #{modifiedBy}    <!-- 수정자 -->
        )
    </insert>

    <update id="updateSndngDtl" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송 상세 수정(sndngDtlMapper.updateSndngDtl) */
        UPDATE TB_SNDNG_DTL
           SET SVBTC_ID         = #{svbtcId}    <!-- 공시송달 ID -->
             , LINK_TRGT_CD     = #{linkTrgtCd} <!-- 연계 대상 코드 -->
             , LINK_MNG_KEY     = #{linkMngKey} <!-- 연계 관리 키 -->
             , SNDNG_SE_CD      = #{sndngSeCd}  <!-- 발송 구분 코드 -->
             , SNDNG_YMD        = #{sndngYmd}   <!-- 발송 일자 -->
             , SNDNG_END_YMD    = #{sndngEndYmd} <!-- 발송 종료 일자 -->
             , RCPN_NM          = #{rcpnNm}     <!-- 수령인 명 -->
             , RCPN_BRDT        = #{rcpnBrdt}   <!-- 수령인 생년월일 -->
             , RCPN_ADDR        = #{rcpnAddr}   <!-- 수령인 주소 -->
             , RCPN_DTL_ADDR    = #{rcpnDtlAddr} <!-- 수령인 상세 주소 -->
             , RCPN_ZIP         = #{rcpnZip}    <!-- 수령인 우편번호 -->
             , CON_KEY          = #{conKey}     <!-- 외부연계식별키 -->
             , RG_NO            = #{rgNo}       <!-- 등기 번호 -->
             , DLVR_YMD         = #{dlvrYmd}    <!-- 배달 일자 -->
             , DLVR_TM          = #{dlvrTm}     <!-- 배달 시각 -->
             , UNDLVR_RSN_CD    = #{undlvrRsnCd} <!-- 미배달 사유 코드 -->
             , UNDLVR_RSN_NM    = #{undlvrRsnNm} <!-- 미배달 사유 명 -->
             , ACTL_RCPN_NM     = #{actlRcpnNm} <!-- 실제 수령인 명 -->
             , RCPN_REL_NM      = #{rcpnRelNm}  <!-- 수령인 관계 명 -->
             , SNDNG_DTL_STTS_CD= #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
             , BFR_SNDNG_DTL_STTS_CD = #{bfrSndngDtlSttsCd} <!-- 전 발송 상세 상태 코드 -->
             , BFR_DLVR_YMD     = #{bfrDlvrYmd} <!-- 전 배달 일자 -->
             , BFR_DLVR_TM      = #{bfrDlvrTm}  <!-- 전 배달 시각 -->
             , SNDNG_RCVMT_CD   = #{sndngRcvmtCd}  <!-- 발송 수납 코드 -->
             , ADDR_CHG_CD      = #{addrChgCd}  <!-- 주소 변경 코드 -->
             , CRDN_DT          = #{crdnDt}     <!-- 단속 일시 -->
             , VHRNO            = #{vhrno}      <!-- 차량번호 -->
             , CRDN_STDG_NM     = #{crdnStdgNm} <!-- 단속 법정동 명 -->
             , CRDN_PLC         = #{crdnPlc}    <!-- 단속 장소 -->
             , FYR              = #{fyr}        <!-- 회계연도 -->
             , LEVY_NO          = #{levyNo}     <!-- 부과 번호 -->
             , LEVY_YMD         = #{levyYmd}    <!-- 부과 일자 -->
             , DUDT_YMD         = #{dudtYmd}    <!-- 납기 일자 -->
             , DUDT_AFTR_YMD    = #{dudtAftrYmd}<!-- 납기 후 일자 -->
             , FFNLG_AMT        = #{ffnlgAmt}   <!-- 과태료 금액 -->
             , PCPTAX           = #{pcptax}     <!-- 본세 -->
             , ADAMT            = #{adamt}      <!-- 가산금 -->
             , LAST_AMT         = #{lastAmt}    <!-- 최종 금액 -->
             , DUDT_AFTR_AMT    = #{dudtAftrAmt} <!-- 납기 후 금액 -->
             , TAX_NO           = #{taxNo}      <!-- 납세 번호 -->
             , 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 -->
             , MDFCN_DT         = <include refid="utility.now" />  <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="deleteSndngDtl" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송 상세 삭제(sndngDtlMapper.deleteSndngDtl) */
        UPDATE TB_SNDNG_DTL
           SET DEL_YN           = 'Y'
             , DEL_DT           = <include refid="utility.now" />   <!-- 삭제 일시 -->
             , DLTR             = #{modifiedBy} <!-- 삭제자 -->
             , DEL_RSN          = #{delRsn}     <!-- 삭제사유 -->
        <choose>
            <when test="sndngId != null">
         WHERE SNDNG_ID         = #{sndngId} <!-- 발송 ID -->
            </when>
            <when test="sndngDtlIds != null">
         WHERE SNDNG_DTL_ID     IN           <!-- 발송 상세 Ids -->
             ( <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach> )
            </when>
            <otherwise>
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
            </otherwise>
        </choose>
           AND DEL_YN           = 'N'
    </update>

    <update id="updateSndngDtlSttsCd" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송 상세 상태 코드 수정(sndngDtlMapper.updateSndngDtlSttsCd) */
        UPDATE TB_SNDNG_DTL
           SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
             , SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
            <if test="sndngDtl.linkTrgtCd != null">
             , LINK_TRGT_CD     = #{linkTrgtCd} <!-- 연계 대상 코드 -->
            </if>
            <if test="sndngDtl.linkMngKey != null">
             , LINK_MNG_KEY     = #{linkMngKey} <!-- 연계 관리 키 -->
            </if>
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="updateSndngDtlNxrpA03" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송 상세 수정(sndngDtlMapper.updateSndngDtlNxrpA03) */
        UPDATE TB_SNDNG_DTL
           SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
             , SNDNG_DTL_STTS_CD= #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
             , RCPN_NM          = #{rcpnNm}     <!-- 수령인 명 -->
             , RCPN_BRDT        = #{rcpnBrdt}   <!-- 수령인 생년월일 -->
             , RCPN_ADDR        = #{rcpnAddr}   <!-- 수령인 주소 -->
             , RCPN_DTL_ADDR    = #{rcpnDtlAddr} <!-- 수령인 상세 주소 -->
             , RCPN_ZIP         = #{rcpnZip}    <!-- 수령인 우편번호 -->
             , FYR              = #{fyr}        <!-- 회계연도 -->
             , LEVY_NO          = #{levyNo}     <!-- 부과 번호 -->
             , FFNLG_AMT        = #{ffnlgAmt}   <!-- 과태료 금액 -->
             , PCPTAX           = #{pcptax}     <!-- 본세 -->
             , ADAMT            = #{adamt}      <!-- 가산금 -->
             , LAST_AMT         = #{lastAmt}    <!-- 최종 금액 -->
             , DUDT_AFTR_AMT    = #{dudtAftrAmt} <!-- 납기 후 금액 -->
             , TAX_NO           = #{taxNo}      <!-- 납세 번호 -->
             , 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 -->
             , MDFCN_DT         = <include refid="utility.now" /> <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="updateSndngDtlRcvmtCd" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송 상세 발송 수납 코드 수정(sndngDtlMapper.updateSndngDtlRcvmtCd) */
        UPDATE TB_SNDNG_DTL
           SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
             , SNDNG_DTL_STTS_CD= #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
             , SNDNG_RCVMT_CD   = #{sndngRcvmtCd}   <!-- 발송 수납 코드 -->
             , MDFCN_DT         = <include refid="utility.now" /> <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="updateSndngDtlEPost" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 전자우편 발송상세 내역 수정(sndngDtlMapper.updateSndngDtlEPost) */
        UPDATE TB_SNDNG_DTL
           SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
             , SNDNG_DTL_STTS_CD= #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
             , CON_KEY          = #{conKey}     <!-- 외부연계식별키 -->
             , RG_NO            = #{rgNo}       <!-- 등기 번호 -->
             , MDFCN_DT         =<include refid="utility.now" /> <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
           AND DEL_YN           = 'N'
    </update>

    <select id="selectSndbkList" parameterType="map" resultType="dataobject">/* 반송 목록 조회(sndngDtlMapper.selectSndbkList) */
        <include refid="utility.paging-prefix" />
        SELECT SD.SNDNG_DTL_ID  <!-- 발송 상세 ID -->
             , SD.SVBTC_ID      <!-- 공시송달 ID -->
             , SD.SNDNG_SE_CD   <!-- 발송 구분 코드 -->
             , (GET_CODE_NM('FIM047', SD.SNDNG_SE_CD)) AS SNDNG_SE_NM   <!-- 발송 구분 명 -->
             , SD.SNDNG_YMD     <!-- 발송 일자 -->
             , SD.SNDNG_END_YMD <!-- 발송 종료 일자 -->
             , SD.RCPN_NM       <!-- 수령인 명 -->
             , SD.RCPN_BRDT     <!-- 수령인 생년월일 -->
             , SD.RCPN_ADDR     <!-- 수령인 주소 -->
             , SD.RCPN_DTL_ADDR <!-- 수령인 상세 주소 -->
             , SD.RCPN_ZIP      <!-- 수령인 우편번호 -->
             , SD.CON_KEY       <!-- 외부연계식별키 -->
             , SD.RG_NO         <!-- 등기 번호 -->
             , SD.DLVR_YMD      <!-- 배달 일자 -->
             , SD.DLVR_TM       <!-- 배달 시각 -->
             , SD.UNDLVR_RSN_CD <!-- 미배달 사유 코드 -->
             , SD.UNDLVR_RSN_NM <!-- 미배달 사유 명 -->
             , SD.ACTL_RCPN_NM  <!-- 실제 수령인 명 -->
             , SD.RCPN_REL_NM   <!-- 수령인 관계 명 -->
             , SD.SNDNG_DTL_STTS_CD <!-- 발송 상세 상태 코드 -->
             , (GET_CODE_NM('FIM050', SD.SNDNG_DTL_STTS_CD)) AS SNDNG_DTL_STTS_NM   <!-- 발송 상세 상태 명 -->
             , SD.SNDNG_RCVMT_CD <!-- 발송 수납 코드 -->
             , (GET_CODE_NM('FIM051', SD.SNDNG_RCVMT_CD)) AS SNDNG_RCVMT_NM <!-- 발송 수납 명 -->
             , SD.ADDR_CHG_CD   <!-- 주소 변경 코드 -->
             , SD.LEVY_YMD      <!-- 부과 일자 -->
             , SD.DUDT_YMD      <!-- 납기 일자 -->
             , (GET_MASK_DATE(SD.DUDT_YMD, '.')) AS DUDT_YMD_MASK   <!-- 납기 일자 -->
             , (GET_MASK_DATE(SD.DUDT_YMD, 'K')) AS DUDT_YMD_MASK_KOR   <!-- 납기 일자(한글표기) -->
             , SD.FFNLG_AMT     <!-- 과태료 금액 -->
             , SD.PCPTAX        <!-- 본세 -->
             , SD.ADAMT         <!-- 가산금 -->
             , SD.LAST_AMT      <!-- 최종 금액 -->
             , SD.REG_DT        <!-- 등록 일시 -->
             , SD.RGTR          <!-- 등록자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.RGTR) AS RGTR_NM <!-- 등록자 명 -->
             , SD.MDFCN_DT      <!-- 수정 일시 -->
             , SD.MDFR          <!-- 수정자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SD.MDFR) AS MDFR_NM <!-- 수정자 명 -->
             , (CONCAT(SD.FYR, '-', SD.LEVY_NO)) AS GOJI_NO <!-- 고지 번호 -->
             , S.SNDNG_ID       <!-- 발송 ID -->
             , S.DEPT_CD        <!-- 부서 코드 -->
             , S.SNDNG_REG_SE_CD <!-- 발송 등록 구분 코드 -->
             , (GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD)) AS SNDNG_REG_SE_NM    <!-- 발송 등록 구분 명 -->
             , S.EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
             , S.SNDNG_STTS_CD  <!-- 발송 상태 코드 -->
             , S.RSND_YN        <!-- 재발송 여부 -->
             , 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_REG_SE_CD <!-- 단속 등록 구분 코드 -->
             , (GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD)) AS CRDN_REG_SE_NM  <!-- 단속 등록 구분 명 -->
             , C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
             , (GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD)) AS CRDN_INPT_SE_NM    <!-- 단속 입력 구분 명 -->
             , C.VHRNO          <!-- 차량번호 -->
             , C.CRDN_YMD       <!-- 단속 일자 -->
             , C.CRDN_TM        <!-- 단속 시각 -->
             , (CONCAT(C.CRDN_YMD, C.CRDN_TM))  AS CRDN_YMD_TM  <!-- 단속 일시 -->
             , C.CRDN_STDG_NM   <!-- 단속 법정동 명 -->
             , C.CRDN_ROAD_NM   <!-- 단속 도로 명 -->
             , C.CRDN_PLC       <!-- 단속 장소 -->
             , C.CRDN_STTS_CD   <!-- 단속 상태 코드 -->
             , (GET_CODE_NM('FIM010', C.CRDN_STTS_CD)) AS CRDN_STTS_NM  <!-- 단속 상태 명 -->
             , 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       <!-- 납부자 명 -->
        <include refid="fromSndbk" />
        <include refid="utility.orderBy" />
        <include refid="utility.paging-suffix" />
    </select>

    <sql id="fromSndbk">
          FROM TB_SNDNG_DTL             SD
         INNER JOIN TB_SNDNG            S   ON (SD.SNDNG_ID = S.SNDNG_ID)
         INNER JOIN TB_CRDN             C   ON (SD.CRDN_ID  = C.CRDN_ID)
         INNER JOIN TB_PAYER            P   ON (C.RTPYR_ID  = P.RTPYR_ID)
    LEFT OUTER JOIN TB_EPOST_DLVR_RSLT  EDR ON (SD.CON_KEY  = EDR.CON_KEY AND SD.RG_NO  = EDR.REGINO)
        <where>
            <if test="sndngDtlIds != null">
           AND SD.SNDNG_DTL_ID  IN (            <!-- 발송 상세 Ids -->
                <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
             )
            </if>
            <choose>
                <when test='schChcRgIndct == "Y"'>
           AND (  (SD.SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd})
               OR (EDR.RELRECPRSNCD BETWEEN '13' AND '16')
               OR (RCPN_REL_NM IN (#{rcpnRelNm1}, #{rcpnRelNm2}, #{rcpnRelNm3}, #{rcpnRelNm4})) )
                </when>
                <otherwise>
           AND SD.SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd}
                </otherwise>
            </choose>
            <if test="schDlvrYmdFrom != null">
           AND SD.DLVR_YMD <![CDATA[>=]]> #{schDlvrYmdFrom}     <!-- 발송 일자 시작 -->
            </if>
            <if test="schDlvrYmdTo != null">
           AND SD.DLVR_YMD <![CDATA[<=]]> #{schDlvrYmdTo}       <!-- 발송 일자 종료 -->
            </if>
            <if test="schSndngYmdFrom != null">
           AND SD.SNDNG_YMD <![CDATA[>=]]> #{schSndngYmdFrom}   <!-- 발송 일자 시작 -->
            </if>
            <if test="schSndngYmdTo != null">
           AND SD.SNDNG_YMD <![CDATA[<=]]> #{schSndngYmdTo}     <!-- 발송 일자 종료 -->
            </if>
            <if test="schSndngSeCd != null">
           AND SD.SNDNG_SE_CD   =  #{schSndngSeCd}      <!-- 발송 구분 코드 -->
            </if>
            <if test="schUndlvrRsnCd != null">
           AND SD.UNDLVR_RSN_CD =  #{schUndlvrRsnCd}    <!-- 미배달 사유 코드 -->
            </if>
            <if test="sggCd != null">
           AND S.SGG_CD     =  #{sggCd}     <!-- 시군구 코드 -->
            </if>
            <if test="taskSeCd != null">
           AND S.TASK_SE_CD =  #{taskSeCd}  <!-- 업무 구분 코드 -->
            </if>
           AND (S.RSND_YN         IS NULL OR S.RSND_YN         = 'N')
           AND (SD.SVBTC_ID       IS NULL OR SD.SVBTC_ID       = '')
           AND (SD.SNDNG_RCVMT_CD IS NULL OR SD.SNDNG_RCVMT_CD = '')
            <if test="delYn != null">
           AND SD.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>
           AND C.DEL_YN         =  'N'
            <choose>
                <when test="schRegDateOpt == 'regDt'">
                    <if test="schRegDateFrom != null">
           AND SD.REG_DT <![CDATA[>=]]> CONCAT(#{schRegDateFrom},'000000')  <!-- 등록 일자 시작 -->
                    </if>
                    <if test="schRegDateTo != null">
           AND SD.REG_DT <![CDATA[<=]]> CONCAT(#{schRegDateTo},'235959')    <!-- 등록 일자 종료 -->
                    </if>
                </when>
                <when test="schRegDateOpt == 'mdfcnDt'">
                    <if test="schRegDateFrom != null">
           AND SD.MDFCN_DT <![CDATA[>=]]> CONCAT(#{schRegDateFrom},'000000')    <!-- 수정 일자 시작 -->
                    </if>
                    <if test="schRegDateTo != null">
           AND SD.MDFCN_DT <![CDATA[<=]]> CONCAT(#{schRegDateTo},'235959')      <!-- 수정 일자 종료 -->
                    </if>
                </when>
                <otherwise>
                </otherwise>
            </choose>
            <choose>
                <when test="schRgtrOpt == 'rgtr'">
                    <if test="schRgtrCd != null">
           AND SD.RGTR          =  #{schRgtrCd} <!-- 등록자 코드 -->
                    </if>
                </when>
                <when test="schRgtrOpt == 'mdfr'">
                    <if test="schRgtrCd != null">
           AND SD.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 == 'rgNo'"> SD.RG_NO </when>
                            <when test="by == 'dlvrYmd'"> SD.DLVR_YMD </when>
                            <when test="by == 'dlvrTm'"> SD.DLVR_TM </when>
                            <when test="by == 'undlvrRsnNm'"> SD.UNDLVR_RSN_NM </when>
                            <when test="by == 'actlRcpnNm'"> SD.ACTL_RCPN_NM </when>
                            <when test="by == 'rcpnRelNm'"> SD.RCPN_REL_NM </when>
                            <when test="by == 'sndngSeCd'"> SD.SNDNG_SE_CD </when>
                            <when test="by == 'sndngYmd'"> SD.SNDNG_YMD </when>
                            <when test="by == 'ffnlgAmt'"> SD.FFNLG_AMT </when>
                            <when test="by == 'rcpnNm'"> SD.RCPN_NM </when>
                            <when test="by == 'rcpnZip'"> SD.RCPN_ZIP </when>
                            <when test="by == 'rcpnAddr'"> SD.RCPN_ADDR </when>
                            <when test="by == 'rcpnDtlAddr'"> SD.RCPN_DTL_ADDR </when>
                            <when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
                            <when test="by == 'vhrno'"> C.VHRNO </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 == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
                            <when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
                            <when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
                        </choose>
                        <include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
                    </when>
                    <otherwise>
                    </otherwise>
                </choose>
            </if>
        </where>
    </sql>

    <select id="selectSvbtcsTrgtSndngDtlIds" parameterType="map" resultType="dataobject">/* 공시송달 대상 발송 상세 ID 가져오기(sndngMapper.selectSvbtcsTrgtSndngDtlIds) */
        SELECT SD.SNDNG_DTL_ID          <!-- 발송 상세 ID -->
        <include refid="fromSndbk" />
        <include refid="utility.orderBy" />
    </select>

	<sql id="selectSndbk">
        SELECT SD.SNDNG_DTL_ID          <!-- 발송 상세 ID -->
             , SD.CRDN_ID               <!-- 단속 ID -->
             , SD.SVBTC_ID              <!-- 공시송달 ID -->
             , SD.CON_KEY               <!-- 외부연계식별키 -->
             , SD.RG_NO                 <!-- 등기 번호 -->
             , SD.DLVR_YMD              <!-- 배달 일자 -->
             , SD.DLVR_TM               <!-- 배달 시각 -->
             , SD.UNDLVR_RSN_CD         <!-- 미배달 사유 코드 -->
             , SD.UNDLVR_RSN_NM         <!-- 미배달 사유 명 -->
             , SD.ACTL_RCPN_NM          <!-- 실제 수령인 명 -->
             , SD.RCPN_REL_NM           <!-- 수령인 관계 명 -->
             , SD.SNDNG_DTL_STTS_CD     <!-- 발송 상세 상태 코드 -->
             , SD.BFR_SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
             , SD.BFR_DLVR_YMD          <!-- 전 배달 일자 -->
             , SD.BFR_DLVR_TM           <!-- 전 배달 시각 -->
             , S.SNDNG_ID               <!-- 발송 ID -->
             , S.SGG_CD                 <!-- 시군구 코드 -->
             , S.TASK_SE_CD             <!-- 업무 구분 코드 -->
          FROM TB_SNDNG_DTL     SD
         INNER JOIN TB_SNDNG    S   ON (SD.SNDNG_ID = S.SNDNG_ID)
	</sql>

    <select id="selectSndbks" parameterType="map" resultType="dataobject">/* 반송 정보 조회(sndngDtlMapper.selectSndbks) */
        <include refid="selectSndbk" />
        <where>
            <if test="sndngDtlIds != null">
           AND SD.SNDNG_DTL_ID  IN (            <!-- 발송 상세 Ids -->
                <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
             )
            </if>
            <if test="sndngDtlId != null">
           AND SD.SNDNG_DTL_ID  = #{sndngDtlId} <!-- 발송 상세 ID -->
            </if>
            <if test="sndngId != null">
           AND SD.SNDNG_ID      =  #{sndngId}   <!-- 발송 ID -->
            </if>
            <if test="crdnIds != null">
           AND SD.CRDN_ID       IN (            <!-- 단속 Ids -->
                <foreach collection="crdnIds" item="crdnId" separator=","> #{crdnId} </foreach>
             )
            </if>
            <if test="crdnId != null">
           AND SD.CRDN_ID       =  #{crdnId}    <!-- 단속 ID -->
            </if>
            <if test="svbtcIds != null">
           AND SD.SVBTC_ID      IN (            <!-- 공시송달 Ids -->
                <foreach collection="svbtcIds" item="svbtcId" separator=","> #{svbtcId} </foreach>
             )
            </if>
            <if test="svbtcId != null">
           AND SD.SVBTC_ID      =  #{svbtcId}   <!-- 공시송달 ID -->
            </if>
        </where>
           AND SD.DEL_YN        = 'N'
        <include refid="utility.orderBy" />
    </select>

    <update id="createSndbk" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송상세의 반송 정보 등록(sndngDtlMapper.createSndbk) */
        UPDATE TB_SNDNG_DTL
           SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
             , DLVR_YMD         = #{dlvrYmd}    <!-- 배달 일자 -->
             , DLVR_TM          = #{dlvrTm}     <!-- 배달 시각 -->
             , UNDLVR_RSN_CD    = #{undlvrRsnCd} <!-- 미배달 사유 코드 -->
             , UNDLVR_RSN_NM    = #{undlvrRsnNm} <!-- 미배달 사유 명 -->
             , SNDNG_DTL_STTS_CD= #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
        <choose>
            <when test="sndngDtlIds != null">
         WHERE SNDNG_DTL_ID     IN (            <!-- 발송 상세 Ids -->
                <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
             )
            </when>
            <otherwise>
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
            </otherwise>
        </choose>
           AND DEL_YN           = 'N'
    </update>

    <update id="updateSndbk" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송상세의 반송 정보 수정(sndngDtlMapper.updateSndbk) */
        UPDATE TB_SNDNG_DTL
           SET BFR_DLVR_YMD     = DLVR_YMD      <!-- 전 배달 일자 -->
             , BFR_DLVR_TM      = DLVR_TM       <!-- 전 배달 시각 -->
             , DLVR_YMD         = #{dlvrYmd}    <!-- 배달 일자 -->
             , DLVR_TM          = #{dlvrTm}     <!-- 배달 시각 -->
             , UNDLVR_RSN_CD    = #{undlvrRsnCd} <!-- 미배달 사유 코드 -->
             , UNDLVR_RSN_NM    = #{undlvrRsnNm} <!-- 미배달 사유 명 -->
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
        <choose>
            <when test="sndngDtlIds != null">
         WHERE SNDNG_DTL_ID     IN (            <!-- 발송 상세 Ids -->
                <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
             )
            </when>
            <otherwise>
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
            </otherwise>
        </choose>
           AND DEL_YN           = 'N'
    </update>

    <update id="deleteSndbk" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송상세의 반송 정보 삭제(sndngDtlMapper.deleteSndbk) */
        UPDATE TB_SNDNG_DTL
           SET BFR_SNDNG_DTL_STTS_CD = NULL     <!-- 전 발송 상세 상태 코드 -->
             , BFR_DLVR_YMD     = NULL          <!-- 전 배달 일자 -->
             , BFR_DLVR_TM      = NULL          <!-- 전 배달 시간 -->
             , DLVR_YMD         = #{dlvrYmd}    <!-- 배달 일자 -->
             , DLVR_TM          = #{dlvrTm}     <!-- 배달 시각 -->
             , UNDLVR_RSN_CD    = NULL          <!-- 미배달 사유 코드 -->
             , UNDLVR_RSN_NM    = NULL          <!-- 미배달 사유 명 -->
             , SNDNG_DTL_STTS_CD= #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
        <choose>
            <when test="sndngDtlIds != null">
         WHERE SNDNG_DTL_ID     IN (            <!-- 발송 상세 Ids -->
                <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
             )
            </when>
            <otherwise>
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
            </otherwise>
        </choose>
           AND DEL_YN           = 'N'
    </update>

    <select id="selectTnocsSndngDtlSvbtc" parameterType="cokr.xit.fims.sndb.SndngDtl" resultType="int">/* 발송상세 대장에 공시송달ID에 해당하는 총건수 가져오기(sndngDtlMapper.selectTnocsSndngDtlSvbtc) */
        SELECT COUNT(*) TNOCS
          FROM TB_SNDNG_DTL
         WHERE SVBTC_ID         = #{svbtcId}    <!-- 공시송달 ID -->
           AND DEL_YN           = 'N'
    </select>

    <update id="updateSndngDtlSvbtc" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송상세의 공시송달 정보를 수정(sndngDtlMapper.updateSndngDtlSvbtc) */
        UPDATE TB_SNDNG_DTL
           SET BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
             , SNDNG_DTL_STTS_CD= #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
             , SVBTC_ID         = #{svbtcId}    <!-- 공시송달 ID -->
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
         WHERE SNDNG_DTL_ID     = #{sndngDtlId} <!-- 발송 상세 ID -->
           AND DEL_YN           = 'N'
    </update>

    <update id="deleteSndngDtlSvbtc" parameterType="cokr.xit.fims.sndb.SndngDtl">/* 발송상세의 공시송달 정보를 삭제(sndngDtlMapper.deleteSndngDtlSvbtc) */
        UPDATE TB_SNDNG_DTL
           SET SVBTC_ID         = NULL          <!-- 공시송달 ID -->
             , BFR_SNDNG_DTL_STTS_CD = SNDNG_DTL_STTS_CD <!-- 이전 발송 상세 상태 코드 -->
             , SNDNG_DTL_STTS_CD= #{sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
             , MDFCN_DT         = <include refid="utility.now" />   <!-- 수정 일시 -->
             , MDFR             = #{modifiedBy} <!-- 수정자 -->
         WHERE SVBTC_ID         = #{svbtcId}    <!-- 공시송달 ID -->
            <if test="sndngDtlIds != null">
           AND SNDNG_DTL_ID     IN (            <!-- 발송 상세 Ids -->
                <foreach collection="sndngDtlIds" item="sndngDtlId" separator=","> #{sndngDtlId} </foreach>
             )
            </if>
           AND DEL_YN           = 'N'
    </update>

    <select id="selectCrdnLevy" parameterType="string" resultType="dataobject">/* 단속 부과 정보 가져오기(sndngDtlMapper.selectCrdnLevy) */
        SELECT C.CRDN_ID        <!-- 단속 ID -->
             , C.SGG_CD         <!-- 시군구 코드 -->
             , C.TASK_SE_CD     <!-- 업무 구분 코드 -->
             , C.VHRNO          <!-- 차량번호 -->
             , C.CRDN_STTS_CD   <!-- 단속 상태 코드 -->
             , C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
             , P.RTPYR_ID       <!-- 납부자 ID -->
             , L.LEVY_ID        <!-- 부과 ID -->
          FROM TB_CRDN          C
    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 -->
    </select>

    <update id="updateCrdnNxrpAcbKey" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 대장에 세외수입 대장키 수정(sndngDtlMapper.updateCrdnNxrpAcbKey) */
        UPDATE TB_CRDN
           SET NXRP_ACB_KEY = #{nxrpAcbKey} <!-- 세외수입 대장키 -->
         WHERE CRDN_ID      = #{crdnId}     <!-- 단속 ID -->
    </update>

</mapper>
