<?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.crdn.dao.CrdnUpdtMapper">

    <update id="updateCrdnStatus" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 상태 수정(crdnUpdtMapper.updateCrdnStatus) */
        UPDATE TB_CRDN
           SET CRDN_STTS_CD             =  #{crdnSttsCd}                        /* 단속 상태 */
             , CRDN_STTS_CHG_DT         =  <include refid="utility.now" />      /* 단속 상태 변경 일시 */
             , MDFCN_DT                 =  <include refid="utility.now" />      /* 수정일시 */
             , MDFR                     =  #{modifiedBy}                        /* 수정자 */
         WHERE CRDN_ID                  =  #{crdnId}                            /* 단속 ID */
           AND DEL_YN                   =  'N'                                  /* 삭제 여부 */
    </update>

<update id="updateCrdn" parameterType="cokr.xit.fims.crdn.Crdn">
    /* 단속정보 수정(crdnUpdtMapper.updateCrdn) */
    UPDATE TB_CRDN
       SET MDFCN_DT = <include refid="utility.now" /> /* 수정일시 */
         , MDFR = #{modifiedBy}                   /* 수정자 */
         , ATCH_FILE_CNT    = ATCH_FILE_CNT + (#{changeFileCnt})
         , RTPYR_ID         = #{rtpyrId}        <!-- 납부자 ID -->
         , CRDN_YMD         = #{crdnYmd}        <!-- 단속 일자 -->
         , CRDN_TM          = #{crdnTm}         <!-- 단속 시각 -->
         , VHRNO            = #{vhrno}          <!-- 차량번호 -->
         , CRDN_STDG_NM     = #{crdnStdgNm}     <!-- 단속 법정동 명 -->
         , CRDN_ROAD_NM     = #{crdnRoadNm}     <!-- 단속 도로 명 -->
         , CRDN_PLC         = #{crdnPlc}        <!-- 단속 장소 -->
         , VLTN_ID          = (SELECT A.VLTN_ID
                                 FROM TB_VLTN_INFO A
                                WHERE A.SGG_CD = #{sggCd}
                                  AND A.TASK_SE_CD = #{taskSeCd}
                                  AND A.VLTN_CD = #{vltnCd}) <!-- 위반 ID -->
         , GPS_X            = #{gpsX}           <!-- GPS X -->
         , GPS_Y            = #{gpsY}           <!-- GPS Y -->
         , VIN              = #{vin}            <!-- 차대번호 -->
         , VHCL_NM          = #{vhclNm}         <!-- 차량 명 -->
         , VHCL_COLOR       = #{vhclColor}      <!-- 차량 색상 -->
         , ETC_CN           = #{etcCn}          <!-- 기타 내용 -->
         , FFNLG_CRDN_AMT   = #{ffnlgCrdnAmt}   <!-- 과태료 단속 금액 -->
         , FFNLG_AMT        = #{ffnlgAmt}       <!-- 과태료 금액 -->
         , FFNLG_RDUCT_RT   = #{ffnlgRductRt}   <!-- 과태료 감경 율 -->
         , ADVNTCE_AMT      = #{advntceAmt}     <!-- 사전통지 금액 -->
         <if test="crdnSttsCd != ''">
         , CRDN_STTS_CD     = #{crdnSttsCd}    <!-- 단속 상태 코드 -->
         , CRDN_STTS_CHG_DT = <include refid="utility.now" />    <!-- 단속 상태 변경 일시 -->
         </if>
     WHERE CRDN_ID = #{crdnId}                   /* 단속 ID */
</update>

<update id="updateCrdnAddition" parameterType="cokr.xit.fims.crdn.Crdn">
/* 단속 부가정보 수정(crdnUpdtMapper.updateCrdnAddition) */
    UPDATE TB_CRDN_ADI
       SET MDFCN_DT              = <include refid="utility.now" /> /* 수정일시 */
         , MDFR                  = #{modifiedBy}       /* 수정자 */
         <if test="taskSeCd == 'PVS'">
         , OVTIME_YN             = #{ovtimeYn}          <!-- 시간외 여부 -->
         , CRDN_SPAREA_CD        = #{crdnSpareaCd}      <!-- 단속 특별구역 코드 -->
         </if>
         <if test="taskSeCd == 'BPV'">
         , DTL_CRDN_PLC          = #{dtlCrdnPlc}        <!-- 상세 단속 장소 -->
         , MOSC_X                = #{moscX}             <!-- 모자이크 X -->
         , MOSC_Y                = #{moscY}             <!-- 모자이크 Y -->
         </if>
         <if test="taskSeCd == 'ECA'">
         , USE_FUEL_CD           = #{useFuelCd}         <!-- 사용 연료 코드 -->
         </if>
         <if test="taskSeCd == 'DPV'">
         , PARKNG_PSBLTY_RSLT_CD = #{parkngPsbltyRsltCd}<!-- 주차 가능 결과 코드 -->
         </if>
         <if test="taskSeCd == 'TPV'">
         , VLTN_NMTM             = #{vltnNmtm}          <!-- 위반 횟수 -->
         </if>
         <if test="taskSeCd == 'PVS' or taskSeCd == 'BPV'">
         , CRDN_SE_CD            = #{crdnSeCd}          <!-- 단속 구분 코드 -->
         , CRDN_BGNG_TM          = #{crdnBgngTm}        <!-- 단속 시작 시각 -->
         , CRDN_END_TM           = #{crdnEndTm}         <!-- 단속 종료 시간 -->
         , FFNLG_CARMDL_CD       = #{ffnlglCarmdlCd}    <!-- 과태료 차종 코드 -->
         </if>
         <if test="taskSeCd == 'DPV' or taskSeCd == 'ECA' or taskSeCd == 'PVS'">
         , CRDN_SN               = #{crdnSn}            <!-- 단속 일련번호 -->
         , TOWNG_YN              = #{towngYn}           <!-- 견인 여부 -->
         </if>
     WHERE CRDN_ID               = #{crdnId}                   /* 단속 ID */
</update>

<update id="updateTagInfo" parameterType="cokr.xit.fims.crdn.Crdn">
    /* 표지정보확인 수정(crdnUpdtMapper.updateTagInfo) */
    UPDATE TB_CRDN_ADI
       SET PARKNG_PSBLTY_RSLT_CD = '1'
         , MDFCN_DT = <include refid="utility.now" /> /* 수정일시 */
         , MDFR = #{modifiedBy}                   /* 수정자 */
     WHERE CRDN_ID = #{crdnId}                   /* 단속 ID */
</update>

<update id="updateOverTimeInfo" parameterType="cokr.xit.fims.crdn.Crdn">
    /* 시간초과 여부 수정(crdnUpdtMapper.overTimeInfo) */
    UPDATE TB_CRDN_ADI
       SET OVTIME_YN = #{ovtimeYn}
         , MDFCN_DT = <include refid="utility.now" /> /* 수정일시 */
         , MDFR = #{modifiedBy}                   /* 수정자 */
     WHERE CRDN_ID = #{crdnId}                   /* 단속 ID */
</update>

<update id="updateCrdnAmt" parameterType="cokr.xit.fims.crdn.Crdn">
    /* 단속 금액 수정(crdnUpdtMapper.updateCrdnAmt) */
    UPDATE TB_CRDN
       SET MDFCN_DT       = <include refid="utility.now" /> /* 수정일시 */
         , MDFR           = #{modifiedBy}                   /* 수정자 */
         , FFNLG_CRDN_AMT = #{ffnlgCrdnAmt}
         , FFNLG_AMT      = #{ffnlgAmt}
         , ADVNTCE_AMT    = #{advntceAmt}
     WHERE CRDN_ID = #{crdnId}                   /* 단속 ID */
</update>


    <update id="updateEditCrdn" parameterType="map">/* 단속 정보 수정(crdnUpdtMapper.updateEditCrdn) */
        UPDATE TB_CRDN
           SET CRDN_YMD                 =  #{crdnYmd}                           /* 단속 일자 */
             , CRDN_TM                  =  #{crdnTm}                            /* 단속 시각 */
             , VHRNO                    =  #{vhrno}                             /* 차량번호 */
             , CRDN_STDG_NM             =  #{crdnStdgNm}                        /* 단속 법정동 명 */
             , CRDN_ROAD_NM             =  #{crdnRoadNm}                        /* 단속 도로 명 */
             , CRDN_PLC                 =  #{crdnPlc}                           /* 단속 장소 */
             , VLTN_ID                  =  (SELECT X.VLTN_ID
                                              FROM TB_VLTN_INFO X
                                             WHERE X.SGG_CD     = #{sggCd}
                                               AND X.TASK_SE_CD = #{taskSeCd}
                                               AND X.VLTN_CD    = #{vltnCd})    /* 위반 ID */
             , GPS_X                    =  #{gpsX}                              /* GPS X */
             , GPS_Y                    =  #{gpsY}                              /* GPS Y */
             , VIN                      =  #{vin}                               /* 차대번호 */
             , VHCL_NM                  =  #{vhclNm}                            /* 차량 명 */
             , VHCL_COLOR               =  #{vhclColor}                         /* 차량 색상 */
             , ETC_CN                   =  #{etcCn}                             /* 기타 내용 */
             , MDFCN_DT                 =  <include refid="utility.now" />      /* 수정일시 */
             , MDFR                     =  #{modifiedBy}                        /* 수정자 */
         WHERE CRDN_ID                  =  #{crdnId}                            /* 단속 ID */
           AND DEL_YN                   =  'N'                                  /* 삭제 여부 */
    </update>

    <update id="deleteCrdn" parameterType="map">/* 단속 정보 삭제(crdnUpdtMapper.deleteCrdn) */
        UPDATE TB_CRDN
           SET DEL_YN                   =  'Y'
             , DEL_DT                   =  <include refid="utility.now" />      /* 삭제일시 */
             , DLTR                     =  #{removedBy}                         /* 삭제자 */
             , DEL_RSN                  =  #{delRsn}                            /* 삭제 사유 */
         WHERE CRDN_ID IN (
         <foreach collection="crdnIDs" item="crdnId" separator=",">#{crdnId}</foreach>
         )
           AND DEL_YN                   =  'N'                                  /* 삭제 여부 */
    </update>

    <update id="deleteCrdnAdi" parameterType="map">/* 단속 부가 정보 삭제(crdnUpdtMapper.deleteCrdn) */
        UPDATE TB_CRDN_ADI
           SET DEL_YN                   =  'Y'
             , DEL_DT                   =  <include refid="utility.now" />      /* 삭제일시 */
             , DLTR                     =  #{removedBy}                         /* 삭제자 */
             , DEL_RSN                  =  #{delRsn}                            /* 삭제 사유 */
         WHERE CRDN_ID IN (
         <foreach collection="crdnIDs" item="crdnId" separator=",">#{crdnId}</foreach>
         )
           AND DEL_YN                   =  'N'                                  /* 삭제 여부 */
    </update>

</mapper>