|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
package cokr.xit.fims.excl.service.bean;
|
|
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.time.LocalDate;
|
|
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
|
@ -13,6 +13,7 @@ import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
|
|
|
|
|
import cokr.xit.fims.excl.Excl01;
|
|
|
|
|
import cokr.xit.fims.excl.Excl01Query;
|
|
|
|
|
import cokr.xit.fims.excl.service.Excl01Service;
|
|
|
|
|
import cokr.xit.foundation.UserInfo;
|
|
|
|
|
import cokr.xit.foundation.component.AbstractServiceBean;
|
|
|
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
|
|
|
|
|
@ -38,13 +39,13 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
|
|
|
|
|
private CrdnSttsHstryBean crdnSttsHstryBean;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<DataObject> getLevyExclusionList(Excl01Query req) {
|
|
|
|
|
return excl01Bean.getLevyExclusionList(req);
|
|
|
|
|
public List<DataObject> getLevyExclList(Excl01Query req) {
|
|
|
|
|
return excl01Bean.getLevyExclList(req);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public DataObject getInfo(Excl01Query req) {
|
|
|
|
|
DataObject levyExcl = excl01Bean.getInfo(req);
|
|
|
|
|
public DataObject getLevyExclInfo(Excl01Query req) {
|
|
|
|
|
DataObject levyExcl = excl01Bean.getLevyExclInfo(req);
|
|
|
|
|
|
|
|
|
|
// 등록으로 실행했는데 부과제외 ID가 존재한다면 이미 등록되었으므로 오류로 처리..
|
|
|
|
|
if (req.getLevyExclId() == null) {
|
|
|
|
@ -58,9 +59,8 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Map<String, String> create(Excl01 excl01) {
|
|
|
|
|
public boolean createLevyExcl(Excl01 excl01) {
|
|
|
|
|
// 변수 선언
|
|
|
|
|
Map<String, String> retMap = new HashMap<String, String>(); // 결과 return
|
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
|
String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD)
|
|
|
|
|
String newCvlcptPrcsCd = ""; // 신규 민원 처리 코드(CVLCPT_PRCS_CD)
|
|
|
|
@ -71,125 +71,121 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
|
|
|
|
|
|
|
|
|
|
// 부과제외 ID가 있다면 이미 부과제외 자료가 존재하므로 종료..
|
|
|
|
|
if (!infoCrdnLevyExcl.string("LEVY_EXCL_ID").equals("")) {
|
|
|
|
|
retMap.put("retSaved", "false");
|
|
|
|
|
retMap.put("retMessage", "부과제외 정보가 이미 존재합니다.");
|
|
|
|
|
|
|
|
|
|
return retMap;
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("부과제외 정보가 이미 존재합니다.");
|
|
|
|
|
}
|
|
|
|
|
// 단속 상태 코드(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;
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다");
|
|
|
|
|
}
|
|
|
|
|
} else if (excl01.getLevyExclSeCd().equals("5")) {
|
|
|
|
|
// 단속 상태 코드가 부과(51) 보다 작다면, 전액감액 등록 할 수 없다. 종료.. 전액감액 등록은 부과이후...
|
|
|
|
|
if (Integer.parseInt(infoCrdnLevyExcl.string("CRDN_STTS_CD")) < 51) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("단속 상태가 " + infoCrdnLevyExcl.string("CRDN_STTS_NM") + " 상태 입니다");
|
|
|
|
|
}
|
|
|
|
|
// } 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();
|
|
|
|
|
|
|
|
|
|
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"))) {
|
|
|
|
|
// 단속민원ID가 있다면..
|
|
|
|
|
if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) {
|
|
|
|
|
// 자동등록 자료만 단속민원(TB_CRDN_CVLCPT) 답변 부분을 처리
|
|
|
|
|
if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) {
|
|
|
|
|
// 단속민원(TB_CRDN_CVLCPT) 대장
|
|
|
|
|
Excl01 updtCrdnCvlcpt = new Excl01();
|
|
|
|
|
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); // 민원 연계 ID
|
|
|
|
|
|
|
|
|
|
// 답변내용을 초기화, 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다.
|
|
|
|
|
// 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다.
|
|
|
|
|
// 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다.
|
|
|
|
|
// 단속민원 민원처리결과내용 수정
|
|
|
|
|
retSuccess = excl01Bean.updateCvlcptPrcsRsltCn(updtCrdnCvlcpt);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("부과제외 등록 중 단속민원 대장의 민원처리결과내용 초기화에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 답변완료 후 서손처리에 대해서는 답변 상태를 업데이트 하지 않는다
|
|
|
|
|
// 전송대상, 전송 미대상 자료에 대해서 업데이트한다.
|
|
|
|
|
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 = excl01Bean.selectCvlcptAnsWordsInfo(excl01.getLevyExclRsnCd());
|
|
|
|
|
|
|
|
|
|
// 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면..
|
|
|
|
|
// 비부과(서손)사유가 민원 답변대상인가? 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면..
|
|
|
|
|
if (!infoCvlcptAnsWords.string("ANS_WORDS_ID").equals("")) {
|
|
|
|
|
newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외)
|
|
|
|
|
newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상
|
|
|
|
|
newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외)
|
|
|
|
|
newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상
|
|
|
|
|
} else {
|
|
|
|
|
newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상
|
|
|
|
|
newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상
|
|
|
|
|
newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상
|
|
|
|
|
newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다.
|
|
|
|
|
updtCrdn.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드
|
|
|
|
|
updtCrdn.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드
|
|
|
|
|
// 현재 날짜 구하기
|
|
|
|
|
LocalDate now = LocalDate.now();
|
|
|
|
|
// 포맷 정의
|
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // yyyy년 MM월 dd일 HH시 mm분 ss초
|
|
|
|
|
// 포맷 적용
|
|
|
|
|
String formatedNow = now.format(formatter);
|
|
|
|
|
|
|
|
|
|
retSuccess = excl01Bean.updateCrdnCvlcptPrcs(updtCrdn); // 단속민원 민원처리코드 수정
|
|
|
|
|
// 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다.
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsSumry(infoCvlcptAnsWords.string("PRCS_SUMRY")); // 민원 처리 요약
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsRsltCn(infoCvlcptAnsWords.string("PRCS_RSLT_CN")); // 민원 처리 결과 내용
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsCmptnDt(formatedNow); // 민원 처리 완료 일시
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsPic(UserInfo.current().getId()); // 민원 처리 담당자
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드
|
|
|
|
|
|
|
|
|
|
// 단속민원 민원처리코드 수정
|
|
|
|
|
retSuccess = excl01Bean.updateCrdnCvlcpt(updtCrdnCvlcpt);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
retMap.put("retSaved", "false");
|
|
|
|
|
retMap.put("retMessage", "부과제외 등록 중 민원처리코드 수정에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException(retMap.get("retMessage"));
|
|
|
|
|
throw new RuntimeException("부과제외 등록 중 단속민원답변 수정에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 답변내용을 초기화,
|
|
|
|
|
// 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다.
|
|
|
|
|
// 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다.
|
|
|
|
|
// 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다.
|
|
|
|
|
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("CRDN_REG_SE_CD").equals("02"))
|
|
|
|
|
} // 단속민원ID가 있다면..
|
|
|
|
|
|
|
|
|
|
// 표지정보 확인여부가 미확인이면 -> 조회미대상 으로
|
|
|
|
|
if (infoCrdnLevyExcl.string("PARKNG_PSBLTY_RSLT_CD").equals("0")) {
|
|
|
|
|
// 단속(TB_CRDN) 대장을 수정 한다.
|
|
|
|
|
// 단속(TB_CRDN) 대장
|
|
|
|
|
Excl01 updtCrdn = new Excl01();
|
|
|
|
|
|
|
|
|
|
updtCrdn.setCrdnId(excl01.getCrdnId()); // 단속 ID
|
|
|
|
|
updtCrdn.setParkngPsbltyRsltCd("9"); // 주차 가능 결과 코드
|
|
|
|
|
|
|
|
|
|
retSuccess = excl01Bean.updateParkngPsbltyRsltCd(updtCrdn); // 단속민원 민원처리결과내용 수정
|
|
|
|
|
// 단속민원 민원처리결과내용 수정
|
|
|
|
|
retSuccess = excl01Bean.updateParkngPsbltyRsltCd(updtCrdn);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
retMap.put("retSaved", "false");
|
|
|
|
|
retMap.put("retMessage", "부과제외 등록 중 단속 대장의 표지정보확인여부 수정에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException(retMap.get("retMessage"));
|
|
|
|
|
throw new RuntimeException("부과제외 등록 중 단속 대장의 표지정보확인여부 수정에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 전액감액일 경우.. 부과(TB_LEVY)에 감액금액 입력이 필요..
|
|
|
|
|
} else if (excl01.getLevyExclSeCd().equals("5")) {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 단속 ID로 발송 상세(TB_SNDNG_DTL) 대장 정보 조회
|
|
|
|
|
DataObject infoSndngDtl = excl01Bean.selectSndngDtlInfo(excl01.getCrdnId());
|
|
|
|
|
DataObject infoSndngDtl = excl01Bean.selectSndngDtlInfo(excl01.getCrdnId(), "1");
|
|
|
|
|
|
|
|
|
|
if (infoSndngDtl != null) {
|
|
|
|
|
retSuccess = excl01Bean.updateRcvmtCd(updtCrdn); // 발송상세 수납코드 수정
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
retMap.put("retSaved", "false");
|
|
|
|
|
retMap.put("retMessage", "부과제외 등록 중 발송상세 대장의 수납코드 수정에 실패하였습니다.");
|
|
|
|
|
// 발송 상세(TB_SNDNG_DTL) 대장
|
|
|
|
|
Excl01 updtSndngDtl = new Excl01();
|
|
|
|
|
|
|
|
|
|
updtSndngDtl.setCrdnId(excl01.getCrdnId()); // 단속 ID
|
|
|
|
|
|
|
|
|
|
// 발송상세 수납코드를 수정
|
|
|
|
|
retSuccess = excl01Bean.updateRcvmtCd(updtSndngDtl);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException(retMap.get("retMessage"));
|
|
|
|
|
throw new RuntimeException("부과제외 등록 중 발송상세 대장의 수납코드 수정에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -203,13 +199,10 @@ else new_as_state := ANSWER_STATE_ANSWER_FOR_CANCEL; // 답변대상(서
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 부과제외(TB_LEVY_EXCL) 대장을 등록 한다.
|
|
|
|
|
retSuccess = excl01Bean.create(excl01);
|
|
|
|
|
retSuccess = excl01Bean.createLevyExcl(excl01);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
retMap.put("retSaved", "false");
|
|
|
|
|
retMap.put("retMessage", "부과제외 대장 등록에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException(retMap.get("retMessage"));
|
|
|
|
|
throw new RuntimeException("부과제외 대장 등록에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 단속상태이력(TB_CRDN_STTS_HSTRY)
|
|
|
|
@ -225,50 +218,102 @@ else new_as_state := ANSWER_STATE_ANSWER_FOR_CANCEL; // 답변대상(서
|
|
|
|
|
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다.
|
|
|
|
|
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
retMap.put("retSaved", "false");
|
|
|
|
|
retMap.put("retMessage", "부과제외 등록 중 단속상태코드 변경에 실패하였습니다.");
|
|
|
|
|
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException(retMap.get("retMessage"));
|
|
|
|
|
throw new RuntimeException("부과제외 등록 중 단속상태코드 변경에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 처리 성공
|
|
|
|
|
retMap.put("retSaved", "true");
|
|
|
|
|
retMap.put("retMessage", "저장 되었습니다.");
|
|
|
|
|
|
|
|
|
|
return retMap;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Map<String, String> update(Excl01 excl01) {
|
|
|
|
|
public boolean updateLevyExcl(Excl01 excl01) {
|
|
|
|
|
// 변수 선언
|
|
|
|
|
Map<String, String> retMap = new HashMap<String, String>(); // 결과 return
|
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
|
String newCvlcptPrcsCd = ""; // 신규 민원 처리 코드(CVLCPT_PRCS_CD)
|
|
|
|
|
String newCvlcptTrsmCd = ""; // 민원 전송 코드(CVLCPT_TRSM_CD)
|
|
|
|
|
|
|
|
|
|
retSuccess = excl01Bean.update(excl01);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
retMap.put("retSaved", "false");
|
|
|
|
|
retMap.put("retMessage", "부과제외 대장 수정에 실패하였습니다.");
|
|
|
|
|
// 부과제외(TB_LEVY_EXCL) + 단속(TB_CRDN) 자료 조회
|
|
|
|
|
DataObject infoCrdnLevyExcl = excl01Bean.getLevyExclInfo(new Excl01Query().setLevyExclId(excl01.getLevyExclId()));
|
|
|
|
|
|
|
|
|
|
// 부과제외(TB_LEVY_EXCL) 대장을 수정 한다.
|
|
|
|
|
retSuccess = excl01Bean.updateLevyExcl(excl01);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException(retMap.get("retMessage"));
|
|
|
|
|
throw new RuntimeException("부과제외 대장 수정에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 처리 성공
|
|
|
|
|
retMap.put("retSaved", "true");
|
|
|
|
|
retMap.put("retMessage", "저장 되었습니다.");
|
|
|
|
|
// 비부과(서손)일 경우..
|
|
|
|
|
if (excl01.getLevyExclSeCd().equals("1") ) {
|
|
|
|
|
// 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인
|
|
|
|
|
if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) {
|
|
|
|
|
// 단속 민원 대장
|
|
|
|
|
Excl01 updtCrdnCvlcpt = new Excl01();
|
|
|
|
|
|
|
|
|
|
updtCrdnCvlcpt.setCrdnId(infoCrdnLevyExcl.string("CRDN_ID")); // 단속 ID
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID")); // 민원 연계 ID
|
|
|
|
|
|
|
|
|
|
// 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다.
|
|
|
|
|
// 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다.
|
|
|
|
|
// 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다.
|
|
|
|
|
retSuccess = excl01Bean.updateCvlcptPrcsRsltCn(updtCrdnCvlcpt); // 단속민원 민원처리결과내용 초기화
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("부과제외 수정 중 단속민원 대장의 민원처리결과내용 초기화에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 자동등록 자료만..
|
|
|
|
|
if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) {
|
|
|
|
|
// 민원전송코드가 전송대상(01) 또는 전송미대상(03) 자료만 민원답변 부분을 처리
|
|
|
|
|
if (infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("01") || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("03")) {
|
|
|
|
|
// 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회
|
|
|
|
|
DataObject infoCvlcptAnsWords = excl01Bean.selectCvlcptAnsWordsInfo(excl01.getLevyExclRsnCd());
|
|
|
|
|
|
|
|
|
|
// 비부과(서손)사유가 민원 답변대상인가? 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장에 답변 사유 코드가 존재한다면..
|
|
|
|
|
if (infoCvlcptAnsWords != null) {
|
|
|
|
|
newCvlcptPrcsCd = "04"; // 민원 처리 코드 - 불수용(과태료 부과제외)
|
|
|
|
|
newCvlcptTrsmCd = "01"; // 민원 전송 코드 - 전송 대상
|
|
|
|
|
|
|
|
|
|
// 답변 문구가 필요해 보임..
|
|
|
|
|
} else {
|
|
|
|
|
newCvlcptPrcsCd = "07"; // 민원 처리 코드 - 비부과(서손)사유가 답변 미대상
|
|
|
|
|
newCvlcptTrsmCd = "03"; // 민원 전송 코드 - 비부과(서손)사유가 전송 미대상
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 현재 날짜 구하기
|
|
|
|
|
LocalDate now = LocalDate.now();
|
|
|
|
|
// 포맷 정의
|
|
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); // yyyy년 MM월 dd일 HH시 mm분 ss초
|
|
|
|
|
// 포맷 적용
|
|
|
|
|
String formatedNow = now.format(formatter);
|
|
|
|
|
|
|
|
|
|
// 단속민원(TB_CRDN_CVLCPT) 대장을 수정 한다.
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsCd(newCvlcptPrcsCd); // 민원 처리 코드
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsSumry(infoCvlcptAnsWords.string("PRCS_SUMRY")); // 민원 처리 요약
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsRsltCn(infoCvlcptAnsWords.string("PRCS_RSLT_CN")); // 민원 처리 결과 내용
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsCmptnDt(formatedNow); // 민원 처리 완료 일시
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsPic(UserInfo.current().getId()); // 민원 처리 담당자
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptTrsmCd(newCvlcptTrsmCd); // 민원 전송 코드
|
|
|
|
|
|
|
|
|
|
retSuccess = excl01Bean.updateCrdnCvlcpt(updtCrdnCvlcpt); // 단속민원 민원처리코드 수정
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("부과제외 등록 중 민원처리코드 수정에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} // 자동등록 자료만..
|
|
|
|
|
} // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인
|
|
|
|
|
} // 비부과(서손)일 경우..
|
|
|
|
|
|
|
|
|
|
return retMap;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean remove(Excl01 excl01) {
|
|
|
|
|
public boolean removeLevyExcl(Excl01 excl01) {
|
|
|
|
|
// 변수 선언
|
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
|
DataObject infoCrdnLevyExcl = new DataObject(); // 단속(TB_CRDN) 조회
|
|
|
|
|
|
|
|
|
|
// 부과제외(TB_LEVY_EXCL) + 단속(TB_CRDN) 자료 조회
|
|
|
|
|
infoCrdnLevyExcl = excl01Bean.getInfo(new Excl01Query().setLevyExclId(excl01.getLevyExclId()));
|
|
|
|
|
DataObject infoCrdnLevyExcl = excl01Bean.getLevyExclInfo(new Excl01Query().setLevyExclId(excl01.getLevyExclId()));
|
|
|
|
|
|
|
|
|
|
// 단속 상태 코드(CRDN_STTS_CD) 확인..
|
|
|
|
|
if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") && !infoCrdnLevyExcl.string("CRDN_STTS_CD").equals("81")) { // 비부과(서손)
|
|
|
|
@ -288,106 +333,42 @@ else new_as_state := ANSWER_STATE_ANSWER_FOR_CANCEL; // 답변대상(서
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 부과제외(TB_LEVY_EXCL) 대장을 삭제 한다.
|
|
|
|
|
retSuccess = excl01Bean.remove(excl01);
|
|
|
|
|
retSuccess = excl01Bean.removeLevyExcl(excl01);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("부과제외 대장 삭제에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 부과제외구분이 비부과(서손), 계고일 경우
|
|
|
|
|
if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1") || infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("2")) {
|
|
|
|
|
/*
|
|
|
|
|
if GB <> 3 then
|
|
|
|
|
begin
|
|
|
|
|
//서손 취소하는데, cp_answer의 처리상태가 답변대상 또는 서손의 답변 미대상 자료이면 원래 초기상태로 되돌린다
|
|
|
|
|
with qryAnswer_Get do begin
|
|
|
|
|
Close;
|
|
|
|
|
ParamByName('AS_MMCODE').AsString :=MainInfo.mm_code;
|
|
|
|
|
Open;
|
|
|
|
|
if (not IsEmpty) then
|
|
|
|
|
begin
|
|
|
|
|
{
|
|
|
|
|
old_state := FieldByName('AS_STATE').AsString;
|
|
|
|
|
if (FieldByName('AS_STATE').AsString = ANSWER_STATE_ANSWER_FOR_CANCEL) or
|
|
|
|
|
(FieldByName('AS_STATE').AsString = ANSWER_STATE_CANCEL_IGNORE) then
|
|
|
|
|
begin
|
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE').AsString := ANSWER_STATE_FIRST;
|
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE_DT').AsString := sDateTime;
|
|
|
|
|
qryAnswer_SetState.ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
|
qryAnswer_SetState.ExecSQL;
|
|
|
|
|
end;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//2017.01.17 서손취소를 하면 무조건 초기상태로 되게
|
|
|
|
|
{
|
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE').AsString := ANSWER_STATE_FIRST;
|
|
|
|
|
qryAnswer_SetState.ParamByName('AS_STATE_DT').AsString := sDateTime;
|
|
|
|
|
qryAnswer_SetState.ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
|
qryAnswer_SetState.ExecSQL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//20201203 UIJIN 재등록 자료가 서손>취소>차적조회 시에 사전통보 대상에 올라오지 않아서 추가..
|
|
|
|
|
if (MainInfo.MM_DLGB = '3') or
|
|
|
|
|
(MainInfo.MM_DLGB = '4') then
|
|
|
|
|
as_state := ANSWER_STATE_CANCEL_COPY
|
|
|
|
|
else
|
|
|
|
|
as_state := ANSWER_STATE_FIRST;
|
|
|
|
|
|
|
|
|
|
qryAnswer_Set.ParamByName('AS_POST_DT').AsString := '';
|
|
|
|
|
qryAnswer_Set.ParamByName('AS_STATE').AsString := as_state;
|
|
|
|
|
qryAnswer_Set.ParamByName('AS_TEXT').AsString := '';
|
|
|
|
|
qryAnswer_Set.ParamByName('AS_REUSER').AsInteger := 0;
|
|
|
|
|
qryAnswer_Set.ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
|
qryAnswer_Set.ExecSQL;
|
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 답변내용을 초기화,
|
|
|
|
|
// 답변대상이었다가 답변내용보기를 했다가 서손처리하면 답변내용이 이미 세팅되어 있으므로 초기화해야 한다.
|
|
|
|
|
// 서손사유 수정시도 답변내용보기를 했을 수 있으므로 초기화해야 한다.
|
|
|
|
|
// 서손취소시도 답변내용이 부과 기본 내용으로 바꾸이야 하므로 초기화해야 한다.
|
|
|
|
|
with qryAnswer_SetTextNull do begin
|
|
|
|
|
ParamByName('AS_MMCODE').AsString := MainInfo.mm_code;
|
|
|
|
|
ExecSQL;
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//표지정보 확인여부가 조회미대상이면 -> 미확인 으로
|
|
|
|
|
//혹시 차적조회가 안되었으면? 놔두자 차적조회되면 그 때 표지정보 BJ_Send가 처리할테니
|
|
|
|
|
if MainInfo.mm_carcheck = CARCHECK_STATE_IGNORE then
|
|
|
|
|
begin
|
|
|
|
|
with qryMain_SetCarCheck do begin
|
|
|
|
|
ParamByName('MM_CARCHECK').AsString := CARCHECK_STATE_BEFORE;
|
|
|
|
|
ParamByName('MM_CODE').AsString := MainInfo.mm_code;
|
|
|
|
|
ExecSQL;
|
|
|
|
|
end;
|
|
|
|
|
if MainCD <> nil then
|
|
|
|
|
begin
|
|
|
|
|
if MainCD.FindField('MM_CARCHECK') <> nil then
|
|
|
|
|
begin
|
|
|
|
|
MainCD.Edit;
|
|
|
|
|
MainCD.FieldByName('MM_CARCHECK').AsString := CARCHECK_STATE_BEFORE;
|
|
|
|
|
MainCD.Post;
|
|
|
|
|
end;
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
end;
|
|
|
|
|
*/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 처리 성공
|
|
|
|
|
retSuccess = true;
|
|
|
|
|
// 부과제외 구분이 비부과(서손)일 경우
|
|
|
|
|
if (infoCrdnLevyExcl.string("LEVY_EXCL_SE_CD").equals("1")) {
|
|
|
|
|
// 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인
|
|
|
|
|
if (!infoCrdnLevyExcl.string("CVLCPT_LINK_ID").equals("")) {
|
|
|
|
|
// 자동등록 자료만 민원답변 부분을 처리
|
|
|
|
|
if (infoCrdnLevyExcl.string("CRDN_REG_SE_CD").equals("02")) {
|
|
|
|
|
// 비부과(서손) 취소하는데, 단속민원 전송상태가 전송대상(01) 또는 전송미대상(03), 전송요청(04) 자료이면 초기상태(전송대상)로 되돌린다
|
|
|
|
|
if (infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("01")
|
|
|
|
|
|| infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("03") || infoCrdnLevyExcl.string("CVLCPT_TRSM_CD").equals("04")) {
|
|
|
|
|
Excl01 updtCrdnCvlcpt = new Excl01();
|
|
|
|
|
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptLinkId(infoCrdnLevyExcl.string("CVLCPT_LINK_ID"));
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptPrcsCd("00"); // 민원 처리 코드 - 00 접수
|
|
|
|
|
updtCrdnCvlcpt.setCvlcptTrsmCd("01"); // 민원 전송 코드 - 01 전송대상
|
|
|
|
|
|
|
|
|
|
retSuccess = excl01Bean.updateCrdnCvlcptPrcs(updtCrdnCvlcpt); // 민원답변 정보 초기화
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
|
throw new RuntimeException("부과제외 삭제 중 민원답변 정보 초기화에 실패하였습니다.");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} // 자동등록 자료만 민원답변 부분을 처리
|
|
|
|
|
} // 단속민원(TB_CRDN_CVLCPT)에 자료가 있는지 확인
|
|
|
|
|
} // 부과제외 구분이 비부과(서손)일 경우
|
|
|
|
|
|
|
|
|
|
return retSuccess;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean removeList(Excl01Query req) {
|
|
|
|
|
public boolean removeLevyExclList(Excl01Query req) {
|
|
|
|
|
// 변수 선언
|
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
|
|
|
|
|
@ -404,16 +385,13 @@ else new_as_state := ANSWER_STATE_ANSWER_FOR_CANCEL; // 답변대상(서
|
|
|
|
|
infoLevyExcl.setDelRsn(req.getDelRsn()); // 삭제 사유
|
|
|
|
|
|
|
|
|
|
// 부과제외 삭제 호출
|
|
|
|
|
retSuccess = remove(infoLevyExcl);
|
|
|
|
|
retSuccess = removeLevyExcl(infoLevyExcl);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
return retSuccess;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 처리 성공
|
|
|
|
|
retSuccess = true;
|
|
|
|
|
|
|
|
|
|
return retSuccess;
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|