<?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.cvlc.dao.CrdnCvlcptMapper">

<insert id="insertCvlcpt" parameterType="cokr.xit.fims.cvlc.CrdnCvlcpt">/* 단속 민원 대장 등록(crdnCvlcptMapper.insertCvlcpt) */
INSERT INTO TB_CRDN_CVLCPT (
       CVLCPT_LINK_ID        <!-- 민원 연계 ID -->
     , DSTRBNC_YN            <!-- 방해 여부 -->
     , CVLCPT_RCPT_YMD       <!-- 민원 접수 일자 -->
     , CVLCPT_APLY_SE_CD     <!-- 민원 신청 구분 코드 -->
     , CVLCPT_APLY_NO        <!-- 민원 신청 번호 -->
     , CVLCPT_RCPT_NO        <!-- 민원 접수 번호 -->
     , CVLCPT_LIST_NO        <!-- 민원 목록 번호 -->
     , CVLCPT_APLCNT_NM      <!-- 민원 신청인 명 -->
     , CVLCPT_APLY_DT        <!-- 민원 신청 일시 -->
     , CVLCPT_APLY_TTL_NM    <!-- 민원 신청 제목 명 -->
     , CVLCPT_APLY_CN        <!-- 민원 신청 내용 -->
     , CVLCPT_GIST           <!-- 민원 요지 -->
     , CVLCPT_PRCS_PIC_NM    <!-- 민원 처리 담당자 명 -->
     , CVLCPT_PRCS_PRNMNT_DT <!-- 민원 처리 예정 일시 -->
     , CVLCPT_PRCS_CD        <!-- 민원 처리 코드 -->
     , CVLCPT_PRCS_SMRY      <!-- 민원 처리 요약 -->
     , CVLCPT_PRCS_RSLT_CN   <!-- 민원 처리 결과 내용 -->
     , CVLCPT_PRCS_CMPTN_DT  <!-- 민원 처리 완료 일시 -->
     , CVLCPT_PRCS_PIC       <!-- 민원 처리 담당자 -->
     , CVLCPT_TRSM_DT        <!-- 민원 전송 일시 -->
     , CVLCPT_TRSM_CD        <!-- 민원 전송 코드 -->
     , CVLCPT_TRSM_MSG       <!-- 민원 전송 메시지 -->
     , DEL_YN                <!-- 삭제 여부 -->
     , REG_DT                <!-- 등록 일시 -->
     , RGTR                  <!-- 등록자 -->
     , MDFCN_DT              <!-- 수정 일시 -->
     , MDFR                  <!-- 수정자 -->
     , DEL_DT                <!-- 삭제 일시 -->
     , DLTR                  <!-- 삭제자 -->
     , DEL_RSN               <!-- 삭제 사유 -->
) VALUES (
       #{cvlcptLinkId}       <!-- 민원 연계 ID -->
     , #{dstrbncYn}          <!-- 방해 여부 -->
     , #{cvlcptRcptYmd}      <!-- 민원 접수 일자 -->
     , #{cvlcptAplySeCd}     <!-- 민원 신청 구분 코드 -->
     , #{cvlcptAplyNo}       <!-- 민원 신청 번호 -->
     , #{cvlcptRcptNo}       <!-- 민원 접수 번호 -->
     , #{cvlcptListNo}       <!-- 민원 목록 번호 -->
     , #{cvlcptAplcntNm}     <!-- 민원 신청인 명 -->
     , #{cvlcptAplyDt}       <!-- 민원 신청 일시 -->
     , #{cvlcptAplyTtlNm}    <!-- 민원 신청 제목 명 -->
     , #{cvlcptAplyCn}       <!-- 민원 신청 내용 -->
     , #{cvlcptGist}         <!-- 민원 요지 -->
     , #{cvlcptPrcsPicNm}    <!-- 민원 처리 담당자 명 -->
     , #{cvlcptPrcsPrnmntDt} <!-- 민원 처리 예정 일시 -->
     , #{cvlcptPrcsCd}       <!-- 민원 처리 코드 -->
     , #{cvlcptPrcsSmry}     <!-- 민원 처리 요약 -->
     , #{cvlcptPrcsRsltCn}   <!-- 민원 처리 결과 내용 -->
     , #{cvlcptPrcsCmptnDt}  <!-- 민원 처리 완료 일시 -->
     , #{cvlcptPrcsPic}      <!-- 민원 처리 담당자 -->
     , #{cvlcptTrsmDt}       <!-- 민원 전송 일시 -->
     , #{cvlcptTrsmCd}       <!-- 민원 전송 코드 -->
     , #{cvlcptTrsmMsg}      <!-- 민원 전송 메시지 -->
     , 'N'                   <!-- 삭제 여부 -->
     , #{createdAt}          <!-- 등록 일시 -->
     , #{createdBy}          <!-- 등록자 -->
     , #{lastModified}       <!-- 수정 일시 -->
     , #{modifiedBy}         <!-- 수정자 -->
     , #{removedAt}          <!-- 삭제 일시 -->
     , #{removedBy}          <!-- 삭제자 -->
     , #{delRsn}             <!-- 삭제 사유 -->
)</insert>

