세외수입 연계 후 수납등록(작업 중)

main
mjkhan21 3 months ago
parent cbc3e0db9f
commit 9412767a89

@ -46,6 +46,11 @@ public interface LevyMapper extends AbstractMapper {
*/
List<Levy> selectLevys(LevyQuery req);
default Levy selectLevy(LevyQuery req) {
List<Levy> levys = selectLevys(req);
return !levys.isEmpty() ? levys.get(0) : null;
}
/** ID .
* @param levyId ID
* @return

@ -23,6 +23,8 @@ import cokr.xit.fims.levy.dao.LevyMapper;
import cokr.xit.fims.mngt.Vltn;
import cokr.xit.fims.nxrp.NisIndivQuery;
import cokr.xit.fims.nxrp.dao.NisA01Mapper;
import cokr.xit.fims.rcvm.Rcvmt;
import cokr.xit.fims.rcvm.service.bean.RcvmtBean;
import cokr.xit.fims.sndb.SndbQuery;
import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.dao.SndngDtlMapper;
@ -67,6 +69,8 @@ public class SnisBean extends AbstractBean {
private UserBean userBean;
@Resource(name = "levyMapper")
private LevyMapper levyMapper;
@Resource(name = "rcvmtBean")
private RcvmtBean rcvmtBean;
/** .
* @param req
@ -272,44 +276,21 @@ public class SnisBean extends AbstractBean {
List<Levy> levies = levyMapper.selectLevys(new LevyQuery().setNxrpLevyKeys(nxrpLevyKeys));
for (Levy levy: levies) {
Ye22NoticeInfoDTO notice = noticeMap.get(levy.getNxrpLevyKey());
if (notice == null) continue;
update(notice, levy);
}
levyMapper.updateLevies(levies);
// 발송상세 업데이트
List<SndngDtl> details = sndngDtlMapper.selectSndngDetails(new SndbQuery().setSndngDtlIds(sndngDtl.getSndngDtlId()));
details.forEach(detail -> {
Ye22NoticeInfoDTO notice = noticeMap.get(detail.getLinkMngKey());
if (notice == null) return;
detail.setSggCd(notice.getSiguCd()); // 시군구 코드
detail.setTaxNo(notice.getNapseNo()); // 납세번호
detail.setEpayno(notice.getEnapbuNo()); // 전자납부번호
detail.setVhrno(notice.getMulNm()); // 차량번호
// detail.setLevyNo(notice.getTaxNo()); // 부과번호
detail.setLevyYmd(notice.getTaxYmd()); // 부과일자
detail.setDudtYmd(notice.getNapgiYmd()); // 납기일자
detail.setDudtAftrYmd(notice.getNapgiAftYmd()); // 납기후일자
detail.setPcptax((int)notice.getTaxAmt()); // 본세
detail.setAdamt((int)notice.gasanAmt()); // 가산금
detail.setLastAmt((int)notice.totalAmt()); // 최종금액
detail.setDudtAftrAmt(null); // 납기후 금액
setBankAccounts(notice.accountGetters(), detail.bankAccountSetters()); // 은행 / 계좌번호
if (toInt(detail.getSndngDtlSttsCd()) < 2)
detail.setSndngDtlSttsCd("02"); // 발송 상태 코드(FIM050) 02:가상계좌취득
});
for (SndngDtl detail: details) {
update(noticeMap.get(detail.getLinkMngKey()), detail);
sndngDtlMapper.updateSndngDtl(detail);
}
}
private void update(Ye22NoticeInfoDTO notice, Levy levy) {
if (notice == null || levy == null) return;
levy.setSggCd(notice.getSiguCd()); // 시군구 코드
levy.setDeptCd(notice.getBuseoCd()); // 부서코드
@ -336,6 +317,30 @@ public class SnisBean extends AbstractBean {
setBankAccounts(notice.accountGetters(), levy.bankAccountSetters()); // 은행 / 계좌번호
}
private void update(Ye22NoticeInfoDTO notice, SndngDtl sndngDtl) {
if (notice == null || sndngDtl == null) return;
sndngDtl.setSggCd(notice.getSiguCd()); // 시군구 코드
sndngDtl.setTaxNo(notice.getNapseNo()); // 납세번호
sndngDtl.setEpayno(notice.getEnapbuNo()); // 전자납부번호
sndngDtl.setVhrno(notice.getMulNm()); // 차량번호
// detail.setLevyNo(notice.getTaxNo()); // 부과번호
sndngDtl.setLevyYmd(notice.getTaxYmd()); // 부과일자
sndngDtl.setDudtYmd(notice.getNapgiYmd()); // 납기일자
sndngDtl.setDudtAftrYmd(notice.getNapgiAftYmd()); // 납기후일자
sndngDtl.setPcptax((int)notice.getTaxAmt()); // 본세
sndngDtl.setAdamt((int)notice.gasanAmt()); // 가산금
sndngDtl.setLastAmt((int)notice.totalAmt()); // 최종금액
sndngDtl.setDudtAftrAmt(null); // 납기후 금액
setBankAccounts(notice.accountGetters(), sndngDtl.bankAccountSetters()); // 은행 / 계좌번호
if (toInt(sndngDtl.getSndngDtlSttsCd()) < 2)
sndngDtl.setSndngDtlSttsCd("02"); // 발송 상태 코드(FIM050) 02:가상계좌취득
}
private void update(List<Ye22NoticeInfoDTO> notices) {
if (isEmpty(notices)) return;
@ -365,23 +370,40 @@ public class SnisBean extends AbstractBean {
for (Ye22NoticeInfoDTO notice: notices) {
String status = notice.getBuStatusCd(); // 과태료 상태
String linkMngKey = Long.toString(notice.getBuAk()); // 세외수입 연계키
log().debug("세외수입 연계키: {}, 상태: {}", linkMngKey, status);
if (bugwa) {
SndngDtl sndngDtl = sndngDetails.get(linkMngKey);
update(notice, sndngDtl); // 발송상세에 적용
if (sndngDtl != null)
sndngDtlMapper.updateSndngDtl(sndngDtl);
}
Levy levy = levies.get(linkMngKey);
if (levy != null) // 부과정보에 적용
update(notice, levy);
update(notice, levy); // 부과정보에 적용
if (levy != null) {
levyMapper.updateLevy(levy);
Rcvmt rcvmt = new Rcvmt(); // 수납등록
rcvmt.setLevyId(levy.getLevyId());
rcvmtBean.createRcvmt(rcvmt);
}
Crdn crdn = crdns.get(levy.getCrdnId());
String crdnStatus = crdn.getCrdnSttsCd();
if (crdn != null) { // 단속정보에 적용
if ("1".equals(status)) { // '완납' 상태일 경우
if ("0".equals(status)) { // '부과'상태
} else if ("1".equals(status)) { // '완납'상태
crdn.setRcvmtAmt((int)notice.totalAmt()); // 수납금액
notice.getNapbuYmd(); // 납부일자
String crdnStatus = switch (crdn.getCrdnSttsCd()) {
case "23", "31", "42", "43", "44", "45" -> "71"; // 사전통보수납
case "51" -> "72"; // 부과수납
case "52" -> "73"; // 독촉수납
case "53", "54" -> "74"; // 압류예정수납
case "55" -> "75"; // 압류수납
// notice.getNapbuYmd(); // 납부일자
crdnStatus = switch (crdn.getCrdnSttsCd()) {
case "23", "31", "42", "43", "44", "45" -> "71"; // 사전부과, 의견제출, 사전통보발송, 사전통보완료 -> 사전통보수납
case "51" -> "72"; // 부과 -> 부과수납
case "52" -> "73"; // 독촉 -> 독촉수납
case "53", "54" -> "74"; // 압류예고, 압류대상 -> 압류예정수납
case "55" -> "75"; // 압류 -> 압류수납
default -> null;
};
if (crdnStatus != null)

@ -30,15 +30,12 @@ import cokr.xit.foundation.data.DataObject;
*/
@Component("rcvmtBean")
public class RcvmtBean extends AbstractBean {
/** 수납 대장 정보 DAO */
@Resource(name = "rcvmtMapper")
private RcvmtMapper rcvmtMapper;
/** 부과 대장 정보 DAO */
@Resource(name = "levyMapper")
private LevyMapper levyMapper;
/** 단속 상태 이력 정보 Bean */
@Resource(name = "crdnSttsHstryBean")
private CrdnSttsHstryBean crdnSttsHstryBean;
@ -102,45 +99,44 @@ public class RcvmtBean extends AbstractBean {
* </ul>
*/
public String createRcvmt(Rcvmt rcvmt) {
// 변수 선언
int rtnNocs = -1; // 처리 결과 건수
String rtnMsg = ""; // 처리 결과 메시지
// 부과 ID로 부과 정보 조회
DataObject levyInfo = levyMapper.selectLevyAmt(new LevyQuery().setLevyId(rcvmt.getLevyId()));
rcvmt.setDeptCd(levyInfo.string("DEPT_CD")); // 부서 코드
rcvmt.setSpclBizCd(levyInfo.string("SPCL_BIZ_CD")); // 특별회계 사업 코드
rcvmt.setLastPcptax(toInt(levyInfo.get("LAST_PCPTAX"))); // 최종 본세
rcvmt.setLastAdamt(toInt(levyInfo.get("LAST_ADAMT"))); // 최종 가산금
rcvmt.setDeptCd(levyInfo.string("DEPT_CD")); // 부서 코드
rcvmt.setSpclBizCd(levyInfo.string("SPCL_BIZ_CD")); // 특별회계 사업 코드
rcvmt.setLastPcptax(toInt(levyInfo.get("LAST_PCPTAX")));// 최종 본세
rcvmt.setLastAdamt(toInt(levyInfo.get("LAST_ADAMT"))); // 최종 가산금
// 입력된 수납 금액으로 수납 본세, 수납 가산금 나누기
String rcvmtSeCd = ""; // 수납 구분 코드(FIM041)
if (rcvmt.getLastPcptax() + rcvmt.getLastAdamt() == 0) { // 최종 금액이 0원 이라면..
rcvmt.setRcvmtPcptax(0); // 수납 본세
rcvmt.setRcvmtAdamt(0); // 수납 가산금
rcvmtSeCd = "02"; // 수납 구분 코드 = 이중수납
} else if (rcvmt.getLastPcptax() + rcvmt.getLastAdamt() == rcvmt.getRcvmtAmt()) { // 최종 금액과 수납 금액이 일치한다면..
rcvmt.setRcvmtPcptax(rcvmt.getLastPcptax()); // 수납 본세
rcvmt.setRcvmtAdamt(rcvmt.getLastAdamt()); // 수납 가산금
rcvmtSeCd = "01"; // 수납 구분 코드 = 완납
} else if (rcvmt.getLastPcptax() + rcvmt.getLastAdamt() < rcvmt.getRcvmtAmt()) { // 최종 금액보다 수납 금액이 많다면..
rcvmt.setRcvmtPcptax(rcvmt.getLastPcptax()); // 수납 본세
rcvmt.setRcvmtAdamt(rcvmt.getLastAdamt()); // 수납 가산금
rcvmtSeCd = "04"; // 수납 구분 코드 = 과납
} else if (rcvmt.getLastPcptax() + rcvmt.getLastAdamt() > rcvmt.getRcvmtAmt()) { // 최종 금액보다 수납 금액이 적다면..
if (rcvmt.getRcvmtAmt() > rcvmt.getLastPcptax()) {
rcvmt.setRcvmtPcptax(rcvmt.getLastPcptax()); // 수납 본세
rcvmt.setRcvmtAdamt(rcvmt.getRcvmtAmt() - rcvmt.getLastPcptax()); // 수납 가산금
} else {
rcvmt.setRcvmtPcptax(rcvmt.getRcvmtAmt()); // 수납 본세
rcvmt.setRcvmtAdamt(0); // 수납 가산금
}
rcvmtSeCd = "06"; // 수납 구분 코드 = 일부수납
String rcvmtSeCd = ""; // 수납 구분 코드(FIM041)
Integer lastPcptax = rcvmt.getLastPcptax();
Integer lastAdamt = rcvmt.getLastAdamt();
if (lastPcptax + lastAdamt == 0) { // 최종 금액이 0원 이라면..
rcvmt.setRcvmtPcptax(0); // 수납 본세
rcvmt.setRcvmtAdamt(0); // 수납 가산금
rcvmtSeCd = "02"; // 수납 구분 코드 = 이중수납
} else {
rtnMsg = "[F] 수납 등록 중 수납금액 계산에 실패하였습니다."; // 예외를 발생시켜서 DB Rollback
return rtnMsg;
}
Integer rcvmtAmt = rcvmt.getRcvmtAmt();
if (lastPcptax + lastAdamt == rcvmtAmt) { // 최종 금액과 수납 금액이 일치한다면..
rcvmt.setRcvmtPcptax(lastPcptax); // 수납 본세
rcvmt.setRcvmtAdamt(lastAdamt); // 수납 가산금
rcvmtSeCd = "01"; // 수납 구분 코드 = 완납
} else if (lastPcptax + lastAdamt < rcvmtAmt) { // 최종 금액보다 수납 금액이 많다면..
rcvmt.setRcvmtPcptax(lastPcptax); // 수납 본세
rcvmt.setRcvmtAdamt(lastAdamt); // 수납 가산금
rcvmtSeCd = "04"; // 수납 구분 코드 = 과납
} else if (lastPcptax + lastAdamt > rcvmtAmt) { // 최종 금액보다 수납 금액이 적다면..
if (rcvmtAmt > lastPcptax) {
rcvmt.setRcvmtPcptax(lastPcptax); // 수납 본세
rcvmt.setRcvmtAdamt(rcvmtAmt - lastPcptax); // 수납 가산금
} else {
rcvmt.setRcvmtPcptax(rcvmtAmt); // 수납 본세
rcvmt.setRcvmtAdamt(0); // 수납 가산금
}
rcvmtSeCd = "06"; // 수납 구분 코드 = 일부수납
} else
return "[F] 수납 등록 중 수납금액 계산에 실패하였습니다.";
}
// 수납 구분 코드가 입력 되지 않았다면..
if (rcvmt.getRcvmtSeCd() == null) {
@ -148,42 +144,40 @@ public class RcvmtBean extends AbstractBean {
}
// 수납(TB_RCVMT) 대장을 등록한다.
rtnNocs = rcvmtMapper.insertRcvmt(rcvmt);
if (rtnNocs != 1) {
throw new RuntimeException("수납 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (rcvmtMapper.insertRcvmt(rcvmt) != 1)
throw new RuntimeException("수납 대장 등록에 실패하였습니다.");
if (!rcvmtSeCd.equals("02")) { // 이중 수납이 아니라면..
Levy levy = new Levy();
levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID
levy.setRcvmtPcptax(rcvmt.getRcvmtPcptax()); // 수납 본세
levy.setRcvmtAdamt(rcvmt.getRcvmtAdamt()); // 수납 가산금
levy.setLastAmt(rcvmt.getLastPcptax() + rcvmt.getLastAdamt() - rcvmt.getRcvmtPcptax() - rcvmt.getRcvmtAdamt()); // 최종 금액
Integer rcvmtPcptax = rcvmt.getRcvmtPcptax();
levy.setRcvmtPcptax(rcvmtPcptax); // 수납 본세
Integer rcvmtAdamt = rcvmt.getRcvmtAdamt();
levy.setRcvmtAdamt(rcvmtAdamt); // 수납 가산금
levy.setLastAmt(lastPcptax + lastAdamt - rcvmtPcptax - rcvmtAdamt); // 최종 금액
levy.setRcvmtYmd(rcvmt.getRcvmtYmd()); // 수납 일자
levy.setPayMthdSeCd(rcvmt.getPayMthdSeCd()); // 납부 방법 구분 코드
// 부과(TB_LEVY) 대장에 수납금액을 수정한다.
rtnNocs = levyMapper.updateLevyRcvmt(levy);
if (rtnNocs != 1) {
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (levyMapper.updateLevyRcvmt(levy) != 1)
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다.");
// 합계 금액이 0이면서 완납(01) 또는 과납(04)이라면 단속 상태 코드를 수정한다.
if (levy.getLastAmt() == 0 && (rcvmtSeCd.equals("01") || rcvmtSeCd.equals("04"))) {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
String crdnSttsCd = levyInfo.string("CRDN_STTS_CD");
String newCrdnSttsCd = "";
if (toInt(levyInfo.get("CRDN_STTS_CD")) >= 11 && toInt(levyInfo.get("CRDN_STTS_CD")) <= 45) {
if (toInt(crdnSttsCd) >= 11 && toInt(crdnSttsCd) <= 45) {
newCrdnSttsCd = "71"; // 사전통보수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("51")) {
newCrdnSttsCd = "72"; // 부과수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("52")) {
newCrdnSttsCd = "73"; // 독촉수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("53")) {
newCrdnSttsCd = "74"; // 압류예정수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("54")) {
newCrdnSttsCd = "74"; // 압류예정수납
} else if (levyInfo.string("CRDN_STTS_CD").equals("55")) {
newCrdnSttsCd = "75"; // 압류수납
} else {
newCrdnSttsCd = switch (crdnSttsCd) {
case "51" -> "72"; // 부과수납
case "52" -> "73"; // 독촉수납
case "53" -> "74"; // 압류예정수납
case "54" -> "74"; // 압류예정수납
case "55" -> "75"; // 압류수납
default -> newCrdnSttsCd;
};
}
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
@ -194,10 +188,8 @@ public class RcvmtBean extends AbstractBean {
crdnSttsHstry.setTaskDtlId(rcvmt.getRcvmtId()); // 수납 ID
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (!crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry))
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 수정에 실패하였습니다.");
}
}
@ -212,18 +204,10 @@ public class RcvmtBean extends AbstractBean {
* </ul>
*/
public String updateRcvmtRtrcn(Rcvmt rcvmt) {
// 변수 선언
String rtnMsg = "";
// 수납 취소
rtnMsg = updateRcvmtCancle(rcvmt);
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
}
// 과오납 등록
String rtnMsg = updateRcvmtCancle(rcvmt);
if (!rtnMsg.contains("[S]"))
throw new RuntimeException(rtnMsg);
return "[S] 작업이 정상 처리 되었습니다.";
}
@ -235,17 +219,13 @@ public class RcvmtBean extends AbstractBean {
* </ul>
*/
public String updateRcvmtCancle(Rcvmt rcvmt) {
// 변수 선언
int rtnNocs = -1; // 처리 결과 건수
// 수납 ID로 수납 정보 조회
DataObject rcvmtInfo = rcvmtMapper.selectRcvmtInfo(new RcvmtQuery().setRcvmtId(rcvmt.getRcvmtId()).setDelYn("N"));
// 수납(TB_RCVMT) 대장에 수납취소 정보를 수정한다.
rtnNocs = rcvmtMapper.updateRcvmtRtrcn(rcvmt);
if (rtnNocs != 1) {
throw new RuntimeException("수납 대장에 수납취소 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
int rtnNocs = rcvmtMapper.updateRcvmtRtrcn(rcvmt);
if (rtnNocs != 1)
throw new RuntimeException("수납 대장에 수납취소 정보 수정에 실패하였습니다.");
// 수납구분코드(RCVMT_SE_CD)가 이중 수납이 아니라면..
if (!rcvmtInfo.string("RCVMT_SE_CD").equals("02")) {
@ -255,7 +235,7 @@ public class RcvmtBean extends AbstractBean {
int rcvmtPcptax = toInt(levyInfo.get("RCVMT_PCPTAX")) - toInt(rcvmtInfo.get("RCVMT_PCPTAX")); // 부과 수납본세 - 수납 수납본세
int rcvmtAdamt = toInt(levyInfo.get("RCVMT_ADAMT")) - toInt(rcvmtInfo.get("RCVMT_ADAMT")); // 부과 수납가산금 - 수납 수납가산금
int lastAmt = toInt(levyInfo.get("LAST_AMT"))
+ toInt(rcvmtInfo.get("RCVMT_PCPTAX")) + toInt(rcvmtInfo.get("RCVMT_ADAMT")); // 최종 금액
+ toInt(rcvmtInfo.get("RCVMT_PCPTAX")) + toInt(rcvmtInfo.get("RCVMT_ADAMT")); // 최종 금액
Levy levy = new Levy();
levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID
@ -274,9 +254,8 @@ public class RcvmtBean extends AbstractBean {
// 부과(TB_LEVY) 대장에 수납금액 정보를 수정한다.
rtnNocs = levyMapper.updateLevyRcvmt(levy);
if (rtnNocs != 1) {
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (rtnNocs != 1)
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다.");
// 단속 대장 수정 ///////////////////////////////////////////////////////////
// 합계 금액이 0보다 크면서 완납(01) 또는 과납(04)이라면 단속 상태 코드를 수정한다.
@ -299,10 +278,8 @@ public class RcvmtBean extends AbstractBean {
crdnSttsHstry.setTaskDtlId(rcvmt.getRcvmtId()); // 수납 ID
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
boolean rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (!crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry))
throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 수정에 실패하였습니다.");
}
}
@ -317,20 +294,15 @@ public class RcvmtBean extends AbstractBean {
* </ul>
*/
public String removeRcvmt(Rcvmt rcvmt) {
//
boolean rtnScs = false; // 처리 결과 여부
// 수납 ID로 수납 정보 조회
DataObject rcvmtInfo = rcvmtMapper.selectRcvmtInfo(new RcvmtQuery().setRcvmtId(rcvmt.getRcvmtId()));
if (!rcvmtInfo.string("RCVMT_INPT_SE_CD").equals("03"))
throw new RuntimeException("수납입력구분이 수기등록 자료만 삭제가 가능합니다.");
if (!rcvmtInfo.string("RCVMT_INPT_SE_CD").equals("03")) {
throw new RuntimeException("수납입력구분이 수기등록 자료만 삭제가 가능합니다."); // 예외를 발생시켜서 DB Rollback
}
// 수납(TB_RCVMT) 대장을 삭제한다.
int rtnNocs = rcvmtMapper.deleteRcvmt(rcvmt);
if (rtnNocs != 1) {
throw new RuntimeException("수납 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (rtnNocs != 1)
throw new RuntimeException("수납 대장 삭제에 실패하였습니다.");
// 부과(TB_LEVY) 대장 수납 금액 수정한다.
int rcvmtPcptax = toInt(rcvmtInfo.get("L_RCVMT_PCPTAX")) - toInt(rcvmtInfo.get("RCVMT_PCPTAX"));
@ -340,15 +312,18 @@ public class RcvmtBean extends AbstractBean {
levy.setLevyId(rcvmtInfo.string("LEVY_ID")); // 부과 ID
levy.setRcvmtPcptax(rcvmtPcptax); // 수납 본세
levy.setRcvmtAdamt(rcvmtAdamt); // 수납 가산금
levy.setLastAmt(toInt(rcvmtInfo.get("L_LEVY_PCPTAX")) + toInt(rcvmtInfo.get("L_LEVY_ADAMT"))
- rcvmtPcptax - rcvmtAdamt
- toInt(rcvmtInfo.get("L_RDAMT_PCPTAX")) - toInt(rcvmtInfo.get("L_RDAMT_ADAMT"))); // 최종 금액
levy.setLastAmt(
toInt(rcvmtInfo.get("L_LEVY_PCPTAX"))
+ toInt(rcvmtInfo.get("L_LEVY_ADAMT"))
- rcvmtPcptax - rcvmtAdamt
- toInt(rcvmtInfo.get("L_RDAMT_PCPTAX"))
- toInt(rcvmtInfo.get("L_RDAMT_ADAMT"))
); // 최종 금액
// 부과(TB_LEVY) 대장에 수납금액을 수정한다.
rtnNocs = levyMapper.updateLevyRcvmt(levy);
if (rtnNocs != 1) {
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (rtnNocs != 1)
throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다.");
// 최종 금액이 0보다 크다면 이전 처리상태로 변경한다.
if (levy.getLastAmt() > 0) {
@ -359,13 +334,10 @@ public class RcvmtBean extends AbstractBean {
crdnSttsHstry.setEtcCn(rcvmt.getDelRsn()); // 기타 내용 - 삭제 사유
crdnSttsHstry.setUseYn("N"); // 사용 여부
rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!rtnScs) {
throw new RuntimeException("[F] 발송상세 삭제 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (!crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(crdnSttsHstry))
throw new RuntimeException("[F] 발송상세 삭제 작업중 단속 대장의 단속상태 변경에 실패하였습니다.");
}
return "[S] 작업이 정상 처리 되었습니다.";
}
}
}
Loading…
Cancel
Save