우편통합 발송 수정.

main
jjh 1 year ago
parent aea386663b
commit ffec84c997

@ -153,7 +153,7 @@ public class SndngBean extends AbstractComponent {
// 위반 ID // 위반 ID
sndng.setVltnId(sndng.getVltnId()); sndng.setVltnId(sndng.getVltnId());
// 계고장 // 계고장
if (sndng.getSndngSeCd().equals("10")) { if (sndng.getSndngSeCd().equals("01")) {
sndng.setLevyBgngYmd(null); // 부과 시작 일자 sndng.setLevyBgngYmd(null); // 부과 시작 일자
sndng.setLevyEndYmd(null); // 부과 종료 일자 sndng.setLevyEndYmd(null); // 부과 종료 일자
sndng.setDudtYmd(null); // 납기 일자 sndng.setDudtYmd(null); // 납기 일자
@ -176,10 +176,10 @@ public class SndngBean extends AbstractComponent {
sndng.setSndngSttsCd("00"); // 00 발송 준비 sndng.setSndngSttsCd("00"); // 00 발송 준비
// 발송 구분 코드에 따른 처리상태 변경 // 발송 구분 코드에 따른 처리상태 변경
if (sndng.getSndngSeCd().equals("01")) { // 사전통지서 if (sndng.getSndngSeCd().equals("01")) { // 계고장
newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지 발송 newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료
} else if (sndng.getSndngSeCd().equals("10")) { // 계고장 } else if (sndng.getSndngSeCd().equals("02")) { // 사전통지서
newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료 newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지 발송
} else { } else {
newCrdnSttsCd = ""; newCrdnSttsCd = "";
} }
@ -204,8 +204,12 @@ public class SndngBean extends AbstractComponent {
throw new RuntimeException("발송 상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "<p>차량번호 : " + infoCrdnPayer.string("VHRNO")); throw new RuntimeException("발송 상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "<p>차량번호 : " + infoCrdnPayer.string("VHRNO"));
} }
// 사전통지 발송 등록시 부과대장 등록 ///////////////////////////////////////// if (sndng.getSndngSeCd().equals("01")) { // 계고장
if (sndng.getSndngSeCd().equals("01")) { // 사전통지 ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액
levyPcptax = 0; // 부과 본세
levyAdamt = 0; // 부과 가산금
levySumAmt = 0; // 부과 합계 금액
} else if (sndng.getSndngSeCd().equals("02")) { // 사전통지 발송 등록시 부과대장 등록
// 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다. // 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다.
// 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다. // 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다.
ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액
@ -233,18 +237,11 @@ public class SndngBean extends AbstractComponent {
throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다."); throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다.");
} }
// 부과 ID sndngDtl.setLevyId(levy.getLevyId()); // 부과 ID
sndngDtl.setLevyId(levy.getLevyId());
} else { } else {
// 부과 ID sndngDtl.setLevyId(infoCrdnPayer.string("LEVY_ID")); // 부과 ID
sndngDtl.setLevyId(infoCrdnPayer.string("LEVY_ID"));
} }
} else if (sndng.getSndngSeCd().equals("10")) { // 계고장 } else { // 기타
ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액
levyPcptax = 0; // 부과 본세
levyAdamt = 0; // 부과 가산금
levySumAmt = 0; // 부과 합계 금액
} else { // 기타
ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액
levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세 levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세
levyAdamt = 0; // 부과 가산금 levyAdamt = 0; // 부과 가산금
@ -252,7 +249,7 @@ public class SndngBean extends AbstractComponent {
} }
// 사전통지 발송 등록시 세외수입 연계 자료 등록 /////////////////////////////////// // 사전통지 발송 등록시 세외수입 연계 자료 등록 ///////////////////////////////////
if (sndng.getSndngSeCd().equals("01")) { // 사전통지 if (sndng.getSndngSeCd().equals("02")) { // 사전통지
// 세외수입 매칭 내역(TB_ENIS_MTCHG) // 세외수입 매칭 내역(TB_ENIS_MTCHG)
EnisMtchg enisMtchg = new EnisMtchg(); EnisMtchg enisMtchg = new EnisMtchg();
@ -309,20 +306,22 @@ public class SndngBean extends AbstractComponent {
throw new RuntimeException("발송 상세 등록에 실패하였습니다."); throw new RuntimeException("발송 상세 등록에 실패하였습니다.");
} }
// 단속상태이력(TB_CRDN_STTS_HSTRY) if (!newCrdnSttsCd.equals("")) {
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); // 단속상태이력(TB_CRDN_STTS_HSTRY)
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(infoCrdnPayer.string("CRDN_ID")); crdnSttsHstry.setCrdnId(infoCrdnPayer.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(infoCrdnPayer.string("CRDN_STTS_CD")); crdnSttsHstry.setBfrSttsCd(infoCrdnPayer.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(infoCrdnPayer.string("CRDN_STTS_CHG_DT")); crdnSttsHstry.setBfrSttsChgDt(infoCrdnPayer.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId()); crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) { if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
}
} }
} }
@ -374,28 +373,61 @@ public class SndngBean extends AbstractComponent {
// 발송 정보 조회 // 발송 정보 조회
DataObject infoSndng = sndngMapper.selectSndngInfo(sndng.getSndngId()); DataObject infoSndng = sndngMapper.selectSndngInfo(sndng.getSndngId());
if (infoSndng.string("SNDNG_SE_CD").equals("10")) { // 계고장 if (infoSndng.string("SNDNG_SE_CD").equals("01")) { // 계고장
workId = "E"; workId = "E";
} else if (infoSndng.string("TASK_SE_CD").equals("DPV")) { // 장애인전용 } else if (infoSndng.string("TASK_SE_CD").equals("DPV")) { // 장애인전용
if (infoSndng.string("SNDNG_SE_CD").equals("01")) { if (infoSndng.string("SNDNG_SE_CD").equals("02")) { // 사전통지
workId = "2"; workId = "2";
} else { } else {
workId = "7"; workId = "7";
} }
} else if (infoSndng.string("TASK_SE_CD").equals("ECA")) { // 전기차주차 } else if (infoSndng.string("TASK_SE_CD").equals("ECA")) { // 전기차주차
if (infoSndng.string("SNDNG_SE_CD").equals("01")) { if (infoSndng.string("SNDNG_SE_CD").equals("02")) { // 사전통지
workId = "L"; workId = "L";
} else { } else {
workId = "M"; workId = "M";
} }
} }
if (infoSndng.string("SNDNG_SE_CD").equals("10")) { // 계고장 if (infoSndng.string("VLTN_CD").equals("")) {
jobCd = "01";
} else {
jobCd = infoSndng.string("VLTN_CD");
}
if (infoSndng.string("SNDNG_SE_CD").equals("01")) { // 계고장
jobCd = jobCd + "01"; jobCd = jobCd + "01";
} else if (infoSndng.string("SNDNG_SE_CD").equals("01")) { // 사전통지 } else if (infoSndng.string("SNDNG_SE_CD").equals("02")) { // 사전통지
jobCd = jobCd + "02"; jobCd = jobCd + "02";
} else if (infoSndng.string("SNDNG_SE_CD").equals("03")) { // 부과
jobCd = jobCd + "03";
} else if (infoSndng.string("SNDNG_SE_CD").equals("04")) { // 독촉
jobCd = jobCd + "04";
} else if (infoSndng.string("SNDNG_SE_CD").equals("05")) { // 압류예고
jobCd = jobCd + "05";
} else if (infoSndng.string("SNDNG_SE_CD").equals("06")) { // 압류통지
jobCd = jobCd + "06";
} else if (infoSndng.string("SNDNG_SE_CD").equals("09")) { // 체납분
jobCd = jobCd + "09";
} else {
retMessage = "[E] 작업중 발송구분이 지정되지 않았습니다.";
return retMessage;
} }
// String today = infoSndng.string("TODAY");
// String seq = sndngMapper.getEpostSenderRegSeq(today, );
// String conKey = "";
// sToday := Today;
// im_seq := Get_EPOST_SENDER_REG_Seq(sToday, CPSystem_Info.TAXELSE_DEP_CODE + '0000');
// im_con_key := sToday + '-' + CPSystem_Info.TAXELSE_DEP_CODE + '0000' + '-' + im_seq;
//
//
// if regist_gubun = '0' then
// begin
// nSeqNo := Get_EPOST_SENDER_DETAIL_Seq(sToday);
// end;
for (int iLoop = 0; iLoop < sndng.getSndngDtlIDs().length; iLoop++) { for (int iLoop = 0; iLoop < sndng.getSndngDtlIDs().length; iLoop++) {
// 전자우편 접수 상세 // 전자우편 접수 상세
EpostRcptDtl epostRcptDtl = new EpostRcptDtl(); EpostRcptDtl epostRcptDtl = new EpostRcptDtl();

@ -83,7 +83,6 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
@Override @Override
public String createSndngLink(Sndng sndng) { public String createSndngLink(Sndng sndng) {
return sndngBean.createEPost(sndng); return sndngBean.createEPost(sndng);
} }

@ -595,6 +595,7 @@
, S.MDFCN_DT <!-- 수정 일시 --> , S.MDFCN_DT <!-- 수정 일시 -->
, S.MDFR <!-- 수정자 --> , S.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.MDFR) AS MDFR_NM <!-- 수정자 명 --> , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, <include refid="utility.today" /> AS TODAY <!-- 오늘 일자 -->
FROM TB_SNDNG S FROM TB_SNDNG S
LEFT OUTER JOIN TB_VLTN_INFO VI ON (S.VLTN_ID = VI.VLTN_ID AND S.SGG_CD = VI.SGG_CD AND S.TASK_SE_CD = VI.TASK_SE_CD) LEFT OUTER JOIN TB_VLTN_INFO VI ON (S.VLTN_ID = VI.VLTN_ID AND S.SGG_CD = VI.SGG_CD AND S.TASK_SE_CD = VI.TASK_SE_CD)
</sql> </sql>

@ -82,7 +82,6 @@
</th> </th>
<th class="cmn" style="width: 120px;">계고일자</th> <th class="cmn" style="width: 120px;">계고일자</th>
<th class="cmn" style="width: 160px;">계고사유</th> <th class="cmn" style="width: 160px;">계고사유</th>
<th class="cmn" style="width: 280px;">기타내용</th>
<th class="cmn" style="width: 160px;">민원신청번호</th> <th class="cmn" style="width: 160px;">민원신청번호</th>
<th class="cmn" style="width: 160px;">민원접수번호</th> <th class="cmn" style="width: 160px;">민원접수번호</th>
<th class="cmn" style="width: 120px;">민원접수일자</th> <th class="cmn" style="width: 120px;">민원접수일자</th>
@ -114,7 +113,6 @@
</td> </td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_YMD}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_RSN_NM}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{LEVY_EXCL_RSN_NM}</td>
<td class="cmn text-start" onclick="{onclick}" ondblclick="{ondblclick}">{ETC_CN}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_APLY_NO}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_APLY_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_NO}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_NO}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_YMD}</td> <td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{CVLCPT_RCPT_YMD}</td>
@ -247,6 +245,7 @@
if (selected.length < 1) return; if (selected.length < 1) return;
info.crdnIDs = selected.join(","); // 단속 IDs info.crdnIDs = selected.join(","); // 단속 IDs
info.sndngSeCd = "01" // 계고장
info.resndYn = "N"; // 재발송 여부 info.resndYn = "N"; // 재발송 여부
info.delYn = "N"; // 삭제 여부 info.delYn = "N"; // 삭제 여부

