<?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.SvbtcMapper">

<!-- 공시송달 대장 정보 매퍼
 ========== 변경 이력 ==========
 2023-08-31	JoJH 최초 작성
 ============================ -->

	<resultMap id="svbtcRow" type="cokr.xit.fims.sndb.Svbtc">
		<result property="svbtcId"				column="SVBTC_ID" />					<!-- 공시송달 ID -->
		<result property="sggCd"				column="SGG_CD" />						<!-- 시군구 코드 -->
		<result property="taskSeCd"				column="TASK_SE_CD" />					<!-- 업무 구분 코드 -->
		<result property="vltnId"				column="VLTN_ID" />						<!-- 위반 ID -->
		<result property="sndngSeCd"			column="SNDNG_SE_CD" />					<!-- 발송 구분 코드 -->
		<result property="svbtcYmd"				column="SVBTC_YMD" />					<!-- 공시송달 일자 -->
		<result property="ttlNm"				column="TTL_NM" />						<!-- 제목 명 -->
		<result property="docNo"				column="DOC_NO" />						<!-- 문서 번호 -->
		<result property="etcCn"				column="ETC_CN" />						<!-- 기타 내용 -->
		<result property="tnocs"				column="TNOCS" />						<!-- 총건수 -->
		<result property="gramt"				column="GRAMT" />						<!-- 총금액 -->
		<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>

    <sql id="select">
        SELECT SV.SVBTC_ID                                                                                      /* 공시송달 ID */
             , SV.SGG_CD                                                                                        /* 시군구 코드 */
             , SV.TASK_SE_CD                                                                                    /* 업무 구분 코드 */
             , (SELECT FN_GET_CODE_NM('FIM054', SV.TASK_SE_CD) FROM DUAL)               AS TASK_SE_NM           /* 업무 구분 명 */
             , SV.VLTN_ID                                                                                       /* 위반 ID */
             , SV.SNDNG_SE_CD                                                                                   /* 발송 구분 코드 */
             , (SELECT FN_GET_CODE_NM('FIM047', SV.SNDNG_SE_CD) FROM DUAL)              AS SNDNG_SE_NM          /* 발송 구분 명 */
             , SV.SVBTC_YMD                                                                                     /* 공시송달 일자 */
             , SV.TTL_NM                                                                                        /* 제목 명 */
             , SV.DOC_NO                                                                                        /* 문서 번호 */
             , SV.ETC_CN                                                                                        /* 기타 내용 */
             , SV.TNOCS                                                                                         /* 총건수 */
             , SV.GRAMT                                                                                         /* 총금액 */
             , SV.DEL_YN                                                                                        /* 삭제 여부 */
             , SV.REG_DT                                                                                        /* 등록 일시 */
             , SV.RGTR                                                                                          /* 등록자 */
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR)                AS RGTR_NM              /* 등록자 명 */
             , SV.MDFCN_DT                                                                                      /* 수정 일시 */
             , SV.MDFR                                                                                          /* 수정자 */
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR)                AS RGTR_NM              /* 등록자 명 */
             , SV.DEL_DT                                                                                        /* 삭제 일시 */
             , SV.DLTR                                                                                          /* 삭제자 */
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = SV.RGTR)                AS RGTR_NM              /* 등록자 명 */
             , SV.DEL_RSN                                                                                       /* 삭제 사유 */
             , SD.SNDNG_DTL_ID                                                                                  /* 발송 상세 ID */
             , SD.SNDNG_ID                                                                                      /* 발송 ID */
             , SD.CRDN_ID                                                                                       /* 단속 ID */
          FROM TB_SVBTC             SV
         INNER JOIN TB_SNDNG_DTL    SD ON (SV.SVBTC_ID = SD.SVBTC_ID)
    </sql>

    <select id="selectSvbtcList" parameterType="map" resultType="dataobject">/* 공시송달 대장 목록 조회(svbtcMapper.selectSvbtcList) */
        <include refid="utility.paging-prefix" />
        <include refid="select" />
         WHERE SV.SGG_CD                =  #{sggCd}                                                             /* 시군구 코드 */
           AND SV.TASK_SE_CD            =  #{taskSeCd}                                                          /* 업무 구분 코드 */
        <if test="delYn != null">
           AND SV.DEL_YN                =  #{delYn}                                                              /* 삭제 여부 */
        </if>
        <include refid="utility.orderBy" />
        <include refid="utility.paging-suffix" />
    </select>

    <select id="selectSvbtcs" parameterType="map" resultType="dataobject">/* 공시송달 대장 객체 가져오기(svbtcMapper.selectSvbtcs) */
        <include refid="select" />
        <where>
            <if test="svbtcId != null">
           AND SV.SVBTC_ID              =  #{svbtcId}                                                           /* 공시송달 ID */
            </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 SV.DEL_YN                =  #{delYn}                                                             /* 삭제 여부 */
            </if>
        </where>
        <include refid="utility.orderBy" />
    </select>

    <insert id="insertSvbtc" parameterType="map">/* 공시송달 대장 등록(svbtcMapper.insertSvbtc) */
        INSERT
          INTO TB_SVBTC (
               SVBTC_ID                                                                                         /* 공시송달 ID */
             , SGG_CD                                                                                           /* 시군구 코드 */
             , TASK_SE_CD                                                                                       /* 업무 구분 코드 */
             , VLTN_ID                                                                                          /* 위반 ID */
             , SNDNG_SE_CD                                                                                      /* 발송 구분 코드 */
             , SVBTC_YMD                                                                                        /* 공시송달 일자 */
             , TTL_NM                                                                                           /* 제목 명 */
             , DOC_NO                                                                                           /* 문서 번호 */
             , ETC_CN                                                                                           /* 기타 내용 */
             , TNOCS                                                                                            /* 총건수 */
             , GRAMT                                                                                            /* 총금액 */
             , DEL_YN                                                                                           /* 삭제 여부 */
             , REG_DT                                                                                           /* 등록 일시 */
             , RGTR                                                                                             /* 등록자 */
             , MDFCN_DT                                                                                         /* 수정 일시 */
             , MDFR                                                                                             /* 수정자 */
        )
        VALUES (
               #{svbtc.svbtcId}                                                                                 /* 공시송달 ID */
             , #{svbtc.sggCd}                                                                                   /* 시군구 코드 */
             , #{svbtc.taskSeCd}                                                                                /* 업무 구분 코드 */
             , #{svbtc.vltnId}                                                                                  /* 위반 ID */
             , #{svbtc.sndngSeCd}                                                                               /* 발송 구분 코드 */
             , #{svbtc.svbtcYmd}                                                                                /* 공시송달 일자 */
             , #{svbtc.ttlNm}                                                                                   /* 제목 명 */
             , #{svbtc.docNo}                                                                                   /* 문서 번호 */
             , #{svbtc.etcCn}                                                                                   /* 기타 내용 */
             , #{svbtc.tnocs}                                                                                   /* 총건수 */
             , #{svbtc.gramt}                                                                                   /* 총금액 */
             , 'N'                                                                                              /* 삭제 여부 */
             , #{svbtc.createdAt}                                                                               /* 등록 일시 */
             , #{svbtc.createdBy}                                                                               /* 등록자 */
             , #{svbtc.lastModified}                                                                            /* 수정 일시 */
             , #{svbtc.modifiedBy}                                                                              /* 수정자 */
        )
    </insert>

    <update id="updateSvbtc" parameterType="map">/* 공시송달 대장 수정(svbtcMapper.updateSvbtc) */
        UPDATE TB_SVBTC
           SET SVBTC_YMD                = #{svbtc.svbtcYmd}                                                     /* 공시송달 일자 */
             , TTL_NM                   = #{svbtc.ttlNm}                                                        /* 제목 명 */
             , DOC_NO                   = #{svbtc.docNo}                                                        /* 문서 번호 */
             , ETC_CN                   = #{svbtc.etcCn}                                                        /* 기타 내용 */
             , TNOCS                    = #{svbtc.tnocs}                                                        /* 총건수 */
             , GRAMT                    = #{svbtc.gramt}                                                        /* 총금액 */
             , MDFCN_DT                 = #{svbtc.lastModified}                                                 /* 수정 일시 */
             , MDFR                     = #{svbtc.modifiedBy}                                                   /* 수정자 */
         WHERE SVBTC_ID                 = #{svbtc.svbtcId}                                                      /* 공시송달 ID */
    </update>

    <update id="deleteSvbtc" parameterType="map">/* 공시송달 대장 삭제(svbtcMapper.deleteSvbtc) */
        UPDATE TB_SVBTC
           SET DEL_YN                   = 'Y'                                                                   /* 삭제 여부 */
             , DEL_DT                   = #{svbtc.lastModified}                                                 /* 삭제 일시 */
             , DLTR                     = #{svbtc.modifiedBy}                                                   /* 삭제자 */
             , DEL_RSN                  = #{svbtc.delRsn}                                                       /* 삭제 사유 */
         WHERE SVBTC_ID                 = #{svbtc.svbtcId}                                                      /* 공시송달 ID */
           AND DEL_YN                   = 'N'                                                                   /* 삭제 여부 */
    </update>

</mapper>
