|
|
|
@ -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 {
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
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] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + 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] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + 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] 작업 중 단속 민원 자료가 처리 되지 않았습니다.<br>단속 민원 업무를 먼저 처리 하시기 바랍니다.<br>";
|
|
|
|
|
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 저장 여부
|
|
|
|
|
* <ul><li>저장됐으면 true</li>
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
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 저장 여부
|
|
|
|
|
* <ul><li>저장됐으면 true</li>
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
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] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + 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] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + 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] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + 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 저장 여부
|
|
|
|
|
* <ul><li>저장됐으면 true</li>
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
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 저장 여부
|
|
|
|
|
* <ul><li>저장됐으면 true</li>
|
|
|
|
|
* <li>그렇지 않으면 false</li>
|
|
|
|
|
* </ul>
|
|
|
|
|
*/
|
|
|
|
|
/**부과제외 대장 정보를 삭제한다.
|
|
|
|
|
public boolean removeLevyExcl(LevyExcl levyExcl) {
|
|
|
|
|
// 변수 선언
|
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
@ -448,5 +608,5 @@ public class Excl01Bean extends AbstractComponent {
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|