|
|
@ -1,11 +1,17 @@
|
|
|
|
package cokr.xit.fims.excl.service.bean;
|
|
|
|
package cokr.xit.fims.excl.service.bean;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import cokr.xit.base.file.FileInfo;
|
|
|
|
|
|
|
|
import cokr.xit.base.file.service.FileQuery;
|
|
|
|
|
|
|
|
import cokr.xit.base.file.service.bean.FileBean;
|
|
|
|
|
|
|
|
import cokr.xit.base.file.web.FileInfoFactory;
|
|
|
|
import cokr.xit.fims.crdn.Crdn;
|
|
|
|
import cokr.xit.fims.crdn.Crdn;
|
|
|
|
import cokr.xit.fims.crdn.service.CrdnService;
|
|
|
|
import cokr.xit.fims.crdn.service.CrdnService;
|
|
|
|
import cokr.xit.fims.excl.Excl03;
|
|
|
|
import cokr.xit.fims.excl.Excl03;
|
|
|
@ -14,13 +20,13 @@ import cokr.xit.fims.excl.service.Excl03Service;
|
|
|
|
import cokr.xit.foundation.component.AbstractServiceBean;
|
|
|
|
import cokr.xit.foundation.component.AbstractServiceBean;
|
|
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
|
|
|
|
|
|
|
|
/**단속 재등록 서비스 구현체.
|
|
|
|
/** 단속 재등록 서비스 구현체.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* <p>상세 설명:
|
|
|
|
* <p>상세 설명: 단속 재등록 대장 테이블에 접근하여 데이터를 조회하고 저장한다.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* <pre>
|
|
|
|
* <pre>
|
|
|
|
* ============ 변경 이력 ============
|
|
|
|
* ============ 변경 이력 ============
|
|
|
|
* 2023-07-03 mjkhan 최초 작성
|
|
|
|
* 2023-07-03 JoJH 최초 작성
|
|
|
|
* ================================
|
|
|
|
* ================================
|
|
|
|
* </pre>
|
|
|
|
* </pre>
|
|
|
|
*/
|
|
|
|
*/
|
|
|
@ -31,6 +37,11 @@ public class Excl03ServiceBean extends AbstractServiceBean implements Excl03Serv
|
|
|
|
@Resource(name = "excl03Bean")
|
|
|
|
@Resource(name = "excl03Bean")
|
|
|
|
private Excl03Bean excl03Bean;
|
|
|
|
private Excl03Bean excl03Bean;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** 파일 정보 Bean */
|
|
|
|
|
|
|
|
@Resource(name = "fileBean")
|
|
|
|
|
|
|
|
private FileBean fileBean;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** 단속 정보 Service */
|
|
|
|
@Resource(name="crdnService")
|
|
|
|
@Resource(name="crdnService")
|
|
|
|
private CrdnService crdnService;
|
|
|
|
private CrdnService crdnService;
|
|
|
|
|
|
|
|
|
|
|
@ -49,76 +60,95 @@ public class Excl03ServiceBean extends AbstractServiceBean implements Excl03Serv
|
|
|
|
// 변수 선언
|
|
|
|
// 변수 선언
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
boolean retSuccess = false; // DB 처리 결과
|
|
|
|
|
|
|
|
|
|
|
|
// 단속 ID로 부과제외 정보 조회
|
|
|
|
// 단속 ID로 단속(TB_CRDN) 정보 조회
|
|
|
|
DataObject infoCrdn = excl03Bean.getCrackdown(excl03.getBfrCrdnId());
|
|
|
|
DataObject infoCrdn = excl03Bean.getCrackdown(excl03.getBfrCrdnId());
|
|
|
|
|
|
|
|
// 단속 ID로 파일(TB_FILE) 정보 조회
|
|
|
|
Crdn crdn = new Crdn();
|
|
|
|
List<DataObject> infoCrdnFileList = fileBean.getFileList(new FileQuery().setInfoType(excl03.INF_TYPE)
|
|
|
|
|
|
|
|
.setInfoKeys(excl03.getBfrCrdnId()));
|
|
|
|
crdn.setSggCd(infoCrdn.string("SGG_CD")); // 시군구 코드
|
|
|
|
|
|
|
|
crdn.setTaskSeCd(infoCrdn.string("TASK_SE_CD")); // 업무 구분 코드
|
|
|
|
// 재등록 단속 정보(TB_CRDN)
|
|
|
|
crdn.setCrdnRegSeCd("03"); // 단속 등록 구분 코드(FIM026) - 재 등록
|
|
|
|
Crdn newCrdn = new Crdn();
|
|
|
|
crdn.setCrdnInptSeCd(infoCrdn.string("CRDN_INPT_SE_CD")); // 단속 입력 구분 코드
|
|
|
|
|
|
|
|
crdn.setLinkTblNm(infoCrdn.string("LINK_TBL_NM")); // 연계 테이블 명
|
|
|
|
newCrdn.setSggCd(infoCrdn.string("SGG_CD")); // 시군구 코드
|
|
|
|
crdn.setLinkId(infoCrdn.string("LINK_ID")); // 연계 ID
|
|
|
|
newCrdn.setTaskSeCd(infoCrdn.string("TASK_SE_CD")); // 업무 구분 코드
|
|
|
|
crdn.setRtpyrId(infoCrdn.string("RTPYR_ID")); // 납부자 ID
|
|
|
|
newCrdn.setCrdnRegSeCd("03"); // 단속 등록 구분 코드(FIM026) - 재 등록
|
|
|
|
crdn.setCrdnSeCd(infoCrdn.string("CRDN_SE_CD")); // 단속 구분 코드
|
|
|
|
newCrdn.setCrdnInptSeCd(infoCrdn.string("CRDN_INPT_SE_CD")); // 단속 입력 구분 코드
|
|
|
|
crdn.setCrdnYmd(infoCrdn.string("CRDN_YMD")); // 단속 일자
|
|
|
|
newCrdn.setCvlcptLinkYn(infoCrdn.string("CVLCPT_LINK_YN")); // 민원 연계 여부
|
|
|
|
crdn.setCrdnTm(infoCrdn.string("CRDN_TM")); // 단속 시각
|
|
|
|
newCrdn.setLinkTblNm(infoCrdn.string("LINK_TBL_NM")); // 연계 테이블 명
|
|
|
|
crdn.setVhrno(infoCrdn.string("VHRNO")); // 차량번호
|
|
|
|
newCrdn.setLinkId(infoCrdn.string("LINK_ID")); // 연계 ID
|
|
|
|
crdn.setCrdnStdgNm(infoCrdn.string("CRDN_STDG_NM")); // 단속 법정동 명
|
|
|
|
newCrdn.setRtpyrId(infoCrdn.string("RTPYR_ID")); // 납부자 ID
|
|
|
|
crdn.setCrdnRoadNm(infoCrdn.string("CRDN_ROAD_NM")); // 단속 도로 명
|
|
|
|
newCrdn.setCrdnYmd(infoCrdn.string("CRDN_YMD")); // 단속 일자
|
|
|
|
crdn.setCrdnPlc(infoCrdn.string("CRDN_PLC")); // 단속 장소
|
|
|
|
newCrdn.setCrdnTm(infoCrdn.string("CRDN_TM")); // 단속 시각
|
|
|
|
crdn.setDtlCrdnPlc(infoCrdn.string("DTL_CRDN_PLC")); // 상세 단속 장소
|
|
|
|
newCrdn.setVhrno(infoCrdn.string("VHRNO")); // 차량번호
|
|
|
|
crdn.setTeamId(infoCrdn.string("TEAM_ID")); // 조 ID
|
|
|
|
newCrdn.setCrdnStdgNm(infoCrdn.string("CRDN_STDG_NM")); // 단속 법정동 명
|
|
|
|
crdn.setVltnId(infoCrdn.string("VLTN_ID")); // 위반 ID
|
|
|
|
newCrdn.setCrdnRoadNm(infoCrdn.string("CRDN_ROAD_NM")); // 단속 도로 명
|
|
|
|
crdn.setVltnCd(infoCrdn.string("VLTN_CD")); // 위반 코드
|
|
|
|
newCrdn.setCrdnPlc(infoCrdn.string("CRDN_PLC")); // 단속 장소
|
|
|
|
crdn.setCrdnSpareaCd(infoCrdn.string("CRDN_SPAREA_CD")); // 단속 특별구역 코드
|
|
|
|
newCrdn.setVltnId(infoCrdn.string("VLTN_ID")); // 위반 ID
|
|
|
|
crdn.setCrdnBgngTm(infoCrdn.string("CRDN_BGNG_TM")); // 단속 시작 시각
|
|
|
|
newCrdn.setVltnCd(infoCrdn.string("VLTN_CD")); // 위반 코드
|
|
|
|
crdn.setCrdnEndTm(infoCrdn.string("CRDN_END_TM")); // 단속 종료 시각
|
|
|
|
newCrdn.setGpsX(infoCrdn.string("GPS_X")); // GPS X
|
|
|
|
crdn.setCrdnSn(infoCrdn.string("CRDN_SN")); // 단속 일련번호
|
|
|
|
newCrdn.setGpsY(infoCrdn.string("GPS_Y")); // GPS Y
|
|
|
|
crdn.setGpsX(infoCrdn.string("GPS_X")); // GPS X
|
|
|
|
newCrdn.setAtchFileCnt(Integer.parseInt(infoCrdn.string("ATCH_FILE_CNT"))); // 첨부 파일 수
|
|
|
|
crdn.setGpsY(infoCrdn.string("GPS_Y")); // GPS Y
|
|
|
|
newCrdn.setVin(infoCrdn.string("VIN")); // 차대번호
|
|
|
|
crdn.setMoscX(infoCrdn.string("MOSC_X")); // 모자이크 X
|
|
|
|
newCrdn.setVhclNm(infoCrdn.string("VHCL_NM")); // 차량 명
|
|
|
|
crdn.setMoscY(infoCrdn.string("MOSC_Y")); // 모자이크 Y
|
|
|
|
newCrdn.setVhclColor(infoCrdn.string("VHCL_COLOR")); // 차량 색상
|
|
|
|
crdn.setTowngYn(infoCrdn.string("TOWNG_YN")); // 견인 여부
|
|
|
|
newCrdn.setFfnlgAmt(0); // 과태료 금액 - 초기 값
|
|
|
|
crdn.setAtchFileCnt(Integer.parseInt(infoCrdn.string("ATCH_FILE_CNT"))); // 첨부 파일 수
|
|
|
|
newCrdn.setFfnlgRductRt(infoCrdn.string("FFNLG_RDUCT_RT")); // 과태료 감경 율
|
|
|
|
crdn.setVin(infoCrdn.string("VIN")); // 차대번호
|
|
|
|
newCrdn.setLevyAmt(0); // 부과 금액 - 초기 값
|
|
|
|
crdn.setVhclNm(infoCrdn.string("VHCL_NM")); // 차량 명
|
|
|
|
// newCrdn.setAdvntceBgngYmd(""); // 사전통지 시작 일자
|
|
|
|
crdn.setVhclColor(infoCrdn.string("VHCL_COLOR")); // 차량 색상
|
|
|
|
// newCrdn.setAdvntceDudtYmd(""); // 사전통지 납기 일자
|
|
|
|
crdn.setUseFuelCd(infoCrdn.string("USE_FUEL_CD")); // 사용 연료 코드
|
|
|
|
newCrdn.setAdvntceLevyAmt(0); // 사전통지 부과 금액 - 초기 값
|
|
|
|
crdn.setFfnlgCarmdlCd(infoCrdn.string("FFNLG_CARMDL_CD")); // 과태료 차종 코드
|
|
|
|
newCrdn.setOpnnSbmsnYn("N"); // 의견 제출 여부
|
|
|
|
crdn.setParkngPsbltyRsltCd(infoCrdn.string("PARKNG_PSBLTY_RSLT_CD")); // 주차 가능 결과 코드
|
|
|
|
newCrdn.setEtcCn(infoCrdn.string("ETC_CN")); // 기타 내용
|
|
|
|
crdn.setVltnNmtm(infoCrdn.string("VLTN_NMTM")); // 위반 횟수
|
|
|
|
// newCrdn.setLevyId(""); // 부과 ID
|
|
|
|
crdn.setOvtimeYn(infoCrdn.string("OVTIME_YN")); // 시간외 여부
|
|
|
|
newCrdn.setCrdnSttsCd("01"); // 단속 상태 코드
|
|
|
|
crdn.setFfnlgAmt(0); // 과태료 금액 - 초기 값
|
|
|
|
newCrdn.setCrdnSttsChgDt(""); // 단속 상태 변경 일시
|
|
|
|
crdn.setFfnlgRductRt(infoCrdn.string("FFNLG_RDUCT_RT")); // 과태료 감경 율
|
|
|
|
newCrdn.setAdtnAmt(0); // 가산 금액
|
|
|
|
crdn.setLevyAmt(0); // 부과 금액 - 초기 값
|
|
|
|
newCrdn.setMinusAmt(0); // 감경 금액
|
|
|
|
// crdn.setAdvntceBgngYmd(""); // 사전통지 시작 일자
|
|
|
|
newCrdn.setRcvmtAmt(0); // 수납 금액
|
|
|
|
// crdn.setAdvntceDudtYmd(""); // 사전통지 납기 일자
|
|
|
|
newCrdn.setBfrCrdnId(infoCrdn.string("CRDN_ID")); // 이전 단속 ID
|
|
|
|
crdn.setAdvntceLevyAmt(0); // 사전통지 부과 금액 - 초기 값
|
|
|
|
newCrdn.setDelYn("N"); // 삭제 여부
|
|
|
|
crdn.setOpnnSbmsnYn("N"); // 의견 제출 여부
|
|
|
|
// TB_CRDN_ADI(단속 부가 정보)
|
|
|
|
crdn.setEtcCn(infoCrdn.string("ETC_CN")); // 기타 내용
|
|
|
|
newCrdn.setCrdnSeCd(infoCrdn.string("CRDN_SE_CD")); // 단속 구분 코드
|
|
|
|
// crdn.setLevyId(""); // 부과 ID
|
|
|
|
newCrdn.setTeamId(infoCrdn.string("TEAM_ID")); // 조 ID
|
|
|
|
crdn.setCrdnSttsCd("01"); // 단속 상태 코드
|
|
|
|
newCrdn.setDtlCrdnPlc(infoCrdn.string("DTL_CRDN_PLC")); // 상세 단속 장소
|
|
|
|
crdn.setCrdnSttsChgDt(""); // 단속 상태 변경 일시
|
|
|
|
newCrdn.setCrdnSpareaCd(infoCrdn.string("CRDN_SPAREA_CD")); // 단속 특별구역 코드
|
|
|
|
crdn.setAdtnAmt(0); // 가산 금액
|
|
|
|
newCrdn.setCrdnBgngTm(infoCrdn.string("CRDN_BGNG_TM")); // 단속 시작 시각
|
|
|
|
crdn.setMinusAmt(0); // 감경 금액
|
|
|
|
newCrdn.setCrdnEndTm(infoCrdn.string("CRDN_END_TM")); // 단속 종료 시각
|
|
|
|
crdn.setRcvmtAmt(0); // 수납 금액
|
|
|
|
newCrdn.setCrdnSn(infoCrdn.string("CRDN_SN")); // 단속 일련번호
|
|
|
|
crdn.setBfrCrdnId(infoCrdn.string("CRDN_ID")); // 이전 단속 ID
|
|
|
|
newCrdn.setMoscX(infoCrdn.string("MOSC_X")); // 모자이크 X
|
|
|
|
crdn.setDelYn("N");
|
|
|
|
newCrdn.setMoscY(infoCrdn.string("MOSC_Y")); // 모자이크 Y
|
|
|
|
|
|
|
|
newCrdn.setTowngYn(infoCrdn.string("TOWNG_YN")); // 견인 여부
|
|
|
|
|
|
|
|
newCrdn.setUseFuelCd(infoCrdn.string("USE_FUEL_CD")); // 사용 연료 코드
|
|
|
|
|
|
|
|
newCrdn.setFfnlgCarmdlCd(infoCrdn.string("FFNLG_CARMDL_CD")); // 과태료 차종 코드
|
|
|
|
|
|
|
|
newCrdn.setParkngPsbltyRsltCd(infoCrdn.string("PARKNG_PSBLTY_RSLT_CD")); // 주차 가능 결과 코드
|
|
|
|
|
|
|
|
newCrdn.setVltnNmtm(infoCrdn.string("VLTN_NMTM")); // 위반 횟수
|
|
|
|
|
|
|
|
newCrdn.setOvtimeYn(infoCrdn.string("OVTIME_YN")); // 시간외 여부
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 재등록 단속 파일 정보(TB_FILE)
|
|
|
|
|
|
|
|
List<FileInfo> newFileInfoList = new ArrayList<FileInfo>();
|
|
|
|
|
|
|
|
// 현재 경로를 구한다.
|
|
|
|
|
|
|
|
String curWorkingDir = System.getProperty("user.dir");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!infoCrdnFileList.isEmpty() && infoCrdnFileList.size() > 0) {
|
|
|
|
|
|
|
|
List<File> files = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int iLoop = 0; iLoop < infoCrdnFileList.size(); iLoop++) {
|
|
|
|
|
|
|
|
files.add(new File(curWorkingDir + File.separator + infoCrdnFileList.get(iLoop).string("FILE_PATH")));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
newFileInfoList = new FileInfoFactory().createFileInfos(null, files);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 단속 대장 입력
|
|
|
|
// 단속 대장 입력
|
|
|
|
retSuccess = crdnService.create(null, crdn, null);
|
|
|
|
retSuccess = crdnService.create(null, newCrdn, newFileInfoList);
|
|
|
|
if (!retSuccess) {
|
|
|
|
if (!retSuccess) {
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
throw new RuntimeException("재부과 등록 중 단속대장 등록에 실패하였습니다.");
|
|
|
|
throw new RuntimeException("재부과 등록 중 단속대장 등록에 실패하였습니다.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 단속 대장 사진 복사
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 재부과 대장 등록
|
|
|
|
// 재부과 대장 등록
|
|
|
|
excl03.setCrdnId(crdn.getCrdnId());
|
|
|
|
excl03.setCrdnId(newCrdn.getCrdnId());
|
|
|
|
excl03.setCrdnRegSeCd("03");
|
|
|
|
excl03.setCrdnRegSeCd("03");
|
|
|
|
|
|
|
|
|
|
|
|
retSuccess = excl03Bean.create(excl03);
|
|
|
|
retSuccess = excl03Bean.create(excl03);
|
|
|
@ -127,10 +157,7 @@ public class Excl03ServiceBean extends AbstractServiceBean implements Excl03Serv
|
|
|
|
throw new RuntimeException("재부과 대장 등록에 실패하였습니다.");
|
|
|
|
throw new RuntimeException("재부과 대장 등록에 실패하였습니다.");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 처리 성공
|
|
|
|
return true;
|
|
|
|
retSuccess = true;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return retSuccess;
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -139,4 +166,3 @@ public class Excl03ServiceBean extends AbstractServiceBean implements Excl03Serv
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|