<?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.mngt.dao.TaskMapper">

<!-- 업무 정보 정보 매퍼
 ========== 변경 이력 ==========
 2023-10-24	JoJH 최초 작성
 ============================ -->

<resultMap id="taskRow" type="cokr.xit.fims.mngt.Task">
	<result property="sggCd"               column="SGG_CD" />				<!-- 시군구 코드 -->
	<result property="taskSeCd"            column="TASK_SE_CD" />			<!-- 업무 구분 코드 -->
	<result property="taskSeNm"            column="TASK_SE_NM" />			<!-- 업무 구분 명 -->
	<result property="advntceDayCnt"       column="ADVNTCE_DAY_CNT" />		<!-- 사전통지 일 수 -->
	<result property="advntceRdcrt"        column="ADVNTCE_RDCRT" />		<!-- 사전통지 감경 율 -->
	<result property="wksnRdcrt"           column="WKSN_RDCRT" />			<!-- 사회적약자 감경 율 -->
	<result property="ffnlgAdtnYmd"        column="FFNLG_ADTN_YMD" />		<!-- 과태료 가산 일자 -->
	<result property="ffnlgAdtnRt"         column="FFNLG_ADTN_RT" />		<!-- 과태료 가산 율 -->
	<result property="ffnlgInadtnRt"       column="FFNLG_INADTN_RT" />		<!-- 과태료 중가산 율 -->
	<result property="ffnlgInadtnMaxCnt"   column="FFNLG_INADTN_MAX_CNT" /> <!-- 과태료 중가산 최대 수 -->
	<result property="nxrpLinkSeCd"        column="NXRP_LINK_SE_CD" />	    <!-- 세외수입 연계 구분 코드 -->
	<result property="nxrpLinkSeDtlSn"     column="NXRP_LINK_SE_DTL_SN" />	<!-- 세외수입 연계 구분 상세 순번 -->
	<result property="useYN"               column="USE_YN" />				<!-- 사용 여부 -->
	<result property="createdAt"           column="REG_DT" />				<!-- 등록 일시 -->
	<result property="createdBy"           column="RGTR" />					<!-- 등록자 -->
	<result property="lastModified"        column="MDFCN_DT" />				<!-- 수정 일시 -->
	<result property="modifiedBy"          column="MDFR" />					<!-- 수정자 -->
</resultMap>

<sql id="select">SELECT T.SGG_CD                 <!-- 시군구 코드 -->
     , T.TASK_SE_CD             <!-- 업무 구분 코드 -->
     , T.TASK_SE_NM             <!-- 업무 구분 명 -->
     , T.ADVNTCE_DAY_CNT        <!-- 사전통지 일수 -->
     , T.ADVNTCE_RDCRT          <!-- 사전통지 감경 율 -->
     , T.WKSN_RDCRT             <!-- 사회적약자 감경율 -->
     , T.FFNLG_ADTN_YMD         <!-- 과태료 가산 일자 -->
     , T.FFNLG_ADTN_RT          <!-- 과태료 가산 율 -->
     , T.FFNLG_INADTN_RT        <!-- 과태료 중가산 율 -->
     , T.FFNLG_INADTN_MAX_CNT   <!-- 과태료 중가산 최대 수 -->
     , T.NXRP_LINK_SE_CD        <!-- 세외수입 연계 구분 코드 -->
     , T.NXRP_LINK_SE_DTL_SN    <!-- 세외수입 연계 구분 상세 순번 -->
     , T.USE_YN                 <!-- 사용 여부 -->
     , T.REG_DT                 <!-- 등록 일시 -->
     , T.RGTR                   <!-- 등록자 -->
     , T.MDFCN_DT               <!-- 수정 일시 -->
     , T.MDFR                   <!-- 수정자 -->
  FROM TB_TASK T</sql>

