diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java index b1f68023..a4da6fd8 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java @@ -173,7 +173,7 @@ public class SndngBean extends AbstractComponent { // 발송 구분 코드에 따른 처리상태 변경 if (sndng.getSndngSeCd().equals("01")) { // 사전통지서 - newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지중 + newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지 발송 } else if (sndng.getSndngSeCd().equals("10")) { // 계고장 newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료 } else { @@ -200,111 +200,104 @@ public class SndngBean extends AbstractComponent { throw new RuntimeException("발송 상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "

차량번호 : " + infoCrdnPayer.string("VHRNO")); } - // 주정차 위반, 전용차로 위반 - if (sndng.getTaskSeCd().equals("BPV") || sndng.getTaskSeCd().equals("PVS")) { - // - } else if (sndng.getTaskSeCd().equals("DPV") || sndng.getTaskSeCd().equals("ECA") || sndng.getTaskSeCd().equals("TPV")) { - // 사전통지 발송 등록시 부과대장 등록 ///////////////////////////////////////// - if (sndng.getSndngSeCd().equals("01")) { // 사전통지 - // 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다. - // 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다. - ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 - levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세 - levyAdamt = 0; // 부과 가산금 - levySumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액 - - // 부과 ID가 없다면 부과대장 등록 - if (infoCrdnPayer.string("LEVY_ID").equals("")) { - // 부과 대장(TB_LEVY) - Levy levy = new Levy(); - - levy.setSggCd(infoCrdnPayer.string("SGG_CD")); // 시군구 코드 - levy.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID - levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액 - levy.setLevyPcptax(levyPcptax); // 부과 금액 - levy.setLevyAdamt(levyAdamt); // 가산 금액 - levy.setSumAmt(levySumAmt); // 합계 금액 - - // 부과 대장에 등록한다. - levyBean.createLevy(levy); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다."); - } - - // 부과 ID - sndngDtl.setLevyId(levy.getLevyId()); - } else { - // 부과 ID - sndngDtl.setLevyId(infoCrdnPayer.string("LEVY_ID")); + // 사전통지 발송 등록시 부과대장 등록 ///////////////////////////////////////// + if (sndng.getSndngSeCd().equals("01")) { // 사전통지 + // 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다. + // 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다. + ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 + levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세 + levyAdamt = 0; // 부과 가산금 + levySumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액 + + // 부과 ID가 없다면 부과대장 등록 + if (infoCrdnPayer.string("LEVY_ID").equals("")) { + // 부과 대장(TB_LEVY) + Levy levy = new Levy(); + + levy.setSggCd(infoCrdnPayer.string("SGG_CD")); // 시군구 코드 + levy.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID + levy.setRtpyrId(infoCrdnPayer.string("RTPYR_ID")); // 납부자 ID + levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액 + levy.setLevyPcptax(levyPcptax); // 부과 금액 + levy.setLevyAdamt(levyAdamt); // 가산 금액 + levy.setSumAmt(levySumAmt); // 합계 금액 + + // 부과 대장에 등록한다. + levyBean.createLevy(levy); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다."); } - } else if (sndng.getSndngSeCd().equals("10")) { // 계고장 - ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 - levyPcptax = 0; // 부과 본세 - levyAdamt = 0; // 부과 가산금 - levySumAmt = 0; // 부과 합계 금액 + + // 부과 ID + sndngDtl.setLevyId(levy.getLevyId()); } else { - ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 - levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세 - levyAdamt = 0; // 부과 가산금 - levySumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액 + // 부과 ID + sndngDtl.setLevyId(infoCrdnPayer.string("LEVY_ID")); } + } else if (sndng.getSndngSeCd().equals("10")) { // 계고장 + ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 + levyPcptax = 0; // 부과 본세 + levyAdamt = 0; // 부과 가산금 + levySumAmt = 0; // 부과 합계 금액 + } else { // 기타 + ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 + levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세 + levyAdamt = 0; // 부과 가산금 + levySumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액 + } - // 사전통지 발송 등록시 세외수입 연계 자료 등록 /////////////////////////////////// - if (sndng.getSndngSeCd().equals("01")) { // 사전통지 - // 세외수입 매칭 내역(TB_ENIS_MTCHG) - EnisMtchg enisMtchg = new EnisMtchg(); + // 사전통지 발송 등록시 세외수입 연계 자료 등록 /////////////////////////////////// + if (sndng.getSndngSeCd().equals("01")) { // 사전통지 + // 세외수입 매칭 내역(TB_ENIS_MTCHG) + EnisMtchg enisMtchg = new EnisMtchg(); - // 세외수입 매핑 내역 정보 조회 - DataObject infoEnisMtchg = enisMtchgBean.getEnisMtchgInfo(sndng.getCrdnIDs()[iLoop]); - // 기존에 등록된 자료가 있다면 삭제 처리 - if (infoEnisMtchg != null) { - enisMtchg.setCrdnId(infoCrdnPayer.string("CRDN_ID")); + // 세외수입 매핑 내역 정보 조회 + DataObject infoEnisMtchg = enisMtchgBean.getEnisMtchgInfo(sndng.getCrdnIDs()[iLoop]); + // 기존에 등록된 자료가 있다면 삭제 처리 + if (infoEnisMtchg != null) { + enisMtchg.setCrdnId(infoCrdnPayer.string("CRDN_ID")); - enisMtchgBean.removeEnisMtchg(enisMtchg); - } + enisMtchgBean.removeEnisMtchg(enisMtchg); + } - enisMtchg.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID - enisMtchg.setCrdnDt(infoCrdnPayer.string("CRDN_YMD_TM_MASK")); // 단속 일시 - enisMtchg.setStdgNm(infoCrdnPayer.string("CRDN_STDG_NM")); // 법정동 명 - enisMtchg.setCrdnPlc(infoCrdnPayer.string("CRDN_PLC")); // 단속 장소 - enisMtchg.setLevyAmt(levyPcptax); // 부과 금액 - enisMtchg.setAdtnAmt(levyAdamt); // 가산 금액 - enisMtchg.setSumAmt(levySumAmt); // 합계 금액 - enisMtchg.setPrcsSttsCd("01"); // 처리 상태 코드 - - // 세외수입 매칭 내역을 등록한다. - retSuccess = enisMtchgBean.createEnisMtchg(enisMtchg); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); - } + enisMtchg.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID + enisMtchg.setCrdnDt(infoCrdnPayer.string("CRDN_YMD_TM_MASK")); // 단속 일시 + enisMtchg.setStdgNm(infoCrdnPayer.string("CRDN_STDG_NM")); // 법정동 명 + enisMtchg.setCrdnPlc(infoCrdnPayer.string("CRDN_PLC")); // 단속 장소 + enisMtchg.setLevyAmt(levyPcptax); // 부과 금액 + enisMtchg.setAdtnAmt(levyAdamt); // 가산 금액 + enisMtchg.setSumAmt(levySumAmt); // 합계 금액 + enisMtchg.setPrcsSttsCd("01"); // 처리 상태 코드 + + // 세외수입 매칭 내역을 등록한다. + retSuccess = enisMtchgBean.createEnisMtchg(enisMtchg); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); } - } else { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("발송 상세 등록 작업중 업무 구분 코드가 확인되지 않았습니다."); } // 기본 데이터 셋팅 - sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID - sndngDtl.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID - sndngDtl.setVltnCd(infoCrdnPayer.string("VLTN_CD")); // 위반 코드 - sndngDtl.setVhrno(infoCrdnPayer.string("VHRNO")); // 차량번호 - sndngDtl.setCrdnDt(infoCrdnPayer.string("CRDN_YMD_TM_MASK")); // 단속 일시 - sndngDtl.setCrdnPlc(infoCrdnPayer.string("CRDN_PLC")); // 단속 장소 - sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자 - sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자 - sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액 - sndngDtl.setLevyPcptax(levyPcptax); // 부과 본세 - sndngDtl.setLevyAdamt(levyAdamt); // 부과 가산금 - sndngDtl.setLevySumAmt(levySumAmt); // 부과 합계 금액 - sndngDtl.setRtpyrNm(infoCrdnPayer.string("RTPYR_NM")); // 납부자 명 - sndngDtl.setRtpyrNo(infoCrdnPayer.string("RTPYR_NO")); // 납부자 번호 - sndngDtl.setRtpyrAddr(infoCrdnPayer.string("ADDR")); // 납부자 주소 - sndngDtl.setRtpyrDtlAddr(infoCrdnPayer.string("DTL_ADDR")); // 납부자 상세 주소 - sndngDtl.setRtpyrZip(infoCrdnPayer.string("ZIP")); // 납부자 우편번호 - sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전 - sndngDtl.setDelYn("N"); // 삭제 여부 + sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID + sndngDtl.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID + sndngDtl.setVltnCd(infoCrdnPayer.string("VLTN_CD")); // 위반 코드 + sndngDtl.setVhrno(infoCrdnPayer.string("VHRNO")); // 차량번호 + sndngDtl.setCrdnDt(infoCrdnPayer.string("CRDN_YMD_TM_MASK")); // 단속 일시 + sndngDtl.setCrdnPlc(infoCrdnPayer.string("CRDN_PLC")); // 단속 장소 + sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자 + sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자 + sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액 + sndngDtl.setLevyPcptax(levyPcptax); // 부과 본세 + sndngDtl.setLevyAdamt(levyAdamt); // 부과 가산금 + sndngDtl.setLevySumAmt(levySumAmt); // 부과 합계 금액 + sndngDtl.setRtpyrNm(infoCrdnPayer.string("RTPYR_NM")); // 납부자 명 + sndngDtl.setRtpyrNo(infoCrdnPayer.string("RTPYR_NO")); // 납부자 번호 + sndngDtl.setRtpyrAddr(infoCrdnPayer.string("ADDR")); // 납부자 주소 + sndngDtl.setRtpyrDtlAddr(infoCrdnPayer.string("DTL_ADDR")); // 납부자 상세 주소 + sndngDtl.setRtpyrZip(infoCrdnPayer.string("ZIP")); // 납부자 우편번호 + sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전 + sndngDtl.setDelYn("N"); // 삭제 여부 // 발송 상세(TB_SNDNG_DTL) retSuccess = sndngMapper.insertSndngDtl(sndngDtl); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp index 0d2f921b..8c27ebca 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp @@ -22,9 +22,27 @@ - + + + + + + @@ -198,6 +216,23 @@ fn_securityModeToggle($("#securityMode--top").is(":checked")); } + // 종적결과 등록 + createSndbk${pageName} = (params) => { + // 선택된 자료의 발송 상세 ID 추가 + let selected = ${pageName}Control.dataset.getKeys("selected"); + + if (selected.length < 1) return; + + params.sndngDtlIDs = selected.join(","); // 발송 상세 IDs + params.delYn = "N"; // 삭제 여부 + +// ajax.post({ +// url : wctx.url(${pageName}PrefixUrl + "/createCrdnPayer.do") +// , data : params || {} +// , success : resp => ${pageName}Control.onSave(resp) +// }); + } + /************************************************************************** * 초기 셋팅 **************************************************************************/ @@ -245,22 +280,52 @@ /************************************************************************** * 버튼 clickEvent **************************************************************************/ - // 엑셀 + // 엑셀 저장 fnExcel${pageName} = () => { } - // 계고장 출력 - fnPrint${pageName} = () => { - let params = ${pageName}Fields.get(); + // 세외수입 등록 + fnCreateNxrp${pageName} = () => { - // 선택된 자료의 발송 상세 ID 추가 - let selected = ${pageName}Control.dataset.getKeys("selected"); + } - if (selected.length < 1) return; + // 매치정보 등록 + fnUpdateNxrpMtchg${pageName} = () => { + + } + + // 우편통합 발송 + fnCreateEPost${pageName} = () => { + + } + + // 사전통지 출력 + fnPrintAdvntce${pageName} = () => { + + } + + // 등기번호 등록 + fnCreateRgNo${pageName} = () => { + + } + + // 종적결과 확인 + fnCreateSndbk${pageName} = () => { + // validate 확인 + if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; + + dialog.alert({ + content : "종적결과를 확인하시겠습니까?" + , onOK : () => { + createSndbk${pageName}(${pageName}Fields.get()); + } + }); + } + + // 미부과건 확인 + fnLevyIdnty${pageName} = () => { - params.sndngDtlIDs = selected.join(","); // 발송 상세 IDs - params.delYn = "N"; // 삭제 여부 } /**************************************************************************