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 bddb1e4b..b1f68023 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 @@ -172,10 +172,10 @@ public class SndngBean extends AbstractComponent { sndng.setSndngSttsCd("00"); // 00 발송 준비 // 발송 구분 코드에 따른 처리상태 변경 - if (sndng.getSndngSeCd().equals("01")) { - newCrdnSttsCd = "42"; // 사전통보중 - } else if (sndng.getSndngSeCd().equals("10")) { - newCrdnSttsCd = "84"; // 계고장 출력 완료 + if (sndng.getSndngSeCd().equals("01")) { // 사전통지서 + newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지중 + } else if (sndng.getSndngSeCd().equals("10")) { // 계고장 + newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료 } else { newCrdnSttsCd = ""; } @@ -204,47 +204,108 @@ public class SndngBean extends AbstractComponent { if (sndng.getTaskSeCd().equals("BPV") || sndng.getTaskSeCd().equals("PVS")) { // } else if (sndng.getTaskSeCd().equals("DPV") || sndng.getTaskSeCd().equals("ECA") || sndng.getTaskSeCd().equals("TPV")) { - // 기본 데이터 셋팅 - sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID - sndngDtl.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID - sndngDtl.setLevyId(infoCrdnPayer.string("LEVY_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()); // 납기 일자 - - // 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다. - // 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다 - if (sndng.getSndngSeCd().equals("01")) { // 사전통지 - ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 - levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세 - levyAdamt = 0; // 부과 가산금 - levySumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액 - } else { - ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액 - levyPcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세 - levyAdamt = 0; // 부과 가산금 - levySumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액 - } - - 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"); // 삭제 여부 + // 사전통지 발송 등록시 부과대장 등록 ///////////////////////////////////////// + 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")); + } + } 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(); + + // 세외수입 매핑 내역 정보 조회 + 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 { // 예외를 발생시켜서 오류메세지를 보내고 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"); // 삭제 여부 + // 발송 상세(TB_SNDNG_DTL) retSuccess = sndngMapper.insertSndngDtl(sndngDtl); if (!retSuccess) { @@ -267,53 +328,6 @@ public class SndngBean extends AbstractComponent { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback 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] 작업이 정상 처리 되었습니다.";