diff --git a/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java b/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java index c2b534e7..0c531875 100644 --- a/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java +++ b/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java @@ -46,6 +46,11 @@ public interface LevyMapper extends AbstractMapper { */ List selectLevys(LevyQuery req); + default Levy selectLevy(LevyQuery req) { + List levys = selectLevys(req); + return !levys.isEmpty() ? levys.get(0) : null; + } + /**지정한 부과 ID에 따라 부과 대장 객체를 반환한다. * @param levyId 부과 ID * @return 부과 대장 객체 diff --git a/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java b/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java index 9f631de7..86e16764 100644 --- a/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java +++ b/src/main/java/cokr/xit/fims/nxrp/service/bean/SnisBean.java @@ -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 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 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 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) diff --git a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java index e90adf9a..5095a963 100644 --- a/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java +++ b/src/main/java/cokr/xit/fims/rcvm/service/bean/RcvmtBean.java @@ -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 { * */ 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 { * */ 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 { * */ 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 { * */ 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] 작업이 정상 처리 되었습니다."; } - -} +} \ No newline at end of file