개별총정보 의견제출 수정.

main
jjh 1 year ago
parent 44331b7c5c
commit 1b7f8f825d

@ -57,10 +57,6 @@ public class Excl02Bean extends AbstractComponent {
} else {
DataObject dataCrdn = excl02Mapper.selectCrdn(req); // 등록(단속 조회)
// 초기 데이터 설정
dataCrdn.set("RCPT_NO", dataCrdn.get("NEW_RCPT_NO")); // 접수 번호
dataCrdn.set("RCPT_YMD", dataCrdn.get("TODAY")); // 접수 일자
return dataCrdn;
}
}

@ -1,7 +1,5 @@
package cokr.xit.fims.sprt.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
@ -38,10 +36,7 @@ public class Sprt02ServiceBean extends AbstractServiceBean implements Sprt02Serv
@Override
public DataObject getOpnnSbmsnInfo(String crdnId) {
List<DataObject> opnnSbmsn = excl02Bean.getOpnnSbmsns(new Excl02Query().setCrdnId(crdnId));
return !opnnSbmsn.isEmpty() ? opnnSbmsn.get(0) : null;
return excl02Bean.getOpnnSbmsnInfo(new Excl02Query().setCrdnId(crdnId));
}
}

@ -1,15 +1,11 @@
package cokr.xit.fims.sprt.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.fims.sprt.service.Sprt02Service;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.base.code.CommonCode;
import cokr.xit.base.web.ApplicationController;
/**
@ -59,12 +55,8 @@ public class Sprt02Controller extends ApplicationController {
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sprt/sprt02020-info");
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
return mav
.addObject("pageName", "sprt02020")
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("crdnPayerInfo", json ? crdnPayerInfo : toJson(crdnPayerInfo)) // 단속, 납부자, 부과 정보
;
}
@ -84,12 +76,8 @@ public class Sprt02Controller extends ApplicationController {
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sprt/sprt02030-info");
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
return mav
.addObject("pageName", "sprt02030")
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("opnnSbmsnInfo", json ? opnnSbmsnInfo : toJson(opnnSbmsnInfo)) // 의견제출 정보
;
}

@ -87,8 +87,7 @@
<select id="selectLevyExclList" parameterType="map" resultType="dataobject">/* 부과제외 대장 목록 조회(excl01Mapper.selectLevyExclList) */
<include refid="utility.paging-prefix" />
<include refid="selectList" />
WHERE A.DEL_YN = 'N' /* 삭제 여부 */
AND H.SGG_CD = #{sggCd} /* 시군구 코드 */
WHERE H.SGG_CD = #{sggCd} /* 시군구 코드 */
AND H.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
<if test="schLevyExclYmdFrom != null">
AND A.LEVY_EXCL_YMD <![CDATA[ >= ]]> #{schLevyExclYmdFrom} /* 부과제외 일자 시작 */
@ -171,6 +170,14 @@
</otherwise>
</choose>
</if>
<choose>
<when test="delYn != null">
AND A.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND A.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
@ -226,9 +233,14 @@
<if test="crdnId != null">
AND A.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="delYn != null">
AND A.DEL_YN = #{delYn} /* 삭제 여부 */
</if>
<choose>
<when test="delYn != null">
AND A.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND A.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</where>
<include refid="utility.orderBy" />
</select>

