diff --git a/src/main/java/cokr/xit/fims/excl/LevyExcl.java b/src/main/java/cokr/xit/fims/excl/LevyExcl.java index 3a38adfa..2b0957bd 100644 --- a/src/main/java/cokr/xit/fims/excl/LevyExcl.java +++ b/src/main/java/cokr/xit/fims/excl/LevyExcl.java @@ -12,55 +12,60 @@ import lombok.Setter; @Setter public class LevyExcl extends AbstractEntity { - /** - * 부과 제외 ID - */ - private String levyExclId; + /** + * 부과 제외 ID + */ + private String levyExclId; - /** - * 단속 ID - */ - private String crdnId; + /** + * 단속 ID + */ + private String crdnId; - /** - * 부과 제외 일자 - */ - private String levyExclYmd; + /** + * 감액 ID + */ + private String rdamtId; - /** - * 부과 제외 구분 코드 - */ - private String levyExclSeCd; + /** + * 부과 제외 일자 + */ + private String levyExclYmd; - /** - * 부과 제외 사유 코드 - */ - private String levyExclRsnCd; + /** + * 부과 제외 구분 코드 + */ + private String levyExclSeCd; - /** - * 기타 내용 - */ - private String etcCn; + /** + * 부과 제외 사유 코드 + */ + private String levyExclRsnCd; - /** - * 삭제 여부 - */ - private String delYn; + /** + * 기타 내용 + */ + private String etcCn; - /** - * 삭제 사유 - */ - private String delRsn; + /** + * 삭제 여부 + */ + private String delYn; - // 추가 ///////////////////////////////////////////////////////////////////// - /** - * 부과제외 Ids - */ - private String[] levyExclIds; + /** + * 삭제 사유 + */ + private String delRsn; - /** - * 시군구 코드 - */ - private String sggCd; + // 추가 ///////////////////////////////////////////////////////////////////// + /** + * 부과제외 Ids + */ + private String[] levyExclIds; + + /** + * 시군구 코드 + */ + private String sggCd; } diff --git a/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java b/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java index 9cfbd4ee..23e29211 100644 --- a/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java +++ b/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java @@ -54,6 +54,7 @@ public class LevyExclQuery extends CmmnQuery { private String levyExclSeCd; // 부과제외_부과 제외 구분 코드 private String ansRsnCd; // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) - 답변 사유 코드 private String sndngRcvmtCd; // 발송 수납 코드 + private String rtpyrNo; // 납부자(TB_PAYER)_납부자 번호 public String getCrdnId() { return ifEmpty(crdnId, () -> null); @@ -340,6 +341,15 @@ public class LevyExclQuery extends CmmnQuery { this.sndngRcvmtCd = sndngRcvmtCd; return self(); } + + public String getRtpyrNo() { + return ifEmpty(rtpyrNo, () -> null); + } + + public T setRtpyrNo(String rtpyrNo) { + this.rtpyrNo = rtpyrNo; + return self(); + } // ETC ///////////////////////////////////////////////////////////////////// } 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 fcf7a358..49e9c693 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 @@ -114,29 +114,40 @@ public class LevyExclBean extends AbstractBean { // 등록 대상 자료 검증 if (!levyExclInfo.string("LEVY_EXCL_ID").equals("")) { // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. rtnMsg = "[F] 작업중 이미 등록된 부과제외 자료가 존재합니다."; - return rtnMsg; } if (!levyExclInfo.string("CVLCPT_LINK_ID").equals("")) { // 민원 ID if (levyExclInfo.string("CVLCPT_PRCS_CD").equals("00")) { // 민원 처리상태 확인 rtnMsg = "[F] 작업중 단속 민원 자료가 처리 되지 않았습니다.
단속 민원 업무를 먼저 처리 하시기 바랍니다."; - return rtnMsg; } } if (levyExcl.getLevyExclSeCd().contains("1,2")) { // 비부과(서손), 계고 if (levyExclInfo.number("CRDN_STTS_CD").intValue() >= 51) { // 단속상태코드가 부과(51) 보다 크다면, 비부과 또는 계고 등록을 할 수 없다. rtnMsg = "[F] 작업중 오류가 발생하였습니다.
현재 자료의 단속상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 상태 입니다."; - return rtnMsg; } } else if (levyExcl.getLevyExclSeCd().equals("3")) { // 부과취소 if (levyExclInfo.number("CRDN_STTS_CD").intValue() < 51) { // 단속상태코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. rtnMsg = "[F] 작업중 오류가 발생하였습니다.
현재 자료의 단속상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 상태 입니다."; - return rtnMsg; } if (levyExclInfo.string("LEVY_ID").equals("")) { // 부과(TB_LEVY) 정보 확인 rtnMsg = "[F] 작업 중 부과 자료가 존재하지 않습니다.
비부과로 처리 하시기 바랍니다."; - return rtnMsg; } } + // 오류메세지가 발생하면 종료.. + if (rtnMsg.contains("[F]")) { + return rtnMsg.replace("[F]", ""); + } + + // 표지정보 확인여부가 미확인(0)이면 -> 조회미대상(9) 으로 + if (levyExclInfo.string("PRK_PSBLTY_RSLT_CD").equals("0")) { // 주차 가능 결과 코드(FIM034) 0: 미확인 + Crdn crdn = new Crdn(); + crdn.setCrdnId(levyExclInfo.string("CRDN_ID")); // 단속 ID + crdn.setPrkPsbltyRsltCd("9"); // 주차 가능 결과 코드(FIM034) 9: 조회미대상 + + rtnNocs = levyExclMapper.updatePrkPsbltyRsltCd(crdn); + if (rtnNocs != 1) { + throw new RuntimeException("부과제외 삭제 작업 중 단속 대장의 표지정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } // 부과취소(전액감액)일 경우 부과(TB_LEVY)에 감액금액 입력이 필요.. if (levyExcl.getLevyExclSeCd().equals("3")) { @@ -151,6 +162,8 @@ public class LevyExclBean extends AbstractBean { if (!rtnMsg.contains("[S]")) { throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback } + + levyExcl.setRdamtId(rdamt.getRdamtId()); // 감액 ID } // 부과제외(TB_LEVY_EXCL) 대장을 등록한다. @@ -159,18 +172,6 @@ public class LevyExclBean extends AbstractBean { throw new RuntimeException("부과제외 정보 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - // 표지정보 확인여부가 미확인(0)이면 -> 조회미대상(9) 으로 - if (levyExclInfo.string("PRK_PSBLTY_RSLT_CD").equals("0")) { // 주차 가능 결과 코드(FIM034) - 0: 미확인 - Crdn crdn = new Crdn(); - crdn.setCrdnId(levyExclInfo.string("CRDN_ID")); // 단속 ID - crdn.setPrkPsbltyRsltCd("9"); // 주차 가능 결과 코드(FIM034) 9: 조회미대상 - - rtnNocs = levyExclMapper.updatePrkPsbltyRsltCd(crdn); - if (rtnNocs != 1) { - throw new RuntimeException("부과제외 삭제 작업 중 단속 대장의 표지정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - } - // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) if (levyExcl.getLevyExclSeCd().equals("1")) { // 비부과 @@ -232,18 +233,33 @@ public class LevyExclBean extends AbstractBean { // 삭제 대상 자료 검증 if (levyExclInfo.string("LEVY_EXCL_ID").equals("")) { rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
부과제외 자료가 존재하지 않습니다."; - return rtnMsg; } if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("1") && !levyExclInfo.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손) rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
현재 자료의 단속 상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; - return rtnMsg; } else if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("2") && !("83,84").contains(levyExclInfo.string("CRDN_STTS_CD"))) { // 계고 rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
현재 자료의 단속 상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; - return rtnMsg; } else if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("3") && !levyExclInfo.string("CRDN_STTS_CD").equals("80")) { // 부과취소 rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
현재 자료의 단속 상태가 " + levyExclInfo.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; - return rtnMsg; } + // 오류메세지가 발생하면 종료.. + if (rtnMsg.contains("[F]")) { + return rtnMsg.replace("[F]", ""); + } + + // 부과제외 구분이 비부과(서손)일 경우 + if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("1")) { + // 표지정보 확인여부가 조회미대상이면 -> 미확인 으로 + if (levyExclInfo.string("PRK_PSBLTY_RSLT_CD").equals("9")) { // 주차 가능 결과 코드 - 9 조회 미대상 + Crdn crdn = new Crdn(); + crdn.setCrdnId(levyExclInfo.string("CRDN_ID")); // 단속 ID + crdn.setPrkPsbltyRsltCd("0"); // 주차 가능 결과 코드 - 0 미확인 + + rtnNocs = levyExclMapper.updatePrkPsbltyRsltCd(crdn); + if (rtnNocs != 1) { + throw new RuntimeException("부과제외 삭제 작업 중 단속 대장의 표지정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + } // 부과제외(TB_LEVY_EXCL) 대장을 삭제한다. rtnNocs = levyExclMapper.deleteLevyExcl(levyExcl); @@ -266,22 +282,6 @@ public class LevyExclBean extends AbstractBean { throw new RuntimeException("부과제외 삭제 작업 중 단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - // 부과제외 구분이 비부과(서손)일 경우 - if (levyExclInfo.string("LEVY_EXCL_SE_CD").equals("1")) { - // 표지정보 확인여부가 조회미대상이면 -> 미확인 으로 - // 혹시 차적조회가 안되었으면? 놔두자 차적조회되면 그 때 표지정보 BJ_Send가 처리할테니 - if (levyExclInfo.string("PRK_PSBLTY_RSLT_CD").equals("9")) { // 주차 가능 결과 코드 - 9 조회 미대상 - Crdn crdn = new Crdn(); - crdn.setCrdnId(levyExclInfo.string("CRDN_ID")); // 단속 ID - crdn.setPrkPsbltyRsltCd("0"); // 주차 가능 결과 코드 - 0 미확인 - - rtnNocs = levyExclMapper.updatePrkPsbltyRsltCd(crdn); - if (rtnNocs != 1) { - throw new RuntimeException("부과제외 삭제 작업 중 단속 대장의 표지정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - } - } - return "[S] 작업이 정상 처리 되었습니다."; } diff --git a/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml b/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml index 14d4b4a2..582476c6 100644 --- a/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml @@ -27,13 +27,14 @@ - + /* 부과제외 대장 목록 조회(levyExclMapper.selectLevyExclList) */ - - + LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID AND CC.DEL_YN = 'N') AND LE.LEVY_EXCL_YMD =]]> #{schLevyExclYmdFrom} @@ -97,13 +93,13 @@ AND LE.LEVY_EXCL_YMD #{schLevyExclYmdTo} - AND LE.LEVY_EXCL_SE_CD = #{schLevyExclSeCd} + AND LE.LEVY_EXCL_SE_CD = #{schLevyExclSeCd} - AND LE.LEVY_EXCL_RSN_CD = #{schLevyExclRsnCd} + AND LE.LEVY_EXCL_RSN_CD = #{schLevyExclRsnCd} - AND LE.DEL_YN = #{delYn} + AND LE.DEL_YN = #{delYn} AND C.CRDN_YMD =]]> #{schCrdnYmdFrom} @@ -112,24 +108,24 @@ AND C.CRDN_YMD #{schCrdnYmdTo} - AND C.VHRNO = #{schVhrno} + AND C.VHRNO = #{schVhrno} - AND P.RTPYR_NO = #{schRtpyrNo} + AND P.RTPYR_NO = #{schRtpyrNo} - AND P.RTPYR_NO = #{rtpyrNo} + AND P.RTPYR_NO = #{rtpyrNo} - AND P.RTPYR_NM = #{schRtpyrNm} + AND P.RTPYR_NM = #{schRtpyrNm} - AND C.SGG_CD = #{sggCd} + AND C.SGG_CD = #{sggCd} - AND C.TASK_SE_CD = #{taskSeCd} + AND C.TASK_SE_CD = #{taskSeCd} - AND C.DEL_YN = 'N' + AND C.DEL_YN = 'N' @@ -214,7 +210,7 @@ , C.CRDN_STDG_NM , C.CRDN_PLC , C.CRDN_STTS_CD - , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM + , (GET_CODE_NM('FIM010', C.CRDN_STTS_CD)) AS CRDN_STTS_NM , CA.PRK_PSBLTY_RSLT_CD , CC.CVLCPT_LINK_ID , CC.CVLCPT_PRCS_CD @@ -222,17 +218,19 @@ , LE.LEVY_EXCL_ID , LE.LEVY_EXCL_YMD , LE.LEVY_EXCL_SE_CD - , (SELECT GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD) FROM DUAL) AS LEVY_EXCL_SE_NM + , (GET_CODE_NM('FIM021', LE.LEVY_EXCL_SE_CD)) AS LEVY_EXCL_SE_NM , LE.LEVY_EXCL_RSN_CD - , (SELECT GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD) FROM DUAL) AS LEVY_EXCL_RSN_NM + , (GET_CODE_NM('FIM022', LE.LEVY_EXCL_RSN_CD)) AS LEVY_EXCL_RSN_NM , LE.ETC_CN , LE.REG_DT + , LE.RGTR , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.RGTR) AS RGTR_NM , LE.MDFCN_DT + , LE.MDFR , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = LE.MDFR) AS MDFR_NM FROM TB_CRDN C INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) - LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') + LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID AND CC.DEL_YN = 'N') LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') @@ -269,6 +267,7 @@ INTO TB_LEVY_EXCL ( LEVY_EXCL_ID , CRDN_ID + , RDAMT_ID , LEVY_EXCL_YMD , LEVY_EXCL_SE_CD , LEVY_EXCL_RSN_CD @@ -282,6 +281,7 @@ VALUES ( #{levyExclId} , #{crdnId} + , #{rdamtId} , #{levyExclYmd} , #{levyExclSeCd} , #{levyExclRsnCd} 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 c796d14d..bc8e3a05 100644 --- a/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml +++ b/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml @@ -166,7 +166,7 @@ FROM TB_CRDN C INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) - LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') + LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.CVLCPT_LINK_YN = 'Y' AND C.CVLCPT_LINK_ID = CC.CVLCPT_LINK_ID AND CC.DEL_YN = 'N') LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN) LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N')