|
|
|
|
@ -140,7 +140,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
SndngDtl sndngDtl = new SndngDtl(sndng).setPayerInfo(crdnPayerInfo);
|
|
|
|
|
int rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
|
|
|
|
|
if (rtnNocs != 1)
|
|
|
|
|
throw new RuntimeException("발송상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("발송상세 등록에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 단속 상태 코드를 수정한다.
|
|
|
|
|
if ("83".equals(crdnPayerInfo.string("CRDN_STTS_CD"))) {
|
|
|
|
|
@ -154,7 +154,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
|
|
|
|
|
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
|
|
|
|
|
if (!rtnScs)
|
|
|
|
|
throw new RuntimeException("발송상세 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("발송상세 등록 중 단속대장의 상태변경에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
@ -206,13 +206,13 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 발송(TB_SNDNG) 대장을 등록한다.
|
|
|
|
|
int rtnNocs = sndngMapper.insertSndng(sndng);
|
|
|
|
|
if (rtnNocs != 1)
|
|
|
|
|
throw new RuntimeException("계고장 발송 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("계고장 발송 등록 작업에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 발송 상세(TB_SNDNG_DTL) 대장을 등록한다.
|
|
|
|
|
for (int i = 0; i < trgtList.size(); i++) {
|
|
|
|
|
String rtnMsg = createWrngSndngDtl(sndng, trgtList.get(i).string("CRDN_ID"));
|
|
|
|
|
if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료..
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
if (!rtnMsg.contains("[S]"))
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", ""));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
@ -235,7 +235,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 발송 상세 상태 코드 검증 - 00(처리전)
|
|
|
|
|
for (DataObject info : sndngDtlList) {
|
|
|
|
|
if (!"00".equals(info.string("SNDNG_DTL_STTS_CD")))
|
|
|
|
|
throw new RuntimeException("[F] 발송 상세 자료중 상태코드가 '처리전'이 아닌 자료가 있습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("[F] 발송 상세 자료중 상태코드가 '처리전'이 아닌 자료가 있습니다.");
|
|
|
|
|
|
|
|
|
|
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
|
|
|
|
|
crdnSttsHstry.setCrdnId(info.string("CRDN_ID")); // 단속 ID
|
|
|
|
|
@ -246,14 +246,14 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장의 사용 여부를 "N"으로 처리하고, 단속(TB_CRDN) 대장의 단속 상태 코드를 수정한다.
|
|
|
|
|
boolean rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(crdnSttsHstry);
|
|
|
|
|
if (!rtnScs)
|
|
|
|
|
throw new RuntimeException("[F] 발송상세 삭제 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("[F] 발송상세 삭제 작업중 단속 대장의 단속상태 변경에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 발송(TB_SNDNG), 발송 상세(TB_SNDNG_DTL) 대장을 삭제한다.
|
|
|
|
|
String rtnMsg = removeSndng(sndng);
|
|
|
|
|
// 메시지 확인
|
|
|
|
|
if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료..
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
if (!rtnMsg.contains("[S]"))
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", ""));
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
}
|
|
|
|
|
@ -341,13 +341,13 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 발송(TB_SNDNG) 대장을 등록한다.
|
|
|
|
|
int rtnNocs = sndngMapper.insertSndng(sndng);
|
|
|
|
|
if (rtnNocs != 1)
|
|
|
|
|
throw new RuntimeException("사전통지 발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("사전통지 발송 등록에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 발송 상세 대장에 등록한다.
|
|
|
|
|
for (int i = 0; i < trgtList.size(); i++) {
|
|
|
|
|
String rtnMsg = createAdvntceSndngDtl(sndng, trgtList.get(i).string("CRDN_ID"));
|
|
|
|
|
if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료..
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
if (!rtnMsg.contains("[S]"))
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", ""));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
@ -430,8 +430,8 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
|
|
|
|
|
// 부과(TB_LEVY) 대장에 부과일자, 최초납기일자, 납기일자를 수정한다.
|
|
|
|
|
rtnMsg = levyBean.updateRdctLevyYmd(levy);
|
|
|
|
|
if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료..
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
if (!rtnMsg.contains("[S]"))
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", ""));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -455,7 +455,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 발송 상세(TB_SNDNG_DTL) 대장을 등록한다.
|
|
|
|
|
int rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
|
|
|
|
|
if (rtnNocs != 1)
|
|
|
|
|
throw new RuntimeException("발송상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("발송상세 등록에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 단속 대장에 사전통지 일자를 수정한다.
|
|
|
|
|
Crdn crdn = new Crdn();
|
|
|
|
|
@ -469,7 +469,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 단속(TB_CRDN) 대장을 수정한다.
|
|
|
|
|
rtnNocs = crdnUpdtMapper.updateAdvntceYmd(crdn);
|
|
|
|
|
if (rtnNocs != 1)
|
|
|
|
|
throw new RuntimeException("단속 대장에 사전통지일자 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("단속 대장에 사전통지일자 수정에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY)을 등록한다.
|
|
|
|
|
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
|
|
|
|
|
@ -485,12 +485,12 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
|
|
|
|
|
rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
|
|
|
|
|
if (!rtnScs)
|
|
|
|
|
throw new RuntimeException("발송상세 등록 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("발송상세 등록 작업중 단속 대장의 단속상태 변경에 실패하였습니다.");
|
|
|
|
|
} else if (crdnPayerInfo.string("CRDN_STTS_CD").equals("31")) {
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록한다.
|
|
|
|
|
rtnScs = crdnSttsHstryBean.create(crdnSttsHstry);
|
|
|
|
|
if (!rtnScs)
|
|
|
|
|
throw new RuntimeException("발송상세 등록 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("발송상세 등록 작업중 단속 대장의 단속상태 변경에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
@ -512,7 +512,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 발송 상세 상태 코드 검증 - 00(처리전)
|
|
|
|
|
for (DataObject info: sndngDtlMapper.selectSndngDtls(req)) {
|
|
|
|
|
if (!"00".equals(info.string("SNDNG_DTL_STTS_CD")))
|
|
|
|
|
throw new RuntimeException("[F] 발송 상세 자료중 상태코드가 '처리전'이 아닌 자료가 있습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("[F] 발송 상세 자료중 상태코드가 '처리전'이 아닌 자료가 있습니다.");
|
|
|
|
|
|
|
|
|
|
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
|
|
|
|
|
crdnSttsHstry.setCrdnId(info.string("CRDN_ID")); // 단속 ID
|
|
|
|
|
@ -523,14 +523,14 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장의 사용 여부를 "N"으로 처리하고, 단속(TB_CRDN) 대장의 단속 상태 코드를 수정한다.
|
|
|
|
|
boolean rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(crdnSttsHstry);
|
|
|
|
|
if (!rtnScs)
|
|
|
|
|
throw new RuntimeException("[F] 발송상세 삭제 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("[F] 발송상세 삭제 작업중 단속 대장의 단속상태 변경에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 발송(TB_SNDNG), 발송 상세(TB_SNDNG_DTL) 대장을 삭제한다.
|
|
|
|
|
String rtnMsg = removeSndng(sndng);
|
|
|
|
|
// 메시지 확인
|
|
|
|
|
if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료..
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
if (!rtnMsg.contains("[S]"))
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", ""));
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
}
|
|
|
|
|
@ -608,13 +608,13 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
// 발송(TB_SNDNG) 대장을 등록한다.
|
|
|
|
|
int rtnNocs = sndngMapper.insertSndng(sndng);
|
|
|
|
|
if (rtnNocs != 1)
|
|
|
|
|
throw new RuntimeException("고지서 발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("고지서 발송 등록에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 발송 상세 대장에 등록한다.
|
|
|
|
|
for (DataObject nhtTrgt: nhtTrgtList) {
|
|
|
|
|
String rtnMsg = createNhtSndngDtl(sndng, nhtTrgt.string("CRDN_ID"));
|
|
|
|
|
if (!rtnMsg.contains("[S]")) // 오류가 발생하였으면 종료..
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
if (!rtnMsg.contains("[S]"))
|
|
|
|
|
throw new RuntimeException(rtnMsg.replace("[F]", ""));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
@ -650,7 +650,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
SndngDtl sndngDtl = new SndngDtl(sndng).setPayerInfo(crdnPayerInfo);
|
|
|
|
|
int rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
|
|
|
|
|
if (rtnNocs != 1)
|
|
|
|
|
throw new RuntimeException("발송상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("발송상세 등록에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
}
|
|
|
|
|
@ -710,12 +710,12 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
sndngDtl.setDelRsn(sndng.getDelRsn()); // 삭제 사유
|
|
|
|
|
int rtnNocs = sndngDtlMapper.deleteSndngDtl(sndngDtl);
|
|
|
|
|
if (rtnNocs < 1)
|
|
|
|
|
throw new RuntimeException("발송상세 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("발송상세 정보 삭제에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 발송(TB_SNDNG) 대장을 삭제한다.
|
|
|
|
|
rtnNocs = sndngMapper.deleteSndng(sndng);
|
|
|
|
|
if (rtnNocs != 1)
|
|
|
|
|
throw new RuntimeException("발송 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("발송 정보 삭제에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
}
|
|
|
|
|
@ -729,8 +729,9 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
*/
|
|
|
|
|
public String createEPost(Sndng sndng) {
|
|
|
|
|
//test/resources/우편통합 cs소스.txt 참고
|
|
|
|
|
SndbQuery sndbQuery = new SndbQuery().setSndngId(sndng.getSndngId()).setDelYn("N");
|
|
|
|
|
// 1. 발송 대장 조회
|
|
|
|
|
DataObject sndngInfo = sndngMapper.selectSndngInfo(new SndbQuery().setSndngId(sndng.getSndngId()));
|
|
|
|
|
DataObject sndngInfo = sndngMapper.selectSndngInfo(sndbQuery);
|
|
|
|
|
// 2. 사용자 정보를 조회한다.
|
|
|
|
|
DataObject userInfo = userBean.getUserInfo(currentUser().getId());
|
|
|
|
|
// 3. 자치단체 및 부서 정보를 조회한다.
|
|
|
|
|
@ -878,7 +879,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
|
|
|
|
|
int affected = sndngMapper.updateEPostSndng(updtSndng); // 전자우편 발송 내역 수정
|
|
|
|
|
if (affected != 1)
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 발송 내역 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 발송 내역 수정에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 8. 전자우편 접수 상세 내역을 등록한다.
|
|
|
|
|
String infoSndngSeNm = switch (sndngSeCd) { // 약식 발송 구분 명
|
|
|
|
|
@ -915,18 +916,15 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
String recevSubj3 = deptSggInfo.string("SGG_NM");
|
|
|
|
|
|
|
|
|
|
// 9. 전자우편 접수 상세 조회
|
|
|
|
|
SndbQuery sndbQuery = new SndbQuery()
|
|
|
|
|
.setSndngId(sndng.getSndngId())
|
|
|
|
|
.setDelYn("N");
|
|
|
|
|
|
|
|
|
|
for (DataObject sndngTrgt: sndngDtlMapper.selectSndngTrgtDtlIds(sndbQuery)) {
|
|
|
|
|
for (DataObject sndngDtlInfo: sndngDtlMapper.selectSndngDtlList(sndbQuery)) {
|
|
|
|
|
// for (DataObject sndngTrgt: sndngDtlMapper.selectSndngTrgtDtlIds(sndbQuery)) {
|
|
|
|
|
// 발송 상세 및 단속, 납부자, 부과 정보 조회
|
|
|
|
|
DataObject sndngDtlInfo = sndngDtlMapper.selectSndngDtlInfo(new SndbQuery().setSndngDtlId(sndngTrgt.string("SNDNG_DTL_ID")));
|
|
|
|
|
// DataObject sndngDtlInfo = sndngDtlMapper.selectSndngDtlInfo(new SndbQuery().setSndngDtlId(sndngTrgt.string("SNDNG_DTL_ID")));
|
|
|
|
|
|
|
|
|
|
// 가상계좌취득 자료가 아니면 다음 자료로..
|
|
|
|
|
if (!sndngDtlInfo.string("SNDNG_DTL_STTS_CD").equals("02")) {
|
|
|
|
|
// continue;
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 발송상세 상태코드가 가상계좌취득이 아닌 자료를 발견되었습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 발송상세 상태코드가 가상계좌취득이 아닌 자료를 발견되었습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String dtlSndngSeCd = sndngDtlInfo.string("SNDNG_SE_CD");
|
|
|
|
|
@ -974,7 +972,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
if (dudtAftrAmt > dudtAftrPcptax) { // 납기후 금액이 본세보다 크다면..
|
|
|
|
|
dudtAftrAdamt = toInt(sndngDtlInfo.get("DUDT_AFTR_AMT")) - toInt(sndngDtlInfo.get("PCPTAX"));
|
|
|
|
|
} else if (dudtAftrAmt < dudtAftrPcptax) { // 납기후 금액이 본세보다 작다면 오류..
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 납기후 금액이 본세보다 작은 자료가 발견되었습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 납기후 금액이 본세보다 작은 자료가 발견되었습니다.");
|
|
|
|
|
} else {
|
|
|
|
|
dudtAftrAdamt = 0;
|
|
|
|
|
}
|
|
|
|
|
@ -1118,7 +1116,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
if (fileCount < 4)
|
|
|
|
|
setPhotoFilename.get(i).accept(fileName);
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 전자우편 단속 사진 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 전자우편 단속 사진 등록에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -1138,7 +1136,7 @@ public class SndngBean extends AbstractBean {
|
|
|
|
|
|
|
|
|
|
affected = sndngDtlMapper.updateSndngDtlEPost(sndngDtl); // 전자우편 발송상세 내역 수정
|
|
|
|
|
if (affected != 1)
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return "[S] 작업이 정상 처리 되었습니다.";
|
|
|
|
|
|