<select id="selectTaskList" parameterType="map" resultType="dataobject">/* 업무 정보 목록 조회(taskMapper.selectTaskList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
 WHERE T.SGG_CD     = #{sggCd}      <!-- 시군구 코드 -->
   AND T.TASK_SE_CD = #{taskSeCd}   <!-- 업무 구분 코드 -->
  <if test="useYn != null">AND T.USE_YN     = #{useYn}      <!-- 사용 여부 --></if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /></select>

<select id="selectTasks" parameterType="map" resultType="dataobject">/* 업무 정보 객체 가져오기(taskMapper.selectTasks) */
<include refid="select" />
 WHERE T.SGG_CD     = #{sggCd}      <!-- 시군구 코드 -->
  <if test="taskSeCd != null and taskSeCd != ''">AND T.TASK_SE_CD = #{taskSeCd}   <!-- 업무 구분 코드 --></if>
  <if test="useYn != null">AND T.USE_YN = #{useYn} <!-- 사용 여부 --></if>
<include refid="utility.orderBy" /></select>

<select id="selectAdvntceYmdInfo" parameterType="map" resultType="dataobject">/* 사전통지 정보 객체 가져오기(taskMapper.selectAdvntceYmdInfo) */
SELECT SGG_CD           <!-- 시군구 코드 -->
     , TASK_SE_CD       <!-- 업무 구분 코드 -->
     , ADVNTCE_DAY_CNT  <!-- 사전통지 일수 -->
     , ADVNTCE_RDCRT    <!-- 사전통지 감경 율 -->
     , DATE_FORMAT(CURRENT_DATE, '%Y')      AS FYR      <!-- 회계 연도 -->
     , DATE_FORMAT(CURRENT_DATE, '%Y%m%d')  AS LEVY_YMD <!-- 부과 일자 -->
     , GET_MASK_DATE(DATE_FORMAT(CURRENT_DATE, '%Y%m%d'), '-')  AS LEVY_YMD_MASK     <!-- 부과 일자 -->
     , DATE_FORMAT(DATE_ADD(CURRENT_DATE, INTERVAL ADVNTCE_DAY_CNT DAY), '%Y%m%d') AS DUDT_YMD   <!-- 납기 일자 -->
     , GET_MASK_DATE(DATE_FORMAT(DATE_ADD(CURRENT_DATE, INTERVAL ADVNTCE_DAY_CNT DAY), '%Y%m%d'), '-') AS DUDT_YMD_MASK   <!-- 납기 일자 -->
  FROM TB_TASK
 WHERE SGG_CD           =  #{sggCd}
   AND TASK_SE_CD       =  #{taskSeCd}
   AND USE_YN           =  'Y'
<include refid="utility.orderBy" /></select>

<insert id="insertTask" parameterType="map">/* 업무 정보 등록(taskMapper.insertTask) */
INSERT INTO TB_TASK (
       SGG_CD                   <!-- 시군구 코드 -->
     , TASK_SE_CD               <!-- 업무 구분 코드 -->
     , TASK_SE_NM               <!-- 업무 구분 명 -->
     , ADVNTCE_DAY_CNT          <!-- 사전통지 일수 -->
     , ADVNTCE_RDCRT            <!-- 사전통지 감경 율 -->
     , WKSN_RDCRT               <!-- 사회적약자 감경 율 -->
     , FFNLG_ADTN_YMD           <!-- 과태료 가산 일자 -->
     , FFNLG_ADTN_RT            <!-- 과태료 가산 율 -->
     , FFNLG_INADTN_RT          <!-- 과태료 중가산 율 -->
     , FFNLG_INADTN_MAX_CNT     <!-- 과태료 중가산 최대 수 -->
     , NXRP_LINK_SE_CD          <!-- 세외수입 연계 구분 코드 -->
     , NXRP_LINK_SE_DTL_SN      <!-- 세외수입 연계 구분 상세 순번 -->
     , USE_YN                   <!-- 사용 여부 -->
     , REG_DT                   <!-- 등록 일시 -->
     , RGTR                     <!-- 등록자 -->
     , MDFCN_DT                 <!-- 수정 일시 -->
     , MDFR                     <!-- 수정자 -->
) VALUES (
       #{task.sggCd}                    <!-- 시군구 코드 -->
     , #{task.taskSeCd}                 <!-- 업무 구분 코드 -->
     , #{task.taskSeNm}                 <!-- 업무 구분 명 -->
     , #{task.advntceDayCnt}            <!-- 사전통지 일수 -->
     , #{task.advntceRdcrt}             <!-- 사전통지 감경 율 -->
     , #{task.wksnRdcrt}                <!-- 사회적약자 감경 율 -->
     , #{task.ffnlgAdtnYmd}             <!-- 과태료 가산 일자 -->
     , #{task.ffnlgAdtnRt}              <!-- 과태료 가산 율 -->
     , #{task.ffnlgInadtnRt}            <!-- 과태료 중가산 율 -->
     , #{task.ffnlgInadtnMaxCnt}        <!-- 과태료 중가산 최대 수 -->
     , #{task.nxrpLinkSeCd}             <!-- 세외수입 연계 구분 코드 -->
     , #{task.nxrpLinkSeDtlSn}          <!-- 세외수입 연계 구분 상세 순번 -->
     , 'Y'                              <!-- 사용 여부 -->
     ,<include refid="utility.now" />   <!-- 등록 일시 -->
     , #{currentUser.id}                <!-- 등록자 -->
     ,<include refid="utility.now" />   <!-- 수정 일시 -->
     , #{currentUser.id}                <!-- 수정자 -->
)</insert>

