From 21df072845991fb7f1f8389eb68543b045883c3f Mon Sep 17 00:00:00 2001 From: jjh Date: Wed, 8 May 2024 18:46:42 +0900 Subject: [PATCH] =?UTF-8?q?1.=20=EA=B3=BC=ED=83=9C=EB=A3=8C=20=EB=8C=80?= =?UTF-8?q?=EC=9E=A5=20=EB=93=B1=EB=A1=9D=20=EC=9E=90=EB=A3=8C=20=EC=83=81?= =?UTF-8?q?=EC=84=B8=20=EC=A1=B0=ED=9A=8C(=EC=8B=A4=EC=8B=9C=EA=B0=84)=20?= =?UTF-8?q?=EC=88=98=EC=A0=95.=202.=20=EB=B6=80=EA=B3=BC=EC=A0=9C=EC=99=B8?= =?UTF-8?q?=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cokr/xit/fims/cmmn/CrdnSttsHstry.java | 5 ++ .../cmmn/service/bean/CrdnSttsHstryBean.java | 31 ++++---- .../fims/excl/service/bean/LevyExclBean.java | 68 ++++++++---------- .../service/bean/LevyExclServiceBean.java | 35 +-------- .../fims/excl/service/bean/OpnnSbmsnBean.java | 12 ++-- .../xit/fims/excl/web/Excl01Controller.java | 71 ++++++++++++------- .../fims/nxrp/service/bean/NisIndivBean.java | 3 +- .../fims/rdca/service/bean/RdcamtBean.java | 51 ++++++++----- .../xit/fims/sndb/service/bean/SndngBean.java | 6 +- .../fims/sndb/service/bean/SndngDtlBean.java | 4 +- .../xit/fims/sndb/web/Sndb01Controller.java | 41 ++++++++++- .../sql/mapper/fims/levy/levy-mapper.xml | 11 ++- .../WEB-INF/jsp/fims/excl/excl01010-main.jsp | 49 +++++++------ .../WEB-INF/jsp/fims/excl/excl01020-info.jsp | 4 +- .../WEB-INF/jsp/fims/excl/excl02010-main.jsp | 4 +- .../WEB-INF/jsp/fims/excl/excl02020-info.jsp | 10 +-- .../WEB-INF/jsp/fims/excl/excl02030-info.jsp | 4 +- .../WEB-INF/jsp/fims/excl/excl03010-main.jsp | 4 +- .../WEB-INF/jsp/fims/sndb/sndb01080-info.jsp | 8 +-- .../WEB-INF/jsp/fims/sprt/sprt02050-info.jsp | 4 +- 20 files changed, 233 insertions(+), 192 deletions(-) diff --git a/src/main/java/cokr/xit/fims/cmmn/CrdnSttsHstry.java b/src/main/java/cokr/xit/fims/cmmn/CrdnSttsHstry.java index 755924ee..cfcac2f8 100644 --- a/src/main/java/cokr/xit/fims/cmmn/CrdnSttsHstry.java +++ b/src/main/java/cokr/xit/fims/cmmn/CrdnSttsHstry.java @@ -53,6 +53,11 @@ public class CrdnSttsHstry extends AbstractEntity { */ private String etcCn; + /** + * 사용 여부 + */ + private String useYn; + /** * 등록 일시 */ diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnSttsHstryBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnSttsHstryBean.java index 0dac023a..948b747d 100644 --- a/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnSttsHstryBean.java +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/CrdnSttsHstryBean.java @@ -63,8 +63,8 @@ public class CrdnSttsHstryBean extends AbstractComponent { * */ public boolean create(CrdnSttsHstry crdnSttsHstry) { - if (crdnSttsHstry.getUseYN() == null) { - crdnSttsHstry.setUseYN("Y"); + if (crdnSttsHstry.getUseYn() == null) { + crdnSttsHstry.setUseYn("Y"); } return crdnSttsHstryMapper.insert(crdnSttsHstry); @@ -115,8 +115,8 @@ public class CrdnSttsHstryBean extends AbstractComponent { boolean rtnScs = false; // DB 처리 결과 // 사용 여부 - if (crdnSttsHstry.getUseYN() == null) { - crdnSttsHstry.setUseYN("Y"); + if (crdnSttsHstry.getUseYn() == null) { + crdnSttsHstry.setUseYn("Y"); } // 단속 상태 변경 일시 if (crdnSttsHstry.getCrdnSttsChgDt() == null) { @@ -149,7 +149,7 @@ public class CrdnSttsHstryBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String crdnSttsCd, String deleteSttsCd, boolean insertBfrSttsYn) { + public boolean removeHstryUpdateCrdnSttsCd(String crdnId, String crdnSttsCd, String deltSttsCd, String deltEtcCn, boolean insertBfrSttsYn) { // 변수 선언 boolean rtnScs = false; // DB 처리 결과 @@ -162,9 +162,8 @@ public class CrdnSttsHstryBean extends AbstractComponent { if (!crdnSttsCd.equals("")) { CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); - crdnSttsHstry.setSttsHstryId(crdnSttsHstryInfo.string("STTS_HSTRY_ID")); - crdnSttsHstry.setUseYN("N"); + crdnSttsHstry.setUseYn("N"); rtnScs = crdnSttsHstryMapper.update(crdnSttsHstry); if (!rtnScs) { @@ -173,9 +172,9 @@ public class CrdnSttsHstryBean extends AbstractComponent { } // 삭제 단속상태코드가 있다면.. 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다. - if (!deleteSttsCd.equals("")) { + if (!deltSttsCd.equals("")) { // 단속상태가 의견제출접수(31)가 아니면서, 삭제상태코드가 의견제출삭제(92)나 경찰서이첩삭제(97) 일 경우 - if (!crdnSttsCd.equals("31") && "92,97".contains(deleteSttsCd)) { + if (!crdnSttsCd.equals("31") && "92,97".contains(deltSttsCd)) { // 단속상태이력(TB_CRDN_STTS_HSTRY) 대장에서 의견제출접수(31) 이력을 조회후 사용여부를 미사용("N")으로 수정. crdnSttsHstryInfo = crdnSttsHstryMapper.selectCrdnSttsHstryInfo(crdnId, "31", "Y"); @@ -184,9 +183,8 @@ public class CrdnSttsHstryBean extends AbstractComponent { } CrdnSttsHstry opnnSttsHstry = new CrdnSttsHstry(); - opnnSttsHstry.setSttsHstryId(crdnSttsHstryInfo.string("STTS_HSTRY_ID")); - opnnSttsHstry.setUseYN("N"); + opnnSttsHstry.setUseYn("N"); rtnScs = crdnSttsHstryMapper.update(opnnSttsHstry); if (!rtnScs) { @@ -195,12 +193,12 @@ public class CrdnSttsHstryBean extends AbstractComponent { } CrdnSttsHstry deleteSttsHstry = new CrdnSttsHstry(); - deleteSttsHstry.setCrdnId(crdnSttsHstryInfo.string("CRDN_ID")); deleteSttsHstry.setBfrSttsCd(crdnSttsHstryInfo.string("CRDN_STTS_CD")); deleteSttsHstry.setBfrSttsChgDt(crdnSttsHstryInfo.string("REG_DT")); - deleteSttsHstry.setCrdnSttsCd(deleteSttsCd); - deleteSttsHstry.setUseYN("N"); + deleteSttsHstry.setCrdnSttsCd(deltSttsCd); + deleteSttsHstry.setEtcCn(deltEtcCn); + deleteSttsHstry.setUseYn("N"); rtnScs = crdnSttsHstryMapper.insert(deleteSttsHstry); if (!rtnScs) { @@ -211,13 +209,12 @@ public class CrdnSttsHstryBean extends AbstractComponent { if (insertBfrSttsYn) { // 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다. CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); - crdnSttsHstry.setCrdnId(crdnSttsHstryInfo.string("CRDN_ID")); - crdnSttsHstry.setBfrSttsCd(deleteSttsCd); + crdnSttsHstry.setBfrSttsCd(deltSttsCd); crdnSttsHstry.setBfrSttsChgDt(crdnSttsHstry.getCreatedAt()); crdnSttsHstry.setCrdnSttsCd(crdnSttsHstryInfo.string("BFR_STTS_CD")); crdnSttsHstry.setCrdnSttsChgDt(crdnSttsHstryInfo.string("BFR_STTS_CHG_DT")); - crdnSttsHstry.setUseYN("Y"); + crdnSttsHstry.setUseYn("Y"); rtnScs = createHstryUpdateCrdnSttsCd(crdnSttsHstry); if (!rtnScs) { 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 94643106..fdbbe5a2 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 @@ -113,47 +113,43 @@ public class LevyExclBean extends AbstractComponent { */ public String createLevyExcl(LevyExcl levyExcl) { // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = ""; // 처리 결과 메시지 + String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) // 단속 ID로 단속, 부과제외 정보 조회 DataObject crdnInfo = levyExclMapper.selectCrdnInfo(levyExcl.getCrdnId()); - // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. - if (!crdnInfo.string("LEVY_EXCL_ID").equals("")) { - rtnMsg = "[F] 작업 중 이미 등록된 부과제외 자료가 존재합니다."; + // 조회된 자료 정보로 등록 가능한지 검증 + if (!crdnInfo.string("LEVY_EXCL_ID").equals("")) { // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. + rtnMsg = "[F] 작업중 이미 등록된 부과제외 자료가 존재합니다."; return rtnMsg; } - // 단속 상태 코드(CRDN_STTS_CD) 확인.. - if (levyExcl.getLevyExclSeCd().equals("1") || levyExcl.getLevyExclSeCd().equals("2")) { // 비부과(서손), 계고 - // 단속 상태 코드가 부과(51) 보다 크다면, 비부과 또는 계고 등록을 할 수 없다. 종료.. - if (crdnInfo.number("CRDN_STTS_CD").intValue() >= 51) { - rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
    현재 자료의 단속 상태가 " + crdnInfo.string("CRDN_STTS_NM") + " 상태 입니다."; + if (levyExcl.getLevyExclSeCd().contains("1,2")) { // 비부과(서손), 계고 + if (crdnInfo.number("CRDN_STTS_CD").intValue() >= 51) { // 단속상태코드가 부과(51) 보다 크다면, 비부과 또는 계고 등록을 할 수 없다. + rtnMsg = "[F] 작업중 오류가 발생하였습니다.
    현재 자료의 단속상태가 " + crdnInfo.string("CRDN_STTS_NM") + " 상태 입니다."; return rtnMsg; } - } else if (levyExcl.getLevyExclSeCd().equals("5")) { - // 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. 전액감액 등록은 부과이후... - if (crdnInfo.number("CRDN_STTS_CD").intValue() < 51) { - rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
    현재 자료의 단속 상태가 " + crdnInfo.string("CRDN_STTS_NM") + " 상태 입니다."; + } else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소 + if (crdnInfo.number("CRDN_STTS_CD").intValue() < 51) { // 단속상태코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. + rtnMsg = "[F] 작업중 오류가 발생하였습니다.
    현재 자료의 단속상태가 " + crdnInfo.string("CRDN_STTS_NM") + " 상태 입니다."; return rtnMsg; } } - // 단속 민원(TB_CRDN_CVLCPT) 민원 처리 확인 - if (!crdnInfo.string("CVLCPT_LINK_ID").equals("")) { + if (!crdnInfo.string("CVLCPT_LINK_ID").equals("")) { // 단속 민원(TB_CRDN_CVLCPT) 민원 처리 확인 if (crdnInfo.string("CVLCPT_PRCS_CD").equals("00")) { - rtnMsg = "[F] 작업 중 단속 민원 자료가 처리 되지 않았습니다.
    단속 민원 업무를 먼저 처리 하시기 바랍니다.
    "; + rtnMsg = "[F] 작업중 단속 민원 자료가 처리 되지 않았습니다.
    단속 민원 업무를 먼저 처리 하시기 바랍니다.
    "; return rtnMsg; } } - // 단속 상태 코드 설정. - if (levyExcl.getLevyExclSeCd().equals("1")) { // 비부과 - newCrdnSttsCd = "81"; // 비부과(서손) - } else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고 - newCrdnSttsCd = "83"; // 계고 - } else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소(전액감액) - newCrdnSttsCd = "80"; // 부과취소 + // 단속상태코드 설정. + if (levyExcl.getLevyExclSeCd().equals("1")) { // 비부과 + newCrdnSttsCd = "81"; // 비부과(서손) + } else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고 + newCrdnSttsCd = "83"; // 계고 + } else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소(전액감액) + newCrdnSttsCd = "80"; // 부과취소 } // 부과취소(전액감액)일 경우 부과(TB_LEVY)에 감액금액 입력이 필요.. @@ -163,9 +159,8 @@ public class LevyExclBean extends AbstractComponent { return rtnMsg; } - // 감액 등록 + // 감액(TB_RDCAMT) 등록 Rdcamt rdcamt = new Rdcamt(); - rdcamt.setLevyId(crdnInfo.string("LEVY_ID")); // 부과 ID rdcamt.setRdcamtYmd(levyExcl.getLevyExclYmd()); // 감액 일자 rdcamt.setRdcamtSeCd("02"); // 감액 구분 코드 FIM085 - 02:부과취소 @@ -185,7 +180,6 @@ public class LevyExclBean extends AbstractComponent { // 단속상태이력(TB_CRDN_STTS_HSTRY) CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); - crdnSttsHstry.setCrdnId(crdnInfo.string("CRDN_ID")); crdnSttsHstry.setBfrSttsCd(crdnInfo.string("CRDN_STTS_CD")); crdnSttsHstry.setBfrSttsChgDt(crdnInfo.string("CRDN_STTS_CHG_DT")); @@ -213,7 +207,7 @@ public class LevyExclBean extends AbstractComponent { public String updateLevyExcl(LevyExcl levyExcl) { // 변수 선언 boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 + String rtnMsg = ""; // 처리 결과 메시지 // 부과제외(TB_LEVY_EXCL) 대장을 수정 한다. rtnScs = levyExclMapper.update(levyExcl); @@ -236,14 +230,10 @@ public class LevyExclBean extends AbstractComponent { public String removeLevyExcl(LevyExcl levyExcl) { // 변수 선언 boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 + String rtnMsg = ""; // 처리 결과 메시지 // 부과제외(TB_LEVY_EXCL) 정보를 조회한다. - LevyExclQuery req = new LevyExclQuery(); - req.setLevyExclId(levyExcl.getLevyExclId()); - req.setDelYn("N"); - - DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(req); + DataObject levyExclInfo = levyExclMapper.selectLevyExclInfo(new LevyExclQuery().setLevyExclId(levyExcl.getLevyExclId())); // 부과제외 ID가 조회되지 않았다면 종료.. if (levyExclInfo.string("LEVY_EXCL_ID").equals("")) { @@ -269,16 +259,16 @@ public class LevyExclBean extends AbstractComponent { } // 단속상태이력(TB_CRDN_STTS_HSTRY) 대장에 부과제외 이력삭제 및 부과제외삭제 이력을 등록 한다. - String deleteCrdnSttsCd = ""; + String deltCrdnSttsCd = ""; if (levyExclInfo.string("CRDN_STTS_CD").equals("80")) { // 임시 throw new RuntimeException("부과취소는 부과제외 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } else if (levyExclInfo.string("CRDN_STTS_CD").equals("81")) { - deleteCrdnSttsCd = "91"; // 비부과(서손) 삭제 + deltCrdnSttsCd = "91"; // 비부과(서손) 삭제 } else if (("83,84").contains(levyExclInfo.string("CRDN_STTS_CD"))) { - deleteCrdnSttsCd = "93"; // 계고 삭제 + deltCrdnSttsCd = "93"; // 계고 삭제 } - rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(levyExclInfo.string("CRDN_ID"), levyExclInfo.string("CRDN_STTS_CD"), deleteCrdnSttsCd, true); + rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(levyExclInfo.string("CRDN_ID"), levyExclInfo.string("CRDN_STTS_CD"), deltCrdnSttsCd, levyExcl.getDelRsn(), true); if (!rtnScs) { throw new RuntimeException("부과제외 삭제 작업 중 단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclServiceBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclServiceBean.java index 7b2c11cd..f5ed1696 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclServiceBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclServiceBean.java @@ -56,40 +56,7 @@ public class LevyExclServiceBean extends AbstractServiceBean implements LevyExcl @Override public String removeLevyExcl(LevyExcl levyExcl) { - // 변수 선언 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 부과제외 ID 및 부과제외 IDs 확인하여 null이면 종료 - if (levyExcl.getLevyExclId() == null && levyExcl.getLevyExclIds() == null) { - rtnMsg = "[F] 작업 중 선택 자료가 존재하지 않습니다."; - return rtnMsg; - } - - // 부과제외 삭제 처리 - if (levyExcl.getLevyExclId() != null) { - rtnMsg = levyExclBean.removeLevyExcl(levyExcl); - } else { - // 부과제외 IDs 를 확인하여 건수가 1보다 작다면 종료.. - if (levyExcl.getLevyExclIds().length < 1) { - rtnMsg = "[F] 작업 중 선택 자료가 존재하지 않습니다."; - return rtnMsg; - } - - // 부과제외 Ids 만큼 반복.. - for (int iLoop = 0; iLoop < levyExcl.getLevyExclIds().length; iLoop++) { - // 부과제외 ID 설정 - levyExcl.setLevyExclId(levyExcl.getLevyExclIds()[iLoop]); - - // 부과제외 삭제 호출 - rtnMsg = levyExclBean.removeLevyExcl(levyExcl); - // 오류가 발생하였으면 종료.. - if (rtnMsg.contains("[F]")) { - return rtnMsg; - } - } - } - - return rtnMsg; + return levyExclBean.removeLevyExcl(levyExcl); } } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java index 07b8cad8..22316b0a 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java @@ -389,27 +389,27 @@ public class OpnnSbmsnBean extends AbstractComponent { // 단속상태이력(TB_CRDN_STTS_HSTRY) 대장에 의견제출 이력삭제 및 의견제출삭제 이력을 등록 한다. boolean insertBfrSttsYN = false; String crdnSttsCd = ""; - String deleteCrdnSttsCd = ""; + String deltCrdnSttsCd = ""; if (opnnSbmsnInfo.string("CRDN_STTS_CD").equals("31")) { // 의견진술 접수 insertBfrSttsYN = true; crdnSttsCd = opnnSbmsnInfo.string("CRDN_STTS_CD"); - deleteCrdnSttsCd = "92"; + deltCrdnSttsCd = "92"; } else if (opnnSbmsnInfo.string("CRDN_STTS_CD").equals("82")) { // 의견진술 수용 insertBfrSttsYN = true; crdnSttsCd = opnnSbmsnInfo.string("CRDN_STTS_CD"); - deleteCrdnSttsCd = "92"; + deltCrdnSttsCd = "92"; } else if (opnnSbmsnInfo.string("CRDN_STTS_CD").equals("87")) { // 경찰서 이첩 insertBfrSttsYN = true; crdnSttsCd = opnnSbmsnInfo.string("CRDN_STTS_CD"); - deleteCrdnSttsCd = "97"; + deltCrdnSttsCd = "97"; } else { insertBfrSttsYN = false; crdnSttsCd = ""; - deleteCrdnSttsCd = "92"; + deltCrdnSttsCd = "92"; } - rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deleteCrdnSttsCd, insertBfrSttsYN); + rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deltCrdnSttsCd, opnnSbmsn.getDelRsn(), insertBfrSttsYN); if (!rtnScs) { throw new RuntimeException("단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } diff --git a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java index e3960474..147c27f9 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java @@ -47,19 +47,20 @@ public class Excl01Controller extends ApplicationController { public class METHOD_URL { public static final String - levyExclusionMain = "/010/main.do" // 부과 제외 관리 메인 화면 - , getLevyExclusionList = "/010/list.do" // 부과 제외 대장 목록 조회 - , removeLevyExclusion = "/010/remove.do" // 부과 제외 대장 삭제 - , getLevyExclusionInfo = "/020/info.do" // 부과 제외 대장 조회 - , createLevyExclusion = "/020/create.do" // 부과 제외 대장 등록 - , updateLevyExclusion = "/020/update.do" // 부과 제외 대장 수정 + levyExclusionMain = "/010/main.do" // 부과 제외 관리 메인 화면 + , getLevyExclusionList = "/010/list.do" // 부과 제외 대장 목록 조회 + , getLevyExclusionInfo = "/020/info.do" // 부과 제외 대장 조회 + , createLevyExclusion = "/020/create.do" // 부과 제외 대장 등록 + , updateLevyExclusion = "/020/update.do" // 부과 제외 대장 수정 + , removeLevyExclusion = "/010/remove.do" // 부과 제외 대장 삭제 ; } - /** 부과제외 대장 서비스 */ + /**부과제외 대장 서비스*/ @Resource(name="levyExclService") protected LevyExclService levyExclService; + /**설정 정보 Bean */ @Resource(name="stngBean") private StngBean stngBean; @@ -80,16 +81,16 @@ public class Excl01Controller extends ApplicationController { addCodes(commonCodes, mav, "FIM021", "FIM022"); return mav - .addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix - .addObject("infoPrefix", "levyExcl") // prefix - .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) + .addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "levyExcl") // prefix + .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) - .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) - .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) + .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) + .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) ; } - /**부과제외 관리 목록을 조회하여 반환한다.
    + /**부과제외 대장 목록을 조회하여 반환한다.
    * {@link LevyExclService#getLevyExclList(LevyExclQuery)} 참고 * @param req 부과제외 대장 조회 조건 * @return jsonView @@ -159,10 +160,12 @@ public class Excl01Controller extends ApplicationController { xlsx.cell(0, 0).value("부과제외").value(center).merge(0, cellDefs.size() - 1) .cell(3, 0).rowValues(CellDef.header(cellDefs, () -> StyleMaker.headerStyle(xlsx))) .cell(4, 0).values(list, CellDef.values(cellDefs.stream().map(i -> {if(i.getValue() instanceof Format) {i.setField(null);}; return i;}).toList())); + List cellWidthInfo = cellDefs.stream().map(CellDef::getWidth).toList(); for(int i=0; i> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054"); - addCodes(commonCodes, mav, "FIM021", "FIM022", "FIM054"); + addCodes(commonCodes, mav, "FIM021", "FIM022"); return mav - .addObject("saveCallbackFuncName", saveCallbackFuncName) // - .addObject("savedCallbackFuncName", savedCallbackFuncName) // - .addObject("pageName", "excl01020") // - .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 - .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) - .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) - .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) - .addObject("levyExclInfo", json ? info : toJson(info)) // 부과제외 정보 + .addObject("saveCallbackFuncName", saveCallbackFuncName) // + .addObject("savedCallbackFuncName", savedCallbackFuncName) // + .addObject("pageName", "excl01020") // + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) + .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) + .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) + .addObject("levyExclInfo", json ? info : toJson(info)) // 부과제외 정보 ; } } @@ -223,8 +225,9 @@ public class Excl01Controller extends ApplicationController { @RequestMapping(name="부과제외 대장 등록", value=METHOD_URL.createLevyExclusion) public ModelAndView createLevyExclusion(LevyExcl levyExcl) { boolean saved = false; - String rtnMsg = levyExclService.createLevyExcl(levyExcl); + String rtnMsg = ""; + rtnMsg = levyExclService.createLevyExcl(levyExcl); if (rtnMsg.contains("[S]")) { saved = true; } else { @@ -247,8 +250,9 @@ public class Excl01Controller extends ApplicationController { @RequestMapping(name="부과제외 대장 수정", value=METHOD_URL.updateLevyExclusion) public ModelAndView updateLevyExclusion(LevyExcl levyExcl) { boolean saved = false; - String rtnMsg = levyExclService.updateLevyExcl(levyExcl); + String rtnMsg = ""; + rtnMsg = levyExclService.updateLevyExcl(levyExcl); if (rtnMsg.contains("[S]")) { saved = true; } else { @@ -272,7 +276,22 @@ public class Excl01Controller extends ApplicationController { @RequestMapping(name="부과제외 대장 삭제", value=METHOD_URL.removeLevyExclusion) public ModelAndView removeLevyExclusion(LevyExcl levyExcl) { boolean saved = false; - String rtnMsg = levyExclService.removeLevyExcl(levyExcl); + String rtnMsg = ""; + + if (levyExcl.getLevyExclIds().length > 0) { // 부과제외 IDs + // 부과제외 IDs 만큼 반복.. + for (int iLoop = 0; iLoop < levyExcl.getLevyExclIds().length; iLoop++) { + // 부과제외 ID 설정 + levyExcl.setLevyExclId(levyExcl.getLevyExclIds()[iLoop]); + + // 부과제외 삭제 호출 + rtnMsg = levyExclService.removeLevyExcl(levyExcl); + if (rtnMsg.contains("[F]")) // 오류가 발생하였으면 종료.. + break; + } + } else { + rtnMsg = levyExclService.removeLevyExcl(levyExcl); + } if (rtnMsg.contains("[S]")) { saved = true; diff --git a/src/main/java/cokr/xit/fims/nxrp/service/bean/NisIndivBean.java b/src/main/java/cokr/xit/fims/nxrp/service/bean/NisIndivBean.java index b82269dc..17014646 100644 --- a/src/main/java/cokr/xit/fims/nxrp/service/bean/NisIndivBean.java +++ b/src/main/java/cokr/xit/fims/nxrp/service/bean/NisIndivBean.java @@ -375,7 +375,8 @@ public class NisIndivBean extends AbstractComponent { // 연계 서비스 호출 후 메세지 return rtnMsg = callHttpsJson(sUrl, "POST", sJsonData); -/* 테스트 샘플 +/* + // 테스트 샘플 rtnMsg = "{ " + " \"linkRstCd\":" + "\"000" + "\"" + ", \"linkRstMsg\":" + "\"정상 조회되었습니다." + "\"" diff --git a/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtBean.java b/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtBean.java index a9d51715..bcaa5b46 100644 --- a/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtBean.java +++ b/src/main/java/cokr/xit/fims/rdca/service/bean/RdcamtBean.java @@ -99,30 +99,37 @@ public class RdcamtBean extends AbstractComponent { */ public String createRdcamt(Rdcamt rdcamt) { // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = ""; // 처리 결과 메시지 // 부과 ID로 부과 정보 조회 DataObject levyInfo = levyMapper.selectLevyAmt(new LevyQuery().setLevyId(rdcamt.getLevyId())); - // 부과 확인 - // 부과(TB_LEVY) 대장 정보를 수정한다. Levy levy = new Levy(); + levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID - // 부과 취소(전액감액) - if (rdcamt.getRdcamtSeCd().equals("02")) { - rdcamt.setLastPcptax(levyInfo.number("LAST_PCPTAX").intValue()); - rdcamt.setLastAdamt(levyInfo.number("LAST_ADAMT").intValue()); - rdcamt.setRdcamtPcptax(levyInfo.number("LAST_PCPTAX").intValue()); - rdcamt.setRdcamtAdamt(levyInfo.number("LAST_ADAMT").intValue()); - } + if ("02,03,04".contains(rdcamt.getRdcamtSeCd())) { // 02:부과취소, 03:이의신청수용, 04:법원이송 + // 수납금액이 있으면 오류 발생 + if (levyInfo.number("RCVMT_PCPTAX").intValue() + levyInfo.number("RCVMT_ADAMT").intValue() > 0) { + rtnMsg = "[F] 수납금액이 존재합니다.
    부분 감액으로 진행하시기 바랍니다."; // 예외를 발생시켜서 DB Rollback + return rtnMsg; + } - levy.setLevyId(levyInfo.string("LEVY_ID")); // 부과 ID - levy.setRdcamtPcptax(levyInfo.number("RDCAMT_PCPTAX").intValue() + rdcamt.getRdcamtPcptax()); // 감액 본세 - levy.setRdcamtAdamt(levyInfo.number("RDCAMT_ADAMT").intValue() + rdcamt.getRdcamtAdamt()); // 감액 가산금 - levy.setSumAmt(levyInfo.number("SUM_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 합계 금액 - levy.setDudtAftrAmt(levyInfo.number("DUDT_AFTR_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 납기 후 금액 + levy.setRdcamtPcptax(levyInfo.number("LEVY_PCPTAX").intValue()); // 감액 본세 + levy.setRdcamtAdamt(levyInfo.number("LEVY_ADAMT").intValue()); // 감액 가산금 + levy.setSumAmt(0); // 합계 금액 + levy.setDudtAftrAmt(0); // 납기 후 금액 + } else { + levy.setRdcamtPcptax(levyInfo.number("RDCAMT_PCPTAX").intValue() + rdcamt.getRdcamtPcptax()); // 감액 본세 + levy.setRdcamtAdamt(levyInfo.number("RDCAMT_ADAMT").intValue() + rdcamt.getRdcamtAdamt()); // 감액 가산금 + levy.setSumAmt(levyInfo.number("SUM_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 합계 금액 + if (levy.getSumAmt() > 0) { + levy.setDudtAftrAmt(levyInfo.number("DUDT_AFTR_AMT").intValue() - rdcamt.getRdcamtPcptax() - rdcamt.getRdcamtAdamt()); // 납기 후 금액 + } else { + levy.setDudtAftrAmt(0); + } + } rtnScs = levyMapper.updateRdcamt(levy); if (!rtnScs) { @@ -130,6 +137,18 @@ public class RdcamtBean extends AbstractComponent { } // 감액(TB_RDCAMT) 대장 정보를 등록한다. + if ("02,03,04".contains(rdcamt.getRdcamtSeCd())) { // 02:부과취소, 03:이의신청수용, 04:법원이송 + rdcamt.setLastPcptax(levyInfo.number("LEVY_PCPTAX").intValue()); + rdcamt.setLastAdamt(levyInfo.number("LEVY_ADAMT").intValue()); + rdcamt.setRdcamtPcptax(levyInfo.number("LEVY_PCPTAX").intValue()); + rdcamt.setRdcamtAdamt(levyInfo.number("LEVY_ADAMT").intValue()); + } else { + rdcamt.setLastPcptax(levyInfo.number("LAST_PCPTAX").intValue()); + rdcamt.setLastAdamt(levyInfo.number("LAST_ADAMT").intValue()); + rdcamt.setRdcamtPcptax(rdcamt.getRdcamtPcptax()); + rdcamt.setRdcamtAdamt(rdcamt.getRdcamtAdamt()); + } + rtnScs = rdcamtMapper.insert(rdcamt); if (!rtnScs) { throw new RuntimeException("감액 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java index 98ab2825..57586f19 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java @@ -571,13 +571,12 @@ public class SndngBean extends AbstractComponent { // 단속 상태 이력(TB_CRDN_STTS_HSTRY)을 등록하고, 단속(TB_CRDN) 대장의 단속상태코드를 수정한다. if ("21,22,23".contains(crdnPayerInfo.string("CRDN_STTS_CD"))) { 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("42"); crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId()); - crdnSttsHstry.setUseYN("Y"); + crdnSttsHstry.setUseYn("Y"); // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); @@ -586,13 +585,12 @@ public class SndngBean extends AbstractComponent { } } else if (crdnPayerInfo.string("CRDN_STTS_CD").equals("31")) { 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("42"); crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId()); - crdnSttsHstry.setUseYN("Y"); + crdnSttsHstry.setUseYn("Y"); // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록한다. rtnScs = crdnSttsHstryBean.create(crdnSttsHstry); diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java index bc340a09..0976b946 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java @@ -194,8 +194,8 @@ public class SndngDtlBean extends AbstractComponent { boolean rtnScs = false; // DB 처리 결과 String rtnMsg = "[F] "; // 처리 결과 메시지 - // 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) 가 처리전(00)인 자료만 처리 - if (sndngDtl.getSndngDtlSttsCd().equals("00")) { + // 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) 가 세외수입부과(01)인 자료만 처리 + if (sndngDtl.getSndngDtlSttsCd().equals("01")) { NisIndivQuery nisIndivQuery = new NisIndivQuery(); nisIndivQuery.setCrdnId(sndngDtl.getCrdnId()); diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index 752e3fc4..b6d1cf2c 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -856,14 +856,14 @@ public class Sndb01Controller extends ApplicationController { } /**과태료 대장 단속 정보 등록를 등록한다. - * @param nisIndivA01 과태료 대장 단속 정보 등록 정보 + * @param req 발송 대장 조회 조건 * @return jsonView *
     {
     	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
     	 * }
    */ @Task({"ECA","DPV","PES","DVS"}) - @RequestMapping(name="차세대 세외수입 과태료 대장 단속 정보 등록", value=METHOD_URL.setNonTaxReceiptIndividualA01List) + @RequestMapping(name="세외수입 과태료 대장 단속 정보 등록", value=METHOD_URL.setNonTaxReceiptIndividualA01List) public ModelAndView setNonTaxReceiptIndividualA01List(SndbQuery req) { boolean saved = false; String rtnMsg = "[F]"; @@ -894,7 +894,44 @@ public class Sndb01Controller extends ApplicationController { .addObject("rtnMsg", rtnMsg); } + /**과태료 대장 등록 자료 상세 조회(실시간)한다. + * @param req 발송 대장 조회 조건 + * @return jsonView + *
     {
    +	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
    +	 * }
    + */ + @Task({"ECA","DPV","PES","DVS"}) + @RequestMapping(name="세외수입 과태료 대장 등록 자료 상세 조회", value=METHOD_URL.getNonTaxReceiptIndividualA03List) + public ModelAndView getNonTaxReceiptIndividualA03List(SndbQuery req) { + boolean saved = false; + String rtnMsg = "[F]"; + + List dtlList = sndngDtlService.getSndngTrgtDtlIds(req); + + // 발송상세 Ids 만큼 반복.. + for (int iLoop = 0; iLoop < dtlList.size(); iLoop++) { + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSndngDtlId(dtlList.get(iLoop).string("SNDNG_DTL_ID")); + sndngDtl.setCrdnId(dtlList.get(iLoop).string("CRDN_ID")); + sndngDtl.setLinkTrgtCd(dtlList.get(iLoop).string("LINK_TRGT_CD")); + sndngDtl.setLinkMngKey(dtlList.get(iLoop).string("LINK_MNG_KEY")); + sndngDtl.setSndngDtlSttsCd(dtlList.get(iLoop).string("SNDNG_DTL_STTS_CD")); + sndngDtl.setDelYn("N"); + rtnMsg = sndngDtlService.getNxrpIndivA03List(sndngDtl); + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } /**고지서 발송 현황 메인화면(sndb/sndb01/090-main)을 연다. * diff --git a/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml b/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml index cb22a2f4..0416db08 100644 --- a/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml +++ b/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml @@ -561,11 +561,11 @@