<select id="selectCivilComplaintList" parameterType="map" resultType="dataobject">
/* 민원자료 목록 조회(crdnCvlcptMapper.selectCivilComplaintList) */
<include refid="utility.paging-prefix"/>
SELECT C.CRDN_ID               <!-- 단속 ID -->
     , C.SGG_CD                <!-- 시군구 코드 -->
     , C.TASK_SE_CD            <!-- 업무 구분 코드 -->
     , C.CRDN_REG_SE_CD        <!-- 단속 등록 구분 코드 -->
     , GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) AS CRDN_REG_SE_NM
     , C.CRDN_INPT_SE_CD       <!-- 단속 입력 구분 코드 -->
     , C.CVLCPT_LINK_TBL_NM    <!-- 민원 연계 테이블 명 -->
     , C.RTPYR_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 -->
     , (SELECT VLTN_ARTCL
          FROM TB_VLTN
         WHERE VLTN_ID = C.VLTN_ID) AS VLTN_ARTCL     <!-- 위반내용 -->
     , C.GPS_X                 <!-- GPS X -->
     , C.GPS_Y                 <!-- GPS Y -->
     , C.ATCH_FILE_CNT         <!-- 첨부 파일 수 -->
     , C.VIN                   <!-- 차대번호 -->
     , C.VHCL_NM               <!-- 차량 명 -->
     , C.VHCL_COLR             <!-- 차량 색상 -->
     , 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                <!-- 기타 내용 -->
     , L.LEVY_ID               <!-- 부과 ID -->
     , C.CRDN_STTS_CD          <!-- 단속 상태 코드 -->
     , C.CRDN_STTS_CHG_DT      <!-- 단속 상태 변경 일시 -->
     , C.ADTN_AMT              <!-- 가산 금액 -->
     , C.MINUS_AMT             <!-- 감경 금액 -->
     , C.RCVMT_AMT             <!-- 수납 금액 -->
     , C.BFR_CRDN_ID           <!-- 이전 단속 ID -->
     , CA.CRDN_SE_CD           <!-- 단속 구분 코드 -->
     , CA.DTL_CRDN_PLC         <!-- 상세 단속 장소 -->
     , CA.TEAM_ID              <!-- 조 ID -->
     , CA.CRDN_SPAREA_CD       <!-- 단속 특별구역 코드 -->
     , CA.CRDN_BGNG_TM         <!-- 단속 시작 시각 -->
     , CA.CRDN_END_TM          <!-- 단속 종료 시간 -->
     , CA.CRDN_SN              <!-- 단속 일련번호 -->
     , CA.MOSC_X               <!-- 모자이크 X -->
     , CA.MOSC_Y               <!-- 모자이크 Y -->
     , CA.TOWNG_YN             <!-- 견인 여부 -->
     , CA.USE_FUEL_CD          <!-- 사용 연료 코드 -->
     , CA.FFNLG_CARMDL_CD      <!-- 과태료 차종 코드 -->
     , CA.PRK_PSBLTY_RSLT_CD   <!-- 주차 가능 결과 코드 -->
     , CA.VLTN_NMTM            <!-- 위반 횟수 -->
     , CA.OVTM_YN               <!-- 시간외 여부 -->
	 , CC.CVLCPT_LINK_ID        <!-- 민원 연계 ID -->
     , CC.DSTRBNC_YN            <!-- 방해 여부 -->
     , CC.CVLCPT_RCPT_YMD       <!-- 민원 접수 일자 -->
     , CC.CVLCPT_APLY_SE_CD     <!-- 민원 신청 구분 코드 -->
     , CC.CVLCPT_APLY_NO        <!-- 민원 신청 번호 -->
     , CC.CVLCPT_RCPT_NO        <!-- 민원 접수 번호 -->
     , CC.CVLCPT_LIST_NO        <!-- 민원 목록 번호 -->
     , CC.CVLCPT_APLCNT_NM      <!-- 민원 신청인 명 -->
     , CC.CVLCPT_APLY_DT        <!-- 민원 신청 일시 -->
     , CC.CVLCPT_PRCS_PIC_NM    <!-- 민원 처리 담당자 명 -->
     , (SELECT TELNO
          FROM TB_USER
         WHERE USER_ID = CC.CVLCPT_PRCS_PIC
        ) AS CVLCPT_PRCS_PIC_TELNO                    <!-- 민원 처리 담당자 전화번호 -->
     , CC.CVLCPT_PRCS_PRNMNT_DT <!-- 민원 처리 예정 일시 -->
     , CC.CVLCPT_PRCS_CD        <!-- 민원 처리 코드 -->
     , CC.CVLCPT_PRCS_SMRY      <!-- 민원 처리 요약 -->
     , CC.CVLCPT_PRCS_CMPTN_DT  <!-- 민원 처리 완료 일시 -->
     , CC.CVLCPT_PRCS_PIC       <!-- 민원 처리 담당자 -->
     , CC.CVLCPT_TRSM_DT        <!-- 민원 전송 일시 -->
     , CC.CVLCPT_TRSM_CD        <!-- 민원 전송 코드 -->
     , LE.LEVY_EXCL_RSN_CD      <!-- 부과 제외 사유 코드 -->
     , GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) AS LEVY_EXCL_RSN_NM
     , LE.LEVY_EXCL_YMD         <!-- 부과 제외 일자 -->
     , LE.ETC_CN AS LEVY_EXCL_ETC_CN <!-- 부과 제외 기타 내용 -->
     , C.DEL_YN
     , C.RGTR
	 , C.REG_DT
     , C.MDFR
     , C.MDFCN_DT
     , C.DLTR
     , C.DEL_DT
FROM TB_CRDN C
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
LEFT OUTER JOIN TB_TEAM T ON (CA.TEAM_ID = T.TEAM_ID)
INNER JOIN TB_CRDN_CVLCPT CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID)
LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N')
LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID)
WHERE C.DEL_YN = 'N'
  AND C.SGG_CD = #{sggCd}
  AND C.TASK_SE_CD = #{taskSeCd}
<if test="schCvlcptRcptYmdFrom != null or schCvlcptRcptYmdTo != null">
	<if test="schCvlcptRcptYmdFrom != null">AND CC.CVLCPT_RCPT_YMD <![CDATA[ >= ]]> #{schCvlcptRcptYmdFrom} </if>
	<if test="schCvlcptRcptYmdTo != null">AND CC.CVLCPT_RCPT_YMD <![CDATA[ <= ]]> #{schCvlcptRcptYmdTo} </if>
</if>
<if test="cvlcptPrcsPicNm != null">
   AND CC.CVLCPT_PRCS_PIC_NM = #{cvlcptPrcsPicNm}
</if>
<if test="schCvlcptPrcsPrnmntDtFrom != null or schCvlcptPrcsPrnmntDtTo != null">
	<if test="schCvlcptPrcsPrnmntDtFrom != null">AND CC.CVLCPT_PRCS_PRNMNT_DT <![CDATA[ >= ]]> #{schCvlcptPrcsPrnmntDtFrom} </if>
	<if test="schCvlcptPrcsPrnmntDtTo != null">AND CC.CVLCPT_PRCS_PRNMNT_DT <![CDATA[ <= ]]> #{schCvlcptPrcsPrnmntDtTo} </if>
