From bb6f75f7b960eb95e4a4d0e0a4ace78018ec60ee Mon Sep 17 00:00:00 2001 From: jjh Date: Mon, 7 Aug 2023 18:53:18 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B6=80=EA=B3=BC=EC=A0=9C=EC=99=B8=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D=EC=8B=9C=20=EB=8B=A8=EC=86=8D=EB=AF=BC?= =?UTF-8?q?=EC=9B=90,=20=EB=8B=A8=EC=86=8D,=20=EB=B0=9C=EC=86=A1=EC=83=81?= =?UTF-8?q?=EC=84=B8=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EC=A1=B0=ED=9A=8C=20?= =?UTF-8?q?=EB=B0=8F=20=EC=A0=95=EB=B3=B4=20=EC=88=98=EC=A0=95=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=B6=80=EB=B6=84=20=EC=B6=94=EA=B0=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cokr/xit/fims/excl/Excl01.java | 29 +++- .../java/cokr/xit/fims/excl/Excl01Query.java | 21 ++- src/main/java/cokr/xit/fims/excl/Excl02.java | 3 +- .../cokr/xit/fims/excl/dao/Excl01Mapper.java | 88 +++++++++-- .../fims/excl/service/bean/Excl01Bean.java | 60 ++++++++ .../excl/service/bean/Excl01ServiceBean.java | 138 ++++++++++++++--- .../excl/service/bean/Excl02ServiceBean.java | 40 ++--- .../excl/service/bean/Excl03ServiceBean.java | 16 +- .../sql/mapper/fims/excl/excl01-mapper.xml | 145 ++++++++++++++---- .../sql/mapper/fims/excl/excl02-mapper.xml | 1 + 10 files changed, 428 insertions(+), 113 deletions(-) diff --git a/src/main/java/cokr/xit/fims/excl/Excl01.java b/src/main/java/cokr/xit/fims/excl/Excl01.java index 4b7437eb..8b6dd56e 100644 --- a/src/main/java/cokr/xit/fims/excl/Excl01.java +++ b/src/main/java/cokr/xit/fims/excl/Excl01.java @@ -104,25 +104,44 @@ public class Excl01 extends AbstractEntity { private String delRsn; // 추가 ///////////////////////////////////////////////////////////////////// - /* 단속(TB_CRDN) */ /** - * 단속 등록 구분 코드 + * 단속(TB_CRDN) - 단속 등록 구분 코드 */ private String crdnRegSeCd; /** - * 단속 일자 + * 단속(TB_CRDN) - 단속 일자 */ private String crdnYmd; /** - * 단속 시각 + * 단속(TB_CRDN) - 단속 시각 */ private String crdnTm; /** - * 차량번호 + * 단속(TB_CRDN) - 차량번호 */ private String vhrno; + /** + * 단속(TB_CRDN) - 주차 가능 결과 코드 + */ + private String parkngPsbltyRsltCd; + + /** + * 단속 민원(TB_CRDN_CVLCPT) - 민원 연계 ID + */ + private String cvlcptLinkId; + + /** + * 단속 민원(TB_CRDN_CVLCPT) - 민원 처리 코드 + */ + private String cvlcptPrcsCd; + + /** + * 단속 민원(TB_CRDN_CVLCPT) - 민원 전송 코드 + */ + private String cvlcptTrsmCd; + } diff --git a/src/main/java/cokr/xit/fims/excl/Excl01Query.java b/src/main/java/cokr/xit/fims/excl/Excl01Query.java index a7837687..1b16f96a 100644 --- a/src/main/java/cokr/xit/fims/excl/Excl01Query.java +++ b/src/main/java/cokr/xit/fims/excl/Excl01Query.java @@ -44,8 +44,8 @@ public class Excl01Query extends QueryRequest { private String schLevyExclYmdFrom; // 부과 제외 일자 시작 private String schLevyExclYmdTo; // 부과 제외 일자 종료 private String schLevyExclSeCd; // 부과 제외 구분 코드 - private String schVhrno; // 차량번호 - 단속(TB_CRDN) - private String schRtpyrNm; // 납부자 명 - 납부자(TB_PAYER) + private String schVhrno; // 단속(TB_CRDN) - 차량번호 + private String schRtpyrNm; // 납부자(TB_PAYER) - 납부자 명 private String schCrdnYmdFrom; // 단속 일자 시작 private String schCrdnYmdTo; // 단속 일자 종료 @@ -55,10 +55,11 @@ public class Excl01Query extends QueryRequest { private String grid; private String levyExclSeCd; // 부과 제외 구분 코드 private String levyExclSeNm; // 부과 제외 구분 코드 - private String vhrno; // 차량번호 - 단속(TB_CRDN) - private String rtpyrNm; // 납부자 명 - 납부자(TB_PAYER) + private String vhrno; // 단속(TB_CRDN) - 차량번호 + private String rtpyrNm; // 납부자(TB_PAYER) - 납부자 명 // ETC + private String ansRsnCd; // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) - 답변 사유 코드 private String delRsn; // 삭제 사유 public String getSggCd() { @@ -384,11 +385,21 @@ public class Excl01Query extends QueryRequest { // 동적 검색 조건 /////////////////////////////////////////////////////////////// // ETC ///////////////////////////////////////////////////////////////////// + public String getAnsRsnCd() { + return ifEmpty(ansRsnCd, () -> null); + } + + public T setAnsRsnCd(String ansRsnCd) { + this.ansRsnCd = ansRsnCd; + + return self(); + } + public String getDelRsn() { return ifEmpty(delRsn, () -> null); } - public T setDelRsn(String delRsn) { + public T setDelRsn(String delRsn) { this.delRsn = delRsn; return self(); diff --git a/src/main/java/cokr/xit/fims/excl/Excl02.java b/src/main/java/cokr/xit/fims/excl/Excl02.java index 0134da35..0cbda1f2 100644 --- a/src/main/java/cokr/xit/fims/excl/Excl02.java +++ b/src/main/java/cokr/xit/fims/excl/Excl02.java @@ -210,8 +210,9 @@ public class Excl02 extends AbstractEntity { */ private String delRsn; + // 추가 ///////////////////////////////////////////////////////////////////// /** - * 의견 제출 여부 + * 단속(TB_CRDN) - 의견 제출 여부 */ private String opnnSbmsnYn; diff --git a/src/main/java/cokr/xit/fims/excl/dao/Excl01Mapper.java b/src/main/java/cokr/xit/fims/excl/dao/Excl01Mapper.java index e726266b..a96442a4 100644 --- a/src/main/java/cokr/xit/fims/excl/dao/Excl01Mapper.java +++ b/src/main/java/cokr/xit/fims/excl/dao/Excl01Mapper.java @@ -45,18 +45,6 @@ public interface Excl01Mapper extends AbstractMapper { return !levyExcl.isEmpty() ? levyExcl.get(0) : null; } - /**지정한 단속 ID의 단속, 부과제외 정보를 반환한다. - * @param crdnId 단속 ID - * @return 단속, 부과제외 정보 - */ - DataObject selectCrdn(Excl01Query req); - - default DataObject selectCrdnInfo(String crdnId) { - DataObject crdnInfo = selectCrdn(new Excl01Query().setCrdnId(crdnId)); - - return crdnInfo; - } - /**부과제외 대장 정보를 등록한다. * @param params 파라미터 *
  • "excl01" - 부과 제외 대장
  • @@ -100,4 +88,80 @@ public interface Excl01Mapper extends AbstractMapper { return excl01 != null && deleteLevyExcl(params().set("excl01", excl01)) >= 1; } + /**지정한 단속 ID의 단속, 부과제외 정보를 반환한다. + * @param crdnId 단속 ID + * @return 단속, 부과제외 정보 + */ + DataObject selectCrdn(Excl01Query req); + + default DataObject selectCrdnInfo(String crdnId) { + DataObject crdnInfo = selectCrdn(new Excl01Query().setCrdnId(crdnId)); + + return crdnInfo; + } + + /**지정한 조건에 따라 민원답변문구 대장을 조회하여 반환한다. + * @param crdnId 단속 ID + * @return 단속, 부과제외 정보 + */ + DataObject selectCvlcptAnsWords(Excl01Query req); + + default DataObject selectCvlcptAnsWordsInfo(String ansRsnCd) { + DataObject cvlcptAnsWordsInfo = selectCvlcptAnsWords(new Excl01Query().setAnsRsnCd(ansRsnCd)); + + return cvlcptAnsWordsInfo; + } + + /**단속민원(TB_CRDN_CVLCPT) 대장 민원처리코드, 민원전송코드를 수정 한다. + * @param excl 부과제외 대장 + * @return 저장된 정보수 + */ + int updateCrdnCvlcptPrcs(Map params); + + default boolean updateCrdnCvlcptPrcs(Excl01 excl01) { + return excl01 != null && updateCrdnCvlcptPrcs(params().set("excl01", excl01)) == 1; + } + + /**단속민원(TB_CRDN_CVLCPT) 대장 민원처리결과내용을 수정 한다. + * @param excl 부과제외 대장 + * @return 저장된 정보수 + */ + int updateCvlcptPrcsRsltCn(Map params); + + default boolean updateCvlcptPrcsRsltCn(Excl01 excl01) { + return excl01 != null && updateCvlcptPrcsRsltCn(params().set("excl01", excl01)) == 1; + } + + /**단속(TB_CRDN) 대장 주차가능결과코드를 수정 한다. + * @param excl 부과제외 대장 + * @return 저장된 정보수 + */ + int updateParkngPsbltyRsltCd(Map params); + + default boolean updateParkngPsbltyRsltCd(Excl01 excl01) { + return excl01 != null && updateParkngPsbltyRsltCd(params().set("excl01", excl01)) == 1; + } + + /**지정한 조건에 따라 발송상세 대장을 조회하여 반환한다. + * @param crdnId 단속 ID + * @return 단속, 부과제외 정보 + */ + DataObject selectSndngDtl(Excl01Query req); + + default DataObject selectSndngDtlInfo(String crdnId) { + DataObject sndngDtlInfo = selectSndngDtl(new Excl01Query().setCrdnId(crdnId)); + + return sndngDtlInfo; + } + + /**발송 상세(TB_SNDNG_DTL) 대장 수납코드를 수정 한다. + * @param excl 부과제외 대장 + * @return 저장된 정보수 + */ + int updateRcvmtCd(Map params); + + default boolean updateRcvmtCd(Excl01 excl01) { + return excl01 != null && updateRcvmtCd(params().set("excl01", excl01)) >= 1; + } + } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java index 2ab59812..282dcf31 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java @@ -98,4 +98,64 @@ public class Excl01Bean extends AbstractComponent { return excl01Mapper.selectCrdnInfo(crdnId); } + /**지정한 조건에 따라 민원답변문구 대장을 조회하여 반환한다. + * @param crdnId 단속 ID + * @return 단속, 부과제외 대장 목록 + */ + public DataObject selectCvlcptAnsWordsInfo(String ansRsnCd) { + return excl01Mapper.selectCvlcptAnsWordsInfo(ansRsnCd); + } + + /**단속민원(TB_CRDN_CVLCPT) 대장 민원처리코드, 민원전송코드를 수정 한다. + * @param excl 부과제외 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public boolean updateCrdnCvlcptPrcs(Excl01 excl01) { + return excl01Mapper.updateCrdnCvlcptPrcs(excl01); + } + + /**단속민원(TB_CRDN_CVLCPT) 대장의 민원처리결과내용을 수정 한다. + * @param excl 부과제외 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public boolean updateCvlcptPrcsRsltCn(Excl01 excl01) { + return excl01Mapper.updateCvlcptPrcsRsltCn(excl01); + } + + /**단속(TB_CRDN) 대장의 주차가능결과코드를 수정 한다. + * @param excl 부과제외 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public boolean updateParkngPsbltyRsltCd(Excl01 excl01) { + return excl01Mapper.updateParkngPsbltyRsltCd(excl01); + } + + /**지정한 조건에 따라 발송상세 대장을 조회하여 반환한다. + * @param crdnId 단속 ID + * @return 단속, 부과제외 대장 목록 + */ + public DataObject selectSndngDtlInfo(String crdnId) { + return excl01Mapper.selectSndngDtlInfo(crdnId); + } + + /**발송상세(TB_SNDNG_DTL) 대장의 수납코드를 수정 한다. + * @param excl 부과제외 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ + public boolean updateRcvmtCd(Excl01 excl01) { + return excl01Mapper.updateRcvmtCd(excl01); + } + } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java index 41a7c0cd..f1e59f4c 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java @@ -62,9 +62,11 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv // 변수 선언 Map retMap = new HashMap(); // 결과 return boolean retSuccess = false; // DB 처리 결과 - String newCrdnSttsCd = ""; // 신규 단속 상태 코드 + String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) + String newCvlcptPrcsCd = ""; // 신규 민원 처리 코드(CVLCPT_PRCS_CD) + String newCvlcptTrsmCd = ""; // 민원 전송 코드(CVLCPT_TRSM_CD) - // 단속 ID로 단속, 부과제외 정보 조회 + // 단속 ID로 단속, 단속민원, 부과제외 정보 조회 DataObject infoCrdnLevyExcl = excl01Bean.getCrdnLevyExclusion(excl01.getCrdnId()); // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. @@ -74,20 +76,120 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv return retMap; } - - if (excl01.getLevyExclSeCd().equals("1") || excl01.getLevyExclSeCd().equals("2")) { // 비부과, 계고 등록시.. - // 단속 상태 코드가 부과(51) 보다 크다면..부과제외 등록 할 수 없다. 종료.. + // 단속 상태 코드(CRDN_STTS_CD) 확인.. + if (excl01.getLevyExclSeCd().equals("1") || excl01.getLevyExclSeCd().equals("2")) { // 비부과(서손), 계고 + // 단속 상태 코드가 부과(51) 보다 크다면, 비부과 또는 계고를 등록 할 수 없다. 종료.. if (Integer.parseInt(infoCrdnLevyExcl.string("CRDN_STTS_CD")) > 50) { retMap.put("retSaved", "false"); retMap.put("retMessage", "단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); return retMap; } +// } else if (excl01.getLevyExclSeCd().equals("5")) { +// // 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. +// if (Integer.parseInt(infoCrdnLevyExcl.string("CRDN_STTS_CD")) < 50) { +// retMap.put("retSaved", "false"); +// retMap.put("retMessage", "단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); +// +// return retMap; +// } + } + + // 여러 대장 수정에 사용한다. + Excl01 updtCrdn = new Excl01(); -// 추가필요 20230718 조재현 ////////////////////////////////////////////////////////// + updtCrdn.setCrdnId(infoCrdnLevyExcl.string("CRDN_ID")); // 단속 ID + updtCrdn.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); // 민원 연계 ID + + // 비부과(서손), 계고 등록 하는데, 단속 민원 대장(TB_CRDN_CVLCPT)의 민원처리코드가 초기상태면 답변대상으로 수정한다 + if (excl01.getLevyExclSeCd().equals("1") || excl01.getLevyExclSeCd().equals("2")) { // 자동등록 자료만 민원답변 부분을 처리 if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) { + // 단속등록구분코드(CRDN_REG_SE_CD)를 확인하여 민원처리코드(CVLCPT_PRCS_CD) 수정. + if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("00") + || infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("01") + || infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("04")) { + newCvlcptPrcsCd = "06"; // 민원 처리 코드 - 답변 미대상 변환등록, 수기등록, 복사등록, 재등록 + newCvlcptTrsmCd = "02"; // 민원 전송 코드 - 전송 미대상 변환등록, 수기등록, 복사등록, 재등록 + } else if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("03")) { +/* +if Msg_Confirm('서손 후 재등록된 자료입니다.' + #13 + '다시 새올 답변대상자료로 넘기겠습니까?') <> mrYes then new_as_state := ANSWER_STATE_CANCEL_COPY +else new_as_state := ANSWER_STATE_ANSWER_FOR_CANCEL; // 답변대상(서손) + */ + newCvlcptPrcsCd = "06"; // 민원 처리 코드 - 답변 미대상 변환등록, 수기등록, 복사등록, 재등록 + newCvlcptTrsmCd = "02"; // 민원 전송 코드 - 전송 미대상 변환등록, 수기등록, 복사등록, 재등록 + } else { + // 답변완료후 서손처리에 대해서는 답변 상태를 업데이트 하지 않는다 + // 처리완료(부과), 처리완료(계도), 처리완료(서손), 처리완료(수기), 답변 미대상 변환등록, 수기등록, 복사등록, 재등록 + if (!(infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("06") || infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02"))) { + // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 + DataObject infoCvlcptAnsWords = excl01Bean.selectCvlcptAnsWordsInfo(excl01.getLevyExclRsnCd()); + + // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면.. + if (!infoCvlcptAnsWords.string("ANS_WORDS_ID").equals("")) { + newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외) + newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상 + } else { + newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상 + newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상 + } + + // 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다. + updtCrdn.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드 + updtCrdn.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드 + + retSuccess = excl01Bean.updateCrdnCvlcptPrcs(updtCrdn); // 단속민원 민원처리코드 수정 + if (!retSuccess) { + retMap.put("retSaved", "false"); + retMap.put("retMessage", "부과제외 등록 중 민원처리코드 수정에 실패하였습니다."); + + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException(retMap.get("retMessage")); + } + } + } + + // 답변내용을 초기화, + // 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다. + // 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다. + // 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다. + retSuccess = excl01Bean.updateCvlcptPrcsRsltCn(updtCrdn); // 단속민원 민원처리결과내용 수정 + if (!retSuccess) { + retMap.put("retSaved", "false"); + retMap.put("retMessage", "부과제외 등록 중 단속민원 대장의 민원처리결과내용 초기화에 실패하였습니다."); + + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException(retMap.get("retMessage")); + } + } // if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) + + // 표지정보 확인여부가 미확인이면 -> 조회미대상 으로 + if (infoCrdnLevyExcl.string("PARKNG_PSBLTY_RSLT_CD").equals("0")) { + // 단속(TB_CRDN) 대장을 수정 한다. + updtCrdn.setParkngPsbltyRsltCd("9"); // 주차 가능 결과 코드 + + retSuccess = excl01Bean.updateParkngPsbltyRsltCd(updtCrdn); // 단속민원 민원처리결과내용 수정 + if (!retSuccess) { + retMap.put("retSaved", "false"); + retMap.put("retMessage", "부과제외 등록 중 단속 대장의 표지정보확인여부 수정에 실패하였습니다."); + + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException(retMap.get("retMessage")); + } + } + } + // 단속 ID로 발송 상세(TB_SNDNG_DTL) 대장 정보 조회 + DataObject infoSndngDtl = excl01Bean.selectSndngDtlInfo(excl01.getCrdnId()); + + if (infoSndngDtl != null) { + retSuccess = excl01Bean.updateRcvmtCd(updtCrdn); // 발송상세 수납코드 수정 + if (!retSuccess) { + retMap.put("retSaved", "false"); + retMap.put("retMessage", "부과제외 등록 중 발송상세 대장의 수납코드 수정에 실패하였습니다."); + + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException(retMap.get("retMessage")); } } @@ -100,13 +202,13 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv newCrdnSttsCd = "80"; // 부과취소 } - // 부과제외(TB_LEVY_EXCL) 대장 등록 + // 부과제외(TB_LEVY_EXCL) 대장을 등록 한다. retSuccess = excl01Bean.create(excl01); - if (!retSuccess) { // 등록 되지 않았다면.. + if (!retSuccess) { retMap.put("retSaved", "false"); retMap.put("retMessage", "부과제외 대장 등록에 실패하였습니다."); - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException(retMap.get("retMessage")); } @@ -124,9 +226,9 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv retSuccess = crdnSttsHstryService.createHstryUpdateCrdnSttsCd(crdnSttsHstry); if (!retSuccess) { retMap.put("retSaved", "false"); - retMap.put("retMessage", "부과제외 대장 등록 중 단속상태코드 변경에 실패하였습니다."); + retMap.put("retMessage", "부과제외 등록 중 단속상태코드 변경에 실패하였습니다."); - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException(retMap.get("retMessage")); } @@ -148,7 +250,7 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv retMap.put("retSaved", "false"); retMap.put("retMessage", "부과제외 대장 수정에 실패하였습니다."); - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException(retMap.get("retMessage")); } @@ -170,7 +272,7 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv // 단속 상태 코드(CRDN_STTS_CD) 확인.. if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손) - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); } else if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("2") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고 throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."); @@ -181,19 +283,17 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. retSuccess = crdnSttsHstryService.removeHstryUpdateCrdnSttsCd(infoCrdnLevyExcl.string("CRDN_ID")); if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. - throw new RuntimeException("의견제출 대장 삭제 중 단속상태 변경에 실패하였습니다."); + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 삭제 중 단속상태 변경에 실패하였습니다."); } // 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다. retSuccess = excl01Bean.remove(excl01); if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. - throw new RuntimeException("부과제외 대장 삭제 중 부과제외정보 삭제에 실패하였습니다."); + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 대장 삭제에 실패하였습니다."); } - - // 추가필요 20230718 조재현 ////////////////////////////////////////////////////////// // 부과제외구분이 비부과(서손), 계고일 경우 if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") || infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("2")) { /* diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl02ServiceBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl02ServiceBean.java index 7001dcaa..c9538c7d 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl02ServiceBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl02ServiceBean.java @@ -100,7 +100,7 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv retMap.put("retSaved", "false"); retMap.put("retMessage", "의견제출 대장 등록에 실패하였습니다."); - // 예외를 발생시켜서 오류메세지를 보내고 롤백.. + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException(retMap.get("retMessage")); } @@ -114,14 +114,14 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv } // 단속 상태 코드가 사전통보중 이전일때만 단속의 상태를 의견진술중으로 수정 한다. - if (Integer.parseInt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")) <= 42) { // 사전통보 완료 + if (Integer.parseInt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")) <= 42) { // 사전통보 완료 // 단속상태이력(TB_CRDN_STTS_HSTRY) CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); crdnSttsHstry.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); crdnSttsHstry.setBfrSttsCd(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")); crdnSttsHstry.setBfrSttsChgDt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CHG_DT")); - crdnSttsHstry.setCrdnSttsCd("31"); // 의견진술 접수 + crdnSttsHstry.setCrdnSttsCd("31"); // 의견진술 접수 crdnSttsHstry.setTaskDtlId(excl02.getOpnnId()); crdnSttsHstry.setEtcCn("의견제출 대장 등록"); @@ -129,9 +129,9 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv retSuccess = crdnSttsHstryService.createHstryUpdateCrdnSttsCd(crdnSttsHstry); if (!retSuccess) { retMap.put("retSaved", "false"); - retMap.put("retMessage", "의견제출 대장 등록 중 단속상태코드 변경에 실패하였습니다."); + retMap.put("retMessage", "의견제출 등록 중 단속상태코드 변경에 실패하였습니다."); - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException(retMap.get("retMessage")); } } @@ -145,9 +145,9 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv retSuccess = excl02Bean.updateCrdn(updtCrdn); // 단속 대장 수정 if (!retSuccess) { retMap.put("retSaved", "false"); - retMap.put("retMessage", "의견제출 대장 등록 중 의견제출여부 변경에 실패하였습니다."); + retMap.put("retMessage", "의견제출 등록 중 의견제출여부 변경에 실패하였습니다."); - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException(retMap.get("retMessage")); } @@ -170,7 +170,7 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv retMap.put("retSaved", "false"); retMap.put("retMessage", "의견제출 대장 수정에 실패하였습니다."); - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException(retMap.get("retMessage")); } @@ -193,33 +193,21 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv // 의견제출(TB_OPNN_SBMSN) + 단속(TB_CRDN) 자료 조회 infoCrdnOpnnSbmsn = excl02Bean.getInfo(new Excl02Query().setOpnnId(excl02.getOpnnId())); -/* - * 이전 델파이 소스를 변경했을 경우...... - // 의견제출 상태가 수용이고, 단속 상태도 의견진술 수용이면 이전 상태로 복원 한다. - if (infoCrdnOpnnSbmsn.string("OPNN_SBMSN_STTS_CD").equals("02") && infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) { - // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. - retSuccess = crdnSttsHstryService.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID")); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. - throw new RuntimeException("의견제출 대장 삭제 중 단속상태 변경에 실패하였습니다."); - } - } -*/ // 단속 상태 코드가 의견진술 접수(31) 또는 의견진술 수용(82) 이라면... 이전 단속 상태 코드로 복원 한다. if (infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("31") || infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) { // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. retSuccess = crdnSttsHstryService.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID")); if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. - throw new RuntimeException("의견제출 대장 삭제 중 단속상태 변경에 실패하였습니다."); + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 삭제 중 단속상태 변경에 실패하였습니다."); } } // 의견제출(TB_OPNN_SBMSN) 대장을 삭제 한다. retSuccess = excl02Bean.remove(excl02); if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. - throw new RuntimeException("의견제출 대장 삭제 중 의견제출정보 삭제에 실패하였습니다."); + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 대장 삭제에 실패하였습니다."); } // 단속 대장(TB_CRDN) 의견제출여부(OPNN_SBMSN_YN) 정보를 수정 한다. @@ -230,8 +218,8 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv retSuccess = excl02Bean.updateCrdn(updtCrdn); // 단속 대장 수정 if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. - throw new RuntimeException("의견제출 대장 삭제 중 의견제출여부 변경에 실패하였습니다."); + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("의견제출 삭제 중 의견제출여부 변경에 실패하였습니다."); } retSuccess = true; diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl03ServiceBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl03ServiceBean.java index ca3bbcad..909a616f 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl03ServiceBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl03ServiceBean.java @@ -48,7 +48,6 @@ public class Excl03ServiceBean extends AbstractServiceBean implements Excl03Serv public boolean create(Excl03 excl03) { // 변수 선언 boolean retSuccess = false; // DB 처리 결과 - String retMessage = "등록 처리 중 "; // 단속 ID로 부과제외 정보 조회 DataObject infoCrdn = excl03Bean.getCrackdown(excl03.getBfrCrdnId()); @@ -117,17 +116,14 @@ public class Excl03ServiceBean extends AbstractServiceBean implements Excl03Serv crdn.setMinusAmt(0); // 감경 금액 crdn.setRcvmtAmt(0); // 수납 금액 crdn.setBfrCrdnId(infoCrdn.string("CRDN_ID")); // 이전 단속 ID + crdn.setDoGuidance(""); // 계고 여부 crdn.setDelYn("N"); // 단속 대장 입력 - crdn.setDoGuidance(""); - retSuccess = crdn05Service.create(crdn); if (!retSuccess) { - retMessage = "단속 대장 등록에 실패하였습니다."; - - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. - throw new RuntimeException(retMessage); + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("재부과 등록 중 단속대장 등록에 실패하였습니다."); } // 단속 대장 사진 복사 @@ -139,10 +135,8 @@ public class Excl03ServiceBean extends AbstractServiceBean implements Excl03Serv retSuccess = excl03Bean.create(excl03); if (!retSuccess) { - retMessage = "재부과 대장 등록에 실패하였습니다."; - - // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. - throw new RuntimeException(retMessage); + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("재부과 대장 등록에 실패하였습니다."); } // 처리 성공 diff --git a/src/main/resources/sql/mapper/fims/excl/excl01-mapper.xml b/src/main/resources/sql/mapper/fims/excl/excl01-mapper.xml index a53958d2..b376b6d0 100644 --- a/src/main/resources/sql/mapper/fims/excl/excl01-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/excl01-mapper.xml @@ -207,9 +207,29 @@ , C.CRDN_STTS_CD /* 단속 상태 코드 */ , (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ , D.RTPYR_NM /* 납부자 명 */ + , E.CVLCPT_LINK_ID /* 민원 연계 ID */ + , E.CVLCPT_INPT_SE_CD /* 민원 입력 구분 코드 */ + , E.CVLCPT_RCPT_YMD /* 민원 접수 일자 */ + , E.CVLCPT_APLY_SE_CD /* 민원 신청 구분 코드 */ + , E.CVLCPT_APLY_NO /* 민원 신청 번호 */ + , E.CVLCPT_RCPT_NO /* 민원 접수 번호 */ + , E.CVLCPT_LIST_NO /* 민원 목록 번호*/ + , E.CVLCPT_APLCNT_NM /* 민원 신청인 명 */ + , E.CVLCPT_APLY_DT /* 민원 신청 일시 */ + , E.CVLCPT_APLY_TTL_NM /* 민원 신청 제목 명 */ + , E.CVLCPT_APLY_CN /* 민원 신청 내용 */ + , E.CVLCPT_GIST /* 민원 요지 */ + , E.CVLCPT_PRCS_PIC_NM /* 민원 처리 담당자 명 */ + , E.CVLCPT_PRCS_PRNMNT_DT /* 민원 처리 예정 일시 */ + , E.CVLCPT_PRCS_CD /* 민원 처리 코드 */ + , E.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */ + , E.CVLCPT_PRCS_RSLT_CN /* 민원 처리 결과 내용 */ + , E.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ + , E.CVLCPT_PRCS_PIC /* 민원 처리 담당자 */ FROM TB_LEVY_EXCL A - INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID) - LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID) + INNER JOIN TB_CRDN C ON (A.CRDN_ID = C.CRDN_ID) + LEFT OUTER JOIN TB_PAYER D ON (C.RTPYR_ID = D.RTPYR_ID) + LEFT OUTER JOIN TB_CRDN_CVLCPT E ON (C.CRDN_ID = E.CRDN_ID AND E.DEL_YN = 'N') - - /* 부과제외 대장 등록(excl01Mapper.insertLevyExcl) */ SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(LEVY_EXCL_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID @@ -306,17 +305,95 @@ , DEL_DT = #{excl01.lastModified} /* 삭제 일시 */ , DLTR = #{excl01.modifiedBy} /* 삭제자 */ , DEL_RSN = #{excl01.delRsn} /* 삭제 사유 */ - WHERE DEL_YN = 'N' /* 삭제 여부 */ - - - AND LEVY_EXCL_ID IN ( - #{levyExclId} - ) - - - AND LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */ - - + WHERE LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */ + AND DEL_YN = 'N' /* 삭제 여부 */ + + + + + + + /* 단속민원 대장 민원처리코드, 민원전송코드 수정 (excl01Mapper.updateCrdnCvlcptPrcs) */ + UPDATE TB_CRDN_CVLCPT + SET CVLCPT_PRCS_CD = #{excl01.cvlcptPrcsCd} /* 민원 처리 코드 */ + , CVLCPT_PRCS_CMPTN_DT = #{excl01.lastModified} /* 민원 처리 완료 일시 */ + , CVLCPT_TRSM_CD = #{excl01.cvlcptTrsmCd} /* 민원 전송 코드 */ + , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ + , MDFR = #{excl01.modifiedBy} /* 수정자 */ + WHERE CVLCPT_LINK_ID = #{excl01.cvlcptLinkId} /* 민원 연계 ID */ + AND DEL_YN = 'N' /* 삭제 여부 */ + + + /* 단속민원 대장 민원처리결과내용 수정(excl01Mapper.updateCvlcptPrcsRsltCn) */ + UPDATE TB_CRDN_CVLCPT + SET CVLCPT_PRCS_RSLT_CN = '' /* 민원 처리 결과 내용 */ + , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ + , MDFR = #{excl01.modifiedBy} /* 수정자 */ + WHERE CVLCPT_LINK_ID = #{excl01.cvlcptLinkId} /* 민원 연계 ID */ + AND DEL_YN = 'N' /* 삭제 여부 */ + + + /* 단속 대장 주차가능결과코드를 수정(excl01Mapper.updateParkngPsbltyRsltCd) */ + UPDATE TB_CRDN + SET PARKNG_PSBLTY_RSLT_CD = #{excl01.parkngPsbltyRsltCd} /* 주차 가능 결과 코드 */ + , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ + , MDFR = #{excl01.modifiedBy} /* 수정자 */ + WHERE CRDN_ID = #{excl01.crdnId} /* 단속 ID */ + AND DEL_YN = 'N' /* 삭제 여부 */ + + + + + /* 발송상세 대장 수납코드를 수정(excl01Mapper.updateRcvmtCd) */ + UPDATE TB_SNDNG_DTL + SET SNDNG_RCVMT_CD = '' /* 발송 수납 코드 */ + , MDFCN_DT = #{excl01.lastModified} /* 수정 일시 */ + , MDFR = #{excl01.modifiedBy} /* 수정자 */ + WHERE CRDN_ID = #{excl01.crdnId} /* 단속 ID */ diff --git a/src/main/resources/sql/mapper/fims/excl/excl02-mapper.xml b/src/main/resources/sql/mapper/fims/excl/excl02-mapper.xml index ad8ba8ac..146038cc 100644 --- a/src/main/resources/sql/mapper/fims/excl/excl02-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/excl02-mapper.xml @@ -438,6 +438,7 @@ , DLTR = #{excl02.modifiedBy} /* 삭제자 */ , DEL_RSN = #{excl02.delRsn} /* 삭제 사유 */ WHERE OPNN_ID = #{excl02.opnnId} /* 의견 ID */ + AND DEL_YN = 'N' /* 삭제 여부 */ /* 의견제출 대장 삭제(excl02Mapper.updateOpnnSbmsnYn) */