<?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.sprt.dao.TotalInfoMapper">

<!-- 개별총정보 매퍼
 ========== 변경 이력 ==========
 2023-08-18	JoJH 최초 작성
 ============================ -->

	<sql id="selectCrdn">
        SELECT C.CRDN_ID            <!-- 단속 ID -->
             , C.SGG_CD             <!-- 시군구 코드 -->
             , C.TASK_SE_CD         <!-- 업무 구분 코드 -->
             , C.RTPYR_ID           <!-- 납부자 ID -->
             , (CONCAT(C.CRDN_YMD, C.CRDN_TM))  AS CRDN_YMD_TM  <!-- 단속 일시 -->
             , C.VHRNO              <!-- 차량번호 -->
             , C.CRDN_STTS_CD       <!-- 단속 상태 코드 -->
             , (GET_CODE_NM('FIM010', C.CRDN_STTS_CD)) AS CRDN_STTS_NM  <!-- 단속 상태 명 -->
             , C.CRDN_STTS_CHG_DT   <!-- 단속 상태 변경 일시 -->
             , (CONCAT(L.FYR, '-', L.LEVY_NO)) AS GOJI_NO   <!-- 고지번호 -->
          FROM TB_CRDN      C
    LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')
	</sql>

	<select id="selectCrdnInfo" parameterType="String" resultType="dataobject">/* 개별총정보 조회(TotalInfoMapper.selectCrdnInfo) */
        <include refid="selectCrdn" />
         WHERE C.CRDN_ID        =  #{crdnId}    <!-- 단속 ID -->
	</select>

	<sql id="selectCrdnPayer">
        SELECT 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.CVLCPT_LINK_YN     <!-- 민원 연계 여부 -->
             , C.CVLCPT_LINK_TBL_NM <!-- 민원 연계 테이블 명 -->
             , C.CVLCPT_LINK_ID     <!-- 민원 연계 ID -->
             , C.CRDN_YMD           <!-- 단속 일자 -->
             , C.CRDN_TM            <!-- 단속 시각 -->
             , (CONCAT(C.CRDN_YMD, C.CRDN_TM))  AS CRDN_YMD_TM  <!-- 단속 일시 -->
             , C.VHRNO              <!-- 차량번호 -->
             , C.CRDN_STDG_NM       <!-- 단속 법정동 명 -->
             , C.CRDN_ROAD_NM       <!-- 단속 도로 명 -->
             , C.CRDN_PLC           <!-- 단속 장소 -->
             , C.VLTN_ID            <!-- 위반 ID -->
             , C.GPS_X              <!-- GPS X -->
             , C.GPS_Y              <!-- GPS Y -->
             , C.ATCH_FILE_CNT      <!-- 첨부 파일 수 -->
             , C.VIN                <!-- 차대번호 -->
             , C.VHCL_NM            <!-- 차량 명 -->
             , C.VHCL_COLR          <!-- 차량 색상 -->
             , C.VHCL_CPCT          <!-- 차량 승차정원 -->
             , C.FFNLG_CRDN_AMT     <!-- 과태료 단속 금액 -->
             , C.FFNLG_RDCRT        <!-- 과태료 감경율 -->
             , C.FFNLG_AMT          <!-- 과태료 금액 -->
             , C.ADVNTCE_BGNG_YMD   <!-- 사전통지 시작 일자 -->
             , C.ADVNTCE_DUDT_YMD   <!-- 사전통지 납기 일자 -->
             , C.ADVNTCE_AMT        <!-- 사전통지 금액 -->
             , C.OPNN_SBMSN_YN      <!-- 의견 제출 여부 -->
             , C.ETC_CN             <!-- 기타 내용 -->
             , C.CRDN_STTS_CD       <!-- 단속 상태 코드 -->
             , (GET_CODE_NM('FIM010', C.CRDN_STTS_CD)) AS CRDN_STTS_NM  <!-- 단속 상태 명 -->
             , C.CRDN_STTS_CHG_DT   <!-- 단속 상태 변경 일시 -->
             , C.BFR_CRDN_ID        <!-- 이전 단속 ID -->
             , C.DEL_YN             <!-- 삭제 여부 -->
             , C.REG_DT             <!-- 등록 일시 -->
             , C.RGTR               <!-- 등록자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM      <!-- 등록자 명 -->
             , C.MDFCN_DT           <!-- 수정 일시 -->
             , C.MDFR               <!-- 수정자 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM      <!-- 수정자 명 -->
             , C.DEL_DT             <!-- 삭제 일시 -->
             , C.DLTR               <!-- 삭제자 -->
             , C.DEL_RSN            <!-- 삭제 사유 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.DLTR) AS DLTR_NM      <!-- 삭제자 명 -->
             , CA.CRDN_SE_CD        <!-- 단속 구분 코드 -->
             , (GET_CODE_NM('FIM002', CA.CRDN_SE_CD)) AS CRDN_SE_NM <!-- 단속 구분 명 -->
             , CA.TEAM_ID           <!-- 조 ID -->
             , CA.DTL_CRDN_PLC      <!-- 상세 단속 장소 -->
             , CA.CRDN_SPAREA_CD    <!-- 단속 특별구역 코드 -->
             , (GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD)) AS CRDN_SPAREA_NM <!-- 단속 특별구역 명 -->
             , CA.CRDN_BGNG_TM      <!-- 단속 시작 시각 -->
             , CA.CRDN_END_TM       <!-- 단속 종료 시각 -->
             , CA.CRDN_SN           <!-- 단속 일련번호 -->
             , CA.MOSC_X            <!-- 모자이크 X -->
             , CA.MOSC_Y            <!-- 모자이크 Y -->
             , CA.TOWNG_YN          <!-- 견인 여부 -->
             , (GET_CODE_NM('FIM053', CA.TOWNG_YN)) AS TOWNG_NM <!-- 견인 여부 명 -->
             , CA.USE_FUEL_CD       <!-- 사용 연료 코드 -->
             , (GET_CODE_NM('LVS005', CA.USE_FUEL_CD)) AS USE_FUEL_NM   <!-- 사용 연료 명 -->
             , CA.FFNLG_CARMDL_CD   <!-- 과태료 차종 코드 -->
             , (GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD)) AS FFNLG_CARMDL_NM   <!-- 과태료 차종 명 -->
             , CA.PRK_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
             , (GET_CODE_NM('FIM034', CA.PRK_PSBLTY_RSLT_CD)) AS PRK_PSBLTY_RSLT_NM <!-- 주차 가능 결과 명 -->
             , CA.VLTN_NMTM         <!-- 위반 횟수 -->
             , CA.OVTM_YN           <!-- 시간초과 여부 -->
             , (GET_CODE_NM('CMN006', CA.OVTM_YN)) AS OVTM_NM   <!-- 시간초과 여부 명 -->
             , CA.OVTM_PRTTN_YN   <!-- 시간초과 분할 여부 -->
             , (GET_CODE_NM('CMN006', CA.OVTM_PRTTN_YN)) AS OVTM_PRTTN_NM   <!-- 시간초과 분할 여부 명 -->
             , V.VLTN_ARTCL         <!-- 위반 항목 -->
             , P.RTPYR_ID           <!-- 납부자 ID -->
             , P.RTPYR_INPT_SE_CD   <!-- 납부자 입력 구분 코드 -->
             , (GET_CODE_NM('FIM015', P.RTPYR_INPT_SE_CD)) AS RTPYR_INPT_SE_NM  <!-- 납부자 입력 구분 명 -->
             , P.RTPYR_SE_CD        <!-- 납부자 구분 코드 -->
             , (GET_CODE_NM('FIM011', P.RTPYR_SE_CD)) AS RTPYR_SE_NM    <!-- 납부자 구분 명 -->
             , P.RTPYR_NO           <!-- 납부자 번호 -->
             , P.RTPYR_NM           <!-- 납부자 명 -->
             , P.RTPYR_TELNO        <!-- 납부자 전화번호 -->
             , P.RTPYR_MBL_TELNO    <!-- 납부자 휴대 전화번호 -->
             , P.RTPYR_EML          <!-- 납부자 이메일 -->
             , P.RTPYR_STTS_CD      <!-- 납부자 상태 코드 -->
             , (GET_CODE_NM('FIM014', P.RTPYR_STTS_CD)) AS RTPYR_STTS_NM    <!-- 납부자 상태 명 -->
             , PA.ADDR_SN           <!-- 주소 일련번호 -->
             , PA.ADDR_SE_CD        <!-- 주소 구분 코드 -->
             , (GET_CODE_NM('FIM013', PA.ADDR_SE_CD)) AS ADDR_SE_NM <!-- 주소 구분 명 -->
             , PA.ZIP               <!-- 우편번호 -->
             , PA.ADDR              <!-- 주소 -->
             , PA.DTL_ADDR          <!-- 상세 주소 -->
             , PA.WHOL_ADDR         <!-- 전체 주소 -->
             , P.MDFCN_DT   AS P_MDFCN_DT   <!-- 수정 일시 -->
             , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = P.MDFR) AS P_MDFR_NM    <!-- 수정자 명 -->
             , CC.CVLCPT_LINK_ID    <!-- 민원 연계 ID -->
             , CC.CVLCPT_APLY_SE_CD <!-- 민원 신청 구분 코드 -->
             , CC.DSTRBNC_YN        <!-- 1면 방해 여부 -->
             , CC.CVLCPT_RCPT_YMD   <!-- 민원 접수 일자 -->
             , CC.CVLCPT_APLY_NO    <!-- 민원 신청 번호 -->
             , CC.CVLCPT_RCPT_NO    <!-- 민원 접수 번호 -->
             , CC.CVLCPT_LIST_NO    <!-- 민원 목록 번호 -->
             , CC.CVLCPT_APLCNT_NM  <!-- 민원 신청인 명 -->
             , CC.CVLCPT_APLY_DT    <!-- 민원 신청 일시 -->
             , CC.CVLCPT_APLY_TTL_NM <!-- 민원 신청 제목 명 -->
             , CC.CVLCPT_APLY_CN    <!-- 민원 신청 내용 -->
             , CC.CVLCPT_GIST       <!-- 민원 요지 -->
             , CC.CVLCPT_PRCS_PIC_NM <!-- 민원 처리 담당자 명 -->
             , CC.CVLCPT_PRCS_PRNMNT_DT <!-- 민원 처리 예정 일시 -->
             , CC.CVLCPT_PRCS_CD    <!-- 민원 처리 코드 -->
             , CC.CVLCPT_PRCS_SMRY  <!-- 민원 처리 요약 -->
             , CC.CVLCPT_PRCS_RSLT_CN   <!-- 민원 처리 결과 내용 -->
             , CC.CVLCPT_PRCS_CMPTN_DT  <!-- 민원 처리 완료 일시 -->
             , CC.CVLCPT_PRCS_PIC   <!-- 민원 처리 담당자 -->
             , L.LEVY_ID        <!-- 부과 ID -->
             , (CONCAT(L.FYR, '-', L.LEVY_NO))  AS GOJI_NO      <!-- 고지번호 -->
             , (L.LEVY_PCPTAX  + L.LEVY_ADAMT)  AS LEVY_AMT     <!-- 부과 금액 -->
             , (L.RCVMT_PCPTAX + L.RCVMT_ADAMT) AS RCVMT_AMT    <!-- 수납 금액 -->
             , (L.RDAMT_PCPTAX + L.RDAMT_ADAMT) AS RDAMT_AMT    <!-- 감액 금액 -->
             , L.LAST_AMT       <!-- 최종 금액 -->
          FROM TB_CRDN              C
         INNER JOIN TB_CRDN_ADI     CA  ON (C.CRDN_ID  = CA.CRDN_ID)
         INNER JOIN TB_VLTN         V   ON (C.VLTN_ID  = V.VLTN_ID)
    LEFT OUTER JOIN TB_PAYER        P   ON (C.RTPYR_ID = P.RTPYR_ID)
    LEFT OUTER JOIN TB_PAYER_ADDR   PA  ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN)
    LEFT OUTER JOIN TB_CRDN_CVLCPT  CC  ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID AND CC.DEL_YN = 'N')    <!-- 단속 민원 대장 대장 -->
    LEFT OUTER JOIN TB_LEVY         L   ON (C.CRDN_ID  = L.CRDN_ID AND L.DEL_YN = 'N')
	</sql>

	<select id="selectCrdnPayerInfo" parameterType="map" resultType="dataobject">/* 개별총정보 조회(TotalInfoMapper.selectCrdnPayerInfo) */
        <include refid="selectCrdnPayer" />
         WHERE C.CRDN_ID    = #{crdnId}     <!-- 단속 ID -->
	</select>

    <update id="updateCrdnAtchFileCnt" parameterType="map">/* 단속 첨부 파일갯수 수정 (TotalInfoMapper.updateCrdnAtchFileCnt) */
        UPDATE TB_CRDN
           SET ATCH_FILE_CNT= #{crdn.atchFileCnt}   <!-- 첨부 파일 수 -->
             , MDFCN_DT     = #{crdn.lastModified}  <!-- 수정 일시 -->
             , MDFR         = #{crdn.modifiedBy}    <!-- 수정자 -->
         WHERE CRDN_ID      = #{crdn.crdnId}        <!-- 단속 ID -->
           AND DEL_YN       = 'N'
    </update>

</mapper>