1. 과태료 감경 관리 수정.

main
jjh 9 months ago
parent 6f0dca7fe2
commit dec3c1780d

@ -285,7 +285,8 @@ public class Excl02Controller extends ApplicationController {
* }</pre>
*/
public ModelAndView getOpinionSubmissionAnswerInfo(LevyExclQuery req) {
DataObject opnnSbmsnInfo = opnnSbmsnService.getOpnnSbmsnInfo(req);
//
DataObject info = opnnSbmsnService.getOpnnSbmsnInfo(req);
boolean json = jsonResponse();
@ -302,7 +303,7 @@ public class Excl02Controller extends ApplicationController {
.addObject("FIM033List", commonCodes.get("FIM033")) // 의견 제출 구분 코드(OPNN_SBMSN_SE_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("opnnSbmsnInfo", json ? opnnSbmsnInfo : toJson(opnnSbmsnInfo))
.addObject("opnnSbmsnInfo", json ? info : toJson(info))
;
}

@ -232,7 +232,7 @@ public class LevyBean extends AbstractComponent {
levy.setRdcamtAdamt(0); // 감액 가산금
levy.setTxtnThing(crdnInfo.string("VHRNO")); // 과세 물건
levy.setMngItem1(crdnInfo.string("CRDN_YMD_TM_MASK")); // 관리 아이템1 - 위반일시
levy.setMngItem2(crdnInfo.string("CRDN_PLC")); // 관리 아이템2 - 장소
levy.setMngItem2(crdnInfo.string("CRDN_STDG_NM") + " " + crdnInfo.string("CRDN_PLC")); // 관리 아이템2 - 장소
levy.setMngItem3(crdnInfo.string("VLTN_LAW_NM") + " " + crdnInfo.string("VLTN_LAW1") + " " + crdnInfo.string("VLTN_LAW2")); // 관리 아이템3 - 법령
levy.setMngItem4(crdnInfo.string("VLTN_ARTCL")); // 관리 아이템4 - 위반항목
levy.setMngItem5(""); // 관리 아이템5

@ -169,14 +169,14 @@ public class Levy02Controller extends ApplicationController {
*/
public ModelAndView getRductInfo(LevyQuery req) {
//
DataObject rductInfo = rductService.getRductInfo(req);
DataObject info = rductService.getRductInfo(req);
// 등록을 호출하였지만 등록된 감경 ID가 있는지 확인.
if (req.getCallPurpose().equals("create") && !rductInfo.string("RDUCT_ID").equals("")) {
if (req.getCallPurpose().equals("create") && !info.string("RDUCT_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView");
return mav.addObject("rtnMsg", "이미 등록된 과태료 감경 정보가 있습니다.");
} else if (req.getCallPurpose().equals("create") && rductInfo.string("RTPYR_ID").equals("")) {
} else if (req.getCallPurpose().equals("create") && info.string("RTPYR_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView");
return mav.addObject("rtnMsg", "납부자 정보가 없습니다.");
@ -192,7 +192,7 @@ public class Levy02Controller extends ApplicationController {
.addObject("pageName", "levy02020")
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("FIM019List", commonCodes.get("FIM019")) // 감경 사유 구분 코드(RDUCT_RSN_CD)
.addObject("rductInfo", json ? rductInfo : toJson(rductInfo))
.addObject("rductInfo", json ? info : toJson(info))
;
}
}

@ -974,13 +974,13 @@
, 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
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.VLTN_ID <!-- 위반 ID -->
, C.GPS_X
, C.GPS_Y
, C.ATCH_FILE_CNT

@ -192,7 +192,7 @@
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, C.VHRNO <!-- 차량 번호 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_RDUCT_RT <!-- 과태료 감경 율 -->
, C.FFNLG_RDUCT_RT AS WKSN_RDUCT_RT <!-- 과태료 감경 율 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.ADVNTCE_AMT <!-- 사전통지금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
@ -292,8 +292,8 @@
</update>
<update id="deleteRduct" parameterType="map">/* 과태료 감경 대장 삭제(rductMapper.deleteRduct) */
UPDATE TB_RDUCT SET
DEL_YN = 'Y' <!-- 삭제 여부 -->
UPDATE TB_RDUCT
SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{rduct.modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{rduct.delRsn} <!-- 삭제 사유 -->
@ -336,15 +336,13 @@
<where>
<if test="rductId != null">
AND R.RDUCT_ID = #{rductId} <!-- 감경 ID -->
</if>
<if test="delYN != null">
AND R.DEL_YN = #{delYN} <!-- 삭제 여부 -->
</if>
</if>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
<if test="delYN != null">
AND C.DEL_YN = #{delYN} <!-- 삭제 여부 -->
</if>
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
</if>
</where>
</select>

@ -201,7 +201,7 @@
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="pvs" style="width: 140px;" onclick="searchFromGridTitle('CRDN_SPAREA_CD', this.innerText, 'codeValue', 'FIM007');">단속특별구역</th>
<th class="eca" style="width: 140px;" onclick="searchFromGridTitle('USE_FUEL_CD', this.innerText, 'codeValue', 'LVS005');">사용연료</th>

@ -239,7 +239,7 @@
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="pvs" style="width: 140px;" onclick="searchFromGridTitle('CRDN_SPAREA_CD', this.innerText, 'codeValue', 'FIM007');">단속특별구역</th>

@ -180,7 +180,7 @@
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="pvs" style="width: 140px;" onclick="searchFromGridTitle('CRDN_SPAREA_CD', this.innerText, 'codeValue', 'FIM007');">단속특별구역</th>
<th class="eca" style="width: 140px;" onclick="searchFromGridTitle('USE_FUEL_CD', this.innerText, 'codeValue', 'LVS005');">사용연료</th>

@ -210,7 +210,7 @@
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('CVLCPT_RCPT_YMD', this.innerText, 'ymd', '');">민원접수일자</th>

@ -224,7 +224,6 @@
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">과태료금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_PCPTAX', this.innerText, 'match', 'part');">부과본세</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('LEVY_ADAMT', this.innerText, 'match', 'part');">부과가산금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('INSPY_INT', this.innerText, 'match', 'part');">분납이자</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_PCPTAX', this.innerText, 'match', 'part');">수납본세</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RCVMT_ADAMT', this.innerText, 'match', 'part');">수납가산금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RDCAMT_PCPTAX', this.innerText, 'match', 'part');">감액본세</th>
@ -245,7 +244,7 @@
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'part');">최초금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속원금</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RTPYR_SE_CD', this.innerText, 'codeValue', 'FIM011');">납부자구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('RTPYR_NO', this.innerText, 'ymd', '');">납부자번호</th>
@ -279,7 +278,6 @@
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{FFNLG_AMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_PCPTAX}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_ADAMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{INSPY_INT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_PCPTAX}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RCVMT_ADAMT}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{RDCAMT_PCPTAX}</td>
@ -317,19 +315,19 @@
</template>
<template id="${infoPrefix}NotFound--${pageName}">
<tr class="bpv">
<td valign="top" colspan="55" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="54" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="dpv">
<td valign="top" colspan="55" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="54" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="eca">
<td valign="top" colspan="55" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="54" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="pvs">
<td valign="top" colspan="55" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="54" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
<tr class="tpv">
<td valign="top" colspan="55" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="54" class="dataTables_empty text-center">${prefixName} 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>

@ -138,7 +138,6 @@
</div>
<!-- / 업무 버튼 및 건수 표시 -->
<!-- DataTables(그리드) -->
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
@ -167,7 +166,7 @@
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('CRDN_STDG_NM', this.innerText, 'match', 'part');">단속법정동</th>
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'perfect');">단속금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'perfect');">단속금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('RDUCT_AMT', this.innerText, 'match', 'perfect');">감경금액</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_AMT', this.innerText, 'match', 'perfect');">과태료금액</th>
<th class="cmn text-orange" style="width: 120px;">미납금액</th>
@ -321,7 +320,7 @@
});
// 삭제 버튼
$("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
$("#btnRemoveRduct--${pageName}").prop("disabled", keys.length < 1);
// DataTables(그리드) 전체 선택(checkbox)
if (keys.length < 1) {
@ -354,7 +353,7 @@
// 삭제 callback
$P.control.onRemove = (resp) => {
let btnTitle = $("#btnRemove--${pageName}").attr("title");
let btnTitle = $("#btnRemoveRduct--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
// 메시지 출력
@ -489,7 +488,7 @@
$P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {};
params[$P.control.prefixed("IDs")] = selected.join(","); // IDs
params[$P.control.prefixed("Ids")] = selected.join(","); // Ids
params.delRsn = obj.reason; // 삭제 사유
$P.control.remove(params);
@ -559,15 +558,15 @@
}
// 감경 수정 버튼 이벤트
$P.fnUpdateRduct = () => {
$P.fnUpdateRduct = (title) => {
// 감경 ID
let rductId = $P.control.dataset.getValue("RDUCT_ID");
// 감경 ID 가 없다면.. return
if (typeof rductId == "undefined" || rductId == null || rductId == "") return;
let params = {
title : title
, callPurpose : "update"
callPurpose : "update"
, title : title
, sggCd : $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rductId : rductId // 감경 ID
@ -577,7 +576,7 @@
}
// 감경 삭제 버튼 이벤트
$P.fnRemoveRduct = () => {
$P.fnRemoveRduct = (title) => {
// 선택 자료
let selected = $P.control.dataset.getKeys("selected");

@ -15,6 +15,7 @@
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="rductId--${pageName}" name="rductId" data-map="RDUCT_ID" />
<div class="row g-1">
<!-- 납부자 명 -->
@ -29,7 +30,7 @@
</div>
<!-- 과태료 단속 금액 -->
<div class="col-md-6">
<label for="ffnlgCrdnAmt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">단속금</label>
<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-20 text-end" id="ffnlgCrdnAmt--${pageName}" name="ffnlgCrdnAmt" data-map="FFNLG_CRDN_AMT" data-fmt-type="number" readonly /> *
<input type="text" class="form-control w-10 text-end" id="wksnRductRt--${pageName}" name="wksnRductRt" data-map="WKSN_RDUCT_RT" data-fmt-type="number" readonly /> %
</div>
@ -133,6 +134,7 @@
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
dialog.alert({
content : showMessage
, onOK : () => { }
@ -170,9 +172,6 @@
// validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 버튼 title
let btnTitle = $("#btnSave--${pageName}").attr("title");
// 감경 사유
let rductRsnCd = $("#rductRsnCd--${pageName} option:selected").val();
let rductRsnNm = $("#rductRsnCd--${pageName} option:selected").text();

@ -214,7 +214,7 @@
<th class="cmn" style="width: 280px;" onclick="searchFromGridTitle('CRDN_PLC', this.innerText, 'match', 'part');">단속장소</th>
<th class="bpv" style="width: 280px;" onclick="searchFromGridTitle('DTL_CRDN_PLC', this.innerText, 'match', 'part');">상세단속장소</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('FFNLG_CRDN_AMT', this.innerText, 'match', 'part');">단속금</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('CRDN_STTS_CD', this.innerText, 'codeValue', 'FIM010');">처리상태</th>
<th class="pvs" style="width: 140px;" onclick="searchFromGridTitle('CRDN_SPAREA_CD', this.innerText, 'codeValue', 'FIM007');">단속특별구역</th>
<th class="eca" style="width: 140px;" onclick="searchFromGridTitle('USE_FUEL_CD', this.innerText, 'codeValue', 'LVS005');">사용연료</th>

@ -369,7 +369,7 @@
} else {
dialog.open({
id : $P.rductControl.prefixed("Dialog")
, title : params.btnTitle
, title : params.title
, content : resp
, size : "lg"
, onClose : () => { $P.refreshDataInfo(); }
@ -392,7 +392,7 @@
// 자료 재조회
if (resp.saved) {
$P.refreshDataInfo(); // 자료 재조회
$P.refreshDataInfo();
}
}

Loading…
Cancel
Save