</if>
<if test="schRegDateFrom != null or schRegDateTo != null">
	<if test="schRegDateOpt == 'regDt'">
		<if test="schRegDateFrom != null">AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} </if>
		<if test="schRegDateTo != null">AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} </if>
	</if>
	<if test="schRegDateOpt == 'mdfcnDt'">
		<if test="schRegDateFrom != null">AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} </if>
		<if test="schRegDateTo != null">AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} </if>
	</if>
</if>
<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 == 'crdnRegSeCd'">C.CRDN_REG_SE_CD</when>
				<when test="by == 'cvlcptAplcntNm'">CC.CVLCPT_APLCNT_NM</when>
				<when test="by == 'cvlcptPrcsPicNm'">CC.CVLCPT_PRCS_PIC_NM</when>
				<when test="by == 'cvlcptPrcsPicTelno'">CC.CVLCPT_PRCS_PIC_TELNO</when>
				<when test="by == 'cvlcptRcptYmd'">CC.CVLCPT_RCPT_YMD</when>
				<when test="by == 'cvlcptPrcsPrnmntDt'">CC.CVLCPT_PRCS_PRNMNT_DT</when>
				<when test="by == 'crdnYmd'">C.CRDN_YMD</when>
				<when test="by == 'atchFileCnt'">C.ATCH_FILE_CNT</when>
				<when test="by == 'cvlcptRcptNo'">CC.CVLCPT_RCPT_NO</when>
				<when test="by == 'cvlcptListNo'">CC.CVLCPT_LIST_NO</when>
				<when test="by == 'vhrno'">C.VHRNO</when>
				<when test="by == 'levyExclRsnCd'">LE.LEVY_EXCL_RSN_CD</when>
				<when test="by == 'etcCn'">C.ETC_CN</when>
			</choose>
			<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
		</when>
		<otherwise>
			<if test="by == 'vltnArtcl'">
AND (SELECT VLTN_ARTCL FROM TB_VLTN WHERE VLTN_ID = C.VLTN_ID) LIKE CONCAT('%', #{term}, '%')
			</if>
		</otherwise>
	</choose>
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix"/>
</select>

<select id="selectCivilComplaintReceiptDataList" parameterType="map" resultType="dataobject">
/* 민원접수자료 목록 조회(crdnCvlcptMapper.selectCivilComplaintReceiptDataList) */
<include refid="utility.paging-prefix"/>
SELECT C.CRDN_ID                                      <!-- 단속 ID -->
     , CC.CVLCPT_LINK_ID
     , C.SGG_CD                                       <!-- 시군구 코드 -->
     , C.TASK_SE_CD                                   <!-- 업무 구분 코드 -->
     , C.CRDN_REG_SE_CD                               <!-- 단속 등록 구분 코드 -->
     , GET_CODE_NM('FIM026', C.CRDN_REG_SE_CD) AS CRDN_REG_SE_NM
     , CC.CVLCPT_APLCNT_NM                            <!-- 민원 신청인 명 -->
     , CC.CVLCPT_PRCS_PIC_NM                          <!-- 민원 처리 담당자 명 -->
     , (SELECT TELNO
          FROM TB_USER
         WHERE USER_ID = CC.CVLCPT_PRCS_PIC
        ) AS CVLCPT_PRCS_PIC_TELNO                    <!-- 민원 처리 담당자 전화번호 -->
     , CC.CVLCPT_RCPT_YMD                             <!-- 민원 접수 일자 -->
     , CC.CVLCPT_PRCS_PRNMNT_DT                       <!-- 민원 처리 예정 일시 -->
     , CONCAT(C.CRDN_YMD,'',C.CRDN_TM) AS CRDN_YMD_TM <!-- 단속 일시 -->
     , C.ATCH_FILE_CNT                                <!-- 첨부 파일 수 -->
     , (SELECT VLTN_ARTCL
          FROM TB_VLTN
         WHERE VLTN_ID = C.VLTN_ID) AS VLTN_ARTCL     <!-- 위반내용 -->
     , CC.CVLCPT_RCPT_NO                              <!-- 민원 접수 번호 -->
     , CC.CVLCPT_LIST_NO                              <!-- 민원 목록 번호 -->
     , C.VHRNO                                        <!-- 차량번호 -->
     , C.CRDN_PLC
  FROM TB_CRDN C
  INNER JOIN TB_CRDN_CVLCPT CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID)
 WHERE C.DEL_YN = 'N'
   AND C.SGG_CD = #{sggCd}
   AND C.TASK_SE_CD = #{taskSeCd}
   AND C.CRDN_STTS_CD = '01'
<if test="schCvlcptRcptYmdFrom != null or schCvlcptRcptYmdTo != null">
	<if test="schCvlcptRcptYmdFrom != null">AND CC.CVLCPT_RCPT_YMD <![CDATA[ >= ]]> #{schCvlcptRcptYmdFrom} </if>
	<if test="schCvlcptRcptYmdTo != null">AND CC.CVLCPT_RCPT_YMD <![CDATA[ <= ]]> #{schCvlcptRcptYmdTo} </if>
</if>
<if test="cvlcptPrcsPicNm != null">
   AND CC.CVLCPT_PRCS_PIC_NM = #{cvlcptPrcsPicNm}
</if>
<if test="schCvlcptPrcsPrnmntDtFrom != null or schCvlcptPrcsPrnmntDtTo != null">
	<if test="schCvlcptPrcsPrnmntDtFrom != null">AND CC.CVLCPT_PRCS_PRNMNT_DT <![CDATA[ >= ]]> #{schCvlcptPrcsPrnmntDtFrom} </if>
	<if test="schCvlcptPrcsPrnmntDtTo != null">AND CC.CVLCPT_PRCS_PRNMNT_DT <![CDATA[ <= ]]> #{schCvlcptPrcsPrnmntDtTo} </if>