@ -51,124 +51,122 @@
</resultMap>
<sql id="selectList">
SELECT A.OPNN_ID /* 의견 ID */
, A.CRDN_ID /* 단속 ID */
, A.RCPT_NO /* 접수 번호 */
, A.RCPT_YMD /* 접수 일자 */
, A.RCPT_SE_CD /* 접수 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM029', A.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 코드 */
, A.OWNR_REL_CD /* 소유주 관계 코드 */
, (SELECT FN_GET_CODE_NM('FIM032', A.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 코드 */
, A.STTR_NM /* 진술자 명 */
, A.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(A.STTR_BRDT, '.') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, A.STTR_RRNO /* 진술자 주민등록번호 */
, A.STTR_ADDR /* 진술자 주소 */
, A.STTR_DADDR /* 진술자 상세주소 */
, A.STTR_ZIP /* 진술자 우편번호 */
, A.STTR_CTTPC /* 진술자 연락처 */
, A.STTR_EML /* 진술자 이메일 */
, A.OPNN_SBMSN_CN /* 의견 제출 내용 */
, A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', A.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, A.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, A.ATCH_FILE_CNT /* 첨부 파일 수 */
, A.DOC_NO /* 문서 번호 */
, A.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', A.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 코드 */
, A.PIC_RVW_OPNN /* 담당자 검토 의견 */
, A.ANS_CN /* 답변 내용 */
, A.ANS_YMD /* 답변 일자 */
, A.ANS_TM /* 답변 시각 */
, (CONCAT(A.ANS_YMD, A.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */
, A.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM031', A.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */
, A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */
, H.SGG_CD /* 시군구 코드 */
, H.TASK_SE_CD /* 업무 구분 코드 */
, H.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM003', H.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, H.CRDN_YMD /* 단속 일자 */
, H.CRDN_TM /* 단속 시각 */
, (CONCAT(H.CRDN_YMD, H.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, H.VHRNO /* 차량번호 */
, H.CRDN_STDG_NM /* 단속 법정동 명 */
, H.CRDN_ROAD_NM /* 단속 도로 명 */
, H.CRDN_PLC /* 단속 장소 */
, H.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, H.FFNLG_AMT /* 과태료 금액 */
, H.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', H.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, J.RTPYR_ID /* 납부자 ID */
, J.RTPYR_SE_CD /* 납부자 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM011', J.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, J.RTPYR_NO /* 납부자 번호 */
, J.RTPYR_NM /* 납부자 명 */
, (SELECT FN_GET_BRDT_FORMAT(J.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_FORMAT /* 납부자 생년월일 */
, J.ZIP /* 우편번호 */
, J.ADDR /* 주소 */
, J.DTL_ADDR /* 상세 주소 */
FROM TB_OPNN_SBMSN A
INNER JOIN TB_CRDN H ON (A.CRDN_ID = H.CRDN_ID)
INNER JOIN TB_CRDN_ADI I ON (H.CRDN_ID = I.CRDN_ID)
LEFT OUTER JOIN TB_PAYER J ON (H.RTPYR_ID = J.RTPYR_ID)
SELECT OS.OPNN_ID /* 의견 ID */
, OS.CRDN_ID /* 단속 ID */
, OS.RCPT_NO /* 접수 번호 */
, OS.RCPT_YMD /* 접수 일자 */
, OS.RCPT_SE_CD /* 접수 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM029', OS.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 명 */
, OS.OWNR_REL_CD /* 소유주 관계 코드 */
, (SELECT FN_GET_CODE_NM('FIM032', OS.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 명*/
, OS.STTR_NM /* 진술자 명 */
, OS.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(OS.STTR_BRDT, '-') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, OS.STTR_RRNO /* 진술자 주민등록번호 */
, OS.STTR_ADDR /* 진술자 주소 */
, OS.STTR_DADDR /* 진술자 상세주소 */
, OS.STTR_ZIP /* 진술자 우편번호 */
, OS.STTR_CTTPC /* 진술자 연락처 */
, OS.STTR_EML /* 진술자 이메일 */
, OS.OPNN_SBMSN_CN /* 의견 제출 내용 */
, OS.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', OS.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, OS.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, OS.ATCH_FILE_CNT /* 첨부 파일 수 */
, OS.DOC_NO /* 문서 번호 */
, OS.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', OS.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 명 */
, OS.PIC_RVW_OPNN /* 담당자 검토 의견 */
, OS.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM031', OS.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */
, OS.ANS_YMD /* 답변 일자 */
, OS.ANS_TM /* 답변 시각 */
, (CONCAT(OS.ANS_YMD, OS.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */
, OS.ANS_CN /* 답변 내용 */
, OS.DEL_YN /* 삭제 여부 */
, OS.REG_DT /* 등록 일시 */
, OS.RGTR /* 등록자 */
, OS.MDFCN_DT /* 수정 일시 */
, OS.MDFR /* 수정자 */
, OS.DEL_DT /* 삭제 일시 */
, OS.DLTR /* 삭제자 */
, OS.DEL_RSN /* 삭제 사유 */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, (SELECT FN_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.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_SE_CD /* 납부자 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */
, P.RTPYR_NO /* 납부자 번호 */
, P.RTPYR_NM /* 납부자 명 */
, (SELECT FN_GET_BRDT_FORMAT(P.RTPYR_BRDT, '-') FROM DUAL) AS RTPYR_BRDT_FORMAT /* 납부자 생년월일 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
FROM TB_OPNN_SBMSN OS
INNER JOIN TB_CRDN C ON (OS.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
</sql>
<select id="selectOpnnSbmsnList" parameterType="map" resultType="dataobject">/* 의견제출 대장 목록 조회(excl02Mapper.selectOpnnSbmsnList) */
<include refid="utility.paging-prefix" />
<include refid="selectList" />
WHERE A.DEL_YN = 'N' /* 삭제 여부 */
AND H.SGG_CD = #{sggCd} /* 시군구 코드 */
AND H.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
<if test="schRcptYmdFrom != null">
AND A.RCPT_YMD <![CDATA[ >= ]]> #{schRcptYmdFrom} /* 접수 일자 시작 */
AND OS.RCPT_YMD <![CDATA[ >= ]]> #{schRcptYmdFrom} /* 접수 일자 시작 */
</if>
<if test="schRcptYmdTo != null">
AND A.RCPT_YMD <![CDATA[ <= ]]> #{schRcptYmdTo} /* 접수 일자 종료 */
AND OS.RCPT_YMD <![CDATA[ <= ]]> #{schRcptYmdTo} /* 접수 일자 종료 */
</if>
<if test="schAnsYmdFrom != null">
AND A.ANS_YMD <![CDATA[ >= ]]> #{schAnsYmdFrom} /* 답변 일자 시작 */
AND OS.ANS_YMD <![CDATA[ >= ]]> #{schAnsYmdFrom} /* 답변 일자 시작 */
</if>
<if test="schAnsYmdTo != null">
AND A.ANS_YMD <![CDATA[ <= ]]> #{schAnsYmdTo} /* 답변 일자 종료 */
AND OS.ANS_YMD <![CDATA[ <= ]]> #{schAnsYmdTo} /* 답변 일자 종료 */
</if>
<if test="schSttrNm != null">
AND A.STTR_NM = #{schSttrNm} /* 진술자 명 */
AND OS.STTR_NM = #{schSttrNm} /* 진술자 명 */
</if>
<if test="schOpnnSbmsnSttsCd != null">
AND A.OPNN_SBMSN_STTS_CD = #{schOpnnSbmsnSttsCd} /* 의견 제출 상태 코드 */
AND OS.OPNN_SBMSN_STTS_CD = #{schOpnnSbmsnSttsCd} /* 의견 제출 상태 코드 */
</if>
<if test="schVhrno != null">
AND H.VHRNO = #{schVhrno} /* 차량번호 */
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<if test="schCrdnYmdFrom != null">
AND H.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
</if>
<if test="schCrdnYmdTo != null">
AND H.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if>
<choose>
<when test="schRegDateOpt == 'regDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(A.REG_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} /* 등록 일자 시작 */
AND SUBSTR(OS.REG_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} /* 등록 일자 시작 */
</if>
<if test="schRegDateTo != null">
AND SUBSTR(A.REG_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} /* 등록 일자 종료 */
AND SUBSTR(OS.REG_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} /* 등록 일자 종료 */
</if>
</when>
<when test="schRegDateOpt == 'mdfcnDt'">
<if test="schRegDateFrom != null">
AND SUBSTR(A.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} /* 수정 일자 시작 */
AND SUBSTR(OS.MDFCN_DT,1,8) <![CDATA[ >= ]]> #{schRegDateFrom} /* 수정 일자 시작 */
</if>
<if test="schRegDateTo != null">
AND SUBSTR(A.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} /* 수정 일자 종료 */
AND SUBSTR(OS.MDFCN_DT,1,8) <![CDATA[ <= ]]> #{schRegDateTo} /* 수정 일자 종료 */
</if>
</when>
<otherwise>
@ -177,12 +175,12 @@
<choose>
<when test="schDetailUserOpt == 'rgtr'">
<if test="schDetailUserCd != null">
AND A.RGTR = #{schDetailUserCd} /* 등록자 코드 */
AND OS.RGTR = #{schDetailUserCd} /* 등록자 코드 */
</if>
</when>
<when test="schDetailUserOpt == 'mdfr'">
<if test="schDetailUserCd != null">
AND A.MDFR = #{schDetailUserCd} /* 수정자 코드 */
AND OS.MDFR = #{schDetailUserCd} /* 수정자 코드 */
</if>
</when>
<otherwise>
@ -193,24 +191,24 @@
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
<include refid="dynamicSearch.start" />
<choose>
<when test="by == 'rcptYmd'"> A.RCPT_YMD </when>
<when test="by == 'rcptNo'"> A.RCPT_NO </when>
<when test="by == 'rcptSeNm'"> A.RCPT_SE_CD </when>
<when test="by == 'ntfctnSeNm'"> A.NTFCTN_SE_CD </when>
<when test="by == 'sttrNm'"> A.STTR_NM </when>
<when test="by == 'opnnSbmsnSttsNm'"> A.OPNN_SBMSN_STTS_CD </when>
<when test="by == 'opnnSbmsnSeNm'"> A.OPNN_SBMSN_SE_CD </when>
<when test="by == 'opnnSbmsnGist'"> A.OPNN_SBMSN_GIST </when>
<when test="by == 'crdnYmd'"> H.CRDN_YMD </when>
<when test="by == 'vhrno'"> H.VHRNO </when>
<when test="by == 'crdnPlc'"> H.CRDN_PLC </when>
<when test="by == 'crdnSttsNm'"> H.CRDN_STTS_CD </when>
<when test="by == 'DOC_NO'"> A.DOC_NO </when>
<when test="by == 'ANS_YMD'"> A.ANS_YMD </when>
<when test="by == 'ANS_CN'"> A.ANS_CN </when>
<when test="by == 'rtpyrNm'"> J.RTPYR_NM </when>
<when test="by == 'rtpyrNo'"> J.RTPYR_NO </when>
<when test="by == 'rtpyrBrdt'"> J.RTPYR_BRDT </when>
<when test="by == 'rcptYmd'"> OS.RCPT_YMD </when>
<when test="by == 'rcptNo'"> OS.RCPT_NO </when>
<when test="by == 'rcptSeNm'"> OS.RCPT_SE_CD </when>
<when test="by == 'ntfctnSeNm'"> OS.NTFCTN_SE_CD </when>
<when test="by == 'sttrNm'"> OS.STTR_NM </when>
<when test="by == 'opnnSbmsnSttsNm'"> OS.OPNN_SBMSN_STTS_CD </when>
<when test="by == 'opnnSbmsnSeNm'"> OS.OPNN_SBMSN_SE_CD </when>
<when test="by == 'opnnSbmsnGist'"> OS.OPNN_SBMSN_GIST </when>
<when test="by == 'crdnYmd'"> C.CRDN_YMD </when>
<when test="by == 'vhrno'"> C.VHRNO </when>
<when test="by == 'crdnPlc'"> C.CRDN_PLC </when>
<when test="by == 'crdnSttsNm'"> C.CRDN_STTS_CD </when>
<when test="by == 'DOC_NO'"> OS.DOC_NO </when>
<when test="by == 'ANS_YMD'"> OS.ANS_YMD </when>
<when test="by == 'ANS_CN'"> OS.ANS_CN </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>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
@ -218,114 +216,156 @@
</otherwise>
</choose>
</if>
<choose>
<when test="delYn != null">
AND OS.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND OS.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<sql id="select">
SELECT A.OPNN_ID /* 의견 ID */
, A.CRDN_ID /* 단속 ID */
, A.RCPT_NO /* 접수 번호 */
, A.RCPT_YMD /* 접수 일자 */
, A.RCPT_SE_CD /* 접수 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM029', A.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 코드 */
, A.OWNR_REL_CD /* 소유주 관계 코드 */
, (SELECT FN_GET_CODE_NM('FIM032', A.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 코드 */
, A.STTR_NM /* 진술자 명 */
, A.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(A.STTR_BRDT, '.') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, A.STTR_RRNO /* 진술자 주민등록번호 */
, A.STTR_ADDR /* 진술자 주소 */
, A.STTR_DADDR /* 진술자 상세주소 */
, A.STTR_ZIP /* 진술자 우편번호 */
, A.STTR_CTTPC /* 진술자 연락처 */
, A.STTR_EML /* 진술자 이메일 */
, A.OPNN_SBMSN_CN /* 의견 제출 내용 */
, A.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', A.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, A.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, A.ATCH_FILE_CNT /* 첨부 파일 수 */
, A.DOC_NO /* 문서 번호 */
, A.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', A.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 코드 */
, A.PIC_RVW_OPNN /* 담당자 검토 의견 */
, A.ANS_CN /* 답변 내용 */
, A.ANS_YMD /* 답변 일자 */
, A.ANS_TM /* 답변 시각 */
, (CONCAT(A.ANS_YMD, A.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */
, A.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM031', A.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */
, A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */
, A.MDFCN_DT /* 수정 일시 */
, A.MDFR /* 수정자 */
, A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */
, H.CRDN_YMD /* 단속 일자 */
, H.CRDN_TM /* 단속 시각 */
, H.VHRNO /* 차량번호 */
, H.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', H.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, J.RTPYR_ID /* 납부자 ID */
, J.RTPYR_NM /* 납부자 명 */
FROM TB_OPNN_SBMSN A
INNER JOIN TB_CRDN H ON (A.CRDN_ID = H.CRDN_ID)
INNER JOIN TB_CRDN_ADI I ON (H.CRDN_ID = I.CRDN_ID)
LEFT OUTER JOIN TB_PAYER J ON (H.RTPYR_ID = J.RTPYR_ID)
SELECT OS.OPNN_ID /* 의견 ID */
, OS.CRDN_ID /* 단속 ID */
, OS.RCPT_NO /* 접수 번호 */
, OS.RCPT_YMD /* 접수 일자 */
, OS.RCPT_SE_CD /* 접수 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM029', OS.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 명 */
, OS.OWNR_REL_CD /* 소유주 관계 코드 */
, (SELECT FN_GET_CODE_NM('FIM032', OS.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 명*/
, OS.STTR_NM /* 진술자 명 */
, OS.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(OS.STTR_BRDT, '-') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, OS.STTR_RRNO /* 진술자 주민등록번호 */
, OS.STTR_ADDR /* 진술자 주소 */
, OS.STTR_DADDR /* 진술자 상세주소 */
, OS.STTR_ZIP /* 진술자 우편번호 */
, OS.STTR_CTTPC /* 진술자 연락처 */
, OS.STTR_EML /* 진술자 이메일 */
, OS.OPNN_SBMSN_CN /* 의견 제출 내용 */
, OS.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', OS.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, OS.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, OS.ATCH_FILE_CNT /* 첨부 파일 수 */
, OS.DOC_NO /* 문서 번호 */
, OS.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', OS.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 명 */
, OS.PIC_RVW_OPNN /* 담당자 검토 의견 */
, OS.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM031', OS.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */
, OS.ANS_YMD /* 답변 일자 */
, OS.ANS_TM /* 답변 시각 */
, (CONCAT(OS.ANS_YMD, OS.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */
, OS.ANS_CN /* 답변 내용 */
, OS.DEL_YN /* 삭제 여부 */
, OS.REG_DT /* 등록 일시 */
, OS.RGTR /* 등록자 */
, OS.MDFCN_DT /* 수정 일시 */
, OS.MDFR /* 수정자 */
, OS.DEL_DT /* 삭제 일시 */
, OS.DLTR /* 삭제자 */
, OS.DEL_RSN /* 삭제 사유 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NM /* 납부자 명 */
FROM TB_OPNN_SBMSN OS
INNER JOIN TB_CRDN C ON (OS.CRDN_ID = C.CRDN_ID)
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
</sql>
<select id="selectOpnnSbmsns" parameterType="map" resultType="dataobject">/* 의견제출 대장 객체 가져오기(excl02Mapper.selectOpnnSbmsns) */
<include refid="select" />
<where>
<if test="opnnIDs != null">
AND A.OPNN_ID IN (
AND OS.OPNN_ID IN (
<foreach collection="opnnIDs" item="opnnId" separator=","> #{opnnId} </foreach>
)
</if>
<if test="opnnId != null">
AND A.OPNN_ID = #{opnnId} /* 의견제출 ID */
AND OS.OPNN_ID = #{opnnId} /* 의견제출 ID */
</if>
<if test="crdnId != null">
AND A.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<if test="delYn != null">
AND A.DEL_YN = #{delYn} /* 삭제 여부 */
AND OS.CRDN_ID = #{crdnId} /* 단속 ID */
</if>
<choose>
<when test="delYn != null">
AND OS.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND OS.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</where>
<include refid="utility.orderBy" />
</select>
<select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(excl02Mapper.selectCrdn) */
SELECT A.CRDN_ID /* 단속 ID */
, A.SGG_CD /* 시군구 코드 */
, A.TASK_SE_CD /* 업무 구분 코드 */
, A.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, A.CRDN_YMD /* 단속 일자 */
, A.CRDN_TM /* 단속 시각 */
, A.VHRNO /* 차량번호 */
, A.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', A.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, A.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, B.RTPYR_ID /* 납부자 ID */
, B.RTPYR_NM /* 납부자 명 */
, B.RTPYR_TELNO /* 납부자 전화번호 */
, B.RTPYR_MBL_TELNO /* 납부자 휴대 전화번호 */
, B.RTPYR_EML /* 납부자 이메일 */
, B.RTPYR_BRDT /* 납부자 생년월일 */
, B.ZIP /* 우편번호 */
, B.ADDR /* 주소 */
, B.DTL_ADDR /* 상세 주소 */
, C.OPNN_ID /* 의견 ID */
SELECT C.CRDN_ID /* 단속 ID */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, C.CRDN_YMD /* 단속 일자 */
, C.CRDN_TM /* 단속 시각 */
, C.VHRNO /* 차량번호 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
, C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */
, P.RTPYR_ID /* 납부자 ID */
, P.RTPYR_NM /* 납부자 명 */
, P.RTPYR_TELNO /* 납부자 전화번호 */
, P.RTPYR_MBL_TELNO /* 납부자 휴대 전화번호 */
, P.RTPYR_EML /* 납부자 이메일 */
, P.RTPYR_BRDT /* 납부자 생년월일 */
, P.ZIP /* 우편번호 */
, P.ADDR /* 주소 */
, P.DTL_ADDR /* 상세 주소 */
, OS.OPNN_ID /* 의견 ID */
, OS.RCPT_NO /* 접수 번호 */
, OS.RCPT_YMD /* 접수 일자 */
, OS.RCPT_SE_CD /* 접수 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM029', OS.RCPT_SE_CD) FROM DUAL) AS RCPT_SE_NM /* 접수 구분 코드 */
, OS.OWNR_REL_CD /* 소유주 관계 코드 */
, (SELECT FN_GET_CODE_NM('FIM032', OS.OWNR_REL_CD) FROM DUAL) AS OWNR_REL_NM /* 소유주 관계 코드 */
, OS.STTR_NM /* 진술자 명 */
, OS.STTR_BRDT /* 진술자 생년월일 */
, (SELECT FN_GET_BRDT_FORMAT(OS.STTR_BRDT, '-') FROM DUAL) AS STTR_BRDT_FORMAT /* 납부자 생년월일 */
, OS.STTR_RRNO /* 진술자 주민등록번호 */
, OS.STTR_ADDR /* 진술자 주소 */
, OS.STTR_DADDR /* 진술자 상세주소 */
, OS.STTR_ZIP /* 진술자 우편번호 */
, OS.STTR_CTTPC /* 진술자 연락처 */
, OS.STTR_EML /* 진술자 이메일 */
, OS.OPNN_SBMSN_CN /* 의견 제출 내용 */
, OS.OPNN_SBMSN_SE_CD /* 의견 제출 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM033', OS.OPNN_SBMSN_SE_CD) FROM DUAL) AS OPNN_SBMSN_SE_NM /* 의견 제출 구분 명 */
, OS.OPNN_SBMSN_GIST /* 의견 제출 요지 */
, OS.ATCH_FILE_CNT /* 첨부 파일 수 */
, OS.DOC_NO /* 문서 번호 */
, OS.NTFCTN_SE_CD /* 통보 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM030', OS.NTFCTN_SE_CD) FROM DUAL) AS NTFCTN_SE_NM /* 통보 구분 코드 */
, OS.PIC_RVW_OPNN /* 담당자 검토 의견 */
, OS.OPNN_SBMSN_STTS_CD /* 의견 제출 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM031', OS.OPNN_SBMSN_STTS_CD) FROM DUAL) AS OPNN_SBMSN_STTS_NM /* 의견 제출 상태 명 */
, OS.ANS_YMD /* 답변 일자 */
, OS.ANS_TM /* 답변 시각 */
, (CONCAT(OS.ANS_YMD, OS.ANS_TM)) AS ANS_YMD_TM /* 답변 일시 */
, OS.ANS_CN /* 답변 내용 */
, (SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(RCPT_NO, 5)) + 1, 1) AS INT), 6, '0'))
FROM TB_OPNN_SBMSN
WHERE RCPT_NO LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') ) AS NEW_RCPT_NO /* 접수 번호 */
WHERE RCPT_NO LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') ) AS NEW_RCPT_NO /* 신규 접수 번호 */
, <include refid="utility.today" /> AS TODAY /* 오늘 일자 */
FROM TB_CRDN A
LEFT OUTER JOIN TB_PAYER B ON (A.RTPYR_ID = B.RTPYR_ID)
LEFT OUTER JOIN TB_OPNN_SBMSN C ON (A.CRDN_ID = C.CRDN_ID AND C.DEL_YN = 'N')
WHERE A.CRDN_ID = #{crdnId} /* 단속 ID */
FROM TB_CRDN C
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
LEFT OUTER JOIN TB_OPNN_SBMSN OS ON (C.CRDN_ID = OS.CRDN_ID AND OS.DEL_YN = 'N')
WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */
</select>
<insert id="insertOpnnSbmsn" parameterType="map">/* 의견제출 대장 등록(excl02Mapper.insertOpnnSbmsn) */

@ -24,77 +24,75 @@
</resultMap>
<sql id="selectList">
SELECT A.RE_REG_ID /* 재등록 ID */
, A.BFR_CRDN_ID /* 이전 단속 ID */
, A.CRDN_ID /* 단속 ID */
, A.RE_REG_YMD /* 재등록 일자 */
, A.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM026', A.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */
, A.ETC_CN /* 기타 내용 */
, A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */
, A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */
, H.SGG_CD /* 시군구 코드 */
, H.TASK_SE_CD /* 업무 구분 코드 */
, H.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM003', H.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */
, H.CRDN_YMD /* 단속 일자 */
, H.CRDN_TM /* 단속 시각 */
, (CONCAT(H.CRDN_YMD, H.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */
, H.VHRNO /* 차량번호 */
, H.CRDN_STDG_NM /* 단속 법정동 명 */
, H.CRDN_ROAD_NM /* 단속 도로 명 */
, H.CRDN_PLC /* 단속 장소 */
, H.ATCH_FILE_CNT /* 첨부 파일 수 */
, H.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, H.FFNLG_AMT /* 과태료 금액 */
, H.ADVNTCE_AMT /* 사전통지 금액 */
, H.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', H.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
FROM TB_CRDN_RE_REG A
INNER JOIN TB_CRDN H ON (A.CRDN_ID = H.CRDN_ID)
INNER JOIN TB_CRDN_ADI I ON (H.CRDN_ID = I.CRDN_ID)
SELECT CRR.RE_REG_ID /* 재등록 ID */
, CRR.BFR_CRDN_ID /* 이전 단속 ID */
, CRR.CRDN_ID /* 단속 ID */
, CRR.RE_REG_YMD /* 재등록 일자 */
, CRR.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, (SELECT FN_GET_CODE_NM('FIM026', CRR.CRDN_REG_SE_CD) FROM DUAL) AS CRDN_REG_SE_NM /* 단속 등록 구분 명 */
, CRR.ETC_CN /* 기타 내용 */
, CRR.DEL_YN /* 삭제 여부 */
, CRR.REG_DT /* 등록 일시 */
, CRR.RGTR /* 등록자 */
, CRR.DEL_DT /* 삭제 일시 */
, CRR.DLTR /* 삭제자 */
, CRR.DEL_RSN /* 삭제 사유 */
, C.SGG_CD /* 시군구 코드 */
, C.TASK_SE_CD /* 업무 구분 코드 */
, C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */
, (SELECT FN_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.ATCH_FILE_CNT /* 첨부 파일 수 */
, C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */
, C.FFNLG_AMT /* 과태료 금액 */
, C.ADVNTCE_AMT /* 사전통지 금액 */
, C.CRDN_STTS_CD /* 단속 상태 코드 */
, (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */
FROM TB_CRDN_RE_REG CRR
INNER JOIN TB_CRDN C ON (CRR.CRDN_ID = C.CRDN_ID)
</sql>
<select id="selectCrdnReRegList" parameterType="map" resultType="dataobject">/* 단속 재등록 목록 조회(excl03Mapper.selectCrdnReRegList) */
<include refid="utility.paging-prefix" />
<include refid="selectList" />
WHERE A.DEL_YN = 'N' /* 삭제 여부 */
AND A.CRDN_REG_SE_CD = '03' /* 단속 등록 구분 코드 - FIM026 */
AND H.SGG_CD = #{sggCd} /* 시군구 코드 */
AND H.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
WHERE CRR.CRDN_REG_SE_CD = '03' /* 단속 등록 구분 코드 - FIM026 */
AND C.SGG_CD = #{sggCd} /* 시군구 코드 */
AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */
<if test="schReRegYmdFrom != null">
AND A.RE_REG_YMD <![CDATA[ >= ]]> #{schReRegYmdFrom} /* 재등록 일자 시작 */
AND CRR.RE_REG_YMD <![CDATA[ >= ]]> #{schReRegYmdFrom} /* 재등록 일자 시작 */
</if>
<if test="schReRegYmdTo != null">
AND A.RE_REG_YMD <![CDATA[ <= ]]> #{schReRegYmdTo} /* 재등록 일자 종료 */
AND CRR.RE_REG_YMD <![CDATA[ <= ]]> #{schReRegYmdTo} /* 재등록 일자 종료 */
</if>
<if test="schCrdnYmdFrom != null">
AND H.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} /* 단속 일자 시작 */
</if>
<if test="schCrdnYmdTo != null">
AND H.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
AND C.CRDN_YMD <![CDATA[ <= ]]> #{schCrdnYmdTo} /* 단속 일자 종료 */
</if>
<if test = "schVhrno != null">
AND H.VHRNO = #{schVhrno} /* 차량번호 */
AND C.VHRNO = #{schVhrno} /* 차량번호 */
</if>
<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 == 'reRegYmd'"> A.RE_REG_YMD </when>
<when test="by == 'crdnRegSeNm'"> A.CRDN_REG_SE_CD </when>
<when test="by == 'etcCn'"> A.ETC_CN </when>
<when test="by == 'crdnYmd'"> H.CRDN_YMD </when>
<when test="by == 'vhrno'"> H.VHRNO </when>
<when test="by == 'crdnStdgNm'"> H.CRDN_STDG_NM </when>
<when test="by == 'crdnPlc'"> H.CRDN_PLC </when>
<when test="by == 'ffnlgCrdnAmt'"> H.FFNLG_CRDN_AMT </when>
<when test="by == 'crdnSttsNm'"> H.CRDN_STTS_CD </when>
<when test="by == 'reRegYmd'"> CRR.RE_REG_YMD </when>
<when test="by == 'crdnRegSeNm'"> CRR.CRDN_REG_SE_CD </when>
<when test="by == 'etcCn'"> CRR.ETC_CN </when>
<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 == 'crdnSttsNm'"> C.CRDN_STTS_CD </when>
</choose>
<include refid="dynamicSearch.center" />#{term}<include refid="dynamicSearch.end" />
</when>
@ -102,37 +100,54 @@
</otherwise>
</choose>
</if>
<choose>
<when test="delYn != null">
AND CRR.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND CRR.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<sql id="select">
SELECT A.RE_REG_ID /* 재등록 ID */
, A.BFR_CRDN_ID /* 이전 단속 ID */
, A.CRDN_ID /* 단속 ID */
, A.RE_REG_YMD /* 재등록 일자 */
, A.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, A.ETC_CN /* 기타 내용 */
, A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */
, A.DEL_DT /* 삭제 일시 */
, A.DLTR /* 삭제자 */
, A.DEL_RSN /* 삭제 사유 */
FROM TB_CRDN_RE_REG A
SELECT CRR.RE_REG_ID /* 재등록 ID */
, CRR.BFR_CRDN_ID /* 이전 단속 ID */
, CRR.CRDN_ID /* 단속 ID */
, CRR.RE_REG_YMD /* 재등록 일자 */
, CRR.CRDN_REG_SE_CD /* 단속 등록 구분 코드 */
, CRR.ETC_CN /* 기타 내용 */
, CRR.DEL_YN /* 삭제 여부 */
, CRR.REG_DT /* 등록 일시 */
, CRR.RGTR /* 등록자 */
, CRR.DEL_DT /* 삭제 일시 */
, CRR.DLTR /* 삭제자 */
, CRR.DEL_RSN /* 삭제 사유 */
FROM TB_CRDN_RE_REG CRR
</sql>
<select id="selectCrdnReRegs" parameterType="map" resultType="dataobject">/* 단속 재등록 객체 가져오기(excl03Mapper.selectCrdnReRegs) */
<include refid="select" />
WHERE A.DEL_YN = 'N' /* 삭제 여부 */
<if test="reRegIds != null">
AND A.RE_REG_ID IN (
<foreach collection="reRegIds" item="reRegId" separator=","> #{reRegId} </foreach>
<where>
<if test="reRegIds != null">
AND CRR.RE_REG_ID IN (
<foreach collection="reRegIds" item="reRegId" separator=","> #{reRegId} </foreach> /* 재등록 ID */
)
</if>
<if test="reRegId != null">
AND A.RE_REG_ID = #{reRegId}
</if>
</if>
<if test="reRegId != null">
AND CRR.RE_REG_ID = #{reRegId} /* 재등록 ID */
</if>
<choose>
<when test="delYn != null">
AND CRR.DEL_YN = #{delYn} /* 삭제 여부 */
</when>
<otherwise>
AND CRR.DEL_YN = 'N' /* 삭제 여부 */
</otherwise>
</choose>
</where>
<include refid="utility.orderBy" />
</select>
@ -177,65 +192,65 @@
</update>
<select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 재등록 객체 가져오기(excl03Mapper.selectCrdn) */
SELECT A.CRDN_ID
, A.SGG_CD
, A.TASK_SE_CD
, A.CRDN_REG_SE_CD
, A.CRDN_INPT_SE_CD
, A.CVLCPT_LINK_YN
, A.LINK_TBL_NM
, A.LINK_ID
, A.RTPYR_ID
, A.CRDN_YMD
, A.CRDN_TM
, A.VHRNO
, A.CRDN_STDG_NM
, A.CRDN_ROAD_NM
, A.CRDN_PLC
, A.VLTN_ID
, (SELECT VLTN_CD FROM TB_VLTN_INFO X WHERE X.VLTN_ID = A.VLTN_ID AND X.SGG_CD = A.SGG_CD AND X.TASK_SE_CD = A.TASK_SE_CD) AS VLTN_CD
, A.GPS_X
, A.GPS_Y
, A.ATCH_FILE_CNT
, A.VIN
, A.VHCL_NM
, A.VHCL_COLOR
, A.FFNLG_CRDN_AMT
, A.FFNLG_RDUCT_RT
, A.FFNLG_AMT
, A.ADVNTCE_BGNG_YMD
, A.ADVNTCE_DUDT_YMD
, A.ADVNTCE_AMT
, A.OPNN_SBMSN_YN
, A.ETC_CN
, A.LEVY_ID
, A.CRDN_STTS_CD
, A.CRDN_STTS_CHG_DT
, A.ADTN_AMT
, A.MINUS_AMT
, A.RCVMT_AMT
, A.BFR_CRDN_ID
, A.DEL_YN /* 삭제 여부 */
, A.REG_DT /* 등록 일시 */
, A.RGTR /* 등록자 */
, B.CRDN_SE_CD
, B.TEAM_ID
, B.DTL_CRDN_PLC
, B.CRDN_SPAREA_CD
, B.CRDN_BGNG_TM
, B.CRDN_END_TM
, B.CRDN_SN
, B.MOSC_X
, B.MOSC_Y
, B.TOWNG_YN
, B.USE_FUEL_CD
, B.FFNLG_CARMDL_CD
, B.PARKNG_PSBLTY_RSLT_CD
, B.VLTN_NMTM
, B.OVTIME_YN
FROM TB_CRDN A
INNER JOIN TB_CRDN_ADI B ON (A.CRDN_ID = B.CRDN_ID)
WHERE A.CRDN_ID = #{crdnId} /* 단속 ID */
SELECT C.CRDN_ID
, C.SGG_CD
, C.TASK_SE_CD
, C.CRDN_REG_SE_CD
, C.CRDN_INPT_SE_CD
, C.CVLCPT_LINK_YN
, C.LINK_TBL_NM
, C.LINK_ID
, C.RTPYR_ID
, C.CRDN_YMD
, C.CRDN_TM
, C.VHRNO
, C.CRDN_STDG_NM
, C.CRDN_ROAD_NM
, C.CRDN_PLC
, C.VLTN_ID
, (SELECT VLTN_CD FROM TB_VLTN_INFO X WHERE X.VLTN_ID = C.VLTN_ID AND X.SGG_CD = C.SGG_CD AND X.TASK_SE_CD = C.TASK_SE_CD) AS VLTN_CD
, C.GPS_X
, C.GPS_Y
, C.ATCH_FILE_CNT
, C.VIN
, C.VHCL_NM
, C.VHCL_COLOR
, C.FFNLG_CRDN_AMT
, C.FFNLG_RDUCT_RT
, C.FFNLG_AMT
, C.ADVNTCE_BGNG_YMD
, C.ADVNTCE_DUDT_YMD
, C.ADVNTCE_AMT
, C.OPNN_SBMSN_YN
, C.ETC_CN
, C.LEVY_ID
, C.CRDN_STTS_CD
, C.CRDN_STTS_CHG_DT
, C.ADTN_AMT
, C.MINUS_AMT
, C.RCVMT_AMT
, C.BFR_CRDN_ID
, C.DEL_YN /* 삭제 여부 */
, C.REG_DT /* 등록 일시 */
, C.RGTR /* 등록자 */
, CA.CRDN_SE_CD
, CA.TEAM_ID
, CA.DTL_CRDN_PLC
, CA.CRDN_SPAREA_CD
, CA.CRDN_BGNG_TM
, CA.CRDN_END_TM
, CA.CRDN_SN
, CA.MOSC_X
, CA.MOSC_Y
, CA.TOWNG_YN
, CA.USE_FUEL_CD
, CA.FFNLG_CARMDL_CD
, CA.PARKNG_PSBLTY_RSLT_CD
, CA.VLTN_NMTM
, CA.OVTIME_YN
FROM TB_CRDN C
INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID)
WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */
</select>
</mapper>

@ -354,6 +354,32 @@
$("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
};
// 수정 dialog -> callback 추가
${pageName}Control.getInfo = (params) => {
let info = ${pageName}Control.dataset.getCurrent("item");
if (${pageName}Control.urls.getInfo) {
ajax.get({
url : ${pageName}Control.urls.getInfo
, data : params || {}
, success : resp => {
resp = resp.replace(/infoPrefix/g, this.prefix)
.replace(/prefixName/g, this.prefixName)
dialog.open({
id : ${pageName}Control.prefixed("InfoDialog")
, title : ${pageName}Control.prefixName + " 정보"
, content : resp
, size : ${pageName}Control.infoSize
, init : () => ${pageName}Control.setInfo(info)
, onClose : () => { ${pageName}Control.load(); } // callback
});
}
});
} else {
${pageName}Control.setInfo(info);
}
}
// 심의 dialog
${pageName}Control.getOpnnSbmsnDlbrtInfo = (opnnId) => {
ajax.get({

@ -137,7 +137,6 @@
<button class="btn btn-blue" id="btnAddFile--${pageName}" title="첨부파일 추가">파일 추가</button>
</div>
</div>
<!-- 첨부 파일 테이블 -->
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped" id="fileList--${pageName}">
@ -182,7 +181,7 @@
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "opnn"
prefix : "opnnInfo"
, prefixName : "의견제출"
, keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsnInfo
@ -214,7 +213,7 @@
document.getElementById("frmFile--${pageName}").reset();
dialog.alert("저장됐습니다.");
dialog.close(${pageName}Control.prefix + "dialog");
dialog.close(${pageName}Control.prefix + "Dialog");
}
}
@ -314,7 +313,7 @@
let data = formFields.get();
dialog.alert({
content : "현재 prefixName 정보를 저장하시겠습니까?"
content : "현재 의견제출 정보를 저장하시겠습니까?"
, onOK : () => {
${pageName}Control.save(formFields.get());
}
@ -337,6 +336,7 @@
, fetchSize : 0
}
, success : resp => {
let fileNo = 0;
let fileList = resp.fileList;
fileList.forEach(function (item, index, array) {
@ -435,8 +435,8 @@
}
// 첨부파일 다운로드
function fnBtnFileDownload${pageName}(fileId) {
top.location.href = "/file/download.do?fileID=" + fileId;
function fnBtnFileDownload${pageName}(fileID) {
top.location.href = "/file/download.do?fileID=" + fileID;
}
/**************************************************************************

@ -21,7 +21,7 @@
<!-- 단속상태 -->
<div class="col-md-4">
<label for="crdnSttsNm--${pageName}" class="w-px-100 bg-lighter pe-2 col-form-label text-sm-end">단속상태</label>
<input type="text" class="form-control w-30" id="crdnSttsChgDt--${pageName}" name="crdnSttsChgDt" data-map="CRDN_STTS_CHG_DT" readonly />
<input type="text" class="form-control w-35" id="crdnSttsChgDt--${pageName}" name="crdnSttsChgDt" data-map="CRDN_STTS_CHG_DT" readonly />
<input type="text" class="form-control w-30" id="crdnSttsNm--${pageName}" name="crdnSttsNm" data-map="CRDN_STTS_NM" readonly />
</div>
<!-- 자료 이동 버튼 -->
@ -98,7 +98,7 @@
* Global Variable
**************************************************************************/
// URL
var prefixUrl = "/sprt/sprt02";
var ${pageName}PrefixUrl = "/sprt/sprt02";
// FormFields
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
//
@ -108,7 +108,7 @@
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "indivTotalInfo"
prefix : "totalInfoMain"
, prefixName : "개별총정보"
, keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.totalInfo

@ -2,283 +2,283 @@
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- Page Body -->
<div class="d-flex flex-row justify-content-evenly">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- <div class="card"> -->
<div class="card" style="max-width:1100px;" title="단속 정보">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-200 bg-label-danger pe-2 col-form-label text-sm-center">단속 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnOpenCvlcptOrgnl--${pageName}" title="민원 원본 보기" onclick="fnBtnOpenCvlcptOrgnl${pageName}();">
민원 원본 보기
</button>
<button type="button" class="btn btn-primary" id="btnOpenAnswerPreview--${pageName}" title="민원 답변 보기" onclick="fnBtnOpenAnswerPreview${pageName}();">
민원 답변 보기
</button>
<button type="button" class="btn btn-primary" id="btnCrdnUpdate--${pageName}" title="단속정보 수정" onclick="fnBtnCrdnUpdate${pageName}();">
단속 정보 수정
</button>
<button type="button" class="btn btn-primary" id="btnCrdnReReg--${pageName}" title="부과취소 재등록" onclick="btnCrdnReReg${pageName}();">
부과취소 재등록
</button>
<button type="button" class="btn btn-primary" id="btnCrdnRemove--${pageName}" title="자료 삭제" onclick="fnBtnCrdnRemove${pageName}();">
자료 삭제
</button>
<button type="button" class="btn btn-primary" id="btnNoticeOtpt--${pageName}" title="고지서 출력" onclick="fnBtnNoticeOtpt${pageName}();">
고지서 출력
</button>
<button type="button" class="btn btn-primary" id="btnCrdnSttsUpdate--${pageName}" title="단속 상태 변경" onclick="fnBtnCrdnSttsUpdate${pageName}();">
단속 상태 변경
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="content-wrapper">
<div class="d-flex flex-row justify-content-evenly">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- <div class="card"> -->
<div class="card" style="max-width:1100px;" title="단속 정보">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">단속 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnOpenCvlcptOrgnl--${pageName}" title="민원 원본 보기" onclick="fnBtnOpenCvlcptOrgnl${pageName}();">
민원 원본 보기
</button>
<button type="button" class="btn btn-primary" id="btnOpenAnswerPreview--${pageName}" title="민원 답변 보기" onclick="fnBtnOpenAnswerPreview${pageName}();">
민원 답변 보기
</button>
<button type="button" class="btn btn-primary" id="btnCrdnUpdate--${pageName}" title="단속정보 수정" onclick="fnBtnCrdnUpdate${pageName}();">
단속 정보 수정
</button>
<button type="button" class="btn btn-primary" id="btnCrdnReReg--${pageName}" title="부과취소 재등록" onclick="btnCrdnReReg${pageName}();">
부과취소 재등록
</button>
<button type="button" class="btn btn-primary" id="btnCrdnRemove--${pageName}" title="자료 삭제" onclick="fnBtnCrdnRemove${pageName}();">
자료 삭제
</button>
<button type="button" class="btn btn-primary" id="btnNoticeOtpt--${pageName}" title="고지서 출력" onclick="fnBtnNoticeOtpt${pageName}();">
고지서 출력
</button>
<button type="button" class="btn btn-primary" id="btnCrdnSttsUpdate--${pageName}" title="단속 상태 변경" onclick="fnBtnCrdnSttsUpdate${pageName}();">
단속 상태 변경
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 등록구분 -->
<div class="col-md-4">
<label for="crdnRegSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록구분</label>
<input type="text" class="form-control w-40" id="crdnRegSeNm--${pageName}" name="crdnRegSeNm" data-map="CRDN_REG_SE_NM" readonly />
</div>
<!-- 입력구분 -->
<div class="col-md-4">
<label for="crdnInptSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">입력구분</label>
<input type="text" class="form-control w-40" id="crdnInptSeNm--${pageName}" name="crdnInptSeNm" data-map="CRDN_INPT_SE_NM" readonly />
</div>
<!-- -->
<div class="col-md-4">
</div>
<!-- 단속일시 -->
<div class="col-md-4">
<label for="crdnYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속일시</label>
<input type="text" class="form-control w-50" id="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" readonly />
</div>
<!-- 차량번호 -->
<div class="col-md-4">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<input type="text" class="form-control w-40" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" readonly />
</div>
<!-- 위반내용 -->
<div class="col-md-4">
<label for="vltnNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">위반내용</label>
<input type="text" class="form-control w-40" id="vltnNm--${pageName}" name="vltnNm" data-map="VLTN_NM" readonly />
<label for="dstrbncYn--${pageName}">
<input type="checkbox" id="dstrbncYn--${pageName}" name="dstrbncYn" data-map="DSTRBNC_YN" disabled /> 1면 방해
</label>
</div>
<!-- 법정동 -->
<div class="col-md-4">
<label for="crdnStdgNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">법정동</label>
<input type="text" class="form-control w-40" id="crdnStdgNm--${pageName}" name="crdnStdgNm" data-map="CRDN_STDG_NM" readonly />
</div>
<!-- 단속 장소 -->
<div class="col-md-4">
<label for="crdnPlc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속 장소</label>
<input type="text" class="form-control w-60" id="crdnPlc--${pageName}" name="crdnPlc" data-map="CRDN_PLC" readonly />
</div>
<!-- 상세 단속 장소 -->
<div class="col-md-4">
<label for="dtlCrdnPlc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세 단속 장소</label>
<input type="text" class="form-control w-60" id="dtlCrdnPlc--${pageName}" name="dtlCrdnPlc" data-map="DTL_CRDN_PLC" readonly />
</div>
<!-- 민원 신청인 명 -->
<div class="col-md-4">
<label for="cvlcptAplcntNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원 신청인</label>
<input type="text" class="form-control w-40" id="cvlcptAplcntNm--${pageName}" name="cvlcptAplcntNm" data-map="CVLCPT_APLCNT_NM" readonly />
</div>
<!-- -->
<div class="col-md-4">
</div>
<!-- 담당자 -->
<div class="col-md-4">
<label for="cvlcptPrcsPicNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">담당자</label>
<input type="text" class="form-control w-40" id="cvlcptPrcsPicNm--${pageName}" name="cvlcptPrcsPicNm" data-map="CVLCPT_PRCS_PIC_NM" readonly />
</div>
<!-- 민원 신청 내용 -->
<!-- <div class="col-md-12"> -->
<%-- <label for="cvlcptAplyCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end align-top">민원 신청 내용</label> --%>
<%-- <textarea type="text" class="form-control w-87" id="cvlcptAplyCn--${pageName}" name="cvlcptAplyCn" data-map="CVLCPT_APLY_CN" cols="100%" rows="3" readonly> --%>
<!-- </textarea> -->
<!-- </div> -->
<!-- 접수번호 -->
<div class="col-md-4">
<label for="cvlcptRcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원 접수번호</label>
<input type="text" class="form-control w-45" id="cvlcptRcptNo--${pageName}" name="cvlcptRcptNo" data-map="CVLCPT_RCPT_NO" readonly />
</div>
<!-- 접수일 -->
<div class="col-md-4">
<label for="cvlcptRcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원 접수일</label>
<input type="text" class="form-control w-45" id="cvlcptRcptYmd--${pageName}" name="cvlcptRcptYmd" data-map="CVLCPT_RCPT_YMD" readonly />
</div>
<!-- 목록번호 -->
<div class="col-md-4">
<label for="cvlcptListNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원 목록번호</label>
<input type="text" class="form-control w-40" id="cvlcptListNo--${pageName}" name="cvlcptListNo" data-map="CVLCPT_LIST_NO" readonly />
</div>
<!-- 차대번호 -->
<div class="col-md-4">
<label for="vin--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차대번호</label>
<input type="text" class="form-control w-45" id="vin--${pageName}" name="vin" data-map="VIN" readonly />
</div>
<!-- 차량 명 -->
<div class="col-md-4">
<label for="vhclNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량 명</label>
<input type="text" class="form-control w-60" id="vhclNm--${pageName}" name="vhclNm" data-map="VHCL_NM" readonly />
</div>
<!-- 차량 색상 -->
<div class="col-md-4">
<label for="vhclColor--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량 색상</label>
<input type="text" class="form-control w-40" id="vhclColor--${pageName}" name="vhclColor" data-map="VHCL_COLOR" readonly />
</div>
<!-- 기타 내용 -->
<div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end align-top">기타 내용</label>
<textarea type="text" class="form-control w-87" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" cols="100%" rows="3" readonly>
</textarea>
</div>
<!-- 과태료 금액 -->
<div class="col-md-3">
<label for="ffnlgCrdnAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">과태료 단속금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="ffnlgCrdnAmt--${pageName}" name="ffnlgCrdnAmt" data-map="FFNLG_CRDN_AMT" readonly />
</div>
<!-- 과태료 감경 율 -->
<div class="col-md-3">
<label for="ffnlgRductRt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">과태료 감경율</label>
<input type="text" class="form-control w-25 text-sm-end" id="ffnlgRductRt--${pageName}" name="ffnlgRductRt" data-map="FFNLG_RDUCT_RT" readonly /> %
</div>
<!-- 부과 금액 -->
<div class="col-md-3">
<label for="ffnlgAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">과태료 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="ffnlgAmt--${pageName}" name="ffnlgAmt" data-map="FFNLG_AMT" readonly />
</div>
<!-- 사전통지 금액 -->
<div class="col-md-3">
<label for="advntceAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">사전통지 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="advntceAmt--${pageName}" name="advntceAmt" data-map="ADVNTCE_AMT" readonly />
</div>
<!-- 부과 금액 -->
<div class="col-md-3">
<label for="levyAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="levyAmt--${pageName}" name="levyAmt" data-map="LEVY_AMT" readonly />
</div>
<!-- 감액 금액 -->
<div class="col-md-3">
<label for="reducAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감액 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="reducAmt--${pageName}" name="reducAmt" data-map="REDUC_AMT" readonly />
</div>
<!-- 수납 금액 -->
<div class="col-md-3">
<label for="rcvmtAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="rcvmtAmt--${pageName}" name="rcvmtAmt" data-map="RCVMT_AMT" readonly />
</div>
<!-- 미납 금액 -->
<div class="col-md-3">
<label for="sumAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">미납 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="sumAmt--${pageName}" name="sumAmt" data-map="SUM_AMT" readonly />
</div>
</div>
</div> <!-- <div class="card"> -->
<div class="row g-1">
<!-- 등록구분 -->
<div class="col-md-4">
<label for="crdnRegSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록구분</label>
<input type="text" class="form-control w-40" id="crdnRegSeNm--${pageName}" name="crdnRegSeNm" data-map="CRDN_REG_SE_NM" readonly />
</div>
<!-- 입력구분 -->
<div class="col-md-4">
<label for="crdnInptSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">입력구분</label>
<input type="text" class="form-control w-40" id="crdnInptSeNm--${pageName}" name="crdnInptSeNm" data-map="CRDN_INPT_SE_NM" readonly />
</div>
<!-- -->
<div class="col-md-4">
</div>
<!-- 단속일시 -->
<div class="col-md-4">
<label for="crdnYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속일시</label>
<input type="text" class="form-control w-45" id="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" readonly />
</div>
<!-- 차량번호 -->
<div class="col-md-4">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<input type="text" class="form-control w-40" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" readonly />
</div>
<!-- 위반내용 -->
<div class="col-md-4">
<label for="vltnNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">위반내용</label>
<input type="text" class="form-control w-40" id="vltnNm--${pageName}" name="vltnNm" data-map="VLTN_NM" readonly />
<label for="dstrbncYn--${pageName}">
<input type="checkbox" id="dstrbncYn--${pageName}" name="dstrbncYn" data-map="DSTRBNC_YN" disabled /> 1면 방해
</label>
</div>
<!-- 법정동 -->
<div class="col-md-4">
<label for="crdnStdgNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">법정동</label>
<input type="text" class="form-control w-40" id="crdnStdgNm--${pageName}" name="crdnStdgNm" data-map="CRDN_STDG_NM" readonly />
</div>
<!-- 단속 장소 -->
<div class="col-md-4">
<label for="crdnPlc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속 장소</label>
<input type="text" class="form-control w-60" id="crdnPlc--${pageName}" name="crdnPlc" data-map="CRDN_PLC" readonly />
</div>
<!-- 상세 단속 장소 -->
<div class="col-md-4">
<label for="dtlCrdnPlc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세 단속 장소</label>
<input type="text" class="form-control w-60" id="dtlCrdnPlc--${pageName}" name="dtlCrdnPlc" data-map="DTL_CRDN_PLC" readonly />
</div>
<!-- 민원 신청인 명 -->
<div class="col-md-4">
<label for="cvlcptAplcntNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원 신청인</label>
<input type="text" class="form-control w-40" id="cvlcptAplcntNm--${pageName}" name="cvlcptAplcntNm" data-map="CVLCPT_APLCNT_NM" readonly />
</div>
<!-- -->
<div class="col-md-4">
</div>
<!-- 담당자 -->
<div class="col-md-4">
<label for="cvlcptPrcsPicNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">담당자</label>
<input type="text" class="form-control w-40" id="cvlcptPrcsPicNm--${pageName}" name="cvlcptPrcsPicNm" data-map="CVLCPT_PRCS_PIC_NM" readonly />
</div>
<!-- 민원 신청 내용 -->
<!-- <div class="col-md-12"> -->
<%-- <label for="cvlcptAplyCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end align-top">민원 신청 내용</label> --%>
<%-- <textarea type="text" class="form-control w-87" id="cvlcptAplyCn--${pageName}" name="cvlcptAplyCn" data-map="CVLCPT_APLY_CN" cols="100%" rows="3" readonly> --%>
<!-- </textarea> -->
<!-- </div> -->
<!-- 접수번호 -->
<div class="col-md-4">
<label for="cvlcptRcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원 접수번호</label>
<input type="text" class="form-control w-45" id="cvlcptRcptNo--${pageName}" name="cvlcptRcptNo" data-map="CVLCPT_RCPT_NO" readonly />
</div>
<!-- 접수일 -->
<div class="col-md-4">
<label for="cvlcptRcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원 접수일</label>
<input type="text" class="form-control w-45" id="cvlcptRcptYmd--${pageName}" name="cvlcptRcptYmd" data-map="CVLCPT_RCPT_YMD" readonly />
</div>
<!-- 목록번호 -->
<div class="col-md-4">
<label for="cvlcptListNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">민원 목록번호</label>
<input type="text" class="form-control w-40" id="cvlcptListNo--${pageName}" name="cvlcptListNo" data-map="CVLCPT_LIST_NO" readonly />
</div>
<!-- 차대번호 -->
<div class="col-md-4">
<label for="vin--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차대번호</label>
<input type="text" class="form-control w-45" id="vin--${pageName}" name="vin" data-map="VIN" readonly />
</div>
<!-- 차량 명 -->
<div class="col-md-4">
<label for="vhclNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량 명</label>
<input type="text" class="form-control w-60" id="vhclNm--${pageName}" name="vhclNm" data-map="VHCL_NM" readonly />
</div>
<!-- 차량 색상 -->
<div class="col-md-4">
<label for="vhclColor--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량 색상</label>
<input type="text" class="form-control w-40" id="vhclColor--${pageName}" name="vhclColor" data-map="VHCL_COLOR" readonly />
</div>
<!-- 기타 내용 -->
<div class="col-md-12">
<label for="etcCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end align-top">기타 내용</label>
<textarea type="text" class="form-control w-87" id="etcCn--${pageName}" name="etcCn" data-map="ETC_CN" cols="100%" rows="3" readonly>
</textarea>
</div>
<!-- 과태료 금액 -->
<div class="col-md-3">
<label for="ffnlgCrdnAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">과태료 단속금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="ffnlgCrdnAmt--${pageName}" name="ffnlgCrdnAmt" data-map="FFNLG_CRDN_AMT" readonly />
</div>
<!-- 과태료 감경 율 -->
<div class="col-md-3">
<label for="ffnlgRductRt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">과태료 감경율</label>
<input type="text" class="form-control w-25 text-sm-end" id="ffnlgRductRt--${pageName}" name="ffnlgRductRt" data-map="FFNLG_RDUCT_RT" readonly /> %
</div>
<!-- 부과 금액 -->
<div class="col-md-3">
<label for="ffnlgAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">과태료 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="ffnlgAmt--${pageName}" name="ffnlgAmt" data-map="FFNLG_AMT" readonly />
</div>
<!-- 사전통지 금액 -->
<div class="col-md-3">
<label for="advntceAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">사전통지 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="advntceAmt--${pageName}" name="advntceAmt" data-map="ADVNTCE_AMT" readonly />
</div>
<!-- 부과 금액 -->
<div class="col-md-3">
<label for="levyAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">부과 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="levyAmt--${pageName}" name="levyAmt" data-map="LEVY_AMT" readonly />
</div>
<!-- 감액 금액 -->
<div class="col-md-3">
<label for="reducAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">감액 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="reducAmt--${pageName}" name="reducAmt" data-map="REDUC_AMT" readonly />
</div>
<!-- 수납 금액 -->
<div class="col-md-3">
<label for="rcvmtAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수납 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="rcvmtAmt--${pageName}" name="rcvmtAmt" data-map="RCVMT_AMT" readonly />
</div>
<!-- 미납 금액 -->
<div class="col-md-3">
<label for="sumAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">미납 금액</label>
<input type="text" class="form-control w-40 text-sm-end" id="sumAmt--${pageName}" name="sumAmt" data-map="SUM_AMT" readonly />
</div>
</div>
</div> <!-- <div class="card"> -->
</p>
</p>
<!-- <div class="card"> -->
<div class="card" style="max-width:1100px;" title="납부자 정보">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-200 bg-label-danger pe-2 col-form-label text-sm-center">납부자 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnPayerReset--${pageName}" title="납부자 초기화" onclick="btnPayerReset${pageName}();">
납부자 초기화
</button>
<button type="button" class="btn btn-primary" id="btnPayerUpdate--${pageName}" title="납부자 수정" onclick="fnBtnPayerUpdate${pageName}();">
납부자 수정
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<!-- <div class="card"> -->
<div class="card" style="max-width:1100px;" title="납부자 정보">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">납부자 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnPayerReset--${pageName}" title="납부자 초기화" onclick="btnPayerReset${pageName}();">
납부자 초기화
</button>
<button type="button" class="btn btn-primary" id="btnPayerUpdate--${pageName}" title="납부자 수정" onclick="fnBtnPayerUpdate${pageName}();">
납부자 수정
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 납부자 명 -->
<div class="col-md-4">
<label for="rtpyrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자 명</label>
<input type="text" class="form-control w-40" id="rtpyrNm--${pageName}" name="rtpyrNm" data-map="RTPYR_NM" readonly />
</div>
<!-- 납부자 구분 코드 -->
<div class="col-md-4">
<label for="rtpyrSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자 구분</label>
<input type="text" class="form-control w-40" id="rtpyrSeNm--${pageName}" name="rtpyrSeNm" data-map="RTPYR_SE_NM" readonly />
</div>
<!-- 납부자 번호 -->
<div class="col-md-4">
<label for="rtpyrNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자 번호</label>
<input type="text" class="form-control w-40" id="rtpyrNo--${pageName}" name="rtpyrNo" data-map="RTPYR_NO" readonly />
</div>
<!-- 납부자 주소 --><!-- 납부자 우편번호 -->
<div class="col-md-12">
<label for="addr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
<input type="text" class="form-control w-75" id="addr--${pageName}" name="addr" data-map="addr" />
<input type="text" class="form-control w-px-75" id="zip--${pageName}" name="zip" data-map="ZIP" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnZip--${pageName}" title="우편번호 검색" onclick="fnBtnZip${pageName}();">
검색
</button>
</div>
<!-- 납부자 상세주소 -->
<div class="col-md-12">
<label for="dtlAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세 주소</label>
<input type="text" class="form-control w-87" id="dtlAddr--${pageName}" name="dtlAddr" data-map="DTL_ADDR" />
</div>
<!-- 납부자 입력 구분 코드 -->
<div class="col-md-4">
<label for="rtpyrInptSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">입력 구분</label>
<input type="text" class="form-control w-40" id="rtpyrInptSeNm--${pageName}" name="rtpyrInptSeNm" data-map="RTPYR_INPT_SE_NM" readonly />
</div>
<!-- 수정 일시 -->
<div class="col-md-4">
<label for="payerMdfcnDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수정 일시</label>
<input type="text" class="form-control w-50" id="payerMdfcnDt--${pageName}" name="payerMdfcnDt" data-map="PAYER_MDFCN_DT" readonly />
</div>
<!-- 수정자 -->
<div class="col-md-4">
<label for="payerMdfr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수정자</label>
<input type="text" class="form-control w-40" id="payerMdfr--${pageName}" name="payerMdfr" data-map="PAYER_MDFR" readonly />
</div>
</div>
</div> <!-- <div class="card"> -->
</form> <!-- /입력 영역 -->
<div class="row g-1">
<!-- 납부자 명 -->
<div class="col-md-4">
<label for="rtpyrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자 명</label>
<input type="text" class="form-control w-40" id="rtpyrNm--${pageName}" name="rtpyrNm" data-map="RTPYR_NM" readonly />
</div>
<!-- 납부자 구분 코드 -->
<div class="col-md-4">
<label for="rtpyrSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자 구분</label>
<input type="text" class="form-control w-40" id="rtpyrSeNm--${pageName}" name="rtpyrSeNm" data-map="RTPYR_SE_NM" readonly />
</div>
<!-- 납부자 번호 -->
<div class="col-md-4">
<label for="rtpyrNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자 번호</label>
<input type="text" class="form-control w-45" id="rtpyrNo--${pageName}" name="rtpyrNo" data-map="RTPYR_NO" readonly />
</div>
<!-- 납부자 주소 --><!-- 납부자 우편번호 -->
<div class="col-md-12">
<label for="addr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
<input type="text" class="form-control w-80" id="addr--${pageName}" name="addr" data-map="addr" readonly />
<input type="text" class="form-control w-px-75" id="zip--${pageName}" name="zip" data-map="ZIP" readonly />
</div>
<!-- 납부자 상세주소 -->
<div class="col-md-12">
<label for="dtlAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세 주소</label>
<input type="text" class="form-control w-87" id="dtlAddr--${pageName}" name="dtlAddr" data-map="DTL_ADDR" readonly />
</div>
<!-- 납부자 입력 구분 코드 -->
<div class="col-md-4">
<label for="rtpyrInptSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">입력 구분</label>
<input type="text" class="form-control w-40" id="rtpyrInptSeNm--${pageName}" name="rtpyrInptSeNm" data-map="RTPYR_INPT_SE_NM" readonly />
</div>
<!-- 수정 일시 -->
<div class="col-md-4">
<label for="payerMdfcnDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수정 일시</label>
<input type="text" class="form-control w-50" id="payerMdfcnDt--${pageName}" name="payerMdfcnDt" data-map="PAYER_MDFCN_DT" readonly />
</div>
<!-- 수정자 -->
<div class="col-md-4">
<label for="payerMdfr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수정자</label>
<input type="text" class="form-control w-40" id="payerMdfr--${pageName}" name="payerMdfr" data-map="PAYER_MDFR" readonly />
</div>
</div>
</div> <!-- <div class="card"> -->
</form> <!-- /입력 영역 -->
<div class="card" style="width:400px;">
<form id="frmFile--${pageName}" method="post" enctype="multipart/form-data">
<input type="file" id="newFileList--${pageName}" name="newFileList" multiple accept="image/*" hidden />
</form>
<!-- 이미지 -->
<div class="card" style="width:400px;">
<form id="frmFile--${pageName}" method="post" enctype="multipart/form-data">
<input type="file" id="newFileList--${pageName}" name="newFileList" multiple accept="image/*" hidden />
</form>
<form id="frmUploadSet--${pageName}" method="post" enctype="multipart/form-data">
<input type="file" id="inputUploadSet--${pageName}" name="inputUploadSet" multiple accept="image/*" hidden />
</form>
<div class="col-md-12">
<!-- 단속사진 버튼 -->
<div class="container-page-btn">
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" id="btnAddFile--${pageName}" class="btn btn-primary">이미지 추가</button>
<button type="button" id="btnOpenVideoCapture--${pageName}" class="btn btn-primary">동영상 캡쳐</button>
<button type="button" id="btnCancelAddFile--${pageName}" class="btn btn-primary">선택 사진 삭제</button>
</span>
<form id="frmUploadSet--${pageName}" method="post" enctype="multipart/form-data">
<input type="file" id="inputUploadSet--${pageName}" name="inputUploadSet" multiple accept="image/*" hidden />
</form>
<div class="col-md-12">
<!-- 단속사진 버튼 -->
<div class="container-page-btn">
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" id="btnAddFile--${pageName}" class="btn btn-primary">이미지 추가</button>
<button type="button" id="btnOpenVideoCapture--${pageName}" class="btn btn-primary">동영상 캡쳐</button>
<button type="button" id="btnCancelAddFile--${pageName}" class="btn btn-primary">선택 사진 삭제</button>
</span>
</div>
</div>
</div>
<div id="display--${pageName}" style="overflow-y: scroll;height: 600px;border-style: solid;">
<div id="display--${pageName}" style="overflow-y: scroll;height: 600px;border-style: solid;">
</div>
</div> <!-- <div class="card"> -->
</div>
</div>
</div> <!-- 이미지 <div class="card"> -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="content-wrapper"> -->
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// URL
var prefixUrl = "/sprt/sprt02";
var ${pageName}PrefixUrl = "/sprt/sprt02";
// FormFields
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
@ -286,7 +286,7 @@
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "crdnPayerInfo"
prefix : "totalInfoCrdnPayer"
, prefixName : "단속 정보"
, keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.crdnPayerInfo

@ -2,98 +2,280 @@
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- Page Body -->
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<div class="card" title="의견제출 정보">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-200 bg-label-danger pe-2 col-form-label text-sm-center">의견제출 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnCreate--${pageName}" title="의견제출 등록" onclick="fnBtnOpnnSbmsnCreate${pageName}();">
의견제출 등록
</button>
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnUpdate--${pageName}" title="의견제출 수정" onclick="fnBtnOpnnSbmsnUpdate${pageName}();">
의견제출 수정
</button>
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnRemove--${pageName}" title="의견제출 삭제" onclick="fnBtnOpnnSbmsnRemove${pageName}();">
의견제출 삭제
</button>
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnDlbrt--${pageName}" title="의견제출 심의" onclick="fnBtnOpnnSbmsnDlbrt${pageName}();">
의견제출 심의
</button>
<button type="button" class="btn btn-primary" id="btnDlbrtLtfrOtpt --${pageName}" title="심의의결서 출력" onclick="fnBtnDlbrtLtfrOtpt${pageName}();">
심의의결서 출력
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 차량번호 -->
<div class="col-md-3">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<input type="text" class="form-control w-30" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" readonly />
</div>
<!-- 위반일시 -->
<div class="col-md-3">
<label for="crdnYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">위반일시</label>
<input type="text" class="form-control w-40" id="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" readonly />
</div>
<!-- 고지번호 -->
<div class="col-md-3">
<label for="gojiNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">고지번호</label>
<input type="text" class="form-control w-40" id="gojiNo--${pageName}" name="gojiNo" data-map="GOJI_NO" readonly />
</div>
<!-- 단속상태 -->
<div class="col-md-3">
<label for="crdnSttsNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속상태</label>
<input type="text" class="form-control w-30" id="crdnSttsNm--${pageName}" name="crdnSttsNm" data-map="CRDN_STTS_NM" readonly />
</div>
</div> <!-- <div class="row g-1"> -->
</div> <!-- </div class="card" title="의견제출 정보"> -->
</form> <!-- <form id="frmEdit--${pageName}" name="frmEdit"> -->
<div class="content-wrapper">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="opnnId--${pageName}" name="opnnId" data-map="OPNN_ID" />
<div class="d-flex flex-row justify-content-evenly">
<div class="col-xl-9 mx-0">
<!-- 의견제출 정보 -->
<div class="card" style="max-width:1100px;" title="의견제출 정보">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">의견제출 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnCreate--${pageName}" title="의견제출 등록" onclick="fnBtnOpnnSbmsnCreate${pageName}();">
의견제출 등록
</button>
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnUpdate--${pageName}" title="의견제출 수정" onclick="fnBtnOpnnSbmsnUpdate${pageName}();">
의견제출 수정
</button>
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnRemove--${pageName}" title="의견제출 삭제" onclick="fnBtnOpnnSbmsnRemove${pageName}();">
의견제출 삭제
</button>
<button type="button" class="btn btn-primary" id="btnDlbrtLtfrOtpt --${pageName}" title="심의의결서 출력" onclick="fnBtnDlbrtLtfrOtpt${pageName}();">
심의의결서 출력
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 접수 번호 -->
<div class="col-md-4">
<label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수 번호</label>
<input type="text" class="form-control w-30" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" readonly />
</div>
<!-- 접수 일자 -->
<div class="col-md-4">
<label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수 일자</label>
<input type="text" class="form-control w-30" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD" readonly />
</div>
<!-- 진술자 이름 -->
<div class="col-md-4">
<label for="sttrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-40" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" readonly />
</div>
<!-- 진술자 생년월일 -->
<div class="col-md-4">
<label for="sttrBrdt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">생년월일</label>
<input type="text" class="form-control w-25" id="sttrBrdt--${pageName}" name="sttrBrdt" data-map="STTR_BRDT" placeholder="YY-MM-DD" readonly />
</div>
<!-- 소유주 관계 구분 명 -->
<div class="col-md-4">
<label for="ownrRelNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소유주 관계 구분</label>
<input type="text" class="form-control w-40" id="ownrRelNm--${pageName}" name="ownrRelNm" data-map="OWNR_REL_NM" readonly />
</div>
<!-- 진술자 주소 --><!-- 진술자 우편번호 -->
<div class="col-md-12">
<label for="sttrAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
<input type="text" class="form-control w-80" id="sttrAddr--${pageName}" name="sttrAddr" data-map="STTR_ADDR" readonly />
<input type="text" class="form-control w-px-75" id="sttrZip--${pageName}" name="sttrZip" data-map="STTR_ZIP" readonly />
</div>
<!-- 진술자 상세주소 -->
<div class="col-md-12">
<label for="sttrDaddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세 주소</label>
<input type="text" class="form-control w-87" id="sttrDaddr--${pageName}" name="sttrDaddr" data-map="STTR_DADDR" readonly />
</div>
<!-- 진술자 연락처 -->
<div class="col-md-4">
<label for="sttrCttpc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">연락처</label>
<input type="text" class="form-control w-35" id="sttrCttpc--${pageName}" name="sttrCttpc" data-map="STTR_CTTPC" readonly />
</div>
<!-- 진술자 이메일 -->
<div class="col-md-8">
<label for="sttrEml--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">이메일</label>
<input type="text" class="form-control w-35" id="sttrEml--${pageName}" name="sttrEml" data-map="STTR_EML" readonly />
</div>
<!-- 의견 제출 내용 -->
<div class="col-md-12">
<label for="opnnSbmsnCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출 내용</label>
<textarea type="text" class="form-control w-87" id="opnnSbmsnCn--${pageName}" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="4" data-maxlengthb="4000" readonly>
</textarea>
</div>
<!-- 의견 제출 구분 명 -->
<div class="col-md-4">
<label for="opnnSbmsnSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견 제출 구분</label>
<input type="text" class="form-control w-40" id="opnnSbmsnSeNm--${pageName}" name="opnnSbmsnSeNm" data-map="OPNN_SBMSN_SE_NM" readonly />
</div>
<!-- 의견 제출 요지 -->
<div class="col-md-8">
<label for="opnnSbmsnGist--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출 요지</label>
<input type="text" class="form-control w-80" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" readonly />
</div>
<!-- 담당자 검토 의견 -->
<div class="col-md-12">
<label for="picRvwOpnn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">검토 의견</label>
<textarea class="form-control w-87" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="3" data-maxlengthb="1000" readonly>
</textarea>
</div>
<!-- 첨부 파일 테이블 -->
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped" id="fileList--${pageName}">
<thead>
<th class="text-center" style="width: 24px">NO.</th>
<th class="text-center" style="width: 200px">파일 번호</th>
<th class="text-center">파일 이름</th>
<th class="text-center" style="width: 200px">파일 크기</th>
<th class="text-center" style="width: 120px">다운로드</th>
</thead>
<tbody></tbody>
</table>
</div> <!-- 첨부 파일 테이블 <div class="table-responsive"> -->
</div> <!-- <div class="row g-1"> -->
</div> <!-- <div class="card" style="max-width:1100px;" title="의견제출 정보"> -->
</div> <!-- <div class="col-xl-9 mx-0"> -->
<div class="col-xl-3 mx-0">
<!-- 의견제출 심의 정보 -->
<div class="card" title="심의 정보">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">심의 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnOpnnSbmsnDlbrt--${pageName}" title="의견제출 심의" onclick="fnBtnOpnnSbmsnDlbrt${pageName}();">
의견제출 심의
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 문서 번호 -->
<div class="col-md-12">
<label for="docNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">문서 번호</label>
<input type="text" class="form-control w-50" id="docNo--${pageName}" name="docNo" data-map="DOC_NO" readonly />
</div>
<!-- 답변일시 -->
<div class="col-md-12">
<label for="ansYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">처리 일시</label>
<input type="text" class="form-control w-50" id="ansYmdTm--${pageName}" name="ansYmdTm" data-map="ANS_YMD_TM" readonly />
</div>
<!-- 의견 제출 상태 코드 -->
<div class="col-md-12">
<label for="opnnSbmsnSttsNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">처리 결과</label>
<input type="text" class="form-control w-50" id="opnnSbmsnSttsNm--${pageName}" name="opnnSbmsnSttsNm" data-map="OPNN_SBMSN_STTS_NM" readonly />
</div>
<!-- 답변 내용 -->
<div class="col-md-12">
<label for="ansCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">처리 내용</label>
</div>
<div class="col-md-12">
<textarea type="text" class="form-control w-100" id="ansCn--${pageName}" name="ansCn" data-map="ANS_CN" rows="10" data-maxlengthb="4000">
</textarea>
</div>
</div>
</div> <!-- 의견제출 심의 정보 <div class="card" title="심의 정보"> -->
</div> <!-- <div class="col-xl-3 mx-0"> -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</form>
</div>
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// URL
var prefixUrl = "/sprt/sprt01";
var ${pageName}PrefixUrl = "/sprt/sprt02";
// FormFields
var ${pageName}Fields = new FormFields("#frmEdit--${pageName}");
// 파일 리스트
var $fileListArr = new Array();
/**************************************************************************
* DatasetControl
**************************************************************************/
var ${pageName}Control = new DatasetControl({
prefix : "opnnSbmsnInfo"
prefix : "totalInfoOpnnSbmsn"
, prefixName : "의견제출 정보"
, keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.opnnSbmsnInfo
, formats : {
CRDN_YMD_TM : datetimeFormat
RCPT_YMD : dateFormat
, ANS_YMD_TM : datetimeFormat
}
});
${pageName}Control.onCurrentChange = item => {
// Dataset 셋팅
${pageName}Fields.set(item);
if (item.data.OPNN_ID != null) {
// 첨부파일 조회
fnSearchFileList${pageName}(item.data.OPNN_ID);
}
}
/**************************************************************************
*
**************************************************************************/
// 저장 callback
${pageName}Control.onSave = (resp) => {
if (resp.saved) {
// 의견제출 dialog
${pageName}Control.getOpnnSbmsnInfo = (callMode, params) => {
if (callMode == "create") {
calltitle = "의견제출 등록";
} else if (callMode == "update") {
calltitle = "의견제출 수정";
} else {
return;
}
ajax.get({
url : wctx.url("/excl/excl02/020/info.do")
, data : params
, success : resp => {
resp = resp.replace(/infoPrefix/g, this.prefix)
.replace(/prefixName/g, this.prefixName)
dialog.open({
id : "opnnInfoDialog"
, title : calltitle
, content : resp
, size : "xl"
, onClose : () => { fnRefreshInfo(); } // callback
});
}
});
}
// 삭제 후 재조회
${pageName}Control.onRemoveOpnnSbmsn = (resp) => {
if (resp.saved) {
fnRefreshInfo();
}
}
// 삭제
${pageName}Control.removeOpnnSbmsn = (opnnId) => {
ajax.post({
url : wctx.url("/excl/excl02/010/remove.do")
, data : {opnnId : opnnId}
, success : resp => ${pageName}Control.onRemoveOpnnSbmsn(resp)
});
}
// 저장
${pageName}Control.save = (info) => {
if (!info) return;
// 심의 dialog
${pageName}Control.getOpnnSbmsnDlbrtInfo = (opnnId) => {
ajax.get({
url : wctx.url("/excl/excl02/030/info.do")
, data : { opnnId : opnnId }
, success : resp => {
resp = resp.replace(/infoPrefix/g, this.prefix)
.replace(/prefixName/g, this.prefixName)
dialog.open({
id : "opnnInfoDialog"
, title : "의견제출 답변 처리"
, content : resp
, size : "lg"
});
}
});
}
// 재조회
function fnRefreshInfo() {
let crdnId = $("#crdnId--${pageName}").val();
ajax.get({
url : wctx.url("/sprt/sprt02/030/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data : { crdnId : crdnId }
, success : resp => {
// Dataset 셋팅
${pageName}Control.setData([resp.opnnSbmsnInfo]);
}
});
}
/**************************************************************************
@ -114,22 +296,50 @@
**************************************************************************/
// 의견제출 등록
function fnBtnOpnnSbmsnCreate${pageName}() {
let params = {
crdnId : ${pageName}Control.dataset.getValue("CRDN_ID")
};
${pageName}Control.getOpnnSbmsnInfo("create", params);
}
// 의견제출 수정
function fnBtnOpnnSbmsnUpdate${pageName}() {
let params = {
opnnId : ${pageName}Control.dataset.getValue("OPNN_ID")
};
${pageName}Control.getOpnnSbmsnInfo("update", params);
}
// 의견제출 삭제
function fnBtnOpnnSbmsnRemove${pageName}() {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return
if (opnnId == undefined || opnnId == "") {
return;
}
dialog.alert({
content : "선택한 ${prefixName} 정보를 삭제하시겠습니까?"
, onOK : () => {
${pageName}Control.removeOpnnSbmsn(opnnId);
}
});
}
// 의견제출 심의
function fnBtnOpnnSbmsnDlbrt${pageName}() {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return
if (opnnId == undefined || opnnId == "") {
return;
}
${pageName}Control.getOpnnSbmsnDlbrtInfo(opnnId);
}
// 심의의결서 출력
@ -137,6 +347,49 @@
}
// 첨부파일 조회
function fnSearchFileList${pageName}(opnnId) {
// 의견제출 등록일 경우에는 첨부파일을 조회하지 안는다..
if (opnnId == null || opnnId == "") {
return;
}
// 첨부파일 리스트
ajax.get({
url : "file/list.do"
, data : {
infoType : "110"
, infoKeys : opnnId
, fetchSize : 0
}
, success : resp => {
let fileNo = 0;
let fileList = resp.fileList;
fileList.forEach(function (item, index, array) {
fileNo = index + 1;
let innerHtml = "";
innerHtml += "<tr>";
innerHtml += "<td class='text-center'>" + fileNo + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_ID + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_NM + "</td>";
innerHtml += "<td class='text-center'>" + item.FILE_SIZE + " byte</td>";
innerHtml += "<td class='text-center'>" + "<button class='btn' onclick='fnBtnFileDownload${pageName}(" + item.FILE_ID + ");'><i class='bx bx-download me-1'></i></button>" + "</td>";
innerHtml += "</tr>";
$("#fileList--${pageName} > tbody:last").append(innerHtml);
});
}
});
}
// 첨부파일 다운로드
function fnBtnFileDownload${pageName}(fileID) {
top.location.href = "/file/download.do?fileID=" + fileID;
}
/**************************************************************************
* script 진입
**************************************************************************/

Loading…
Cancel
Save