|
|
|
@ -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] 작업이 정상 처리 되었습니다.";
|
|
|
|
|