</if>
<if test="schRegDateFrom != null or schRegDateTo != null">
	<if test="schRegDateOpt == 'regDt'">
		<if test="schRegDateFrom != null">AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} </if>
		<if test="schRegDateTo != null">AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} </if>
	</if>
	<if test="schRegDateOpt == 'mdfcnDt'">
		<if test="schRegDateFrom != null">AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} </if>
		<if test="schRegDateTo != null">AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} </if>
	</if>
</if>
<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 == 'crdnRegSeCd'">C.CRDN_REG_SE_CD</when>
				<when test="by == 'cvlcptAplcntNm'">CC.CVLCPT_APLCNT_NM</when>
				<when test="by == 'cvlcptPrcsPicNm'">CC.CVLCPT_PRCS_PIC_NM</when>
				<when test="by == 'cvlcptPrcsPicTelno'">CC.CVLCPT_PRCS_PIC_TELNO</when>
				<when test="by == 'cvlcptRcptYmd'">CC.CVLCPT_RCPT_YMD</when>
				<when test="by == 'cvlcptPrcsPrnmntDt'">CC.CVLCPT_PRCS_PRNMNT_DT</when>
				<when test="by == 'crdnYmd'">C.CRDN_YMD</when>
				<when test="by == 'atchFileCnt'">C.ATCH_FILE_CNT</when>
				<when test="by == 'cvlcptRcptNo'">CC.CVLCPT_RCPT_NO</when>
				<when test="by == 'cvlcptListNo'">CC.CVLCPT_LIST_NO</when>
				<when test="by == 'vhrno'">C.VHRNO</when>
			</choose>
			<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
		</when>
		<otherwise>
			<if test="by == 'vltnArtcl'">
AND (SELECT VLTN_ARTCL FROM TB_VLTN WHERE VLTN_ID = C.VLTN_ID) LIKE CONCAT('%', #{term}, '%')
			</if>
		</otherwise>
	</choose>
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix"/>
</select>

<select id="selectCivilComplaintOriginalInfo" parameterType="map" resultType="dataobject">
/* 민원내역 원본 보기(crdnCvlcptMapper.selectCivilComplaintOriginalInfo) */
SELECT C.CRDN_ID                <!-- 단속 ID -->
     , CC.CVLCPT_RCPT_NO        <!-- 민원 접수 번호 -->
     , CC.CVLCPT_LIST_NO        <!-- 민원 목록 번호 -->
     , CC.CVLCPT_APLCNT_NM      <!-- 민원 신청인 명 -->
     , CC.CVLCPT_RCPT_YMD       <!-- 민원 접수 일자 -->
     , CC.CVLCPT_PRCS_PRNMNT_DT <!-- 민원 처리 예정 일시 -->
     , CC.CVLCPT_APLY_CN        <!-- 민원 신청 내용 -->
     , CC.CVLCPT_APLY_SE_CD     <!-- 민원 신청 구분코드 -->
     , C.CVLCPT_LINK_TBL_NM     <!-- 민원 연계 테이블 명 -->
     , C.CVLCPT_LINK_ID         <!-- 민원 연계 ID -->
  FROM TB_CRDN C
  INNER JOIN TB_CRDN_CVLCPT CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID)
 WHERE C.DEL_YN = 'N' AND CC.DEL_YN = 'N'
   AND C.CRDN_ID = #{crdnId}
</select>

<select id="selectCivilComplaintReceiptInitialDataInfo" parameterType="map" resultType="dataobject">
/* 민원접수 초기자료 상세조회(crdnCvlcptMapper.selectCivilComplaintReceiptInitialDataInfo) */
SELECT C.CRDN_ID                <!-- 단속 ID -->
     , C.SGG_CD                 <!-- 시군구 코드 -->
     , C.TASK_SE_CD             <!-- 업무 구분 코드 -->
     , C.CRDN_REG_SE_CD         <!-- 단속 등록 구분 코드 -->
     , C.CRDN_YMD               <!-- 단속 일자 -->
     , C.CRDN_TM                <!-- 단속 시각 -->
     , (SELECT VLTN_CD FROM TB_VLTN WHERE VLTN_ID = C.VLTN_ID) AS VLTN_CD
     , C.CRDN_PLC               <!-- 단속 장소 -->
     , C.CRDN_STDG_NM           <!-- 단속 법정동 -->
     , C.VHRNO                  <!-- 차량번호 -->
     , C.ETC_CN                 <!-- 특기사항 -->
     , C.VHCL_NM                <!-- 차량명 -->
     , C.VHCL_COLR              <!-- 차량색상 -->
     , C.VIN                    <!-- 차대번호 -->
     , C.CVLCPT_LINK_TBL_NM     <!-- 민원 연계 테이블 명 -->
     , C.CVLCPT_LINK_ID         <!-- 민원 연계 아이디 -->
     , CA.CRDN_SE_CD            <!-- 단속 구분 코드 -->
     , CA.DTL_CRDN_PLC          <!-- 상세 단속 장소 -->
     , CA.CRDN_SPAREA_CD        <!-- 단속 특별구역 코드 -->
     , CA.PRK_PSBLTY_RSLT_CD    <!-- 장애차량확인 -->
     , CA.TOWNG_YN              <!-- 견인 여부 -->
     , CA.USE_FUEL_CD           <!-- 사용 연료 코드 -->
     , CC.CVLCPT_APLCNT_NM      <!-- 민원 신청인 명 -->
     , CC.CVLCPT_PRCS_PIC_NM    <!-- 민원 처리 담당자명 -->
     , CC.CVLCPT_APLY_CN        <!-- 민원 신청 내용 -->
     , CC.CVLCPT_RCPT_YMD       <!-- 민원 접수 일자 -->
     , CC.CVLCPT_PRCS_PRNMNT_DT <!-- 민원 처리 예정 일시 -->
     , CC.DSTRBNC_YN            <!-- 방해 여부 -->
     , P.RTPYR_ID               <!-- 납부자 ID -->
     , P.RTPYR_NM               <!-- 납부자 명 -->
     , P.RTPYR_SE_CD            <!-- 납부자 구분 코드 -->
     , P.RTPYR_NO               <!-- 납부자 주민번호 -->
     , PA.ADDR_SN               <!-- 주소 일련번호 -->
     , PA.ZIP                   <!-- 우편번호 -->
     , PA.ADDR                  <!-- 주소 -->
     , PA.DTL_ADDR              <!-- 상세 주소 -->
  FROM TB_CRDN C
  INNER JOIN TB_CRDN_ADI        CA ON (C.CRDN_ID = CA.CRDN_ID)
  INNER JOIN TB_CRDN_CVLCPT     CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_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)
 WHERE C.DEL_YN = 'N'
   AND C.CRDN_ID = #{crdnId}
