|
|
|
@ -41,6 +41,7 @@
|
|
|
|
|
</resultMap>
|
|
|
|
|
|
|
|
|
|
<resultMap id="sndngDtlRow" type="cokr.xit.fims.sndb.SndngDtl">
|
|
|
|
|
<!-- TB_SNDNG_DTL 발송 상세 대장 -->
|
|
|
|
|
<result property="sndngDtlId" column="SNDNG_DTL_ID" /> <!-- 발송 상세 ID -->
|
|
|
|
|
<result property="sndngId" column="SNDNG_ID" /> <!-- 발송 ID -->
|
|
|
|
|
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
|
|
|
|
@ -112,7 +113,7 @@
|
|
|
|
|
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
|
|
|
|
|
</resultMap>
|
|
|
|
|
|
|
|
|
|
<sql id="selectWrngSndngTrgt">
|
|
|
|
|
<sql id="selectWrngTrgt">
|
|
|
|
|
, C.SGG_CD <!-- 시군구 코드 -->
|
|
|
|
|
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
|
|
|
|
@ -327,213 +328,19 @@
|
|
|
|
|
</if>
|
|
|
|
|
</sql>
|
|
|
|
|
|
|
|
|
|
<select id="selectWrngSndngTrgtList" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngSndngTrgtList) */
|
|
|
|
|
<select id="selectWrngTrgtList" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 목록 조회(sndngMapper.selectWrngTrgtList) */
|
|
|
|
|
<include refid="utility.paging-prefix" />
|
|
|
|
|
SELECT C.CRDN_ID <!-- 단속 ID -->
|
|
|
|
|
<include refid="selectWrngSndngTrgt" />
|
|
|
|
|
<include refid="selectWrngTrgt" />
|
|
|
|
|
<include refid="utility.orderBy" />
|
|
|
|
|
<include refid="utility.paging-suffix" />
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="selectWrngSndngTrgts" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 객체 가져오기(sndngMapper.selectWrngSndngTrgts) */
|
|
|
|
|
<select id="selectWrngTrgts" parameterType="map" resultType="dataobject">/* 계고장 발송 대상 객체 가져오기(sndngMapper.selectWrngTrgts) */
|
|
|
|
|
SELECT COUNT(*) OVER() AS TNOCS <!-- 총건수 -->
|
|
|
|
|
, SUM(C.FFNLG_AMT) OVER() AS GRAMT <!-- 총금액 -->
|
|
|
|
|
, C.CRDN_ID <!-- 단속 ID -->
|
|
|
|
|
<include refid="selectWrngSndngTrgt" />
|
|
|
|
|
<include refid="utility.orderBy" />
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<sql id="selectAdvntceSndngTrgt">
|
|
|
|
|
, C.SGG_CD <!-- 시군구 코드 -->
|
|
|
|
|
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
|
|
|
|
|
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM <!-- 단속 입력 구분 명 -->
|
|
|
|
|
, 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.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
|
|
|
|
|
, C.FFNLG_AMT <!-- 과태료 금액 -->
|
|
|
|
|
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
|
|
|
|
|
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
|
|
|
|
|
, 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 <!-- 수정자 명 -->
|
|
|
|
|
, CA.CRDN_SE_CD <!-- 단속 구분 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM <!-- 단속 구분 명 -->
|
|
|
|
|
, CA.DTL_CRDN_PLC <!-- 상세 단속 장소 -->
|
|
|
|
|
, CA.CRDN_SPAREA_CD <!-- 단속 특별구역 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM <!-- 단속 특별구역 명 -->
|
|
|
|
|
, CA.CRDN_BGNG_TM <!-- 단속 시작 시각 -->
|
|
|
|
|
, CA.CRDN_END_TM <!-- 단속 종료 시각 -->
|
|
|
|
|
, CA.CRDN_SN <!-- 단속 일련번호 -->
|
|
|
|
|
, CA.USE_FUEL_CD <!-- 사용 연료 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM <!-- 사용 연료 명 -->
|
|
|
|
|
, CA.FFNLG_CARMDL_CD <!-- 과태료 차종 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM <!-- 과태료 차종 명 -->
|
|
|
|
|
, CA.PARKNG_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM<!-- 주차 가능 결과 명 -->
|
|
|
|
|
, CA.VLTN_NMTM <!-- 위반 횟수 -->
|
|
|
|
|
, CA.OVTIME_YN <!-- 시간외 여부 -->
|
|
|
|
|
, VI.VLTN_ID <!-- 위반 ID -->
|
|
|
|
|
, VI.VLTN_CD <!-- 위반 코드 -->
|
|
|
|
|
, VI.VLTN_ARTCL <!-- 위반 항목 -->
|
|
|
|
|
, CC.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
|
|
|
|
|
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
|
|
|
|
|
, CC.CVLCPT_APLY_NO <!-- 민원 신청 번호 -->
|
|
|
|
|
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
|
|
|
|
|
, CC.CVLCPT_APLCNT_NM <!-- 민원 신청인 명 -->
|
|
|
|
|
, CC.CVLCPT_APLY_DT <!-- 민원 신청 일시 -->
|
|
|
|
|
, CC.CVLCPT_PRCS_PIC_NM <!-- 민원 처리 담당자 명 -->
|
|
|
|
|
, CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM <!-- 민원 처리 명 -->
|
|
|
|
|
, CC.CVLCPT_PRCS_CMPTN_DT <!-- 민원 처리 완료 일시 -->
|
|
|
|
|
, P.RTPYR_ID <!-- 납부자 ID -->
|
|
|
|
|
, P.RTPYR_NO <!-- 납부자 번호 -->
|
|
|
|
|
, P.RTPYR_NM <!-- 납부자 명 -->
|
|
|
|
|
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
|
|
|
|
|
, P.ZIP <!-- 우편번호 -->
|
|
|
|
|
, P.ADDR <!-- 주소 -->
|
|
|
|
|
, P.DTL_ADDR <!-- 상세 주소 -->
|
|
|
|
|
FROM TB_CRDN C
|
|
|
|
|
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
|
|
|
|
|
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD)
|
|
|
|
|
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
|
|
|
|
|
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
|
|
|
|
|
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
|
|
|
|
|
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
|
|
|
|
|
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
|
|
|
|
|
<if test="crdnIDs != null">
|
|
|
|
|
AND C.CRDN_ID IN (
|
|
|
|
|
<foreach collection="crdnIDs" item="crdnId" separator=","> #{crdnId} </foreach> <!-- 단속 IDs -->
|
|
|
|
|
)
|
|
|
|
|
</if>
|
|
|
|
|
<if test="crdnId != null">
|
|
|
|
|
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
|
|
|
|
|
</if>
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="taskSeCd == 'BPV' or taskSeCd == 'PVS'">
|
|
|
|
|
AND C.CRDN_STTS_CD BETWEEN '21' AND '41' <!-- 단속 상태 코드 -->
|
|
|
|
|
</when>
|
|
|
|
|
<otherwise>
|
|
|
|
|
AND C.CRDN_STTS_CD BETWEEN '21' AND '22' <!-- 단속 상태 코드 -->
|
|
|
|
|
</otherwise>
|
|
|
|
|
</choose>
|
|
|
|
|
<if test="schCrdnYmdFrom != null">
|
|
|
|
|
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schCrdnYmdTo != null">
|
|
|
|
|
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schVltnCd != null">
|
|
|
|
|
AND VI.VLTN_CD = #{schVltnCd} <!-- 위반 코드 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schVhrno != null">
|
|
|
|
|
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schRtpyrNm != null">
|
|
|
|
|
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
|
|
|
|
|
</if>
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="schDetailCrdnRegDtOpt == 'regDt'">
|
|
|
|
|
<if test="schDetailCrdnRegDtFrom != null">
|
|
|
|
|
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 등록 일자 시작 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schDetailCrdnRegDtTo != null">
|
|
|
|
|
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 등록 일자 종료 -->
|
|
|
|
|
</if>
|
|
|
|
|
</when>
|
|
|
|
|
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
|
|
|
|
|
<if test="schDetailCrdnRegDtFrom != null">
|
|
|
|
|
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 수정 일자 시작 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schDetailCrdnRegDtTo != null">
|
|
|
|
|
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 수정 일자 종료 -->
|
|
|
|
|
</if>
|
|
|
|
|
</when>
|
|
|
|
|
<otherwise>
|
|
|
|
|
</otherwise>
|
|
|
|
|
</choose>
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
|
|
|
|
|
<if test="schDetailCrdnRgtrCd != null">
|
|
|
|
|
AND C.RGTR = #{schDetailCrdnRgtrCd} <!-- 등록자 코드 -->
|
|
|
|
|
</if>
|
|
|
|
|
</when>
|
|
|
|
|
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
|
|
|
|
|
<if test="schDetailCrdnRgtrCd != null">
|
|
|
|
|
AND C.MDFR = #{schDetailCrdnRgtrCd} <!-- 수정자 코드 -->
|
|
|
|
|
</if>
|
|
|
|
|
</when>
|
|
|
|
|
<otherwise>
|
|
|
|
|
</otherwise>
|
|
|
|
|
</choose>
|
|
|
|
|
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
|
|
|
|
|
<if test="by != null and by != '' and term != null">
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
|
|
|
|
|
<include refid="dynamicSearch.start" />
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
|
|
|
|
|
<when test="by == 'vhrno'"> C.VHRNO </when>
|
|
|
|
|
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
|
|
|
|
|
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
|
|
|
|
|
<when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
|
|
|
|
|
<when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when>
|
|
|
|
|
<when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when>
|
|
|
|
|
<when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
|
|
|
|
|
<when test="by == 'crdnSeCd'"> CA.CRDN_SE_CD </when>
|
|
|
|
|
<when test="by == 'dtlCrdnPlc'"> CA.DTL_CRDN_PLC </when>
|
|
|
|
|
<when test="by == 'crdnSpareaCd'"> CA.CRDN_SPAREA_CD </when>
|
|
|
|
|
<when test="by == 'crdnBgngTm'"> CA.CRDN_BGNG_TM </when>
|
|
|
|
|
<when test="by == 'crdnEndTm'"> CA.CRDN_END_TM </when>
|
|
|
|
|
<when test="by == 'crdnSn'"> CA.CRDN_SN </when>
|
|
|
|
|
<when test="by == 'useFuelCd'"> CA.USE_FUEL_CD </when>
|
|
|
|
|
<when test="by == 'ffnlgCarmdlCd'"> CA.FFNLG_CARMDL_CD </when>
|
|
|
|
|
<when test="by == 'parkngPsbltyRsltCd'"> CA.PARKNG_PSBLTY_RSLT_CD </when>
|
|
|
|
|
<when test="by == 'vltnNmtm'"> CA.VLTN_NMTM </when>
|
|
|
|
|
<when test="by == 'ovtimeYn'"> CA.OVTIME_YN </when>
|
|
|
|
|
<when test="by == 'vltnArtcl'"> VI.VLTN_ARTCL </when>
|
|
|
|
|
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
|
|
|
|
|
<when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
|
|
|
|
|
<when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when>
|
|
|
|
|
<when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when>
|
|
|
|
|
<when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when>
|
|
|
|
|
<when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when>
|
|
|
|
|
<when test="by == 'cvlcptPrcsPicNm'"> CC.CVLCPT_PRCS_PIC_NM </when>
|
|
|
|
|
<when test="by == 'cvlcptPrcsCd'"> CC.CVLCPT_PRCS_CD </when>
|
|
|
|
|
<when test="by == 'levyExclYmd'"> LE.LEVY_EXCL_YMD </when>
|
|
|
|
|
<when test="by == 'levyExclRsnCd'"> LE.LEVY_EXCL_RSN_CD </when>
|
|
|
|
|
</choose>
|
|
|
|
|
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
|
|
|
|
|
</when>
|
|
|
|
|
<otherwise>
|
|
|
|
|
</otherwise>
|
|
|
|
|
</choose>
|
|
|
|
|
</if>
|
|
|
|
|
</sql>
|
|
|
|
|
|
|
|
|
|
<select id="selectAdvntceSndngTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */
|
|
|
|
|
<include refid="utility.paging-prefix" />
|
|
|
|
|
SELECT C.CRDN_ID <!-- 단속 ID -->
|
|
|
|
|
<include refid="selectAdvntceSndngTrgt" />
|
|
|
|
|
<include refid="utility.orderBy" />
|
|
|
|
|
<include refid="utility.paging-suffix" />
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="selectAdvntceSndngTrgts" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 객체 가져오기(sndngMapper.selectAdvntceSndngTrgts) */
|
|
|
|
|
SELECT COUNT(*) OVER() AS TNOCS <!-- 총건수 -->
|
|
|
|
|
, SUM(C.FFNLG_AMT) OVER() AS GRAMT <!-- 총금액 -->
|
|
|
|
|
, C.CRDN_ID <!-- 단속 ID -->
|
|
|
|
|
<include refid="selectAdvntceSndngTrgt" />
|
|
|
|
|
<include refid="selectWrngTrgt" />
|
|
|
|
|
<include refid="utility.orderBy" />
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
@ -692,107 +499,6 @@
|
|
|
|
|
<include refid="utility.orderBy" />
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<insert id="insertSndng" parameterType="map">/* 발송 대장 등록(sndngMapper.insertSndng) */
|
|
|
|
|
<selectKey resultType="string" keyProperty="sndng.sndngId" keyColumn="NEW_ID" order="BEFORE">
|
|
|
|
|
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(SNDNG_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
|
|
|
|
|
FROM TB_SNDNG
|
|
|
|
|
WHERE SNDNG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
|
|
|
|
|
</selectKey>
|
|
|
|
|
INSERT
|
|
|
|
|
INTO TB_SNDNG (
|
|
|
|
|
SNDNG_ID <!-- 발송 ID -->
|
|
|
|
|
, SGG_CD <!-- 시군구 코드 -->
|
|
|
|
|
, DEPT_CD <!-- 부서 코드 -->
|
|
|
|
|
, TASK_SE_CD <!-- 업무 구분 코드 -->
|
|
|
|
|
, SNDNG_REG_SE_CD <!-- 발송 등록 구분 코드 -->
|
|
|
|
|
, SNDNG_SE_CD <!-- 발송 구분 코드 -->
|
|
|
|
|
, VLTN_ID <!-- 위반 ID -->
|
|
|
|
|
, LEVY_BGNG_YMD <!-- 부과 시작 일자 -->
|
|
|
|
|
, LEVY_END_YMD <!-- 부과 종료 일자 -->
|
|
|
|
|
, SNDNG_YMD <!-- 발송 일자 -->
|
|
|
|
|
, DUDT_YMD <!-- 납기 일자 -->
|
|
|
|
|
, TTL_NM <!-- 제목 명 -->
|
|
|
|
|
, DOC_NO <!-- 문서 번호 -->
|
|
|
|
|
, ETC_CN <!-- 기타 내용 -->
|
|
|
|
|
, TNOCS <!-- 총건수 -->
|
|
|
|
|
, GRAMT <!-- 총금액 -->
|
|
|
|
|
, CON_KEY <!-- 외부연계식별키 -->
|
|
|
|
|
, DIV_KB <!-- 취급 구분 -->
|
|
|
|
|
, EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
|
|
|
|
|
, SNDNG_STTS_CD <!-- 발송 상태 코드 -->
|
|
|
|
|
, RESND_YN <!-- 재발송 여부 -->
|
|
|
|
|
, DEL_YN <!-- 삭제 여부 -->
|
|
|
|
|
, REG_DT <!-- 등록 일시 -->
|
|
|
|
|
, RGTR <!-- 등록자 -->
|
|
|
|
|
, MDFCN_DT <!-- 수정 일시 -->
|
|
|
|
|
, MDFR <!-- 수정자 -->
|
|
|
|
|
)
|
|
|
|
|
VALUES (
|
|
|
|
|
#{sndng.sndngId} <!-- 발송 ID -->
|
|
|
|
|
, #{sndng.sggCd} <!-- 시군구 코드 -->
|
|
|
|
|
, #{sndng.deptCd} <!-- 부서 코드 -->
|
|
|
|
|
, #{sndng.taskSeCd} <!-- 업무 구분 코드 -->
|
|
|
|
|
, #{sndng.sndngRegSeCd} <!-- 발송 등록 구분 코드 -->
|
|
|
|
|
, #{sndng.sndngSeCd} <!-- 발송 구분 코드 -->
|
|
|
|
|
, (SELECT VLTN_ID FROM TB_VLTN_INFO
|
|
|
|
|
WHERE SGG_CD=#{sndng.sggCd} AND TASK_SE_CD=#{sndng.taskSeCd} AND VLTN_CD=#{sndng.vltnCd}) <!-- 위반 ID -->
|
|
|
|
|
, #{sndng.levyBgngYmd} <!-- 부과 시작 일자 -->
|
|
|
|
|
, #{sndng.levyEndYmd} <!-- 부과 종료 일자 -->
|
|
|
|
|
, #{sndng.sndngYmd} <!-- 발송 일자 -->
|
|
|
|
|
, #{sndng.dudtYmd} <!-- 납기 일자 -->
|
|
|
|
|
, #{sndng.ttlNm} <!-- 제목 명 -->
|
|
|
|
|
, #{sndng.docNo} <!-- 문서 번호 -->
|
|
|
|
|
, #{sndng.etcCn} <!-- 기타 내용 -->
|
|
|
|
|
, #{sndng.tnocs} <!-- 총건수 -->
|
|
|
|
|
, #{sndng.gramt} <!-- 총금액 -->
|
|
|
|
|
, #{sndng.conKey} <!-- 외부연계식별키 -->
|
|
|
|
|
, #{sndng.divKb} <!-- 취급 구분 -->
|
|
|
|
|
, #{sndng.epostNoticeId} <!-- 전자우편 안내문 ID -->
|
|
|
|
|
, #{sndng.sndngSttsCd} <!-- 발송 상태 코드 -->
|
|
|
|
|
, #{sndng.resndYn} <!-- 재발송 여부 -->
|
|
|
|
|
, #{sndng.delYn} <!-- 삭제 여부 -->
|
|
|
|
|
, <include refid="utility.now" /> <!-- 등록 일시 -->
|
|
|
|
|
, #{sndng.createdBy} <!-- 등록자 -->
|
|
|
|
|
, <include refid="utility.now" /> <!-- 수정 일시 -->
|
|
|
|
|
, #{sndng.modifiedBy} <!-- 수정자 -->
|
|
|
|
|
)
|
|
|
|
|
</insert>
|
|
|
|
|
|
|
|
|
|
<update id="updateSndng" parameterType="map">/* 발송 대장 수정(sndngMapper.updateSndng) */
|
|
|
|
|
UPDATE TB_SNDNG
|
|
|
|
|
SET SNDNG_REG_SE_CD = #{sndng.sndngRegSeCd} <!-- 발송 등록 구분 코드 -->
|
|
|
|
|
, SNDNG_SE_CD = #{sndng.sndngSeCd} <!-- 발송 구분 코드 -->
|
|
|
|
|
, LEVY_BGNG_YMD = #{sndng.levyBgngYmd} <!-- 부과 시작 일자 -->
|
|
|
|
|
, LEVY_END_YMD = #{sndng.levyEndYmd} <!-- 부과 종료 일자 -->
|
|
|
|
|
, VLTN_ID = #{sndng.vltnId} <!-- 위반 ID -->
|
|
|
|
|
, SNDNG_YMD = #{sndng.sndngYmd} <!-- 발송 일자 -->
|
|
|
|
|
, DUDT_YMD = #{sndng.dudtYmd} <!-- 납기 일자 -->
|
|
|
|
|
, TTL_NM = #{sndng.ttlNm} <!-- 제목 명 -->
|
|
|
|
|
, DOC_NO = #{sndng.docNo} <!-- 문서 번호 -->
|
|
|
|
|
, ETC_CN = #{sndng.etcCn} <!-- 기타 내용 -->
|
|
|
|
|
, TNOCS = #{sndng.tnocs} <!-- 총건수 -->
|
|
|
|
|
, GRAMT = #{sndng.gramt} <!-- 총금액 -->
|
|
|
|
|
, CON_KEY = #{sndng.conKey} <!-- 외부연계식별키 -->
|
|
|
|
|
, DIV_KB = #{sndng.divKb} <!-- 취급 구분 -->
|
|
|
|
|
, EPOST_NOTICE_ID = #{sndng.epostNoticeId} <!-- 전자우편 안내문 ID -->
|
|
|
|
|
, SNDNG_STTS_CD = #{sndng.sndngSttsCd} <!-- 발송 상태 코드 -->
|
|
|
|
|
, RESND_YN = #{sndng.resndYn} <!-- 재발송 여부 -->
|
|
|
|
|
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
|
|
|
|
|
, MDFR = #{sndng.modifiedBy} <!-- 수정자 -->
|
|
|
|
|
WHERE SNDNG_ID = #{sndng.sndngId} <!-- 발송 ID -->
|
|
|
|
|
AND DEL_YN = 'N'
|
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
<update id="deleteSndng" parameterType="map">/* 발송 대장 삭제(sndngMapper.deleteSndng) */
|
|
|
|
|
UPDATE TB_SNDNG
|
|
|
|
|
SET DEL_YN = 'Y' <!-- 삭제 여부 -->
|
|
|
|
|
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
|
|
|
|
|
, DLTR = #{sndng.modifiedBy} <!-- 삭제자 -->
|
|
|
|
|
, DEL_RSN = #{sndng.delRsn} <!-- 삭제 사유 -->
|
|
|
|
|
WHERE SNDNG_ID = #{sndng.sndngId} <!-- 발송 ID -->
|
|
|
|
|
AND DEL_YN = 'N'
|
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
<sql id="selectSndngDtl">
|
|
|
|
|
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
|
|
|
|
|
, SD.SVBTC_ID <!-- 공시송달 ID -->
|
|
|
|
@ -918,6 +624,316 @@
|
|
|
|
|
<include refid="utility.orderBy" />
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<sql id="selectAdvntceSndngTrgt">
|
|
|
|
|
, C.SGG_CD <!-- 시군구 코드 -->
|
|
|
|
|
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
|
|
|
|
|
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM <!-- 단속 입력 구분 명 -->
|
|
|
|
|
, 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.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
|
|
|
|
|
, C.FFNLG_AMT <!-- 과태료 금액 -->
|
|
|
|
|
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
|
|
|
|
|
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
|
|
|
|
|
, 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 <!-- 수정자 명 -->
|
|
|
|
|
, CA.CRDN_SE_CD <!-- 단속 구분 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM <!-- 단속 구분 명 -->
|
|
|
|
|
, CA.DTL_CRDN_PLC <!-- 상세 단속 장소 -->
|
|
|
|
|
, CA.CRDN_SPAREA_CD <!-- 단속 특별구역 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM <!-- 단속 특별구역 명 -->
|
|
|
|
|
, CA.CRDN_BGNG_TM <!-- 단속 시작 시각 -->
|
|
|
|
|
, CA.CRDN_END_TM <!-- 단속 종료 시각 -->
|
|
|
|
|
, CA.CRDN_SN <!-- 단속 일련번호 -->
|
|
|
|
|
, CA.USE_FUEL_CD <!-- 사용 연료 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM <!-- 사용 연료 명 -->
|
|
|
|
|
, CA.FFNLG_CARMDL_CD <!-- 과태료 차종 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM <!-- 과태료 차종 명 -->
|
|
|
|
|
, CA.PARKNG_PSBLTY_RSLT_CD <!-- 주차 가능 결과 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM<!-- 주차 가능 결과 명 -->
|
|
|
|
|
, CA.VLTN_NMTM <!-- 위반 횟수 -->
|
|
|
|
|
, CA.OVTIME_YN <!-- 시간외 여부 -->
|
|
|
|
|
, VI.VLTN_ID <!-- 위반 ID -->
|
|
|
|
|
, VI.VLTN_CD <!-- 위반 코드 -->
|
|
|
|
|
, VI.VLTN_ARTCL <!-- 위반 항목 -->
|
|
|
|
|
, CC.CVLCPT_LINK_ID <!-- 민원 연계 ID -->
|
|
|
|
|
, CC.CVLCPT_RCPT_YMD <!-- 민원 접수 일자 -->
|
|
|
|
|
, CC.CVLCPT_APLY_NO <!-- 민원 신청 번호 -->
|
|
|
|
|
, CC.CVLCPT_RCPT_NO <!-- 민원 접수 번호 -->
|
|
|
|
|
, CC.CVLCPT_APLCNT_NM <!-- 민원 신청인 명 -->
|
|
|
|
|
, CC.CVLCPT_APLY_DT <!-- 민원 신청 일시 -->
|
|
|
|
|
, CC.CVLCPT_PRCS_PIC_NM <!-- 민원 처리 담당자 명 -->
|
|
|
|
|
, CC.CVLCPT_PRCS_CD <!-- 민원 처리 코드 -->
|
|
|
|
|
, (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM <!-- 민원 처리 명 -->
|
|
|
|
|
, CC.CVLCPT_PRCS_CMPTN_DT <!-- 민원 처리 완료 일시 -->
|
|
|
|
|
, P.RTPYR_ID <!-- 납부자 ID -->
|
|
|
|
|
, P.RTPYR_NO <!-- 납부자 번호 -->
|
|
|
|
|
, P.RTPYR_NM <!-- 납부자 명 -->
|
|
|
|
|
, P.RTPYR_BRDT <!-- 납부자 생년월일 -->
|
|
|
|
|
, P.ZIP <!-- 우편번호 -->
|
|
|
|
|
, P.ADDR <!-- 주소 -->
|
|
|
|
|
, P.DTL_ADDR <!-- 상세 주소 -->
|
|
|
|
|
FROM TB_CRDN C
|
|
|
|
|
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
|
|
|
|
|
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD)
|
|
|
|
|
LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N')
|
|
|
|
|
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
|
|
|
|
|
WHERE C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
|
|
|
|
|
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
|
|
|
|
|
AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
|
|
|
|
|
<if test="crdnIDs != null">
|
|
|
|
|
AND C.CRDN_ID IN (
|
|
|
|
|
<foreach collection="crdnIDs" item="crdnId" separator=","> #{crdnId} </foreach> <!-- 단속 IDs -->
|
|
|
|
|
)
|
|
|
|
|
</if>
|
|
|
|
|
<if test="crdnId != null">
|
|
|
|
|
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
|
|
|
|
|
</if>
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="taskSeCd == 'BPV' or taskSeCd == 'PVS'">
|
|
|
|
|
AND C.CRDN_STTS_CD BETWEEN '21' AND '41' <!-- 단속 상태 코드 -->
|
|
|
|
|
</when>
|
|
|
|
|
<otherwise>
|
|
|
|
|
AND C.CRDN_STTS_CD BETWEEN '21' AND '22' <!-- 단속 상태 코드 -->
|
|
|
|
|
</otherwise>
|
|
|
|
|
</choose>
|
|
|
|
|
<if test="schCrdnYmdFrom != null">
|
|
|
|
|
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schCrdnYmdTo != null">
|
|
|
|
|
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schVltnCd != null">
|
|
|
|
|
AND VI.VLTN_CD = #{schVltnCd} <!-- 위반 코드 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schVhrno != null">
|
|
|
|
|
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schRtpyrNm != null">
|
|
|
|
|
AND P.RTPYR_NM = #{schRtpyrNm} <!-- 납부자 명 -->
|
|
|
|
|
</if>
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="schDetailCrdnRegDtOpt == 'regDt'">
|
|
|
|
|
<if test="schDetailCrdnRegDtFrom != null">
|
|
|
|
|
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 등록 일자 시작 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schDetailCrdnRegDtTo != null">
|
|
|
|
|
AND SUBSTR(C.REG_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 등록 일자 종료 -->
|
|
|
|
|
</if>
|
|
|
|
|
</when>
|
|
|
|
|
<when test="schDetailCrdnRegDtOpt == 'mdfcnDt'">
|
|
|
|
|
<if test="schDetailCrdnRegDtFrom != null">
|
|
|
|
|
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schDetailCrdnRegDtFrom} <!-- 수정 일자 시작 -->
|
|
|
|
|
</if>
|
|
|
|
|
<if test="schDetailCrdnRegDtTo != null">
|
|
|
|
|
AND SUBSTR(C.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schDetailCrdnRegDtTo} <!-- 수정 일자 종료 -->
|
|
|
|
|
</if>
|
|
|
|
|
</when>
|
|
|
|
|
<otherwise>
|
|
|
|
|
</otherwise>
|
|
|
|
|
</choose>
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="schDetailCrdnRgtrOpt == 'rgtr'">
|
|
|
|
|
<if test="schDetailCrdnRgtrCd != null">
|
|
|
|
|
AND C.RGTR = #{schDetailCrdnRgtrCd} <!-- 등록자 코드 -->
|
|
|
|
|
</if>
|
|
|
|
|
</when>
|
|
|
|
|
<when test="schDetailCrdnRgtrOpt == 'mdfr'">
|
|
|
|
|
<if test="schDetailCrdnRgtrCd != null">
|
|
|
|
|
AND C.MDFR = #{schDetailCrdnRgtrCd} <!-- 수정자 코드 -->
|
|
|
|
|
</if>
|
|
|
|
|
</when>
|
|
|
|
|
<otherwise>
|
|
|
|
|
</otherwise>
|
|
|
|
|
</choose>
|
|
|
|
|
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
|
|
|
|
|
<if test="by != null and by != '' and term != null">
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
|
|
|
|
|
<include refid="dynamicSearch.start" />
|
|
|
|
|
<choose>
|
|
|
|
|
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
|
|
|
|
|
<when test="by == 'vhrno'"> C.VHRNO </when>
|
|
|
|
|
<when test="by == 'crdnStdgNm'"> C.CRDN_STDG_NM </when>
|
|
|
|
|
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
|
|
|
|
|
<when test="by == 'ffnlgCrdnAmt'"> C.FFNLG_CRDN_AMT </when>
|
|
|
|
|
<when test="by == 'ffnlgAmt'"> C.FFNLG_AMT </when>
|
|
|
|
|
<when test="by == 'advntceAmt'"> C.ADVNTCE_AMT </when>
|
|
|
|
|
<when test="by == 'crdnSttsCd'"> C.CRDN_STTS_CD </when>
|
|
|
|
|
<when test="by == 'crdnSeCd'"> CA.CRDN_SE_CD </when>
|
|
|
|
|
<when test="by == 'dtlCrdnPlc'"> CA.DTL_CRDN_PLC </when>
|
|
|
|
|
<when test="by == 'crdnSpareaCd'"> CA.CRDN_SPAREA_CD </when>
|
|
|
|
|
<when test="by == 'crdnBgngTm'"> CA.CRDN_BGNG_TM </when>
|
|
|
|
|
<when test="by == 'crdnEndTm'"> CA.CRDN_END_TM </when>
|
|
|
|
|
<when test="by == 'crdnSn'"> CA.CRDN_SN </when>
|
|
|
|
|
<when test="by == 'useFuelCd'"> CA.USE_FUEL_CD </when>
|
|
|
|
|
<when test="by == 'ffnlgCarmdlCd'"> CA.FFNLG_CARMDL_CD </when>
|
|
|
|
|
<when test="by == 'parkngPsbltyRsltCd'"> CA.PARKNG_PSBLTY_RSLT_CD </when>
|
|
|
|
|
<when test="by == 'vltnNmtm'"> CA.VLTN_NMTM </when>
|
|
|
|
|
<when test="by == 'ovtimeYn'"> CA.OVTIME_YN </when>
|
|
|
|
|
<when test="by == 'vltnArtcl'"> VI.VLTN_ARTCL </when>
|
|
|
|
|
<when test="by == 'rtpyrNm'"> P.RTPYR_NM </when>
|
|
|
|
|
<when test="by == 'rtpyrNo'"> P.RTPYR_NO </when>
|
|
|
|
|
<when test="by == 'rtpyrBrdt'"> P.RTPYR_BRDT </when>
|
|
|
|
|
<when test="by == 'cvlcptAplyNo'"> CC.CVLCPT_APLY_NO </when>
|
|
|
|
|
<when test="by == 'cvlcptRcptNo'"> CC.CVLCPT_RCPT_NO </when>
|
|
|
|
|
<when test="by == 'cvlcptRcptYmd'"> CC.CVLCPT_RCPT_YMD </when>
|
|
|
|
|
<when test="by == 'cvlcptPrcsPicNm'"> CC.CVLCPT_PRCS_PIC_NM </when>
|
|
|
|
|
<when test="by == 'cvlcptPrcsCd'"> CC.CVLCPT_PRCS_CD </when>
|
|
|
|
|
<when test="by == 'levyExclYmd'"> LE.LEVY_EXCL_YMD </when>
|
|
|
|
|
<when test="by == 'levyExclRsnCd'"> LE.LEVY_EXCL_RSN_CD </when>
|
|
|
|
|
</choose>
|
|
|
|
|
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
|
|
|
|
|
</when>
|
|
|
|
|
<otherwise>
|
|
|
|
|
</otherwise>
|
|
|
|
|
</choose>
|
|
|
|
|
</if>
|
|
|
|
|
</sql>
|
|
|
|
|
|
|
|
|
|
<select id="selectAdvntceSndngTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */
|
|
|
|
|
<include refid="utility.paging-prefix" />
|
|
|
|
|
SELECT C.CRDN_ID <!-- 단속 ID -->
|
|
|
|
|
<include refid="selectAdvntceSndngTrgt" />
|
|
|
|
|
<include refid="utility.orderBy" />
|
|
|
|
|
<include refid="utility.paging-suffix" />
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="selectAdvntceSndngTrgts" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 객체 가져오기(sndngMapper.selectAdvntceSndngTrgts) */
|
|
|
|
|
SELECT COUNT(*) OVER() AS TNOCS <!-- 총건수 -->
|
|
|
|
|
, SUM(C.FFNLG_AMT) OVER() AS GRAMT <!-- 총금액 -->
|
|
|
|
|
, C.CRDN_ID <!-- 단속 ID -->
|
|
|
|
|
<include refid="selectAdvntceSndngTrgt" />
|
|
|
|
|
<include refid="utility.orderBy" />
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<insert id="insertSndng" parameterType="map">/* 발송 대장 등록(sndngMapper.insertSndng) */
|
|
|
|
|
<selectKey resultType="string" keyProperty="sndng.sndngId" keyColumn="NEW_ID" order="BEFORE">
|
|
|
|
|
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(SNDNG_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID
|
|
|
|
|
FROM TB_SNDNG
|
|
|
|
|
WHERE SNDNG_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%')
|
|
|
|
|
</selectKey>
|
|
|
|
|
INSERT
|
|
|
|
|
INTO TB_SNDNG (
|
|
|
|
|
SNDNG_ID <!-- 발송 ID -->
|
|
|
|
|
, SGG_CD <!-- 시군구 코드 -->
|
|
|
|
|
, DEPT_CD <!-- 부서 코드 -->
|
|
|
|
|
, TASK_SE_CD <!-- 업무 구분 코드 -->
|
|
|
|
|
, SNDNG_REG_SE_CD <!-- 발송 등록 구분 코드 -->
|
|
|
|
|
, SNDNG_SE_CD <!-- 발송 구분 코드 -->
|
|
|
|
|
, VLTN_ID <!-- 위반 ID -->
|
|
|
|
|
, LEVY_BGNG_YMD <!-- 부과 시작 일자 -->
|
|
|
|
|
, LEVY_END_YMD <!-- 부과 종료 일자 -->
|
|
|
|
|
, SNDNG_YMD <!-- 발송 일자 -->
|
|
|
|
|
, DUDT_YMD <!-- 납기 일자 -->
|
|
|
|
|
, TTL_NM <!-- 제목 명 -->
|
|
|
|
|
, DOC_NO <!-- 문서 번호 -->
|
|
|
|
|
, ETC_CN <!-- 기타 내용 -->
|
|
|
|
|
, TNOCS <!-- 총건수 -->
|
|
|
|
|
, GRAMT <!-- 총금액 -->
|
|
|
|
|
, CON_KEY <!-- 외부연계식별키 -->
|
|
|
|
|
, DIV_KB <!-- 취급 구분 -->
|
|
|
|
|
, EPOST_NOTICE_ID <!-- 전자우편 안내문 ID -->
|
|
|
|
|
, SNDNG_STTS_CD <!-- 발송 상태 코드 -->
|
|
|
|
|
, RESND_YN <!-- 재발송 여부 -->
|
|
|
|
|
, DEL_YN <!-- 삭제 여부 -->
|
|
|
|
|
, REG_DT <!-- 등록 일시 -->
|
|
|
|
|
, RGTR <!-- 등록자 -->
|
|
|
|
|
, MDFCN_DT <!-- 수정 일시 -->
|
|
|
|
|
, MDFR <!-- 수정자 -->
|
|
|
|
|
)
|
|
|
|
|
VALUES (
|
|
|
|
|
#{sndng.sndngId} <!-- 발송 ID -->
|
|
|
|
|
, #{sndng.sggCd} <!-- 시군구 코드 -->
|
|
|
|
|
, #{sndng.deptCd} <!-- 부서 코드 -->
|
|
|
|
|
, #{sndng.taskSeCd} <!-- 업무 구분 코드 -->
|
|
|
|
|
, #{sndng.sndngRegSeCd} <!-- 발송 등록 구분 코드 -->
|
|
|
|
|
, #{sndng.sndngSeCd} <!-- 발송 구분 코드 -->
|
|
|
|
|
, (SELECT VLTN_ID FROM TB_VLTN_INFO
|
|
|
|
|
WHERE SGG_CD=#{sndng.sggCd} AND TASK_SE_CD=#{sndng.taskSeCd} AND VLTN_CD=#{sndng.vltnCd}) <!-- 위반 ID -->
|
|
|
|
|
, #{sndng.levyBgngYmd} <!-- 부과 시작 일자 -->
|
|
|
|
|
, #{sndng.levyEndYmd} <!-- 부과 종료 일자 -->
|
|
|
|
|
, #{sndng.sndngYmd} <!-- 발송 일자 -->
|
|
|
|
|
, #{sndng.dudtYmd} <!-- 납기 일자 -->
|
|
|
|
|
, #{sndng.ttlNm} <!-- 제목 명 -->
|
|
|
|
|
, #{sndng.docNo} <!-- 문서 번호 -->
|
|
|
|
|
, #{sndng.etcCn} <!-- 기타 내용 -->
|
|
|
|
|
, #{sndng.tnocs} <!-- 총건수 -->
|
|
|
|
|
, #{sndng.gramt} <!-- 총금액 -->
|
|
|
|
|
, #{sndng.conKey} <!-- 외부연계식별키 -->
|
|
|
|
|
, #{sndng.divKb} <!-- 취급 구분 -->
|
|
|
|
|
, #{sndng.epostNoticeId} <!-- 전자우편 안내문 ID -->
|
|
|
|
|
, #{sndng.sndngSttsCd} <!-- 발송 상태 코드 -->
|
|
|
|
|
, #{sndng.resndYn} <!-- 재발송 여부 -->
|
|
|
|
|
, #{sndng.delYn} <!-- 삭제 여부 -->
|
|
|
|
|
, <include refid="utility.now" /> <!-- 등록 일시 -->
|
|
|
|
|
, #{sndng.createdBy} <!-- 등록자 -->
|
|
|
|
|
, <include refid="utility.now" /> <!-- 수정 일시 -->
|
|
|
|
|
, #{sndng.modifiedBy} <!-- 수정자 -->
|
|
|
|
|
)
|
|
|
|
|
</insert>
|
|
|
|
|
|
|
|
|
|
<update id="updateSndng" parameterType="map">/* 발송 대장 수정(sndngMapper.updateSndng) */
|
|
|
|
|
UPDATE TB_SNDNG
|
|
|
|
|
SET SNDNG_REG_SE_CD = #{sndng.sndngRegSeCd} <!-- 발송 등록 구분 코드 -->
|
|
|
|
|
, SNDNG_SE_CD = #{sndng.sndngSeCd} <!-- 발송 구분 코드 -->
|
|
|
|
|
, LEVY_BGNG_YMD = #{sndng.levyBgngYmd} <!-- 부과 시작 일자 -->
|
|
|
|
|
, LEVY_END_YMD = #{sndng.levyEndYmd} <!-- 부과 종료 일자 -->
|
|
|
|
|
, VLTN_ID = #{sndng.vltnId} <!-- 위반 ID -->
|
|
|
|
|
, SNDNG_YMD = #{sndng.sndngYmd} <!-- 발송 일자 -->
|
|
|
|
|
, DUDT_YMD = #{sndng.dudtYmd} <!-- 납기 일자 -->
|
|
|
|
|
, TTL_NM = #{sndng.ttlNm} <!-- 제목 명 -->
|
|
|
|
|
, DOC_NO = #{sndng.docNo} <!-- 문서 번호 -->
|
|
|
|
|
, ETC_CN = #{sndng.etcCn} <!-- 기타 내용 -->
|
|
|
|
|
, TNOCS = #{sndng.tnocs} <!-- 총건수 -->
|
|
|
|
|
, GRAMT = #{sndng.gramt} <!-- 총금액 -->
|
|
|
|
|
, CON_KEY = #{sndng.conKey} <!-- 외부연계식별키 -->
|
|
|
|
|
, DIV_KB = #{sndng.divKb} <!-- 취급 구분 -->
|
|
|
|
|
, EPOST_NOTICE_ID = #{sndng.epostNoticeId} <!-- 전자우편 안내문 ID -->
|
|
|
|
|
, SNDNG_STTS_CD = #{sndng.sndngSttsCd} <!-- 발송 상태 코드 -->
|
|
|
|
|
, RESND_YN = #{sndng.resndYn} <!-- 재발송 여부 -->
|
|
|
|
|
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
|
|
|
|
|
, MDFR = #{sndng.modifiedBy} <!-- 수정자 -->
|
|
|
|
|
WHERE SNDNG_ID = #{sndng.sndngId} <!-- 발송 ID -->
|
|
|
|
|
AND DEL_YN = 'N'
|
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
<update id="deleteSndng" parameterType="map">/* 발송 대장 삭제(sndngMapper.deleteSndng) */
|
|
|
|
|
UPDATE TB_SNDNG
|
|
|
|
|
SET DEL_YN = 'Y' <!-- 삭제 여부 -->
|
|
|
|
|
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
|
|
|
|
|
, DLTR = #{sndng.modifiedBy} <!-- 삭제자 -->
|
|
|
|
|
, DEL_RSN = #{sndng.delRsn} <!-- 삭제 사유 -->
|
|
|
|
|
WHERE SNDNG_ID = #{sndng.sndngId} <!-- 발송 ID -->
|
|
|
|
|
AND DEL_YN = 'N'
|
|
|
|
|
</update>
|
|
|
|
|
|
|
|
|
|
<select id="selectSndbkList" parameterType="map" resultType="dataobject">/* 반송 목록 조회(sndngMapper.selectSndbkList) */
|
|
|
|
|
<include refid="utility.paging-prefix" />
|
|
|
|
|
SELECT SD.SNDNG_DTL_ID <!-- 발송 상세 ID -->
|
|
|
|
|