발송 수정 및 소스 정리.

main
jjh 1 year ago
parent 2c353fac25
commit 4859ab0b7a

@ -32,6 +32,36 @@ public interface SndngService {
*/
List<DataObject> getWrngSndngTrgts(SndbQuery req);
/** .
* @param sndng
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String createSndng(Sndng sndng);
/** .
* @param req
* @return
@ -86,15 +116,6 @@ public interface SndngService {
*/
List<DataObject> getSndngDtls(SndbQuery req);
/** .
* @param sndng
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String createSndng(Sndng sndng);
/** .
* @param sndng
* @return

@ -145,6 +145,220 @@ public class SndngBean extends AbstractComponent {
return sndngMapper.selectSndbkList(req);
}
/** . ()
* @param sndng
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String createSndngNxrpLink(Sndng sndng) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지
String newCrdnSttsCd = ""; // 단속 상태 코드
int ffnlgAmt = 0; // 과태료 금액
int pcptax = 0; // 본세
int adamt = 0; // 가산금
int sumAmt = 0; // 합계 금액
// 사용자 정보
DataObject userInfo = userBean.getUserInfo(currentUser().getId());
sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
sndng.setVltnId(sndng.getVltnId()); // 위반 ID
// 계고장
if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) {
sndng.setLevyBgngYmd(null); // 부과 시작 일자
sndng.setLevyEndYmd(null); // 부과 종료 일자
sndng.setDudtYmd(null); // 납기 일자
newCrdnSttsCd = "84"; // 단속 상태 코드 - 84 계고장 출력 완료
} else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) {
newCrdnSttsCd = "42"; // 단속 상태 코드 - 42 사전통지 발송
} else {
newCrdnSttsCd = "";
}
// 발송 등록 구분 코드
if (sndng.getTnocs() == 1) {
sndng.setSndngRegSeCd("02"); // 개별
} else {
sndng.setSndngRegSeCd("01"); // 일괄
}
// 재발송 여부
if (sndng.getResndYn() == null) {
sndng.setResndYn("N");
}
// 삭제 여부
if (sndng.getDelYn() == null) {
sndng.setDelYn("N");
}
// 발송 상태 코드
sndng.setSndngSttsCd("00"); // 00 발송 준비
// 발송 등록
retSuccess = sndngMapper.insertSndng(sndng);
if (!retSuccess) {
throw new RuntimeException("발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
for (int iLoop = 0; iLoop < sndng.getCrdnIDs().length; iLoop++) {
// 단속, 납부자 정보 조회
DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerTrgtInfo(sndng.getCrdnIDs()[iLoop]);
if (crdnPayerInfo == null) {
throw new RuntimeException("발송상세 등록 작업중 단속 정보가 확인되지 않았습니다." + "<p>단속ID : " + sndng.getCrdnIDs()[iLoop]); // 예외를 발생시켜서 DB Rollback
}
if (crdnPayerInfo.string("RTPYR_ID").equals("")) {
throw new RuntimeException("발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "<p>차량번호 : " + crdnPayerInfo.string("VHRNO")); // 예외를 발생시켜서 DB Rollback
}
// 발송 상세 등록
SndngDtl sndngDtl = new SndngDtl();
if (sndng.getSndngSeCd().equals("11") || sndng.getSndngSeCd().equals("12")) { // 계고장
ffnlgAmt = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 최초 단속 금액
pcptax = 0;
adamt = 0;
sumAmt = 0;
} else if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) { // 사전통지
// 부과 ID가 없다면 부과대장 등록
if (crdnPayerInfo.string("LEVY_ID").equals("")) {
// 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다.
// 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다.
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 본세
adamt = 0; // 부과 가산금
sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 합계 금액
// 부과 대장(TB_LEVY)
Levy levy = new Levy();
levy.setSggCd(crdnPayerInfo.string("SGG_CD")); // 시군구 코드
levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
levy.setRtpyrId(crdnPayerInfo.string("RTPYR_ID")); // 납부자 ID
levy.setInstCd(userInfo.string("NSTT_CD")); // 자치단체 코드
levy.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액
levy.setLevyPcptax(pcptax); // 부과 금액
levy.setLevyAdamt(adamt); // 가산 금액
levy.setSumAmt(sumAmt); // 합계 금액
// 부과 대장(TB_LEVY)에 등록
levyBean.createLevy(levy);
if (!retSuccess) {
throw new RuntimeException("발송 상세 등록 작업중 부과대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
sndngDtl.setLevyId(levy.getLevyId()); // 부과 ID
} else {
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("PCPTAX").intValue(); // 부과 본세
adamt = 0; // 부과 가산금
sumAmt = crdnPayerInfo.number("SUM_AMT").intValue(); // 부과 합계 금액
sndngDtl.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID
}
} else {
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("PCPTAX").intValue(); // 부과본세 - 수납본세 - 감액본세
adamt = crdnPayerInfo.number("ADAMT").intValue(); // 부과가산금 - 수납가산금 - 감액가산금
sumAmt = crdnPayerInfo.number("SUM_AMT").intValue(); // 합계 금액
}
// 사전통지 발송 등록시 세외수입 연계 자료 등록 ///////////////////////////////////
if (sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("02")) {
// 세외수입 매칭 내역(TB_ENIS_MTCHG)
EnisMtchg enisMtchg = new EnisMtchg();
// 세외수입 매핑 내역 정보 조회
DataObject infoEnisMtchg = enisMtchgBean.getEnisMtchgInfo(sndng.getCrdnIDs()[iLoop]);
// 기존에 등록된 자료가 있다면 삭제 처리
if (infoEnisMtchg != null) {
enisMtchg.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
enisMtchgBean.removeEnisMtchg(enisMtchg);
}
enisMtchg.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
enisMtchg.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
enisMtchg.setStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 법정동 명
enisMtchg.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
enisMtchg.setLevyAmt(pcptax); // 부과 금액
enisMtchg.setAdtnAmt(adamt); // 가산 금액
enisMtchg.setSumAmt(sumAmt); // 합계 금액
enisMtchg.setPrcsSttsCd("01"); // 처리 상태 코드
// 세외수입 매칭 내역을 등록
retSuccess = enisMtchgBean.createEnisMtchg(enisMtchg);
if (!retSuccess) {
throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
// 기본 데이터 셋팅
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자
sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액
sndngDtl.setPcptax(pcptax); // 본세
sndngDtl.setAdamt(adamt); // 가산금
sndngDtl.setSumAmt(sumAmt); // 합계 금액
sndngDtl.setRtpyrNm(crdnPayerInfo.string("RTPYR_NM")); // 납부자 명
sndngDtl.setRtpyrNo(crdnPayerInfo.string("RTPYR_NO")); // 납부자 번호
sndngDtl.setRtpyrAddr(crdnPayerInfo.string("ADDR")); // 납부자 주소
sndngDtl.setRtpyrDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 납부자 상세 주소
sndngDtl.setRtpyrZip(crdnPayerInfo.string("ZIP")); // 납부자 우편번호
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
sndngDtl.setDelYn("N"); // 삭제 여부
// 발송 상세(TB_SNDNG_DTL) 등록
retSuccess = sndngMapper.insertSndngDtl(sndngDtl);
if (!retSuccess) {
throw new RuntimeException("발송 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (!newCrdnSttsCd.equals("")) {
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) {
throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
}
retMessage = "[S] 작업이 정상 처리 되었습니다.";
return retMessage;
}
/** .
* @param sndng
* @return
@ -208,39 +422,39 @@ public class SndngBean extends AbstractComponent {
for (int iLoop = 0; iLoop < sndng.getCrdnIDs().length; iLoop++) {
// 단속, 납부자 정보 조회
DataObject infoCrdnPayer = sndngMapper.selectCrdnPayerTrgtInfo(sndng.getCrdnIDs()[iLoop]);
DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerTrgtInfo(sndng.getCrdnIDs()[iLoop]);
if (infoCrdnPayer == null) {
if (crdnPayerInfo == null) {
throw new RuntimeException("발송상세 등록 작업중 단속 정보가 확인되지 않았습니다." + "<p>단속ID : " + sndng.getCrdnIDs()[iLoop]); // 예외를 발생시켜서 DB Rollback
}
if (infoCrdnPayer.string("RTPYR_ID").equals("")) {
throw new RuntimeException("발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "<p>차량번호 : " + infoCrdnPayer.string("VHRNO")); // 예외를 발생시켜서 DB Rollback
if (crdnPayerInfo.string("RTPYR_ID").equals("")) {
throw new RuntimeException("발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다." + "<p>차량번호 : " + crdnPayerInfo.string("VHRNO")); // 예외를 발생시켜서 DB Rollback
}
// 발송 상세 등록
SndngDtl sndngDtl = new SndngDtl();
if (sndng.getSndngSeCd().equals("01")) {
ffnlgAmt = infoCrdnPayer.number("FFNLG_CRDN_AMT").intValue(); // 과태료 단속 금액
ffnlgAmt = crdnPayerInfo.number("FFNLG_CRDN_AMT").intValue(); // 과태료 단속 금액
pcptax = 0;
adamt = 0;
sumAmt = 0;
} else if (sndng.getSndngSeCd().equals("02")) {
// 세외수입에 등록 후 세외수입에서 감경해야 하므로 사전통보액 80,000 원이 아닌 본 부과액 100,000 원으로 등록한다.
// 세외수입에서 가상계좌를 부여 받은 후 다시 금액이 80,000 원으로 업데이트 된다.
ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 본세
adamt = 0; // 부과 가산금
sumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액
sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 합계 금액
// 부과 ID가 없다면 부과대장 등록
if (infoCrdnPayer.string("LEVY_ID").equals("")) {
if (crdnPayerInfo.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.setSggCd(crdnPayerInfo.string("SGG_CD")); // 시군구 코드
levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
levy.setRtpyrId(crdnPayerInfo.string("RTPYR_ID")); // 납부자 ID
levy.setInstCd(userInfo.string("NSTT_CD")); // 자치단체 코드
levy.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
levy.setFfnlgAmt(ffnlgAmt); // 과태료 금액
@ -256,13 +470,13 @@ public class SndngBean extends AbstractComponent {
sndngDtl.setLevyId(levy.getLevyId()); // 부과 ID
} else {
sndngDtl.setLevyId(infoCrdnPayer.string("LEVY_ID")); // 부과 ID
sndngDtl.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID
}
} else {
ffnlgAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 본세
ffnlgAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 과태료 금액
pcptax = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 본세
adamt = 0; // 부과 가산금
sumAmt = infoCrdnPayer.number("FFNLG_AMT").intValue(); // 부과 합계 금액
sumAmt = crdnPayerInfo.number("FFNLG_AMT").intValue(); // 부과 합계 금액
}
// 사전통지 발송 등록시 세외수입 연계 자료 등록 ///////////////////////////////////
@ -274,15 +488,15 @@ public class SndngBean extends AbstractComponent {
DataObject infoEnisMtchg = enisMtchgBean.getEnisMtchgInfo(sndng.getCrdnIDs()[iLoop]);
// 기존에 등록된 자료가 있다면 삭제 처리
if (infoEnisMtchg != null) {
enisMtchg.setCrdnId(infoCrdnPayer.string("CRDN_ID"));
enisMtchg.setCrdnId(crdnPayerInfo.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.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
enisMtchg.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
enisMtchg.setStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 법정동 명
enisMtchg.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
enisMtchg.setLevyAmt(pcptax); // 부과 금액
enisMtchg.setAdtnAmt(adamt); // 가산 금액
enisMtchg.setSumAmt(sumAmt); // 합계 금액
@ -297,46 +511,46 @@ public class SndngBean extends AbstractComponent {
// 기본 데이터 셋팅
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setCrdnId(infoCrdnPayer.string("CRDN_ID")); // 단속 ID
sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
sndngDtl.setVhrno(infoCrdnPayer.string("VHRNO")); // 차량번호
sndngDtl.setCrdnDt(infoCrdnPayer.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setCrdnStdgNm(infoCrdnPayer.string("CRDN_STDG_NM")); // 단속 법정동 명
sndngDtl.setCrdnPlc(infoCrdnPayer.string("CRDN_PLC")); // 단속 장소
sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
sndngDtl.setDudtYmd(sndng.getDudtYmd()); // 납기 일자
sndngDtl.setFfnlgAmt(ffnlgAmt); // 과태료 금액
sndngDtl.setPcptax(pcptax); // 본세
sndngDtl.setAdamt(adamt); // 가산금
sndngDtl.setSumAmt(sumAmt); // 합계 금액
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.setEpayno(infoCrdnPayer.string("EPAYNO"));
// sndngDtl.setBankNm(infoCrdnPayer.string("BANK_NM"));
// sndngDtl.setVrActno(infoCrdnPayer.string("VR_ACTNO"));
// sndngDtl.setBankNm2(infoCrdnPayer.string("BANK_NM2"));
// sndngDtl.setVrActno2(infoCrdnPayer.string("VR_ACTNO2"));
// sndngDtl.setBankNm3(infoCrdnPayer.string("BANK_NM3"));
// sndngDtl.setVrActno3(infoCrdnPayer.string("VR_ACTNO3"));
// sndngDtl.setBankNm4(infoCrdnPayer.string("BANK_NM4"));
// sndngDtl.setVrActno4(infoCrdnPayer.string("VR_ACTNO4"));
// sndngDtl.setBankNm5(infoCrdnPayer.string("BANK_NM5"));
// sndngDtl.setVrActno5(infoCrdnPayer.string("VR_ACTNO5"));
// sndngDtl.setBankNm6(infoCrdnPayer.string("BANK_NM6"));
// sndngDtl.setVrActno6(infoCrdnPayer.string("VR_ACTNO6"));
// sndngDtl.setBankNm7(infoCrdnPayer.string("BANK_NM7"));
// sndngDtl.setVrActno7(infoCrdnPayer.string("VR_ACTNO7"));
// sndngDtl.setBankNm8(infoCrdnPayer.string("BANK_NM8"));
// sndngDtl.setVrActno8(infoCrdnPayer.string("VR_ACTNO8"));
// sndngDtl.setBankNm9(infoCrdnPayer.string("BANK_NM9"));
// sndngDtl.setVrActno9(infoCrdnPayer.string("VR_ACTNO9"));
// sndngDtl.setBankNm10(infoCrdnPayer.string("BANK_NM10"));
// sndngDtl.setVrActno10(infoCrdnPayer.string("VR_ACTNO10"));
// sndngDtl.setBankNm11(infoCrdnPayer.string("BANK_NM11"));
// sndngDtl.setVrActno11(infoCrdnPayer.string("VR_ACTNO11"));
sndngDtl.setRtpyrNm(crdnPayerInfo.string("RTPYR_NM")); // 납부자 명
sndngDtl.setRtpyrNo(crdnPayerInfo.string("RTPYR_NO")); // 납부자 번호
sndngDtl.setRtpyrAddr(crdnPayerInfo.string("ADDR")); // 납부자 주소
sndngDtl.setRtpyrDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 납부자 상세 주소
sndngDtl.setRtpyrZip(crdnPayerInfo.string("ZIP")); // 납부자 우편번호
sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO"));
sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM"));
sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO"));
sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2"));
sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2"));
sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3"));
sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3"));
sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4"));
sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4"));
sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5"));
sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5"));
sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6"));
sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6"));
sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7"));
sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7"));
sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8"));
sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8"));
sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9"));
sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9"));
sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10"));
sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10"));
sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11"));
sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11"));
sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
sndngDtl.setDelYn("N"); // 삭제 여부
@ -349,9 +563,9 @@ public class SndngBean extends AbstractComponent {
if (!newCrdnSttsCd.equals("")) {
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(infoCrdnPayer.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(infoCrdnPayer.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(infoCrdnPayer.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd);
crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());

@ -73,7 +73,12 @@ public class SndngServiceBean extends AbstractServiceBean implements SndngServic
@Override
public String createSndng(Sndng sndng) {
return sndngBean.createSndng(sndng);
// 세외수입시스템과 연계하는 업무인지 확인
if ("DPV,ECA,TPV".contains(sndng.getTaskSeCd())) {
return sndngBean.createSndngNxrpLink(sndng);
} else {
return sndngBean.createSndng(sndng);
}
}
@Override

@ -36,18 +36,26 @@ public class Sndb01Controller extends ApplicationController {
public class METHOD_URL {
public static final String
warningSendingTargetMain = "/010/main.do" // 계도장 발송 대상 메인 화면
, getWarningSendingTargetList = "/010/list.do" // 계도장 발송 대상 목록 조회
, getWarningSendingTargetInfo = "/020/info.do" // 계도장 발송 대상 조회
, warningSendingMain = "/030/main.do" // 계도장 발송 현황 메인 화면
, getWarningSendingList = "/030/list.do" // 계도장 발송 현황 목록 조회
, getWarningSendingInfo = "/040/info.do" // 계도장 발송 상세 대장 조회
, advanceNoticeSendingTargetMain = "/050/main.do" // 사전통지 발송 대상 메인 화면
, getAdvanceNoticeSendingTargetList = "/050/list.do" // 사전통지 발송 대상 목록 조회
, getAdvanceNoticeSendingTargetInfo = "/060/info.do" // 사전통지 발송 대상 조회
, advanceNoticeSendingMain = "/070/main.do" // 사전통지 발송 현황 메인 화면
, getAdvanceNoticeSendingList = "/070/list.do" // 사전통지 발송 대상 목록 조회
, getAdvanceNoticeSendingInfo = "/080/info.do" // 사전통지 발송 상세 대장 조회
warningTargetMain = "/010/main.do" // 계고장 발송 대상 메인 화면
, getWarningTargetList = "/010/list.do" // 계고장 발송 대상 목록 조회
, getWarningTargetInfo = "/020/info.do" // 계고장 발송 대상 조회
, createWarningSndng = "/020/create.do" // 계고장 발송 등록
, warningSendingMain = "/030/main.do" // 계고장 발송 현황 메인 화면
, getWarningSendingList = "/030/list.do" // 계고장 발송 현황 목록 조회
, getWarningSendingInfo = "/040/info.do" // 계고장 발송 상세 대장 조회
, advanceNoticeTargetMain = "/050/main.do" // 사전통지 발송 대상 메인 화면
, getAdvanceNoticeTargetList = "/050/list.do" // 사전통지 발송 대상 목록 조회
, getAdvanceNoticeTargetInfo = "/060/info.do" // 사전통지 발송 대상 조회
, createAdvanceNoticeSndng = "/060/create.do" // 사전통지 발송 등록
, advanceNoticeSendingMain = "/070/main.do" // 사전통지 발송 현황 메인 화면
, getAdvanceNoticeSendingList = "/070/list.do" // 사전통지 발송 대상 목록 조회
, getAdvanceNoticeSendingInfo = "/080/info.do" // 사전통지 발송 상세 대장 조회
, noticeSheetSendingMain = "/090/main.do" // 고지서 발송 현황 메인 화면
, getNoticeSheetSendingList = "/090/list.do" // 고지서 발송 대상 목록 조회
, getNoticeSheetSendingInfo = "/100/info.do" // 고지서 발송 상세 대장 조회
@ -89,11 +97,10 @@ public class Sndb01Controller extends ApplicationController {
@Resource(name = "taskInfoService")
private TaskInfoService taskInfoService;
/** (sndb/sndb01/010-main) .
*
/** (sndb/sndb01/010-main) .
* @return /sndb/sndb01/010-main
*/
public ModelAndView warningSendingTargetMain() {
public ModelAndView warningTargetMain() {
ModelAndView mav = new ModelAndView("fims/sndb/sndb01010-main");
// 사용자 정보
@ -116,31 +123,31 @@ public class Sndb01Controller extends ApplicationController {
;
}
/** .<br />
/** .<br />
* {@link SndngService#getSndngList(SndngQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "wrngSndngTrgtList": [ ]
* "wrngSndngTrgtStart":
* "wrngSndngTrgtFetch":
* "wrngSndngTrgtTotal":
* "wrngSndngTrgtList": [ ]
* "wrngSndngTrgtStart":
* "wrngSndngTrgtFetch":
* "wrngSndngTrgtTotal":
* }</code></pre>
*/
public ModelAndView getWarningSendingTargetList(SndbQuery req) {
public ModelAndView getWarningTargetList(SndbQuery req) {
List<?> result = sndngService.getWrngSndngTrgtList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "wrngSndngTrgt");
}
/** (sndb/sndb01/020-info) .
/** (sndb/sndb01/020-info) .
* @param crdnIDs IDs
* @return fims/sndb/sndb01020-info jsonView
* <pre>{
* "wrngSndngTrgts": [ ]
* "wrngSndngTrgts": [ ]
* }</pre>
*/
public ModelAndView getWarningSendingTargetInfo(SndbQuery req) {
public ModelAndView getWarningTargetInfo(SndbQuery req) {
List<DataObject> wrngSndngTrgts = sndngService.getWrngSndngTrgts(req);
boolean json = jsonResponse();
@ -152,10 +159,32 @@ public class Sndb01Controller extends ApplicationController {
.addObject("taskSeCd", req.getTaskSeCd())
.addObject("sndngSeCd", req.getSndngSeCd()) // 발송 구분 코드
.addObject("vltnCd", req.getVltnCd()) // 위반 코드
.addObject("wrngSndngTrgtDtl", json ? wrngSndngTrgts : toJson(wrngSndngTrgts)) // 계장 발송 대상 정보
.addObject("wrngSndngTrgtDtl", json ? wrngSndngTrgts : toJson(wrngSndngTrgts)) // 계장 발송 대상 정보
;
}
/** .
* @param sndng
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView createWarningSndng(Sndng sndng) {
boolean saved = false;
String retMessage = sndngService.createSndng(sndng);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** (sndb/sndb01/030-main) .
*
* @return /sndb/sndb01/030-main
@ -219,7 +248,7 @@ public class Sndb01Controller extends ApplicationController {
*
* @return /sndb/sndb01/050-main
*/
public ModelAndView advanceNoticeSendingTargetMain() {
public ModelAndView advanceNoticeTargetMain() {
ModelAndView mav = new ModelAndView("fims/sndb/sndb01050-main");
// 사용자 정보
@ -253,7 +282,7 @@ public class Sndb01Controller extends ApplicationController {
* "sndngTotal":
* }</code></pre>
*/
public ModelAndView getAdvanceNoticeSendingTargetList(SndbQuery req) {
public ModelAndView getAdvanceNoticeTargetList(SndbQuery req) {
List<?> result = sndngService.getAdvntceSndngTrgtList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "advntceSndngTrgt");
@ -266,7 +295,7 @@ public class Sndb01Controller extends ApplicationController {
* "advntceSndngTrgs": [ ]
* }</pre>
*/
public ModelAndView getAdvanceNoticeSendingTargetInfo(SndbQuery req) {
public ModelAndView getAdvanceNoticeTargetInfo(SndbQuery req) {
List<DataObject> advntceSndngTrgts = sndngService.getAdvntceSndngTrgts(req);
DataObject taskInfo = taskInfoService.getTaskInfo(new TaskInfoQuery().setSggCd(req.getSggCd())
@ -287,6 +316,28 @@ public class Sndb01Controller extends ApplicationController {
;
}
/** .
* @param sndng
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
public ModelAndView createAdvanceNoticeSndng(Sndng sndng) {
boolean saved = false;
String retMessage = sndngService.createSndng(sndng);
if (retMessage.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("retMessage", retMessage);
}
/** (sndb/sndb01/070-main) .
*
* @return /sndb/sndb01/070-main
@ -346,6 +397,13 @@ public class Sndb01Controller extends ApplicationController {
;
}
/** (sndb/sndb01/090-main) .
*
* @return /sndb/sndb01/090-main

@ -253,9 +253,9 @@ public class CmnController {
* @return fims/sndb/sndb01010-main
*/
@Override
@RequestMapping(name = "계도장 발송 대상 메인", value = METHOD_URL.warningSendingTargetMain)
public ModelAndView warningSendingTargetMain() {
return super.warningSendingTargetMain();
@RequestMapping(name = "계도장 발송 대상 메인", value = METHOD_URL.warningTargetMain)
public ModelAndView warningTargetMain() {
return super.warningTargetMain();
}
/** .
@ -271,9 +271,9 @@ public class CmnController {
* @return fims/sndb/sndb01050-main
*/
@Override
@RequestMapping(name = "사전통지 발송 대상 메인", value = METHOD_URL.advanceNoticeSendingTargetMain)
public ModelAndView advanceNoticeSendingTargetMain() {
return super.advanceNoticeSendingTargetMain();
@RequestMapping(name = "사전통지 발송 대상 메인", value = METHOD_URL.advanceNoticeTargetMain)
public ModelAndView advanceNoticeTargetMain() {
return super.advanceNoticeTargetMain();
}
/** .

@ -516,15 +516,21 @@ public class DpvController {
class Sndb01Controller extends cokr.xit.fims.sndb.web.Sndb01Controller {
@Override
@RequestMapping(name="계고장 발송 대상 목록 조회", value=METHOD_URL.getWarningSendingTargetList)
public ModelAndView getWarningSendingTargetList(SndbQuery req) {
return super.getWarningSendingTargetList(req);
@RequestMapping(name="계고장 발송 대상 목록 조회", value=METHOD_URL.getWarningTargetList)
public ModelAndView getWarningTargetList(SndbQuery req) {
return super.getWarningTargetList(req);
}
@Override
@RequestMapping(name="계고장 발송 대상 상세 조회", value=METHOD_URL.getWarningSendingTargetInfo)
public ModelAndView getWarningSendingTargetInfo(SndbQuery req) {
return super.getWarningSendingTargetInfo(req);
@RequestMapping(name="계고장 발송 대상 상세 조회", value=METHOD_URL.getWarningTargetInfo)
public ModelAndView getWarningTargetInfo(SndbQuery req) {
return super.getWarningTargetInfo(req);
}
@Override
@RequestMapping(name="계고장 발송 등록", value=METHOD_URL.createWarningSndng)
public ModelAndView createWarningSndng(Sndng sndng) {
return super.createWarningSndng(sndng);
}
@Override
@ -540,15 +546,21 @@ public class DpvController {
}
@Override
@RequestMapping(name="사전통지 발송 대상 목록 조회", value=METHOD_URL.getAdvanceNoticeSendingTargetList)
public ModelAndView getAdvanceNoticeSendingTargetList(SndbQuery req) {
return super.getAdvanceNoticeSendingTargetList(req);
@RequestMapping(name="사전통지 발송 대상 목록 조회", value=METHOD_URL.getAdvanceNoticeTargetList)
public ModelAndView getAdvanceNoticeTargetList(SndbQuery req) {
return super.getAdvanceNoticeTargetList(req);
}
@Override
@RequestMapping(name="사전통지 발송 대상 상세 조회", value=METHOD_URL.getAdvanceNoticeTargetInfo)
public ModelAndView getAdvanceNoticeTargetInfo(SndbQuery req) {
return super.getAdvanceNoticeTargetInfo(req);
}
@Override
@RequestMapping(name="사전통지 발송 대상 상세 조회", value=METHOD_URL.getAdvanceNoticeSendingTargetInfo)
public ModelAndView getAdvanceNoticeSendingTargetInfo(SndbQuery req) {
return super.getAdvanceNoticeSendingTargetInfo(req);
@RequestMapping(name="사전통지 발송 등록", value=METHOD_URL.createAdvanceNoticeSndng)
public ModelAndView createAdvanceNoticeSndng(Sndng sndng) {
return super.createAdvanceNoticeSndng(sndng);
}
@Override
@ -562,6 +574,10 @@ public class DpvController {
public ModelAndView getAdvanceNoticeSendingInfo(SndbQuery req) {
return super.getAdvanceNoticeSendingInfo(req);
}
@Override
@RequestMapping(name="고지서 발송 현황 목록 조회", value=METHOD_URL.getNoticeSheetSendingList)

@ -14,7 +14,6 @@ import cokr.xit.fims.excl.CrdnReReg;
import cokr.xit.fims.excl.LevyExclQuery;
import cokr.xit.fims.excl.LevyExcl;
import cokr.xit.fims.excl.OpnnSbmsn;
import cokr.xit.fims.excl.web.Excl01Controller.METHOD_URL;
import cokr.xit.fims.levy.LevyQuery;
import cokr.xit.fims.levy.Rduct;
import cokr.xit.fims.payer.Payer;
@ -22,9 +21,6 @@ import cokr.xit.fims.payer.PayerQuery;
import cokr.xit.fims.sprt.CvlcptDscsn;
import cokr.xit.fims.sprt.CvlcptDscsnQuery;
import cokr.xit.fims.sprt.SprtQuery;
import cokr.xit.fims.task.web.DpvController.Excl01Controller;
import cokr.xit.fims.task.web.DpvController.Excl02Controller;
import cokr.xit.fims.task.web.DpvController.Excl03Controller;
@Controller
public class EcaController {

@ -1253,7 +1253,6 @@
, C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
@ -1303,6 +1302,9 @@
, L.FRST_DUDT_YMD <!-- 최초 납기 일자 -->
, L.DUDT_YMD <!-- 납기 일자 -->
, L.DUDT_AFTR_YMD <!-- 납기 후 일자 -->
, (CASE WHEN L.FFNLG_AMT IS NOT NULL THEN L.FFNLG_AMT
ELSE C.FFNLG_AMT
END) AS FFNLG_AMT <!-- 과태료 금액 -->
, L.LEVY_PCPTAX <!-- 부과 본세 -->
, L.LEVY_ADAMT <!-- 부과 가산금 -->
, L.INSPY_INT <!-- 분납 이자 -->
@ -1363,14 +1365,7 @@
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if>
<choose>
<when test="crdnDelYn != null">
AND C.DEL_YN = #{crdnDelYn} <!-- 삭제 여부 -->
</when>
<otherwise>
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
</otherwise>
</choose>
</where>
<include refid="utility.orderBy" />
</select>

@ -235,7 +235,7 @@
, keymapper : info => info ? info.RE_REG_ID : ""
, dataGetter : obj => obj.crdnReRegList
, appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, formats : {
RE_REG_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat
@ -261,7 +261,7 @@
, func : "${pageName}Control.load({index})"
});
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
};
// 현재 선택 자료 변경 이벤트

@ -408,7 +408,7 @@
, data : params || {}
, success : resp => {
dialog.open({
id : ${pageName}Control.prefixed("Dialog")
id : "wrngSndngTrgtDtlDialog"
, title : ${pageName}Control.prefixName + " 정보"
, content : resp
, size : "xl"

@ -270,7 +270,7 @@
info.delYn = "N"; // 삭제 여부
ajax.post({
url : wctx.url(info.taskSeCd + ${pageName}PrefixUrl + "/020/createSndng.do")
url : wctx.url(info.taskSeCd + ${pageName}PrefixUrl + "/020/create.do")
, data : info
, success : resp => ${pageName}Control.onSave(resp)
});

@ -266,7 +266,7 @@
info.delYn = "N"; // 삭제 여부
ajax.post({
url : wctx.url(info.taskSeCd + ${pageName}PrefixUrl + "/020/createSndng.do")
url : wctx.url(info.taskSeCd + ${pageName}PrefixUrl + "/060/create.do")
, data : info
, success : resp => ${pageName}Control.onSave(resp)
});

Loading…
Cancel
Save