발송 상세 등록 수정.

main
jjh 1 year ago
parent e9d998dbba
commit 02ea3a09fd

@ -172,10 +172,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"; // 사전통보 newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지
} else if (sndng.getSndngSeCd().equals("10")) { } else if (sndng.getSndngSeCd().equals("10")) { // 계고장
newCrdnSttsCd = "84"; // 계고장 출력 완료 newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료
} else { } else {
newCrdnSttsCd = ""; newCrdnSttsCd = "";
} }
@ -204,47 +204,108 @@ public class SndngBean extends AbstractComponent {
if (sndng.getTaskSeCd().equals("BPV") || sndng.getTaskSeCd().equals("PVS")) { if (sndng.getTaskSeCd().equals("BPV") || sndng.getTaskSeCd().equals("PVS")) {
// //
} else if (sndng.getTaskSeCd().equals("DPV") || sndng.getTaskSeCd().equals("ECA") || sndng.getTaskSeCd().equals("TPV")) { } else if (sndng.getTaskSeCd().equals("DPV") || sndng.getTaskSeCd().equals("ECA") || sndng.getTaskSeCd().equals("TPV")) {
// 기본 데이터 셋팅 // 사전통지 발송 등록시 부과대장 등록 /////////////////////////////////////////
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID if (sndng.getSndngSeCd().equals("01")) { // 사전통지
sndngDtl.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID // 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다.
sndngDtl.setLevyId(infoCrdnPayer.string("LEVY_ID")); // 부과 ID // 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다.
sndngDtl.setVltnCd(infoCrdnPayer.string("VLTN_CD")); // 위반 코드 ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액
sndngDtl.setVhrno(infoCrdnPayer.string("VHRNO")); // 차량번호 levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세
sndngDtl.setCrdnDt(infoCrdnPayer.string("CRDN_YMD_TM_MASK")); // 단속 일시 levyAdamt = 0; // 부과 가산금
sndngDtl.setCrdnPlc(infoCrdnPayer.string("CRDN_PLC")); // 단속 장소 levySumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자 // 부과 ID가 없다면 부과대장 등록
if (infoCrdnPayer.string("LEVY_ID").equals("")) {
// 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다. // 부과 대장(TB_LEVY)
// 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다 Levy levy = new Levy();
if (sndng.getSndngSeCd().equals("01")) { // 사전통지
ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 levy.setSggCd(infoCrdnPayer.string("SGG_CD")); // 시군구 코드
levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세 levy.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID
levyAdamt = 0; // 부과 가산금 levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액
levySumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액 levy.setLevyPcptax(levyPcptax); // 부과 금액
} else { levy.setLevyAdamt(levyAdamt); // 가산 금액
ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 levy.setSumAmt(levySumAmt); // 합계 금액
levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세
levyAdamt = 0; // 부과 가산금 // 부과 대장에 등록한다.
levySumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액 levyBean.createLevy(levy);
} if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액 throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다.");
sndngDtl.setLevyPcptax(levyPcptax); // 부과 본세 }
sndngDtl.setLevyAdamt(levyAdamt); // 부과 가산금
sndngDtl.setLevySumAmt(levySumAmt); // 부과 합계 금액 // 부과 ID
sndngDtl.setRtpyrNm(infoCrdnPayer.string("RTPYR_NM")); // 납부자 명 sndngDtl.setLevyId(levy.getLevyId());
sndngDtl.setRtpyrNo(infoCrdnPayer.string("RTPYR_NO")); // 납부자 번호 } else {
sndngDtl.setRtpyrAddr(infoCrdnPayer.string("ADDR")); // 납부자 주소 // 부과 ID
sndngDtl.setRtpyrDtlAddr(infoCrdnPayer.string("DTL_ADDR")); // 납부자 상세 주소 sndngDtl.setLevyId(infoCrdnPayer.string("LEVY_ID"));
sndngDtl.setRtpyrZip(infoCrdnPayer.string("ZIP")); // 납부자 우편번호 }
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전 } else if (sndng.getSndngSeCd().equals("10")) { // 계고장
sndngDtl.setDelYn("N"); // 삭제 여부 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();
// 세외수입 매핑 내역 정보 조회
DataObject infoEnisMtchg = enisMtchgBean.getEnisMtchgInfo(sndng.getCrdnIDs()[iLoop]);
// 기존에 등록된 자료가 있다면 삭제 처리
if (infoEnisMtchg != null) {
enisMtchg.setCrdnId(infoCrdnPayer.string("CRDN_ID"));
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("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
}
}
} else { } else {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("발송 상세 등록 작업중 업무 구분 코드가 확인되지 않았습니다."); 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"); // 삭제 여부
// 발송 상세(TB_SNDNG_DTL) // 발송 상세(TB_SNDNG_DTL)
retSuccess = sndngMapper.insertSndngDtl(sndngDtl); retSuccess = sndngMapper.insertSndngDtl(sndngDtl);
if (!retSuccess) { if (!retSuccess) {
@ -267,53 +328,6 @@ public class SndngBean extends AbstractComponent {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
} }
// 부과 등록 및 세외수입 등록
if (sndng.getTaskSeCd().equals("DPV") || sndng.getTaskSeCd().equals("ECA") || sndng.getTaskSeCd().equals("TPV")) {
// 부과 대장(TB_LEVY)
if (sndng.getSndngSeCd().equals("01")) { // 사전통지
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);
}
// 세외수입 매칭 내역(TB_ENIS_MTCHG)
EnisMtchg enisMtchg = new EnisMtchg();
// 세외수입 매핑 내역 정보 조회
DataObject infoEnisMtchg = enisMtchgBean.getEnisMtchgInfo(sndng.getCrdnIDs()[iLoop]);
// 기존에 등록된 자료가 있다면 삭제 처리
if (infoEnisMtchg != null) {
enisMtchg.setCrdnId(infoCrdnPayer.string("CRDN_ID"));
enisMtchgBean.removeEnisMtchg(enisMtchg);
}
enisMtchg.setCrdnId(infoCrdnPayer.string("CRDN_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("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다.");
}
}
} }
retMessage = "[S] 작업이 정상 처리 되었습니다."; retMessage = "[S] 작업이 정상 처리 되었습니다.";

Loading…
Cancel
Save