diff --git a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java index 23af1bf4..e884ba60 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java +++ b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java @@ -206,8 +206,8 @@ public class CrdnServiceBean extends AbstractServiceBean implements CrdnService excl01.setLevyExclRsnCd("192"); excl01.setEtcCn(""); - result = excl01Bean.createLevyExcl(excl01); - if (!result) { + String retMessage = excl01Bean.createLevyExcl(excl01); + if (retMessage.contains("[F]")) { throw new RuntimeException("단속자료 수기 등록 중 부과제외 자료 등록에 실패하였습니다."); } diff --git a/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java b/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java index 61e3845a..d2239b20 100644 --- a/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java +++ b/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java @@ -43,7 +43,7 @@ public interface Excl01Service { *
  • 그렇지 않으면 false
  • * */ - boolean createLevyExcl(LevyExcl levyExcl); + String createLevyExcl(LevyExcl levyExcl); /**부과제외 대장 정보를 수정한다. * @param excl 부과제외 대장 @@ -52,7 +52,7 @@ public interface Excl01Service { *
  • 그렇지 않으면 false
  • * */ - boolean updateLevyExcl(LevyExcl levyExcl); + String updateLevyExcl(LevyExcl levyExcl); /**부과제외 대장 정보를 삭제한다. * @param excl 부과제외 대장 @@ -61,7 +61,7 @@ public interface Excl01Service { *
  • 그렇지 않으면 false
  • * */ - boolean removeLevyExcl(LevyExcl levyExcl); + String removeLevyExcl(LevyExcl levyExcl); /**부과제외 대장 정보를 삭제한다. * @param excl 부과제외 대장 @@ -70,6 +70,6 @@ public interface Excl01Service { *
  • 그렇지 않으면 false
  • * */ - boolean removeLevyExclList(ExclQuery req); + String removeLevyExclList(ExclQuery req); } 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 218facd0..41a7639a 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 @@ -1,7 +1,5 @@ package cokr.xit.fims.excl.service.bean; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; import java.util.List; import javax.annotation.Resource; @@ -12,12 +10,9 @@ import cokr.xit.fims.excl.LevyExcl; import cokr.xit.fims.cmmn.CrdnSttsHstry; import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; import cokr.xit.fims.crdn.Crdn; -import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.excl.ExclQuery; import cokr.xit.fims.excl.dao.LevyExclMapper; -import cokr.xit.fims.sndb.SndngDtl; import cokr.xit.foundation.AbstractComponent; -import cokr.xit.foundation.UserInfo; import cokr.xit.foundation.data.DataObject; /**부과제외 대장 정보 관리 Bean @@ -95,33 +90,41 @@ public class Excl01Bean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ - public boolean createLevyExcl(LevyExcl levyExcl) { + public String createLevyExcl(LevyExcl levyExcl) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) - String newCvlcptPrcsCd = ""; // 신규 민원 처리 코드(CVLCPT_PRCS_CD) - String newCvlcptTrsmCd = ""; // 민원 전송 코드(CVLCPT_TRSM_CD) + boolean retSuccess = false; // DB 처리 결과 + String retMessagae = ""; // 처리 결과 메시지 + String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) - // 단속 ID로 단속, 단속민원, 부과제외 정보 조회 + // 단속 ID로 단속, 부과제외 정보 조회 DataObject infoCrdnLevyExcl = levyExclMapper.selectCrdnInfo(levyExcl.getCrdnId()); // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. if (!infoCrdnLevyExcl.string("LEVY_EXCL_ID").equals("")) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 정보가 이미 존재합니다."); + retMessagae = "[F] 작업 중 이미 등록된 자료가 존재합니다."; + return retMessagae; } // 단속 상태 코드(CRDN_STTS_CD) 확인.. if (levyExcl.getLevyExclSeCd().equals("1") || levyExcl.getLevyExclSeCd().equals("2")) { // 비부과(서손), 계고 // 단속 상태 코드가 부과(51) 보다 크다면, 비부과 또는 계고를 등록 할 수 없다. 종료.. if (infoCrdnLevyExcl.number("CRDN_STTS_CD").intValue() > 50) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); + retMessagae = "[F] 작업 중 오류가 발생하였습니다.
    현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다."; + return retMessagae; } } else if (levyExcl.getLevyExclSeCd().equals("5")) { // 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. 전액감액 등록은 부과이후... if (infoCrdnLevyExcl.number("CRDN_STTS_CD").intValue() < 51) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); + retMessagae = "[F] 작업 중 오류가 발생하였습니다.
    현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다."; + return retMessagae; + } + } + // 단속 민원(TB_CRDN_CVLCPT) 민원 처리 확인 + if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) { + if (infoCrdnLevyExcl.string("CVLCPT_PRCS_CD").equals("00")) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + retMessagae = "[F] 작업 중 단속 민원 자료가 처리 되지 않았습니다.
    단속 민원 업무를 먼저 처리 하시기 바랍니다.
    "; + return retMessagae; } } @@ -154,121 +157,283 @@ public class Excl01Bean extends AbstractComponent { retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); if (!retSuccess) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 단속대장의 단속상태코드 변경에 실패하였습니다."); + throw new RuntimeException("부과제외 등록 중 단속 대장의 단속상태코드 변경에 실패하였습니다."); } - // 비부과(서손)일 경우 단속민원(TB_CRDN_CVLCPT) 자료 처리 - if (levyExcl.getLevyExclSeCd().equals("1")) { - // 단속민원ID가 있다면.. - if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) { - // 자동등록 자료만 단속민원(TB_CRDN_CVLCPT) 답변 부분을 처리 - if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) { - // 단속민원(TB_CRDN_CVLCPT) 대장 - CrdnCvlcpt crdnCvlcpt = new CrdnCvlcpt(); - - crdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); // 민원 연계 ID - - // 답변내용을 초기화, 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다. - // 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다. - // 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다. - // 단속민원 민원처리결과내용 수정 - retSuccess = levyExclMapper.updateCvlcptPrcsRsltCn(crdnCvlcpt); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 단속민원대장의 민원처리결과내용 초기화에 실패하였습니다."); - } + // 전액 감액일 경우 부과(TB_LEVY)에 감액금액 입력이 필요.. + if (levyExcl.getLevyExclSeCd().equals("5")) { - // 답변완료 후 서손처리에 대해서는 답변 상태를 업데이트 하지 않는다 - // 전송대상, 전송 미대상 자료에 대해서 업데이트한다. - if (infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("01") - || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("02") - || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("03")) { - // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 - DataObject infoCvlcptAnsWords = levyExclMapper.selectCvlcptAnsWordsInfo(levyExcl.getLevyExclRsnCd()); + } - // 비부과(서손)사유가 민원 답변대상인가? 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면.. - if (!infoCvlcptAnsWords.string("ANS_WORDS_ID").equals("")) { - newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외) - newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상 - } else { - newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상 - newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상 - } + retMessagae = "[S] 작업이 정상 처리 되었습니다."; - // 현재 날짜 구하기 - LocalDate now = LocalDate.now(); - // 포맷 정의 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // yyyy년 MM월 dd일 HH시 mm분 ss초 - // 포맷 적용 - String formatedNow = now.format(formatter); + return retMessagae; + } - // 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다. - crdnCvlcpt.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드 - crdnCvlcpt.setCvlcptPrcsSumry(infoCvlcptAnsWords.string("PRCS_SUMRY")); // 민원 처리 요약 - crdnCvlcpt.setCvlcptPrcsRsltCn(infoCvlcptAnsWords.string("PRCS_RSLT_CN")); // 민원 처리 결과 내용 - crdnCvlcpt.setCvlcptPrcsCmptnDt(formatedNow); // 민원 처리 완료 일시 - crdnCvlcpt.setCvlcptPrcsPic(UserInfo.current().getId()); // 민원 처리 담당자 - crdnCvlcpt.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드 - - // 단속민원 민원처리코드 수정 - retSuccess = levyExclMapper.updateCrdnCvlcpt(crdnCvlcpt); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 단속민원대장의 민원답변 수정에 실패하였습니다."); - } - } - } // if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) - } // 단속민원ID가 있다면.. + /**부과제외 대장 정보를 수정한다. + * @param excl 부과제외 대장 + * @return 저장 여부 + * + */ + public String updateLevyExcl(LevyExcl levyExcl) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessagae = ""; // 처리 결과 메시지 + + // 부과제외(TB_LEVY_EXCL) 대장을 수정 한다. + retSuccess = levyExclMapper.update(levyExcl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 대장 수정에 실패하였습니다."); + } + + retMessagae = "[S] 작업이 정상 처리 되었습니다."; + + return retMessagae; + } + + /**부과제외 대장 정보를 삭제한다. + * @param excl 부과제외 대장 + * @return 저장 여부 + * + */ + public String removeLevyExcl(LevyExcl levyExcl) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessagae = ""; // 처리 결과 메시지 + String newHstrySttsCd = ""; // 신규 상태 코드 - // 표지정보 확인여부가 미확인이면 -> 조회미대상 으로 - if (infoCrdnLevyExcl.string("PARKNG_PSBLTY_RSLT_CD").equals("0")) { - // 단속(TB_CRDN) 대장 - Crdn crdn = new Crdn(); + // 단속 ID로 단속, 부과제외 정보 조회 + DataObject infoCrdnLevyExcl = levyExclMapper.selectCrdnInfo(levyExcl.getCrdnId()); - crdn.setCrdnId(levyExcl.getCrdnId()); // 단속 ID - crdn.setParkngPsbltyRsltCd("9"); // 주차 가능 결과 코드 + // 단속 상태 코드(CRDN_STTS_CD) 확인.. + if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손) + retMessagae = "[F] 작업 중 오류가 발생하였습니다.
    현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; + return retMessagae; + } else if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("2") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고 + retMessagae = "[F] 작업 중 오류가 발생하였습니다.
    현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; + return retMessagae; + } else if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("5") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("80")) { // 부과취소 + retMessagae = "[F] 작업 중 오류가 발생하였습니다.
    현재 자료의 단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 이(가) 아닙니다."; + return retMessagae; + } + + // 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다. + retSuccess = levyExclMapper.delete(levyExcl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 대장 삭제에 실패하였습니다."); + } + + if (infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손) + newHstrySttsCd = "91"; + } else if (infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("83")) { // 계고 + newHstrySttsCd = "93"; + } + + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다. + retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(infoCrdnLevyExcl.string("CRDN_ID"), newHstrySttsCd); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 삭제 중 단속 대장의 단속상태코드 변경에 실패하였습니다."); + } + + // 부과제외 구분이 비부과(서손)일 경우 + if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1")) { + // 표지정보 확인여부가 조회미대상이면 -> 미확인 으로 + // 혹시 차적조회가 안되었으면? 놔두자 차적조회되면 그 때 표지정보 BJ_Send가 처리할테니 + if (infoCrdnLevyExcl.string("PARKNG_PSBLTY_RSLT_CD").equals("9")) { // 주차 가능 결과 코드 - 9 조회 미대상 + Crdn crdn = new Crdn(); // 단속(TB_CRDN) 대장 + + crdn.setCrdnId(levyExcl.getCrdnId()); // 단속 ID + crdn.setParkngPsbltyRsltCd("0"); // 주차 가능 결과 코드 - 0 미확인 retSuccess = levyExclMapper.updateParkngPsbltyRsltCd(crdn); + } + } + + retMessagae = "[S] 작업이 정상 처리 되었습니다."; + + return retMessagae; + } + +} + + +/**부과제외 대장 정보를 등록한다. +public boolean createLevyExcl(LevyExcl levyExcl) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) + String newCvlcptPrcsCd = ""; // 신규 민원 처리 코드(CVLCPT_PRCS_CD) + String newCvlcptTrsmCd = ""; // 민원 전송 코드(CVLCPT_TRSM_CD) + + // 단속 ID로 단속, 부과제외 정보 조회 + DataObject infoCrdnLevyExcl = levyExclMapper.selectCrdnInfo(levyExcl.getCrdnId()); + + // 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료.. + if (!infoCrdnLevyExcl.string("LEVY_EXCL_ID").equals("")) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 정보가 이미 존재합니다."); + } + // 단속 상태 코드(CRDN_STTS_CD) 확인.. + if (levyExcl.getLevyExclSeCd().equals("1") || levyExcl.getLevyExclSeCd().equals("2")) { // 비부과(서손), 계고 + // 단속 상태 코드가 부과(51) 보다 크다면, 비부과 또는 계고를 등록 할 수 없다. 종료.. + if (infoCrdnLevyExcl.number("CRDN_STTS_CD").intValue() > 50) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); + } + } else if (levyExcl.getLevyExclSeCd().equals("5")) { + // 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. 전액감액 등록은 부과이후... + if (infoCrdnLevyExcl.number("CRDN_STTS_CD").intValue() < 51) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다"); + } + } + + // 단속 상태 코드 설정. + if (levyExcl.getLevyExclSeCd().equals("1")) { // 비부과 + newCrdnSttsCd = "81"; // 비부과(서손) + } else if (levyExcl.getLevyExclSeCd().equals("2")) { // 계고 + newCrdnSttsCd = "83"; // 계고 + } else if (levyExcl.getLevyExclSeCd().equals("5")) { // 전액감액 + newCrdnSttsCd = "80"; // 부과취소 + } + + // 부과제외(TB_LEVY_EXCL) 대장을 등록 한다. + retSuccess = levyExclMapper.insert(levyExcl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 대장 등록에 실패하였습니다."); + } + + // 단속상태이력(TB_CRDN_STTS_HSTRY) + CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); + + crdnSttsHstry.setCrdnId(infoCrdnLevyExcl.string("CRDN_ID")); + crdnSttsHstry.setBfrSttsCd(infoCrdnLevyExcl.string("CRDN_STTS_CD")); + crdnSttsHstry.setBfrSttsChgDt(infoCrdnLevyExcl.string("CRDN_STTS_CHG_DT")); + crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); + crdnSttsHstry.setTaskDtlId(levyExcl.getLevyExclId()); + + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. + retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속대장의 단속상태코드 변경에 실패하였습니다."); + } + + // 비부과(서손)일 경우 단속민원(TB_CRDN_CVLCPT) 자료 처리 + if (levyExcl.getLevyExclSeCd().equals("1")) { + // 단속민원ID가 있다면.. + if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) { + // 자동등록 자료만 단속민원(TB_CRDN_CVLCPT) 답변 부분을 처리 + if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) { + // 단속민원(TB_CRDN_CVLCPT) 대장 + CrdnCvlcpt crdnCvlcpt = new CrdnCvlcpt(); + + crdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); // 민원 연계 ID + + // 답변내용을 초기화, 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다. + // 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다. + // 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다. + // 단속민원 민원처리결과내용 수정 + retSuccess = levyExclMapper.updateCvlcptPrcsRsltCn(crdnCvlcpt); if (!retSuccess) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 단속대장의 표지정보확인여부 수정에 실패하였습니다."); + throw new RuntimeException("부과제외 등록 중 단속민원대장의 민원처리결과내용 초기화에 실패하였습니다."); } - } - // 단속 ID로 발송 상세(TB_SNDNG_DTL) 대장 정보 조회 - DataObject infoSndngDtl = levyExclMapper.selectSndngDtlInfo(levyExcl.getCrdnId(), "1"); + // 답변완료 후 서손처리에 대해서는 답변 상태를 업데이트 하지 않는다 + // 전송대상, 전송 미대상 자료에 대해서 업데이트한다. + if (infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("01") + || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("02") + || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("03")) { + // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 + DataObject infoCvlcptAnsWords = levyExclMapper.selectCvlcptAnsWordsInfo(levyExcl.getLevyExclRsnCd()); + + // 비부과(서손)사유가 민원 답변대상인가? 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면.. + if (!infoCvlcptAnsWords.string("ANS_WORDS_ID").equals("")) { + newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외) + newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상 + } else { + newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상 + newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상 + } - if (infoSndngDtl != null) { - // 발송 상세(TB_SNDNG_DTL) 대장 - SndngDtl sndngDtl = new SndngDtl(); + // 현재 날짜 구하기 + LocalDate now = LocalDate.now(); + // 포맷 정의 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // yyyy년 MM월 dd일 HH시 mm분 ss초 + // 포맷 적용 + String formatedNow = now.format(formatter); + + // 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다. + crdnCvlcpt.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드 + crdnCvlcpt.setCvlcptPrcsSumry(infoCvlcptAnsWords.string("PRCS_SUMRY")); // 민원 처리 요약 + crdnCvlcpt.setCvlcptPrcsRsltCn(infoCvlcptAnsWords.string("PRCS_RSLT_CN")); // 민원 처리 결과 내용 + crdnCvlcpt.setCvlcptPrcsCmptnDt(formatedNow); // 민원 처리 완료 일시 + crdnCvlcpt.setCvlcptPrcsPic(UserInfo.current().getId()); // 민원 처리 담당자 + crdnCvlcpt.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드 + + // 단속민원 민원처리코드 수정 + retSuccess = levyExclMapper.updateCrdnCvlcpt(crdnCvlcpt); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속민원대장의 민원답변 수정에 실패하였습니다."); + } + } + } // if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) + } // 단속민원ID가 있다면.. - sndngDtl.setCrdnId(levyExcl.getCrdnId()); // 단속 ID + // 표지정보 확인여부가 미확인이면 -> 조회미대상 으로 + if (infoCrdnLevyExcl.string("PARKNG_PSBLTY_RSLT_CD").equals("0")) { + // 단속(TB_CRDN) 대장 + Crdn crdn = new Crdn(); - // 발송상세 수납코드를 수정 - retSuccess = levyExclMapper.updateRcvmtCd(sndngDtl); - if (!retSuccess) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("부과제외 등록 중 발송상세대장의 수납코드 수정에 실패하였습니다."); - } - } - // 계고 - } else if (levyExcl.getLevyExclSeCd().equals("2")) { + crdn.setCrdnId(levyExcl.getCrdnId()); // 단속 ID + crdn.setParkngPsbltyRsltCd("9"); // 주차 가능 결과 코드 - // 전액감액 - } else if (levyExcl.getLevyExclSeCd().equals("5")) { - // 부과(TB_LEVY)에 감액금액 입력이 필요.. + retSuccess = levyExclMapper.updateParkngPsbltyRsltCd(crdn); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 단속대장의 표지정보확인여부 수정에 실패하였습니다."); + } } - return true; + // 단속 ID로 발송 상세(TB_SNDNG_DTL) 대장 정보 조회 + DataObject infoSndngDtl = levyExclMapper.selectSndngDtlInfo(levyExcl.getCrdnId(), "1"); + + if (infoSndngDtl != null) { + // 발송 상세(TB_SNDNG_DTL) 대장 + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setCrdnId(levyExcl.getCrdnId()); // 단속 ID + + // 발송상세 수납코드를 수정 + retSuccess = levyExclMapper.updateRcvmtCd(sndngDtl); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과제외 등록 중 발송상세대장의 수납코드 수정에 실패하였습니다."); + } + } + // 계고 + } else if (levyExcl.getLevyExclSeCd().equals("2")) { + + // 전액감액 + } else if (levyExcl.getLevyExclSeCd().equals("5")) { + // 부과(TB_LEVY)에 감액금액 입력이 필요.. } - /**부과제외 대장 정보를 수정한다. - * @param excl 부과제외 대장 - * @return 저장 여부 - * - */ + return true; +} +*/ + +/**부과제외 대장 정보를 수정한다. public boolean updateLevyExcl(LevyExcl levyExcl) { // 변수 선언 boolean retSuccess = false; // DB 처리 결과 @@ -353,14 +518,9 @@ public class Excl01Bean extends AbstractComponent { return true; } +*/ - /**부과제외 대장 정보를 삭제한다. - * @param excl 부과제외 대장 - * @return 저장 여부 - * - */ +/**부과제외 대장 정보를 삭제한다. public boolean removeLevyExcl(LevyExcl levyExcl) { // 변수 선언 boolean retSuccess = false; // DB 처리 결과 @@ -448,5 +608,5 @@ public class Excl01Bean extends AbstractComponent { return true; } +*/ -} 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 7f902c3c..b88ba516 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 @@ -53,28 +53,29 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv } @Override - public boolean createLevyExcl(LevyExcl levyExcl) { + public String createLevyExcl(LevyExcl levyExcl) { return excl01Bean.createLevyExcl(levyExcl); } @Override - public boolean updateLevyExcl(LevyExcl levyExcl) { + public String updateLevyExcl(LevyExcl levyExcl) { return excl01Bean.updateLevyExcl(levyExcl); } @Override - public boolean removeLevyExcl(LevyExcl levyExcl) { + public String removeLevyExcl(LevyExcl levyExcl) { return excl01Bean.removeLevyExcl(levyExcl); } @Override - public boolean removeLevyExclList(ExclQuery req) { + public String removeLevyExclList(ExclQuery req) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 + String retMessage = ""; // 처리 결과 메시지 // 부과제외IDs 건수를 확인하여 1건이하면.. 종료 if (req.getLevyExclIDs().length < 1 ) { - return retSuccess; + retMessage = ""; + return retMessage; } // 부과제외IDs 만큼 반복.. @@ -85,13 +86,15 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv levyExcl.setDelRsn(req.getDelRsn()); // 삭제 사유 // 부과제외 삭제 호출 - retSuccess = excl01Bean.removeLevyExcl(levyExcl); - if (!retSuccess) { - return retSuccess; + retMessage = excl01Bean.removeLevyExcl(levyExcl); + + // 오류가 발생하였으면 종료.. + if (retMessage.contains("[F]")) { + return retMessage; } } - return true; + return retMessage; } } 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 5b4178aa..d1285faa 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java @@ -86,7 +86,7 @@ public class Excl01Controller extends ApplicationController { return mav .addObject("message", "이미 등록된 부과제외 정보가 있습니다.") - .addObject("errorMessage", "이미 등록된 부과제외 정보가 있습니다.") + .addObject("retMessage", "이미 등록된 부과제외 정보가 있습니다.") ; } else { boolean json = jsonResponse(); @@ -119,10 +119,18 @@ public class Excl01Controller extends ApplicationController { */ @PostMapping(name = "부과제외 대장 등록", value = "/020/create.do") public ModelAndView createLevyExcl(LevyExcl excl01) { - boolean saved = excl01Service.createLevyExcl(excl01); + boolean saved = false; + String retMessage = excl01Service.createLevyExcl(excl01); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } return new ModelAndView("jsonView") - .addObject("saved", saved); + .addObject("saved", saved) + .addObject("retMessage", retMessage); } /**부과제외 대장 정보를 수정한다. @@ -134,10 +142,18 @@ public class Excl01Controller extends ApplicationController { */ @PostMapping(name = "부과제외 대장 수정", value = "/020/update.do") public ModelAndView updateLevyExcl(LevyExcl excl01) { - boolean saved = excl01Service.updateLevyExcl(excl01); + boolean saved = false; + String retMessage = excl01Service.updateLevyExcl(excl01); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } return new ModelAndView("jsonView") - .addObject("saved", saved); + .addObject("saved", saved) + .addObject("retMessage", retMessage); } /**지정한 부과제외 ID에 해당하는 부과제외 대장를 제거한다. @@ -150,10 +166,18 @@ public class Excl01Controller extends ApplicationController { */ @PostMapping(name = "부과제외 대장 제거", value = "/010/remove.do") public ModelAndView removeLevyExcl(LevyExcl excl01) { - boolean saved = excl01Service.removeLevyExcl(excl01); + boolean saved = false; + String retMessage = excl01Service.removeLevyExcl(excl01); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } return new ModelAndView("jsonView") - .addObject("saved", saved); + .addObject("saved", saved) + .addObject("retMessage", retMessage); } /**여러 건의 부과제외 ID에 해당하는 부과제외 대장를 제거한다. @@ -166,10 +190,18 @@ public class Excl01Controller extends ApplicationController { */ @PostMapping(name = "부과제외 대장 제거", value = "/010/removes.do") public ModelAndView removeLevyExclList(ExclQuery req) { - boolean saved = excl01Service.removeLevyExclList(req); + boolean saved = false; + String retMessage = excl01Service.removeLevyExclList(req); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } return new ModelAndView("jsonView") - .addObject("saved", saved); + .addObject("saved", saved) + .addObject("retMessage", retMessage); } } diff --git a/src/main/resources/sql/mapper/fims/excl/crdnReReg-mapper.xml b/src/main/resources/sql/mapper/fims/excl/crdnReReg-mapper.xml index c399bcc7..b2ddcdb9 100644 --- a/src/main/resources/sql/mapper/fims/excl/crdnReReg-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/crdnReReg-mapper.xml @@ -232,6 +232,9 @@ FROM TB_CRDN C INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */ + + AND C.DEL_YN = #{delYn} /* 삭제 여부 */ + 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 92aa450f..830207b0 100644 --- a/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml @@ -287,14 +287,35 @@ , C.CRDN_STTS_CD /* 단속 상태 코드 */ , (SELECT FN_GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ , C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */ + , CA.CRDN_SE_CD /* 단속 구분 코드 */ + , CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */ + , CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */ + , CC.CVLCPT_LINK_ID /* 민원 연계 ID */ + , CC.CVLCPT_PRCS_RSLT_CN /* 민원 처리 결과 내용 */ + , CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */ , P.RTPYR_ID /* 납부자 ID */ , P.RTPYR_NM /* 납부자 명 */ , LE.LEVY_EXCL_ID /* 부과 제외 ID */ , AS TODAY /* 오늘 일자 */ 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_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_LEVY_EXCL LE ON (C.CRDN_ID = LE.CRDN_ID AND LE.DEL_YN = 'N') - WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */ + + + AND LE.LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */ + + AND LE.DEL_YN = #{delYn} /* 삭제 여부 */ + + + + AND C.CRDN_ID = #{crdnId} /* 단속 ID */ + + AND C.DEL_YN = #{delYn} /* 삭제 여부 */ + + + /* 단속 대장 의견제출여부 수정(opnnSbmsnMapper.updateCrdnOpnnSbmsnYn) */ diff --git a/src/main/resources/sql/mapper/fims/levy/rduct-mapper.xml b/src/main/resources/sql/mapper/fims/levy/rduct-mapper.xml index e0c75d3a..76568e88 100644 --- a/src/main/resources/sql/mapper/fims/levy/rduct-mapper.xml +++ b/src/main/resources/sql/mapper/fims/levy/rduct-mapper.xml @@ -221,8 +221,20 @@ LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') LEFT OUTER JOIN TB_RDUCT R ON (C.CRDN_ID = R.CRDN_ID AND R.DEL_YN = 'N') - WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */ - AND C.DEL_YN = 'N' /* 삭제 여부 */ + + + AND R.RDUCT_ID = #{rductId} /* 감경 ID */ + + AND R.DEL_YN = #{delYn} /* 삭제 여부 */ + + + + AND C.CRDN_ID = #{crdnId} /* 단속 ID */ + + AND C.DEL_YN = #{delYn} /* 삭제 여부 */ + + + /* 단속 대장 과태료 감경 금액 수정(rductMapper.updateCrdnRduct) */ @@ -236,7 +248,6 @@ AND DEL_YN = 'N' /* 삭제 여부 */ - /* 부과 대장 과태료 감경 금액 수정(rductMapper.updateLevyRduct) */ UPDATE TB_LEVY SET FFNLG_AMT = #{levy.ffnlgAmt} /* 과태료 금액 */ @@ -248,5 +259,4 @@ AND DEL_YN = 'N' /* 삭제 여부 */ - diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp index 0a8b8aec..d821e6bf 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp @@ -365,8 +365,18 @@ }); } -/* - // 삭제 -> callback 추가 sample + // 삭제 callback + ${pageName}Control.onRemove = (selected, resp) => { + let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); + let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle); + + dialog.alert(showMessage); + + if (resp.saved) + ${pageName}Control._load(); + } + + // 삭제 ${pageName}Control.remove = (params) => { let selected = ${pageName}Control.dataset.getKeys("selected"); @@ -383,12 +393,7 @@ , success : resp => ${pageName}Control.onRemove(selected, resp) }); } - // 삭제 - ${pageName}Control.onRemove = (selected, resp) => { - if (resp.saved) - ${pageName}Control._load(); - } -*/ + /************************************************************************** * **************************************************************************/ diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp index 289c3d4d..e9cd57fc 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp @@ -105,8 +105,12 @@ **************************************************************************/ // 저장 callback ${pageName}Control.onSave = (resp) => { + let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); + let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle); + + dialog.alert(showMessage); + if (resp.saved) { - dialog.alert("저장됐습니다."); dialog.close(${pageName}Control.prefix + "Dialog"); if ("${savedCallbackFuncName}" != "") { diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02050-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02050-info.jsp index cfe0a673..63d27d44 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02050-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02050-info.jsp @@ -406,8 +406,8 @@ , data : params || {} , success : resp => { if ((typeof resp) != "string") { - if (resp.errorMessage != "") { - dialog.alert(resp.errorMessage); + if (resp.retMessage != "") { + dialog.alert(resp.retMessage); return; }