</select>

<update id="updateCvlcptProcessSection" parameterType="map">
    /* 초기자료 민원 처리구분 수정(crdnCvlcptMapper.updateCvlcptProcessSection) */
    UPDATE TB_CRDN_CVLCPT
       SET MDFCN_DT             = <include refid="utility.now" /> /* 수정일시 */
         , MDFR                 = #{currentUser.id}               /* 수정자 */
         , CVLCPT_PRCS_PIC      = #{currentUser.id}               /* 민원 처리 담당자 */
         , CVLCPT_PRCS_PIC_NM   = (SELECT USER_NM FROM TB_USER WHERE USER_ID=#{currentUser.id})
         , CVLCPT_PRCS_CMPTN_DT = <include refid="utility.now" />
         , CVLCPT_PRCS_CD       = #{crdnCvlcpt.cvlcptPrcsCd}      /* 민원처리코드 */
         , CVLCPT_TRSM_CD       = #{crdnCvlcpt.cvlcptTrsmCd}      /* 민원전송코드 */
         , CVLCPT_PRCS_SMRY     = #{crdnCvlcpt.cvlcptPrcsSmry}    /* 민원처리요약 */
         <if test='editDataExist == "Y"'>
         , DSTRBNC_YN           = NULLIF(#{crdnCvlcpt.dstrbncYn},'N') /* 방해 여부 */
         </if>
     WHERE CVLCPT_LINK_ID = #{crdnCvlcpt.cvlcptLinkId}            /* 연계 ID */
</update>

<update id="updateCvlcptProcessSectionForSendBack" parameterType="cokr.xit.fims.cvlc.CrdnCvlcpt">
    /* 반송 민원 처리구분 수정(crdnCvlcptMapper.updateCvlcptProcessSectionForSendBack) */
    UPDATE TB_CRDN_CVLCPT
       SET MDFCN_DT             = <include refid="utility.now" /> /* 수정일시 */
         , MDFR                 = #{modifiedBy}                   /* 수정자 */
         , CVLCPT_PRCS_PIC      = #{modifiedBy}                   /* 민원 처리 담당자 */
         , CVLCPT_PRCS_PIC_NM   = (SELECT USER_NM FROM TB_USER WHERE USER_ID=#{modifiedBy})
         , CVLCPT_PRCS_CMPTN_DT = <include refid="utility.now" />
         , CVLCPT_PRCS_CD       = '01'                            /* 민원처리코드 */
         , CVLCPT_TRSM_CD       = '04'                            /* 민원전송코드 */
         , CVLCPT_PRCS_SMRY     = ''                              /* 민원처리요약 */
         , CVLCPT_PRCS_RSLT_CN  = ''                              /* 민원처리결과내용 */
     WHERE CVLCPT_LINK_ID = #{cvlcptLinkId}                       /* 연계 ID */
</update>


<update id="initCvlcptPrcsRsltCn" parameterType="cokr.xit.fims.cvlc.CrdnCvlcpt">
/* 단속민원 대장 민원처리결과내용 초기화(crdnCvlcptMapper.initCvlcptPrcsRsltCn) */
	UPDATE TB_CRDN_CVLCPT
       SET CVLCPT_PRCS_SMRY         = NULL                                                           /* 민원 처리 요약 */
         , CVLCPT_PRCS_RSLT_CN      = NULL                                                           /* 민원 처리 결과 내용 */
         , MDFCN_DT                 = <include refid="utility.now" />                                /* 수정 일시 */
         , MDFR                     = #{modifiedBy}                                                  /* 수정자 */
     WHERE CVLCPT_LINK_ID           = #{cvlcptLinkId}                                                /* 민원 연계 ID */
       AND DEL_YN                   = 'N'
</update>

<select id="selectCivilComplaintAnswerTargetDataList" parameterType="map" resultType="dataobject">
/* 민원답변대상자료 목록 조회(crdnCvlcptMapper.selectCivilComplaintAnswerTargetDataList) */
<include refid="utility.paging-prefix"/>
SELECT C.CRDN_ID                                      <!-- 단속 ID -->
     , C.SGG_CD                                       <!-- 시군구 코드 -->
     , C.TASK_SE_CD                                   <!-- 업무 구분 코드 -->
     , C.CRDN_REG_SE_CD                               <!-- 단속 등록 구분 코드 -->
     , (SELECT VLTN_ARTCL
          FROM TB_VLTN
         WHERE VLTN_ID = C.VLTN_ID) AS VLTN_ARTCL     <!-- 위반내용 -->
     , CC.CVLCPT_APLCNT_NM                            <!-- 민원 신청인 명 -->
     , CC.CVLCPT_PRCS_PIC_NM                          <!-- 민원 처리 담당자 명 -->
     , (SELECT TELNO
          FROM TB_USER
         WHERE USER_ID = CC.CVLCPT_PRCS_PIC
       ) AS CVLCPT_PRCS_PIC_TELNO                     <!-- 민원 처리 담당자 전화번호 -->
     , CC.CVLCPT_RCPT_YMD                             <!-- 민원 접수 일자 -->
     , CC.CVLCPT_PRCS_PRNMNT_DT                       <!-- 민원 처리 예정 일시 -->
     , CONCAT(C.CRDN_YMD,'',C.CRDN_TM) AS CRDN_YMD_TM <!-- 단속 일시 -->
     , CC.CVLCPT_RCPT_NO                              <!-- 민원 접수 번호 -->
     , CC.CVLCPT_LIST_NO                              <!-- 민원 목록 번호 -->
     , C.VHRNO                                        <!-- 차량번호 -->
     , LE.LEVY_EXCL_RSN_CD                            <!-- 부과 제외 사유 코드 -->
     , GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) AS LEVY_EXCL_RSN_NM
     , C.ETC_CN                                       <!-- 기타 내용 -->
     , (CASE
        WHEN C.CRDN_ID IN (SELECT DISTINCT(A.BFR_CRDN_ID) FROM TB_CRDN A WHERE A.DEL_YN = 'N' AND A.CRDN_REG_SE_CD = '04')
        THEN 'Y'
        ELSE 'N'
        END) AS COPY_EXIST_YN                         <!-- 복사 자료 존재 여부 -->
     , CC.CVLCPT_PRCS_CD                              <!-- 처리 구분 코드 -->
  FROM TB_CRDN C
  INNER JOIN TB_CRDN_CVLCPT CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID)
  LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N')
 WHERE C.DEL_YN = 'N'
   AND C.SGG_CD = #{sggCd}
   AND C.TASK_SE_CD = #{taskSeCd}
   AND C.CRDN_STTS_CD IN ('21','81','83')
   AND C.CRDN_REG_SE_CD = '02'
   AND CC.CVLCPT_PRCS_CD IN ('02','03','04')
   AND CC.CVLCPT_TRSM_CD = '01'
<if test="schCvlcptRcptYmdFrom != null or schCvlcptRcptYmdTo != null">
	<if test="schCvlcptRcptYmdFrom != null">AND CC.CVLCPT_RCPT_YMD <![CDATA[ >= ]]> #{schCvlcptRcptYmdFrom} </if>
	<if test="schCvlcptRcptYmdTo != null">AND CC.CVLCPT_RCPT_YMD <![CDATA[ <= ]]> #{schCvlcptRcptYmdTo} </if>
</if>
<if test="cvlcptPrcsCd != null">AND CC.CVLCPT_PRCS_CD = #{cvlcptPrcsCd}</if>
<if test="schCvlcptPrcsPrnmntDtFrom != null or schCvlcptPrcsPrnmntDtTo != null">
	<if test="schCvlcptPrcsPrnmntDtFrom != null">AND CC.CVLCPT_PRCS_PRNMNT_DT <![CDATA[ >= ]]> #{schCvlcptPrcsPrnmntDtFrom} </if>
	<if test="schCvlcptPrcsPrnmntDtTo != null">AND CC.CVLCPT_PRCS_PRNMNT_DT <![CDATA[ <= ]]> #{schCvlcptPrcsPrnmntDtTo} </if>
</if>
<if test="schRegDateFrom != null or schRegDateTo != null">
	<if test="schRegDateOpt == 'regDt'">
		<if test="schRegDateFrom != null">AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} </if>
		<if test="schRegDateTo != null">AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} </if>
	</if>
	<if test="schRegDateOpt == 'mdfcnDt'">
		<if test="schRegDateFrom != null">AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} </if>
		<if test="schRegDateTo != null">AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} </if>
	</if>