<update id="updateTask" parameterType="map">/* 업무 정보 수정(taskMapper.updateTask) */
UPDATE TB_TASK
   SET TASK_SE_NM           = #{task.taskSeNm}          <!-- 업무 구분 명 -->
     , ADVNTCE_DAY_CNT      = #{task.advntceDayCnt}     <!-- 사전통지 일수 -->
     , ADVNTCE_RDCRT        = #{task.advntceRdcrt}      <!-- 사전통지 감경 율 -->
     , WKSN_RDCRT           = #{task.wksnRdcrt}         <!-- 사회적약자 감경 율 -->
     , FFNLG_ADTN_YMD       = #{task.ffnlgAdtnYmd}      <!-- 과태료 가산 일자 -->
     , FFNLG_ADTN_RT        = #{task.ffnlgAdtnRt}       <!-- 과태료 가산 율 -->
     , FFNLG_INADTN_RT      = #{task.ffnlgInadtnRt}     <!-- 과태료 중가산 율 -->
     , FFNLG_INADTN_MAX_CNT = #{task.ffnlgInadtnMaxCnt} <!-- 과태료 중가산 최대 수 -->
     , NXRP_LINK_SE_CD      = #{task.nxrpLinkSeCd}      <!-- 세외수입 연계 구분 코드 -->
     , NXRP_LINK_SE_DTL_SN  = #{task.nxrpLinkSeDtlSn}   <!-- 세외수입 연계 구분 상세 순번 -->
     , MDFCN_DT             =<include refid="utility.now" /> <!-- 수정 일시 -->
     , MDFR                 = #{currentUser.id}         <!-- 수정자 -->
 WHERE SGG_CD               = #{task.sggCd}             <!-- 시군구 코드 -->
   AND TASK_SE_CD           = #{task.taskSeCd}          <!-- 업무 구분 코드 -->
   AND USE_YN               = 'Y'</update>

<update id="deleteTask" parameterType="map">/* 업무 정보 삭제(taskMapper.deleteTask) */
UPDATE TB_TASK
   SET USE_YN     = 'N'               <!-- 사용 여부 -->
     , MDFCN_DT   =<include refid="utility.now" />   <!-- 수정 일시 -->
     , MDFR       = #{currentUser.id} <!-- 수정자 -->
 WHERE SGG_CD     = #{task.sggCd}     <!-- 시군구 코드 -->
   AND TASK_SE_CD = #{task.taskSeCd}  <!-- 업무 구분 코드 -->
   AND USE_YN     = 'Y'</update>

</mapper>