@ -29,7 +29,7 @@
<body> <body>
<div class="card m-4 p-3"> <div class="card m-4 p-3">
<form name="frmInputDate" id="frmInputDate" method="post"> <form id="frmInputDate" name="frmInputDate" method="post">
<div class="container-search"> <div class="container-search">
<div class="row g-1"> <div class="row g-1">
<!-- 발송 일자 --> <!-- 발송 일자 -->
@ -90,15 +90,67 @@
var sndngYmd = location.search.split("&")[1].split("=")[1]; var sndngYmd = location.search.split("&")[1].split("=")[1];
var dudtYmd = location.search.split("&")[2].split("=")[1]; var dudtYmd = location.search.split("&")[2].split("=")[1];
function fnOK(){ // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmInputDate").find(".form-date").each(function() {
$(this).on("input", function() {
let value = this.value.replaceAll("-", "");
if (value.length > 7) {
this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
} else if (value.length > 5) {
this.value = value.substring(0, 4) + "-" + value.substring(4);
}
});
});
function inputDateComparison(sndngYmd, dudtYmd) {
let startDate = inputDateSplit(sndngYmd); // 시작일
let endDate = inputDateSplit(dudtYmd); // 종료일
if (typeof startDate == "undefined" || startDate == null || startDate == "") {
alert("시작일이 입력되지 않았습니다.\n시작일을 입력해주세요.");
$("#sndngYmd").focus();
return false;
}
if (typeof endDate == "undefined" || endDate == null || endDate == "") {
alert("종료일이 입력되지 않았습니다.\n종료일을 입력해주세요.");
$("#dudtYmd").focus();
return false;
}
// 입력일을 확인하는 이유는 현재 작성한 일자가 시작일인지 종료일인지 확인하기 위해서이다.
if (startDate > endDate) {
alert("시작일이 종료일보다 이 후 일수는 없습니다.\n다시 선택하여 주시기 바랍니다.");
$("#sndngYmd").focus();
return false;
}
}
// 날짜형식에 "-"이 사용된 경우에 한하여 날짜값에서 "-" 기호를 제거한다.
function inputDateSplit(obj) {
if (obj == "") {
return obj;
} else {
let dateArray = obj.split("-");
return dateArray[0] + dateArray[1] + dateArray[2];
}
}
function fnOK() {
let inputDate = {}; let inputDate = {};
inputDate.sndngYmd = $("#sndngYmd").val(); // 날짜 확인
inputDate.dudtYmd = $("#dudtYmd").val(); if (inputDateComparison($("#sndngYmd").val(), $("#dudtYmd").val())) {
inputDate.divKb = $("input[name='divKb']:checked").val(); inputDate.sndngYmd = $("#sndngYmd").val();
inputDate.dudtYmd = $("#dudtYmd").val();
inputDate.divKb = $("input[name='divKb']:checked").val();
window.opener[callbackFuncName](inputDate); window.opener[callbackFuncName](inputDate);
window.close(); window.close();
}
} }
$(document).ready(function() { $(document).ready(function() {
@ -107,7 +159,7 @@
$("#sndngYmd").datepicker("setDate", sndngYmd); $("#sndngYmd").datepicker("setDate", sndngYmd);
$("#dudtYmd").datepicker("setDate", dudtYmd); $("#dudtYmd").datepicker("setDate", dudtYmd);
}) });
</script> </script>
</body> </body>

Loading…
Cancel
Save