</if>
<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 == 'crdnRegSeCd'">C.CRDN_REG_SE_CD</when>
				<when test="by == 'cvlcptAplcntNm'">CC.CVLCPT_APLCNT_NM</when>
				<when test="by == 'cvlcptPrcsPicNm'">CC.CVLCPT_PRCS_PIC_NM</when>
				<when test="by == 'cvlcptPrcsPicTelno'">CC.CVLCPT_PRCS_PIC_TELNO</when>
				<when test="by == 'cvlcptRcptYmd'">CC.CVLCPT_RCPT_YMD</when>
				<when test="by == 'cvlcptPrcsPrnmntDt'">CC.CVLCPT_PRCS_PRNMNT_DT</when>
				<when test="by == 'crdnYmd'">C.CRDN_YMD</when>
				<when test="by == 'cvlcptRcptNo'">CC.CVLCPT_RCPT_NO</when>
				<when test="by == 'cvlcptListNo'">CC.CVLCPT_LIST_NO</when>
				<when test="by == 'vhrno'">C.VHRNO</when>
				<when test="by == 'levyExclRsnCd'">LE.LEVY_EXCL_RSN_CD</when>
				<when test="by == 'etcCn'">C.ETC_CN</when>
			</choose>
			<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
		</when>
		<otherwise>
			<if test="by == 'vltnArtcl'">
AND (SELECT VLTN_ARTCL FROM TB_VLTN WHERE VLTN_ID = C.VLTN_ID) LIKE CONCAT('%', #{term}, '%')
			</if>
		</otherwise>
	</choose>
</if>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix"/>
</select>


<select id="selectAnswerPreview" parameterType="string" resultType="dataobject">
/* 민원답변 미리보기(crdnCvlcptMapper.selectAnswerPreview) */
SELECT C.CRDN_ID                <!-- 단속 ID -->
     , CC.CVLCPT_LINK_ID        <!-- 민원 연계 ID -->
     , CC.CVLCPT_APLY_CN        <!-- 민원 신청 내용 -->
     , CC.CVLCPT_PRCS_RSLT_CN   <!-- 민원 처리 결과 내용 -->
  FROM TB_CRDN C
  INNER JOIN TB_CRDN_CVLCPT CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID)
 WHERE C.DEL_YN = 'N'
   AND C.CRDN_ID = #{crdnId}
</select>

<update id="updateAnswerContent" parameterType="cokr.xit.fims.cvlc.CrdnCvlcpt">
/* 답변 내용 변경(crdnCvlcptMapper.updateAnswerContent) */
UPDATE TB_CRDN_CVLCPT
   SET CVLCPT_PRCS_RSLT_CN  = #{cvlcptPrcsRsltCn}
     , MDFCN_DT             = <include refid="utility.now" /> /* 수정일시 */
     , MDFR                 = #{modifiedBy}                   /* 수정자 */
 WHERE CVLCPT_LINK_ID = #{cvlcptLinkId}
</update>

