From 5298b2f3445f5c5b46f6d3f6668e77ecc1b14b34 Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Wed, 24 Sep 2025 14:37:24 +0900 Subject: [PATCH] =?UTF-8?q?=EC=84=9C=EC=9A=B8=20=EC=84=B8=EC=99=B8?= =?UTF-8?q?=EC=88=98=EC=9E=85=20=EC=97=B0=EA=B3=84=20=EA=B4=80=EB=A0=A8=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fims/excl/service/bean/LevyExclBean.java | 18 +++-- src/main/java/cokr/xit/fims/levy/Levy.java | 8 +++ .../xit/fims/nxrp/service/bean/SnisBean.java | 69 ++++++++++++++----- src/main/java/cokr/xit/fims/rcvm/Rcvmt.java | 55 ++++++++++++++- .../xit/fims/rcvm/service/bean/RcvmtBean.java | 10 +-- src/main/java/cokr/xit/fims/rdca/Rdamt.java | 11 ++- .../xit/fims/rdca/service/bean/RdamtBean.java | 54 ++++++--------- .../sql/mapper/fims/rcvm/rcvmt-mapper.xml | 6 +- 8 files changed, 157 insertions(+), 74 deletions(-) diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java index 3c7d1b2d..43ee89d0 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java @@ -115,15 +115,19 @@ public class LevyExclBean extends AbstractBean { return "[F] 단속 민원 자료가 처리 되지 않았습니다." + "
단속 민원 업무를 먼저 처리 하시기 바랍니다."; } - if (levyExcl.getLevyExclSeCd().contains("1,2")) { // 부과제외(서손), 계고 - if (toInt(levyExclInfo.get("CRDN_STTS_CD")) >= 51) // 단속상태코드가 부과(51) 보다 크다면, 부과제외 또는 계고 등록을 할 수 없다. + + int crdnSttsCd = toInt(levyExclInfo.get("CRDN_STTS_CD")); + String levyExclSeCd = levyExcl.getLevyExclSeCd(); + if ("1,2".contains(levyExclSeCd)) { // 부과제외(서손), 계고 +// if (levyExclSeCd.contains("1,2")) { // 부과제외(서손), 계고 + if (crdnSttsCd >= 51) // 단속상태코드가 부과(51) 보다 크다면, 부과제외 또는 계고 등록을 할 수 없다. return "[F] 작업 중 오류가 발생하였습니다." + "
단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다"; - } else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소 - if (toInt(levyExclInfo.get("CRDN_STTS_CD")) < 51) // 단속상태코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. + } else if ("3".equals(levyExclSeCd)) { // 부과취소 + if (crdnSttsCd < 51) // 단속상태코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. return "[F] 작업 중 오류가 발생하였습니다." + "
단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다"; - if (toInt(levyExclInfo.get("CRDN_STTS_CD")) > 55) // 단속상태코드가 압류(55) 보다 크면, 전액감액 등록 할 수 없다. + if (crdnSttsCd > 55) // 단속상태코드가 압류(55) 보다 크면, 전액감액 등록 할 수 없다. return "[F] 작업 중 오류가 발생하였습니다." + "
단속 자료의 처리상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 입니다"; if (levyExclInfo.string("LEVY_ID").equals("")) // 부과(TB_LEVY) 정보 확인 @@ -143,7 +147,7 @@ public class LevyExclBean extends AbstractBean { } // 부과취소(전액감액)일 경우 부과(TB_LEVY)에 감액금액 입력이 필요.. - if (levyExcl.getLevyExclSeCd().equals("3")) { + if (levyExclSeCd.equals("3")) { // 감액(TB_RDAMT) 등록 Rdamt rdamt = new Rdamt(); rdamt.setLevyId(levyExclInfo.string("LEVY_ID")); // 부과 ID @@ -168,7 +172,7 @@ public class LevyExclBean extends AbstractBean { crdnSttsHstry.setCrdnId(levyExclInfo.string("CRDN_ID")); crdnSttsHstry.setBfrSttsCd(levyExclInfo.string("CRDN_STTS_CD")); crdnSttsHstry.setBfrSttsChgDt(levyExclInfo.string("CRDN_STTS_CHG_DT")); - crdnSttsHstry.setCrdnSttsCd(switch (levyExcl.getLevyExclSeCd()) { + crdnSttsHstry.setCrdnSttsCd(switch (levyExclSeCd) { case "1" -> "81"; // 부과제외 -> 부과제외(서손) case "2" -> "83"; // 계고 -> 계고 case "3" -> "80"; // 부과취소(전액감액) -> 부과취소 diff --git a/src/main/java/cokr/xit/fims/levy/Levy.java b/src/main/java/cokr/xit/fims/levy/Levy.java index abbffdca..97eeef62 100644 --- a/src/main/java/cokr/xit/fims/levy/Levy.java +++ b/src/main/java/cokr/xit/fims/levy/Levy.java @@ -199,6 +199,14 @@ public class Levy extends AbstractEntity { /** 단속 Ids */ private String[] crdnIds; + public int finalPcptax() { + return toInt(levyPcptax) - toInt(rcvmtPcptax) - toInt(rdamtPcptax); + } + + public int finalAdamt() { + return toInt(levyAdamt) - toInt(rcvmtAdamt) - toInt(rdamtAdamt); + } + public List> bankAccountSetters() { ArrayList> setters = new ArrayList<>(); setters.add((bankNm, accountNo) -> {setBankNm(bankNm); setVrActno(accountNo);}); 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 444fd93a..55211813 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 @@ -14,7 +14,6 @@ import org.springframework.stereotype.Component; import cokr.xit.base.user.service.bean.UserBean; import cokr.xit.fims.FimsConf; -import cokr.xit.fims.cmmn.CrdnSttsHstry; import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.dao.CrdnInfoMapper; @@ -27,6 +26,8 @@ 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.rdca.Rdamt; +import cokr.xit.fims.rdca.service.bean.RdamtBean; import cokr.xit.fims.sndb.SndbQuery; import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.fims.sndb.dao.SndngDtlMapper; @@ -34,6 +35,7 @@ import cokr.xit.foundation.Downloadable; import cokr.xit.foundation.UserInfo; import cokr.xit.foundation.component.AbstractBean; import cokr.xit.foundation.data.DataObject; +import cokr.xit.foundation.data.JSON; import cokr.xit.interfaces.sntris.buga.Bu04BugaWSDTO; import cokr.xit.interfaces.sntris.fileoffer.Ye22InputDTO; import cokr.xit.interfaces.sntris.fileoffer.Ye22NoticeInfoDTO; @@ -75,6 +77,10 @@ public class SnisBean extends AbstractBean { private LevyMapper levyMapper; @Resource(name = "rcvmtBean") private RcvmtBean rcvmtBean; + @Resource(name = "rdamtBean") + private RdamtBean rdamtBean; + + private JSON json = new JSON(); /**발송대상 사전통보를 서울 세외수입 시스템의 과태료대장에 등록한다. * @param req 발송대상 사전통보 조회조건 @@ -87,6 +93,7 @@ public class SnisBean extends AbstractBean { } public String update(Map results) { + log().debug("{} Bu18WebReturnInfoDTOs received", results.size()); // 로컬 발송대상 상세 업데이트 Set ids = results.keySet(); // 발송대상 상세ID SndbQuery req = new SndbQuery().setSndngDtlIds(ids.toArray(new String[ids.size()])); @@ -137,6 +144,8 @@ public class SnisBean extends AbstractBean { private SndngDtl update(Bu18WebReturnInfoDTO returned, SndngDtl sndngDtl) { if (returned == null) return null; + log().debug("returned\n{}", json.stringify(returned, true)); + sndngDtl.setLinkMngKey(returned.getNoticeAk()); // 연계 키 <- 세외수입 과태료대장키 // sndngDtl.setLinkMngKey(returned.getBuAfk()); // 연계 키 <- 세외수입 부과키 sndngDtl.setEpayno(returned.getEnapbuNo()); // 전자납부번호 @@ -309,7 +318,7 @@ public class SnisBean extends AbstractBean { levy.setLevyPcptax((int)notice.getTaxAmt()); // 부과본세 <- 과세금액 levy.setLevyAdamt((int)notice.gasanAmt()); // 부과가산금 - levy.setLastAmt((int)notice.totalAmt()); // 최종금액 + levy.setLastAmt((int)notice.finalAmt()); // 최종금액 levy.setDudtAftrAmt(null); if ("1".equals(notice.getBuStatusCd())) { // 완납일경우 @@ -352,6 +361,7 @@ public class SnisBean extends AbstractBean { } private void update(List notices) { + log().debug("{} Ye22NoticeInfoDTO(s) received", !isEmpty(notices) ? notices.size() : 0); if (isEmpty(notices)) return; // 세외수입 연계키별 부과정보 @@ -380,24 +390,40 @@ public class SnisBean extends AbstractBean { )); for (Ye22NoticeInfoDTO notice: notices) { - String status = notice.getBuStatusCd(); // 과태료 상태 - boolean paidFull = "1".equals(status); // '완납' 여부 + log().debug("Ye22NoticeInfoDTO of\n{}", json.stringify(notice, true)); + String statusCode = notice.getBuStatusCd(), // 과태료 상태 + status = notice.getBuStatusNm(); // 상태이름 + boolean paid = "1,2,3,4,5".contains(statusCode); // 수납(완납,이중납,일부납,과납,오납) String linkMngKey = Long.toString(notice.getBuAk()); // 세외수입 연계키 int rcvmtAmt = (int)notice.totalAmt(); - log().debug("세외수입 연계키: {}, 상태: {}", linkMngKey, status); + log().debug("세외수입 연계키: {}, 상태: {}", linkMngKey, statusCode); Levy levy = levies.get(linkMngKey); + if (levy == null) continue; update(notice, levy); // 부과정보에 적용 - levyMapper.updateLevy(levy); - if (paidFull) { - Rcvmt rcvmt = new Rcvmt(); // 수납등록 - rcvmt.setLevyId(levy.getLevyId()); - rcvmt.setRcvmtAmt(rcvmtAmt); + String crdnId = levy.getCrdnId(); + Crdn crdn = crdns.get(crdnId); + if (crdn == null) continue; + + if (paid) { + Rcvmt rcvmt = Rcvmt.create(levy); // 수납등록 + rcvmt.setRcvmtAmt(rcvmtAmt); // 수납금액 + rcvmt.setRcvmtYmd(notice.getNapbuYmd()); // 수납일자 + rcvmt.calcAmts(); + if ("1".equals(statusCode)) { // 완납 + String rcvmtSttsCd = switch (crdn.getCrdnSttsCd()) { + case "23", "31", "42", "43", "44", "45" -> "1"; // 사전부과, 의견제출, 사전통보발송, 사전통보완료 -> 사전통보수납 + case "51" -> "2"; // 부과 -> 부과수납 + case "55" -> "3"; // 압류 -> 압류수납 + default -> null; + }; + if (rcvmtSttsCd != null) + rcvmt.setRcvmtSttsCd(rcvmtSttsCd); + } rcvmtBean.createRcvmt(rcvmt); } - String crdnId = levy.getCrdnId(); if (bugwa) { SndngDtl sndngDtl = sndngDetails.get(crdnId); update(notice, sndngDtl); // 발송상세에 적용 @@ -405,18 +431,24 @@ public class SnisBean extends AbstractBean { sndngDtlMapper.updateSndngDtl(sndngDtl); } - Crdn crdn = crdns.get(crdnId); - if (crdn == null) continue; + boolean reduced = "30".equals(statusCode) || "전액감액".equals(status); + if (reduced) { // 감면, 전액감액 -> 감액 등록 + Rdamt rdamt = Rdamt.create(levy); + rdamtBean.createRdamt(rdamt); + } + + if (!paid && !reduced) + levyMapper.updateLevy(levy); - String crdnStatus = crdn.getCrdnSttsCd(); +// String crdnStatus = crdn.getCrdnSttsCd(); // 단속정보에 적용 - if ("0".equals(status)) { // '부과'상태 + if ("0".equals(statusCode)) { // '부과'상태 - } else if (paidFull) { + } else if (paid) { crdn.setRcvmtAmt(rcvmtAmt); // 수납금액 // notice.getNapbuYmd(); // 납부일자 crdnUpdtMapper.updateEditCrdn(crdn); - +/* crdnStatus = switch (crdn.getCrdnSttsCd()) { case "23", "31", "42", "43", "44", "45" -> "71"; // 사전부과, 의견제출, 사전통보발송, 사전통보완료 -> 사전통보수납 case "51" -> "72"; // 부과 -> 부과수납 @@ -429,6 +461,9 @@ public class SnisBean extends AbstractBean { CrdnSttsHstry history = CrdnSttsHstry.create(crdnStatus, null, crdn); crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(history); } +*/ + } else if ("전액감액".equals(status)) { + } } } diff --git a/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java b/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java index 1392f840..60e90f58 100644 --- a/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java +++ b/src/main/java/cokr/xit/fims/rcvm/Rcvmt.java @@ -1,5 +1,6 @@ package cokr.xit.fims.rcvm; +import cokr.xit.fims.levy.Levy; import cokr.xit.foundation.AbstractEntity; import lombok.Getter; import lombok.Setter; @@ -11,6 +12,28 @@ import lombok.Setter; @Getter @Setter public class Rcvmt extends AbstractEntity { + public static final Rcvmt create(Levy levy) { + Rcvmt rcvmt = new Rcvmt(); // 수납등록 + rcvmt.setSggCd(levy.getSggCd()); + rcvmt.setTaskSeCd(levy.getTaskSeCd()); + rcvmt.setDeptCd(levy.getDeptCd()); + rcvmt.setLevyId(levy.getLevyId()); + rcvmt.setRcvmtInptSeCd("11"); // 수납입력구분: 세외수입(FIM044) + rcvmt.setFyr(levy.getFyr()); // 회계연도 + rcvmt.setAcntgSeCd(levy.getAcntgSeCd()); // 회계구분 + rcvmt.setSpclBizCd(levy.getSpclBizCd()); + rcvmt.setTxitmCd(levy.getTxitmCd()); // 세목 + rcvmt.setLevyNo(levy.getLevyNo()); // 부과번호 + rcvmt.setIspySn(null); // 분납 일련번호 + rcvmt.setAcntgYmd(rcvmt.getRcvmtYmd()); // 회계일자 + rcvmt.setTsfYmd(rcvmt.getRcvmtYmd()); // 이체일자 + rcvmt.setPayMthdSeCd("10"); // 납부방법구분: 기타 (FIM045) + rcvmt.setEpayno(levy.getEpayno()); // 전자납부번호 + + rcvmt.setLastPcptax(levy.finalPcptax()); // 최종본세 + rcvmt.setLastAdamt(levy.finalAdamt()); // 최종가산금 + return rcvmt; + } /** * 수납 ID @@ -177,5 +200,33 @@ public class Rcvmt extends AbstractEntity { */ private String delRsn; -} - + /**수납본세와 가산금을 계산하고, 수납상태를 설정한다. + * 수납금액을 설정된 후 호출해야 한다. + */ + public void calcAmts() { + if (lastPcptax == null || lastAdamt == null) return; + + if (lastPcptax + lastAdamt == 0) { + rcvmtPcptax = rcvmtAdamt = 0; + rcvmtSeCd = "02"; // 이중수납 + } else { + rcvmtPcptax = lastPcptax; + rcvmtAdamt = lastAdamt; + int rcvmtAmt = toInt(this.rcvmtAmt); + + if (lastPcptax + lastAdamt == rcvmtAmt) + rcvmtSeCd = "01"; // 완납 + else if (lastPcptax + lastAdamt < rcvmtAmt) + rcvmtSeCd = "04"; // 과납 + else if (lastPcptax + lastAdamt > rcvmtAmt) { + if (rcvmtAmt > lastPcptax) { + rcvmtAdamt = rcvmtAmt - lastPcptax; + } else { + rcvmtPcptax = rcvmtAmt; + rcvmtAdamt = 0; + } + rcvmtSeCd = "06"; // 일부수납 + } + } + } +} \ No newline at end of file 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 5095a963..bc98e8f5 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 @@ -163,7 +163,7 @@ public class RcvmtBean extends AbstractBean { throw new RuntimeException("부과 대장에 수납금액 수정에 실패하였습니다."); // 합계 금액이 0이면서 완납(01) 또는 과납(04)이라면 단속 상태 코드를 수정한다. - if (levy.getLastAmt() == 0 && (rcvmtSeCd.equals("01") || rcvmtSeCd.equals("04"))) { + if (levy.getLastAmt() == 0 && ("01,04".contains(rcvmtSeCd))) { // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. String crdnSttsCd = levyInfo.string("CRDN_STTS_CD"); String newCrdnSttsCd = ""; @@ -180,13 +180,7 @@ public class RcvmtBean extends AbstractBean { }; } - CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); - crdnSttsHstry.setCrdnId(levyInfo.string("CRDN_ID")); // 단속 ID - crdnSttsHstry.setBfrSttsCd(levyInfo.string("CRDN_STTS_CD")); // 단속 상태 코드 - crdnSttsHstry.setBfrSttsChgDt(levyInfo.string("CRDN_STTS_CHG_DT")); // 단소 상태 변경 일시 - crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); // 단속상태코드(FIM010) - crdnSttsHstry.setTaskDtlId(rcvmt.getRcvmtId()); // 수납 ID - + CrdnSttsHstry crdnSttsHstry = CrdnSttsHstry.create(newCrdnSttsCd, rcvmt.getRcvmtId(), null, levyInfo); // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. if (!crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry)) throw new RuntimeException("수납 등록 중 단속 대장의 단속상태 수정에 실패하였습니다."); diff --git a/src/main/java/cokr/xit/fims/rdca/Rdamt.java b/src/main/java/cokr/xit/fims/rdca/Rdamt.java index 8e1331a0..16ae6ba0 100644 --- a/src/main/java/cokr/xit/fims/rdca/Rdamt.java +++ b/src/main/java/cokr/xit/fims/rdca/Rdamt.java @@ -1,8 +1,9 @@ package cokr.xit.fims.rdca; +import cokr.xit.fims.levy.Levy; +import cokr.xit.foundation.AbstractEntity; import lombok.Getter; import lombok.Setter; -import cokr.xit.foundation.AbstractEntity; /** * 감액 대장 @@ -98,4 +99,10 @@ public class Rdamt extends AbstractEntity { */ private String sggCd; -} + public static final Rdamt create(Levy levy) { + Rdamt rdamt = new Rdamt(); + rdamt.setLevyId(levy.getLevyId()); + rdamt.setSggCd(levy.getSggCd()); + return rdamt; + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/fims/rdca/service/bean/RdamtBean.java b/src/main/java/cokr/xit/fims/rdca/service/bean/RdamtBean.java index 98cbb528..23f6b289 100644 --- a/src/main/java/cokr/xit/fims/rdca/service/bean/RdamtBean.java +++ b/src/main/java/cokr/xit/fims/rdca/service/bean/RdamtBean.java @@ -28,11 +28,9 @@ import cokr.xit.foundation.data.DataObject; */ @Component("rdamtBean") public class RdamtBean extends AbstractBean { - /** 감액 대장 정보 DAO */ @Resource(name = "rdamtMapper") private RdamtMapper rdamtMapper; - /** 부과 대장 정보 DAO */ @Resource(name = "levyMapper") private LevyMapper levyMapper; @@ -98,11 +96,6 @@ public class RdamtBean extends AbstractBean { * */ public String createRdamt(Rdamt rdamt) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - int rtnNocs = -1; // 처리 결과 건수 - String rtnMsg = ""; // 처리 결과 메시지 - // 부과 ID로 부과 정보 조회 DataObject levyInfo = levyMapper.selectLevyAmt(new LevyQuery().setLevyId(rdamt.getLevyId())); @@ -110,15 +103,15 @@ public class RdamtBean extends AbstractBean { Levy levy = new Levy(); levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID - if ("02,03,04".contains(rdamt.getRdamtSeCd())) { // 02:부과취소, 03:이의신청수용, 04:법원이송 + int levyPcptax = toInt(levyInfo.get("LEVY_PCPTAX")); + int levyAdamt = toInt(levyInfo.get("LEVY_ADAMT")); + if ("02,03,04".contains(rdamt.getRdamtSeCd())) { // 02:부과취소, 03:이의신청수용, 04:법원이송 // 수납금액이 있으면 오류 발생 - if (toInt(levyInfo.get("RCVMT_PCPTAX")) + toInt(levyInfo.get("RCVMT_ADAMT")) > 0) { - rtnMsg = "[F] 수납금액이 존재합니다.
부분 감액으로 진행하시기 바랍니다."; // 예외를 발생시켜서 DB Rollback - return rtnMsg; - } + if (toInt(levyInfo.get("RCVMT_PCPTAX")) + toInt(levyInfo.get("RCVMT_ADAMT")) > 0) + return "[F] 수납금액이 존재합니다.
부분 감액으로 진행하시기 바랍니다."; - levy.setRdamtPcptax(toInt(levyInfo.get("LEVY_PCPTAX"))); // 감액 본세 - levy.setRdamtAdamt(toInt(levyInfo.get("LEVY_ADAMT"))); // 감액 가산금 + levy.setRdamtPcptax(levyPcptax); // 감액 본세 + levy.setRdamtAdamt(levyAdamt); // 감액 가산금 levy.setLastAmt(0); // 최종 금액 levy.setDudtAftrAmt(0); // 납기 후 금액 } else { @@ -132,17 +125,15 @@ public class RdamtBean extends AbstractBean { } } - rtnNocs = levyMapper.updateLevyRdamt(levy); - if (rtnNocs != 1) { - throw new RuntimeException("부과 대장의 감액 금액 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } + if (levyMapper.updateLevyRdamt(levy) != 1) + throw new RuntimeException("부과 대장의 감액 금액 수정에 실패하였습니다."); // 감액(TB_RDAMT) 대장 정보를 등록한다. if ("02,03,04".contains(rdamt.getRdamtSeCd())) { // 02:부과취소, 03:이의신청수용, 04:법원이송 - rdamt.setLastPcptax(toInt(levyInfo.get("LEVY_PCPTAX"))); - rdamt.setLastAdamt(toInt(levyInfo.get("LEVY_ADAMT"))); - rdamt.setRdamtPcptax(toInt(levyInfo.get("LEVY_PCPTAX"))); - rdamt.setRdamtAdamt(toInt(levyInfo.get("LEVY_ADAMT"))); + rdamt.setLastPcptax(levyPcptax); + rdamt.setLastAdamt(levyAdamt); + rdamt.setRdamtPcptax(levyPcptax); + rdamt.setRdamtAdamt(levyAdamt); } else { rdamt.setLastPcptax(toInt(levyInfo.get("LAST_PCPTAX"))); rdamt.setLastAdamt(toInt(levyInfo.get("LAST_ADAMT"))); @@ -150,10 +141,8 @@ public class RdamtBean extends AbstractBean { rdamt.setRdamtAdamt(rdamt.getRdamtAdamt()); } - rtnScs = rdamtMapper.insert(rdamt); - if (!rtnScs) { - throw new RuntimeException("감액 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } + if (!rdamtMapper.insert(rdamt)) + throw new RuntimeException("감액 대장 등록에 실패하였습니다."); return "[S] 작업이 정상 처리 되었습니다."; } @@ -167,9 +156,8 @@ public class RdamtBean extends AbstractBean { */ public String updateRdamt(Rdamt rdamt) { // 감액(TB_RDAMT) 대장 정보를 수정한다. - boolean rtnScs = rdamtMapper.update(rdamt); - if (!rtnScs) - throw new RuntimeException("감액 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + if (!rdamtMapper.update(rdamt)) + throw new RuntimeException("감액 대장 수정에 실패하였습니다."); return "[S] 작업이 정상 처리 되었습니다."; } @@ -183,11 +171,9 @@ public class RdamtBean extends AbstractBean { */ public String removeRdamt(Rdamt rdamt) { // 감액(TB_RDAMT) 대장 정보를 삭제한다. - boolean rtnScs = rdamtMapper.delete(rdamt); - if (!rtnScs) - throw new RuntimeException("감액 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + if (!rdamtMapper.delete(rdamt)) + throw new RuntimeException("감액 정보 삭제에 실패하였습니다."); return "[S] 작업이 정상 처리 되었습니다."; } - -} +} \ No newline at end of file diff --git a/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml b/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml index 0e30a3ef..dfdd5669 100644 --- a/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml +++ b/src/main/resources/sql/mapper/fims/rcvm/rcvmt-mapper.xml @@ -373,8 +373,7 @@ FROM TB_RCVMT WHERE RCVMT_ID LIKE CONCAT(#{sggCd}, DATE_FORMAT(CURRENT_DATE, '%Y'), '%') - INSERT - INTO TB_RCVMT ( + INSERT INTO TB_RCVMT ( RCVMT_ID , SGG_CD , TASK_SE_CD @@ -411,8 +410,7 @@ , RGTR , MDFCN_DT , MDFR - ) - VALUES ( + ) VALUES ( #{rcvmtId} , #{sggCd} , #{taskSeCd}