<select id="selectAnswerTargetList" parameterType="list" resultType="dataobject">
/* 민원답변대상 정보 목록 조회(crdnCvlcptMapper.selectAnswerTargetList) */
SELECT C.CRDN_ID                 <!-- 단속 ID -->
     , C.CRDN_STTS_CD            <!-- 단속 상태 코드 -->
     , C.CRDN_STTS_CHG_DT        <!-- 단속 상태 변경 일시 -->
     , CC.CVLCPT_LINK_ID         <!-- 민원 연계 ID -->
     , CC.CVLCPT_PRCS_RSLT_CN    <!-- 민원 처리 결과 내용 -->
     , C.LINK_TBL_NM
  FROM TB_CRDN C
  INNER JOIN TB_CRDN_CVLCPT CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID)
 WHERE C.CRDN_ID IN (<foreach collection="crdnIds" item="crdnId" separator=",">#{crdnId}</foreach>)
   AND C.DEL_YN = 'N'
   AND C.CRDN_STTS_CD IN ('21','81','83')
   AND C.CRDN_REG_SE_CD = '02'
   AND CC.CVLCPT_PRCS_CD IN ('02','03','04')
   AND CC.CVLCPT_TRSM_CD = '01'
</select>

<update id="updateAnswerTargetTransmitStatus" parameterType="cokr.xit.fims.cvlc.CrdnCvlcpt">
/* 민원 전송코드 변경(crdnCvlcptMapper.updateAnswerTargetTransmitStatus) */
UPDATE TB_CRDN_CVLCPT
   SET CVLCPT_TRSM_CD = #{cvlcptTrsmCd} /* 민원 전송 코드 */
     <if test="cvlcptPrcsRsltCn != null and cvlcptPrcsRsltCn != ''">
     , CVLCPT_PRCS_RSLT_CN = #{cvlcptPrcsRsltCn} /* 민원 처리 결과 내용 */
     </if>
     , CVLCPT_PRCS_CMPTN_DT = <include refid="utility.now" />
     , CVLCPT_PRCS_PIC_NM   = (SELECT USER_NM FROM TB_USER WHERE USER_ID=#{modifiedBy})
     , CVLCPT_PRCS_PIC      = #{modifiedBy}
     , MDFCN_DT             = <include refid="utility.now" /> /* 수정일시 */
     , MDFR                 = #{modifiedBy}                   /* 수정자 */
 WHERE CVLCPT_LINK_ID = #{cvlcptLinkId}
</update>

<select id="selectCivilComplaintProcessInfo" parameterType="string" resultType="dataobject">
/* 민원 처리 정보 조회(crdnCvlcptMapper.selectCivilComplaintProcessInfo) */
SELECT CC.CVLCPT_LINK_ID                    /* 민원 연계 ID */
     , EI.INTERFACE_SEQ_N
     , SCD.DTL_ID
     , CC.CVLCPT_APLY_NO                    /* 민원 신청 번호 */
     , CC.CVLCPT_RCPT_NO                    /* 민원 접수 번호 */
     , CC.CVLCPT_APLY_TTL_NM                /* 민원 신청 제목 명 */
     , CC.CVLCPT_GIST                       /* 민원 요지 */
     , CC.CVLCPT_PRCS_SMRY                  /* 민원 처리 요약 */
     , CC.CVLCPT_PRCS_RSLT_CN               /* 민원 처리 결과 내용 */
     , CC.CVLCPT_PRCS_CMPTN_DT              /* 민원 처리 완료 일시 */
     , CC.CVLCPT_PRCS_PIC_NM                /* 민원 처리 담당자 명 */
     , U.EML_ADRS AS CVLCPT_PRCS_PIC_EMAIL  /* 민원 처리 담당자 이메일 */
     , U.TELNO    AS CVLCPT_PRCS_PIC_TELNO  /* 민원 처리 담당자 전화번호 */
     , U.DEPT_CD  AS CVLCPT_PRCS_DEPT_CD    /* 민원 처리 부서 코드, 실 처리 기관 코드 */
     , (SELECT DEPT_NM
          FROM TB_DEPT D
         WHERE D.DEPT_CD = U.DEPT_CD
           AND D.SGG_CD = S.SGG_CD
           AND D.USE_YN = 'Y'
         LIMIT 1
     ) AS CVLCPT_PRCS_DEPT_NM               /* 민원 처리 부서 명 */
     , U.NSTT_CD AS CVLCPT_PRCS_NSTT_CD     /* 민원 처리 기관 코드 */
     , EI.PETI_ANC_CODE_V                   /* 민원 기관코드 */
  FROM TB_CRDN_CVLCPT CC
  LEFT OUTER JOIN TB_ESB_INTERFACE EI ON (CC.CVLCPT_LINK_ID = EI.INTERFACE_SEQ_N)
  LEFT OUTER JOIN TB_SAEOL_CVLCPT_DTL SCD ON (CC.CVLCPT_LINK_ID = SCD.DTL_ID)
  LEFT OUTER JOIN TB_USER U ON (CC.CVLCPT_PRCS_PIC = U.USER_ID)
  LEFT OUTER JOIN TB_SGG S ON (U.NSTT_CD = S.INST_CD)
 WHERE CC.CVLCPT_LINK_ID = #{cvlcptLinkId}
</select>

<update id="updateCrdn" parameterType="map">
    /* 단속정보 수정(crdnCvlcptMapper.updateCrdn) */
    UPDATE TB_CRDN
       SET MDFCN_DT         = <include refid="utility.now" /> /* 수정일시 */
         , MDFR             = #{currentUser.id}      /* 수정자 */
         , RTPYR_ID         = #{crdn.rtpyrId}        /* 납부자 ID */
         , ADDR_SN          = #{crdn.addrSn}         /* 주소 일련번호 */
         , CRDN_YMD         = #{crdn.crdnYmd}        /* 단속 일자 */
         , CRDN_TM          = #{crdn.crdnTm}         /* 단속 시각 */
         , VHRNO            = #{crdn.vhrno}          /* 차량번호 */
         , CRDN_STDG_NM     = #{crdn.crdnStdgNm}     /* 단속 법정동 명 */
         , CRDN_PLC         = #{crdn.crdnPlc}        /* 단속 장소 */
         , VLTN_ID          = (SELECT A.VLTN_ID
                                 FROM TB_VLTN A
                                WHERE A.SGG_CD = #{crdn.sggCd}
                                  AND A.TASK_SE_CD = #{crdn.taskSeCd}
                                  AND A.VLTN_CD = #{crdn.vltnCd}) /* 위반 ID */
         , VIN              = #{crdn.vin}            /* 차대번호 */
         , VHCL_NM          = #{crdn.vhclNm}         /* 차량 명 */
         , VHCL_COLR        = #{crdn.vhclColr}       /* 차량 색상 */
         , ETC_CN           = #{crdn.etcCn}          /* 기타 내용 */
         <if test='changeAmountYn == "Y"'>
         , FFNLG_CRDN_AMT   = #{crdn.ffnlgCrdnAmt}   /* 과태료 단속 금액 */
         , FFNLG_AMT        = #{crdn.ffnlgAmt}       /* 과태료 금액 */
         , FFNLG_RDCRT      = #{crdn.ffnlgRdcrt}     /* 과태료 감경 율 */
         , ADVNTCE_AMT      = #{crdn.advntceAmt}     /* 사전통지 금액 */
         </if>
         <if test='changeStatusYn == "Y"'>
         , CRDN_STTS_CD     = #{crdn.crdnSttsCd}     /* 단속 상태 코드 */
         , CRDN_STTS_CHG_DT = <include refid="utility.now" />    /* 단속 상태 변경 일시 */
         </if>
     WHERE CRDN_ID = #{crdn.crdnId}                  /* 단속 ID */
</update>

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

<insert id="insertCrdnFromSelect" parameterType="map">
/* 단속정보 복사(crdnCvlcptMapper.insertCrdnFromSelect) */
<selectKey resultType="string" keyProperty="newCrdnId" keyColumn="NEW_ID" order="BEFORE">
    <include refid="numbering.keyByYear">
		<property name="TABLE_NAME" value="TB_CRDN" />
		<property name="TABLE_KEY" value="CRDN_ID" />
		<property name="pad" value="20" />
	</include>
</selectKey>
INSERT
  INTO TB_CRDN (
       CRDN_ID
     , BFR_CRDN_ID
     , CRDN_REG_SE_CD
     , CRDN_STTS_CD
     , OPNN_SBMSN_YN
     , DEL_YN
     , REG_DT                <!-- 등록 일시 -->
     , RGTR                  <!-- 등록자 -->
     , MDFCN_DT              <!-- 수정 일시 -->
     , MDFR                  <!-- 수정자 -->
     , SGG_CD
     , TASK_SE_CD
     , CRDN_INPT_SE_CD
     , CVLCPT_LINK_YN
     , LINK_TBL_NM
     , LINK_ID
     , RTPYR_ID
     , CRDN_YMD
     , CRDN_TM
     , VHRNO
     , CRDN_STDG_NM
     , CRDN_ROAD_NM
     , CRDN_PLC
     , VLTN_ID
     , GPS_X
     , GPS_Y
     , ATCH_FILE_CNT
     , VIN
     , VHCL_NM
     , VHCL_COLR
     , FFNLG_CRDN_AMT
     , FFNLG_RDCRT
     , FFNLG_AMT
     , ADVNTCE_AMT
     , ETC_CN
)
SELECT #{newCrdnId}
     , #{crdnId}
     , '04'
     , '01'
     , 'N'
     , 'N'
     , <include refid="utility.now" /> <!-- 등록 일시 -->
     , #{currentUser.id}               <!-- 등록자 -->
     , <include refid="utility.now" /> <!-- 수정 일시 -->
     , #{currentUser.id}               <!-- 수정자 -->
     , SGG_CD
     , TASK_SE_CD
     , CRDN_INPT_SE_CD
     , CVLCPT_LINK_YN
     , LINK_TBL_NM
     , LINK_ID
     , RTPYR_ID
     , CRDN_YMD
     , CRDN_TM
     , VHRNO
     , CRDN_STDG_NM
     , CRDN_ROAD_NM
     , CRDN_PLC
     , VLTN_ID
     , GPS_X
     , GPS_Y
     , ATCH_FILE_CNT
     , VIN
     , VHCL_NM
     , VHCL_COLR
     , FFNLG_CRDN_AMT
     , FFNLG_RDCRT
     , FFNLG_AMT
     , ADVNTCE_AMT
     , ETC_CN
  FROM TB_CRDN
 WHERE CRDN_ID = #{crdnId}
</insert>

<insert id="insertCrdnAdditionFromSelect" parameterType="map">
/* 단속 부가정보 복사(crdnCvlcptMapper.insertCrdnAdditionFromSelect) */
INSERT
  INTO TB_CRDN_ADI (
       CRDN_ID
     , CRDN_SE_CD
     , TEAM_ID
     , DTL_CRDN_PLC
     , CRDN_SPAREA_CD
     , CRDN_BGNG_TM
     , CRDN_END_TM
     , CRDN_SN
     , MOSC_X
     , MOSC_Y
     , TOWNG_YN
     , USE_FUEL_CD
     , FFNLG_CARMDL_CD
     , PRK_PSBLTY_RSLT_CD
     , VLTN_NMTM
     , OVTM_YN
     , OVTM_PRTTN_YN
     , DEL_YN
     , REG_DT                <!-- 등록 일시 -->
     , RGTR                  <!-- 등록자 -->
     , MDFCN_DT              <!-- 수정 일시 -->
     , MDFR                  <!-- 수정자 -->
)
SELECT #{newCrdnId}
     , CRDN_SE_CD
     , TEAM_ID
     , DTL_CRDN_PLC
     , CRDN_SPAREA_CD
     , CRDN_BGNG_TM
     , CRDN_END_TM
     , CRDN_SN
     , MOSC_X
     , MOSC_Y
     , TOWNG_YN
     , USE_FUEL_CD
     , FFNLG_CARMDL_CD
     , PRK_PSBLTY_RSLT_CD
     , VLTN_NMTM
     , OVTM_YN
     , OVTM_PRTTN_YN
     , DEL_YN
     , <include refid="utility.now" /> <!-- 등록 일시 -->
     , #{currentUser.id}               <!-- 등록자 -->
     , <include refid="utility.now" /> <!-- 수정 일시 -->
     , #{currentUser.id}               <!-- 수정자 -->
  FROM TB_CRDN_ADI
 WHERE CRDN_ID = #{crdnId}
</insert>

</mapper>