|
|
|
|
@ -115,402 +115,415 @@ public class LsctMpngBean extends AbstractBean {
|
|
|
|
|
int rtnNocs = -1;
|
|
|
|
|
|
|
|
|
|
int mainListSize = mainList.size();
|
|
|
|
|
if (mainListSize > 0) {
|
|
|
|
|
for (int iLoop = 0; iLoop < mainListSize; iLoop++) {
|
|
|
|
|
DataObject row = mainList.get(iLoop);
|
|
|
|
|
|
|
|
|
|
// 단속 ID로 단속(TB_CRDN) 정보 조회
|
|
|
|
|
RentQuery rentQuery = new RentQuery();
|
|
|
|
|
rentQuery.setMmCode(row.string("MM_CODE"));
|
|
|
|
|
rentQuery.setTaskSeCd(row.string("MM_TASKGB"));
|
|
|
|
|
|
|
|
|
|
DataObject isCrdnInfo = lsctMpngMapper.selectIsCrdnInfo(rentQuery);
|
|
|
|
|
|
|
|
|
|
Crdn crdn = new Crdn(); // 단속 정보
|
|
|
|
|
Payer payer = new Payer(); // 납부자 정보
|
|
|
|
|
|
|
|
|
|
// 단속 정보가 존재하지 않는다면.. 해당 자료 insert
|
|
|
|
|
if (isCrdnInfo == null) {
|
|
|
|
|
// 납부자 정보
|
|
|
|
|
payer.setSggCd(row.string("OM_SGGCODE")); // 시군구 코드
|
|
|
|
|
payer.setRtpyrInptSeCd("07"); // 납부자 입력 구분 코드 FIM015
|
|
|
|
|
switch (row.string("OM_NOGB")) { // 납부자 구분 코드 FIM011
|
|
|
|
|
case "11":
|
|
|
|
|
payer.setRtpyrSeCd("01"); break;
|
|
|
|
|
case "12":
|
|
|
|
|
payer.setRtpyrSeCd("02"); break;
|
|
|
|
|
case "13":
|
|
|
|
|
payer.setRtpyrSeCd("03"); break;
|
|
|
|
|
case "14":
|
|
|
|
|
payer.setRtpyrSeCd("04"); break;
|
|
|
|
|
case "15":
|
|
|
|
|
payer.setRtpyrSeCd("05"); break;
|
|
|
|
|
default:
|
|
|
|
|
payer.setRtpyrSeCd("05"); break;
|
|
|
|
|
}
|
|
|
|
|
payer.setRtpyrNo(row.string("OM_JNO")); // 납부자 번호
|
|
|
|
|
payer.setRtpyrNm(row.string("OM_NAME")); // 납부자명
|
|
|
|
|
payer.setRtpyrBrdt(row.string("OM_NO1")); // 납부자 생년월일
|
|
|
|
|
|
|
|
|
|
// 납부자 주소 정보
|
|
|
|
|
payer.setAddrInptSeCd("07"); // 주소 입력 구분 코드 FIM087
|
|
|
|
|
if (!row.string("OM_DORO_CODE").equals("")) { // 주소 구분 코드
|
|
|
|
|
payer.setAddrSeCd("02");
|
|
|
|
|
}
|
|
|
|
|
payer.setZip(row.string("OM_ZIP")); // 우편번호
|
|
|
|
|
payer.setAddr(row.string("OM_JUSO")); // 주소
|
|
|
|
|
payer.setDtlAddr(row.string("OM_BUNJI")); // 상세 주소
|
|
|
|
|
payer.setRoadNmCd(row.string("OM_DORO_CODE")); // 도로명 코드
|
|
|
|
|
payer.setUdgdSeCd(row.string("OM_BLD_POSITION")); // 지하 구분 코드
|
|
|
|
|
payer.setBmno(row.number("OM_BLD_NO1").intValue()); // 건물본번
|
|
|
|
|
payer.setBsno(row.number("OM_BLD_NO2").intValue()); // 건물부번
|
|
|
|
|
payer.setBldgMngNo(row.string("OM_BLD_ADMNO")); // 건물 관리 번호
|
|
|
|
|
payer.setStdgCd(row.string("OM_BDCODE")); // 법정동 코드
|
|
|
|
|
payer.setWholAddr(row.string("OM_JUSO") + ", " + row.string("OM_BUNJI")); // 전체 주소
|
|
|
|
|
|
|
|
|
|
// 납부자 주소 정보 등록
|
|
|
|
|
Payer result = payerBean.create(payer) ? payer : payerBean.getPayerAddrInfo(payer);
|
|
|
|
|
|
|
|
|
|
// 단속 정보
|
|
|
|
|
crdn.setSggCd(row.string("MM_SGGCODE")); // 시군구 코드
|
|
|
|
|
crdn.setTaskSeCd(row.string("MM_TASKGB")); // 업무 구분 코드
|
|
|
|
|
crdn.setCrdnRegSeCd(String.format("%02d", row.number("MM_DLGB").intValue())); // 단속 등록 구분 코드
|
|
|
|
|
crdn.setCrdnInptSeCd(String.format("%02d", row.number("MM_INGB").intValue())); // 단속 입력 구분 코드
|
|
|
|
|
// 민원 정보는 원본 시스템에서 확인하게끔 null로 입력한다.
|
|
|
|
|
crdn.setCvlcptLinkYn("N"); // 민원 연계 여부
|
|
|
|
|
crdn.setCvlcptLinkTblNm(null); // 민원 연계 테이블 명
|
|
|
|
|
crdn.setCvlcptLinkId(null); // 민원 연계 ID
|
|
|
|
|
crdn.setRtpyrId(result.getRtpyrId()); // 납부자 ID
|
|
|
|
|
crdn.setAddrSn(result.getAddrSn()); // 주소 일련번호
|
|
|
|
|
crdn.setCrdnYmd(row.string("MM_DATE")); // 단속 일자
|
|
|
|
|
crdn.setCrdnTm(row.string("MM_TIME")); // 단속 시간
|
|
|
|
|
crdn.setVhrno(row.string("MM_CARNO")); // 자동차등록번호
|
|
|
|
|
crdn.setCrdnStdgNm(row.string("CRDN_STDG_NM")); // 단속 법정동 명
|
|
|
|
|
crdn.setCrdnRoadNm(null); // 단속 도로 명
|
|
|
|
|
crdn.setCrdnPlc(row.string("MM_SGPOS")); // 단속 장소
|
|
|
|
|
crdn.setVltnId(row.string("VLTN_ID")); // 위반 ID
|
|
|
|
|
crdn.setGpsX(row.string("MM_GPS_X")); // GPS_X
|
|
|
|
|
crdn.setGpsY(row.string("MM_GPS_Y")); // GPS_Y
|
|
|
|
|
crdn.setAtchFileCnt(row.number("MM_IMAGECNT").intValue()); // 첨부 파일 수
|
|
|
|
|
crdn.setVin(row.string("MM_VHMNO")); // 차대번호
|
|
|
|
|
crdn.setVhclNm(row.string("MM_CARNAME")); // 차량 명
|
|
|
|
|
crdn.setVhclColr(row.string("MM_CARCOLOR")); // 차량 색상
|
|
|
|
|
crdn.setFfnlgCrdnAmt(row.number("MM_KEUM2").intValue()); // 과태료 단속 금액
|
|
|
|
|
crdn.setFfnlgRdcrt(null); // 과태료 감면율
|
|
|
|
|
crdn.setFfnlgAmt(row.number("MM_KEUM2").intValue() - row.number("MM_MINUS_KEUM").intValue()); // 과태료 금액
|
|
|
|
|
crdn.setAdvntceBgngYmd(row.string("MM_SDATE")); // 사전통지 시작 일자
|
|
|
|
|
crdn.setAdvntceDudtYmd(row.string("MM_EDATE")); // 사전통지 납기 일자
|
|
|
|
|
crdn.setAdvntceAmt(row.number("MM_KEUM1").intValue() - row.number("MM_MINUS_KEUM").intValue()); // 사전통지 금액
|
|
|
|
|
if (row.string("MM_RECALL").equals("1")) { // 의견 제출 여부
|
|
|
|
|
crdn.setOpnnSbmsnYn("Y");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setOpnnSbmsnYn("N");
|
|
|
|
|
}
|
|
|
|
|
crdn.setEtcCn(row.string("MM_ETC")); // 기타 내용
|
|
|
|
|
crdn.setCrdnSttsCd(row.string("MM_STATE")); // 단속 상태 코드
|
|
|
|
|
crdn.setCrdnSttsChgDt(row.string("MM_STATE_DT")); // 단속 상태 변경 일시
|
|
|
|
|
crdn.setAdtnAmt(row.number("MM_ADD_KEUM").intValue()); // 가산 금액
|
|
|
|
|
crdn.setMinusAmt(row.number("MM_MINUS_KEUM").intValue()); // 감경 금액
|
|
|
|
|
crdn.setRcvmtAmt(row.number("MM_SUKEUM").intValue()); // 수납 금액
|
|
|
|
|
crdn.setBfrCrdnId(row.string("MM_PRECODE")); // 이전 단속 ID
|
|
|
|
|
crdn.setNxrpCrdnLinkYn(row.string("NIS_LINK_YN")); // 세외수입 단속 연계 여부
|
|
|
|
|
crdn.setNxrpCrdnLinkUserId(null); // 세외수입 단속 연계 사용자 ID
|
|
|
|
|
crdn.setNxrpCrdnLinkDt(null); // 세외수입 단속 연계 일시
|
|
|
|
|
if (row.string("MC_LVY_KEY").length() == 11) { // 세외수입 대장 키
|
|
|
|
|
crdn.setNxrpAcbKey(row.string("MC_LVY_KEY"));
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setNxrpAcbKey(null);
|
|
|
|
|
}
|
|
|
|
|
crdn.setMmCode(row.string("MM_CODE")); // 메인코드 MM_CODE
|
|
|
|
|
crdn.setDelYn("N"); // 삭제 여부
|
|
|
|
|
crdn.setCreatedAt(row.string("MM_INDT"));
|
|
|
|
|
crdn.setCreatedBy(row.string("MM_INUSER"));
|
|
|
|
|
// 단속 부가 정보
|
|
|
|
|
crdn.setCrdnSeCd(null); // 단속 구분 코드
|
|
|
|
|
crdn.setTeamId(null); // 조 ID
|
|
|
|
|
if (row.string("MM_PRECODE").equals("1")) { // 단속 특별구역 코드 FIM007
|
|
|
|
|
crdn.setCrdnSpareaCd("01");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setCrdnSpareaCd("00");
|
|
|
|
|
}
|
|
|
|
|
crdn.setCrdnBgngTm(row.string("MM_TIME")); // 단속 시작 시각
|
|
|
|
|
crdn.setCrdnEndTm(row.string("MM_TIME2")); // 단속 종료 시각
|
|
|
|
|
crdn.setCrdnSn(row.string("MM_SNO")); // 단속 일련번호
|
|
|
|
|
crdn.setMoscX(null); // 모자이크 X
|
|
|
|
|
crdn.setMoscY(null); // 모자이크 Y
|
|
|
|
|
if (row.string("MM_TRAC").equals("1")) { // 견인 여부
|
|
|
|
|
crdn.setTowngYn("Y");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setTowngYn("N");
|
|
|
|
|
}
|
|
|
|
|
crdn.setUseFuelCd(row.string("MM_CARFUEL")); // 사용 연료 코드 LVS005
|
|
|
|
|
if (!row.string("MM_CARKIND").equals("")) {
|
|
|
|
|
crdn.setFfnlgCarmdlCd(String.format("%02d", row.number("MM_CARKIND").intValue())); // 과태료 차종 코드 FIM009
|
|
|
|
|
}
|
|
|
|
|
crdn.setPrkPsbltyRsltCd(row.string("MM_CARCHECK")); // 주차 가능 결과 코드
|
|
|
|
|
crdn.setVltnNmtm(row.string("MM_VIORCNT")); // 위반 횟수
|
|
|
|
|
crdn.setOvtmYn("N"); // 시간외 여부
|
|
|
|
|
crdn.setOvtmPrttnYn("N"); // 시간외 분할 여부
|
|
|
|
|
|
|
|
|
|
// 단속 대장 Insert
|
|
|
|
|
rtnNocs = lsctMpngMapper.insertMainToCrdn(crdn);
|
|
|
|
|
if (rtnNocs == 0) {
|
|
|
|
|
throw new RuntimeException("[F] 단속 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
if (mainListSize <= 0) {
|
|
|
|
|
return "[S] 등록 및 수정 작업이 정상 처리 되었습니다.";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 단속 부가 대장 Insert
|
|
|
|
|
rtnNocs = lsctMpngMapper.insertMainToCrdnAdi(crdn);
|
|
|
|
|
if (rtnNocs == 0) {
|
|
|
|
|
throw new RuntimeException("[F] 단속 부가 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
|
|
|
//FTP 서버 정보 조회
|
|
|
|
|
DataObject main = row;
|
|
|
|
|
DataObject ftpQuery = new DataObject()
|
|
|
|
|
.set("sggCd", main.string("MM_SGGCODE"))
|
|
|
|
|
.set("taskSeCd", main.string("MM_TASKGB"));
|
|
|
|
|
DataObject storageServer = finSysFtpMapper.selectFtpInfo(ftpQuery);
|
|
|
|
|
|
|
|
|
|
//FTP 서버 접속
|
|
|
|
|
RemoteSystemInfo rs = new RemoteSystemInfo();
|
|
|
|
|
rs.setId(storageServer.string("REMOTE_ID"));
|
|
|
|
|
rs.setIp(storageServer.string("REMOTE_IP"));
|
|
|
|
|
rs.setPort(storageServer.string("REMOTE_PORT"));
|
|
|
|
|
rs.setPw(storageServer.string("REMOTE_PASSWORD"));
|
|
|
|
|
rs.setOsType(storageServer.string("REMOTE_OS"));
|
|
|
|
|
rs.setWorkPath(storageServer.string("REMOTE_WORK_PATH"));
|
|
|
|
|
SFTPUtil sftpUtil = new SFTPUtil();
|
|
|
|
|
sftpUtil.connect(rs);
|
|
|
|
|
|
|
|
|
|
boolean fileSearchEnd = false;
|
|
|
|
|
int i = 1;
|
|
|
|
|
while(!fileSearchEnd) {
|
|
|
|
|
///////////////////////////////////////////////
|
|
|
|
|
// 단속ID로 단속 파일 다운로드
|
|
|
|
|
String i_char = "";
|
|
|
|
|
|
|
|
|
|
switch (i) {
|
|
|
|
|
case 1:i_char="A";break;
|
|
|
|
|
case 2:i_char="B";break;
|
|
|
|
|
case 3:i_char="C";break;
|
|
|
|
|
case 4:i_char="D";break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String remoteFileName = main.string("MM_CODE")+i_char+".JPG";
|
|
|
|
|
String remoteFilePath = storageServer.string("REMOTE_WORK_PATH")+remoteFileName;
|
|
|
|
|
|
|
|
|
|
byte[] bytesObj = sftpUtil.getBytesObj(remoteFilePath);
|
|
|
|
|
if(bytesObj == null) {
|
|
|
|
|
fileSearchEnd = true;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
|
// 단속 파일 등록
|
|
|
|
|
Relation rel = new FileInfo.Relation().setInfoType(Crdn.INF_TYPE).setInfoKey(crdn.getCrdnId());
|
|
|
|
|
String originalFileName = remoteFileName;
|
|
|
|
|
DataHolder dataHolder = new FileInfo.DataHolder(rel, originalFileName, bytesObj);
|
|
|
|
|
List<FileInfo> fileInfoList = new FileInfoFactory().createFileInfos(List.of(dataHolder));
|
|
|
|
|
fileBean.create(fileInfoList);
|
|
|
|
|
|
|
|
|
|
i++;
|
|
|
|
|
if(i >= 5) {
|
|
|
|
|
fileSearchEnd = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/////////////////////////////
|
|
|
|
|
//sftp연결종료
|
|
|
|
|
sftpUtil.disconnect();
|
|
|
|
|
} else { // 단속 정보가 존재한다면.. 해당 자료 update
|
|
|
|
|
// 납부자 정보
|
|
|
|
|
payer.setSggCd(row.string("OM_SGGCODE")); // 시군구 코드
|
|
|
|
|
payer.setRtpyrInptSeCd("07"); // 납부자 입력 구분 코드 FIM015
|
|
|
|
|
switch (row.string("OM_NOGB")) { // 납부자 구분 코드 FIM011
|
|
|
|
|
case "11":
|
|
|
|
|
payer.setRtpyrSeCd("01"); break;
|
|
|
|
|
case "12":
|
|
|
|
|
payer.setRtpyrSeCd("02"); break;
|
|
|
|
|
case "13":
|
|
|
|
|
payer.setRtpyrSeCd("03"); break;
|
|
|
|
|
case "14":
|
|
|
|
|
payer.setRtpyrSeCd("04"); break;
|
|
|
|
|
case "15":
|
|
|
|
|
payer.setRtpyrSeCd("05"); break;
|
|
|
|
|
default:
|
|
|
|
|
payer.setRtpyrSeCd("05"); break;
|
|
|
|
|
}
|
|
|
|
|
payer.setRtpyrNo(row.string("OM_JNO")); // 납부자 번호
|
|
|
|
|
payer.setRtpyrNm(row.string("OM_NAME")); // 납부자명
|
|
|
|
|
payer.setRtpyrBrdt(row.string("OM_NO1")); // 납부자 생년월일
|
|
|
|
|
|
|
|
|
|
// 납부자 주소 정보
|
|
|
|
|
payer.setAddrInptSeCd("07"); // 주소 입력 구분 코드 FIM087
|
|
|
|
|
if (!row.string("OM_DORO_CODE").equals("")) { // 주소 구분 코드
|
|
|
|
|
payer.setAddrSeCd("02");
|
|
|
|
|
}
|
|
|
|
|
payer.setZip(row.string("OM_ZIP")); // 우편번호
|
|
|
|
|
payer.setAddr(row.string("OM_JUSO")); // 주소
|
|
|
|
|
payer.setDtlAddr(row.string("OM_BUNJI")); // 상세 주소
|
|
|
|
|
payer.setRoadNmCd(row.string("OM_DORO_CODE")); // 도로명 코드
|
|
|
|
|
payer.setUdgdSeCd(row.string("OM_BLD_POSITION")); // 지하 구분 코드
|
|
|
|
|
payer.setBmno(row.number("OM_BLD_NO1").intValue()); // 건물본번
|
|
|
|
|
payer.setBsno(row.number("OM_BLD_NO2").intValue()); // 건물부번
|
|
|
|
|
payer.setBldgMngNo(row.string("OM_BLD_ADMNO")); // 건물 관리 번호
|
|
|
|
|
payer.setStdgCd(row.string("OM_BDCODE")); // 법정동 코드
|
|
|
|
|
payer.setWholAddr(row.string("OM_JUSO") + ", " + row.string("OM_BUNJI")); // 전체 주소
|
|
|
|
|
|
|
|
|
|
// 납부자 주소 정보 등록
|
|
|
|
|
Payer result = payerBean.create(payer) ? payer : payerBean.getPayerAddrInfo(payer);
|
|
|
|
|
|
|
|
|
|
// 단속 정보
|
|
|
|
|
crdn.setCrdnId(isCrdnInfo.string("CRDN_ID")); // CRDN_ID
|
|
|
|
|
crdn.setSggCd(isCrdnInfo.string("SGG_CD")); // 시군구 코드
|
|
|
|
|
crdn.setTaskSeCd(isCrdnInfo.string("TASK_SE_CD")); // 업무 구분 코드
|
|
|
|
|
crdn.setMmCode(isCrdnInfo.string("MM_CODE")); // MM_CODE
|
|
|
|
|
crdn.setCrdnRegSeCd(String.format("%02d", row.number("MM_DLGB").intValue())); // 단속 등록 구분 코드
|
|
|
|
|
crdn.setCrdnInptSeCd(String.format("%02d", row.number("MM_INGB").intValue())); // 단속 입력 구분 코드
|
|
|
|
|
crdn.setRtpyrId(result.getRtpyrId()); // 납부자 ID
|
|
|
|
|
crdn.setAddrSn(result.getAddrSn()); // 주소 일련번호
|
|
|
|
|
crdn.setCrdnYmd(row.string("MM_DATE")); // 단속 일자
|
|
|
|
|
crdn.setCrdnTm(row.string("MM_TIME")); // 단속 시간
|
|
|
|
|
crdn.setVhrno(row.string("MM_CARNO")); // 자동차등록번호
|
|
|
|
|
crdn.setCrdnStdgNm(row.string("CRDN_STDG_NM")); // 단속 법정동 명
|
|
|
|
|
crdn.setCrdnPlc(row.string("MM_SGPOS")); // 단속 장소
|
|
|
|
|
crdn.setVltnId(row.string("VLTN_ID")); // 위반 ID
|
|
|
|
|
crdn.setGpsX(row.string("MM_GPS_X")); // GPS_X
|
|
|
|
|
crdn.setGpsY(row.string("MM_GPS_Y")); // GPS_Y
|
|
|
|
|
crdn.setAtchFileCnt(row.number("MM_IMAGECNT").intValue()); // 첨부 파일 수
|
|
|
|
|
crdn.setVin(row.string("MM_VHMNO")); // 차대번호
|
|
|
|
|
crdn.setVhclNm(row.string("MM_CARNAME")); // 차량 명
|
|
|
|
|
crdn.setVhclColr(row.string("MM_CARCOLOR")); // 차량 색상
|
|
|
|
|
crdn.setFfnlgCrdnAmt(row.number("MM_KEUM2").intValue()); // 과태료 단속 금액
|
|
|
|
|
crdn.setFfnlgRdcrt(null); // 과태료 감면율
|
|
|
|
|
crdn.setFfnlgAmt(row.number("MM_KEUM2").intValue() - row.number("MM_MINUS_KEUM").intValue()); // 과태료 금액
|
|
|
|
|
crdn.setAdvntceBgngYmd(row.string("MM_SDATE")); // 사전통지 시작 일자
|
|
|
|
|
crdn.setAdvntceDudtYmd(row.string("MM_EDATE")); // 사전통지 납기 일자
|
|
|
|
|
crdn.setAdvntceAmt(row.number("MM_KEUM1").intValue() - row.number("MM_MINUS_KEUM").intValue()); // 사전통지 금액
|
|
|
|
|
if (row.string("MM_RECALL").equals("1")) { // 의견 제출 여부
|
|
|
|
|
crdn.setOpnnSbmsnYn("Y");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setOpnnSbmsnYn("N");
|
|
|
|
|
}
|
|
|
|
|
crdn.setEtcCn(row.string("MM_ETC")); // 기타 내용
|
|
|
|
|
crdn.setCrdnSttsCd(row.string("MM_STATE")); // 단속 상태 코드
|
|
|
|
|
crdn.setCrdnSttsChgDt(row.string("MM_STATE_DT")); // 단속 상태 변경 일시
|
|
|
|
|
crdn.setAdtnAmt(row.number("MM_ADD_KEUM").intValue()); // 가산 금액
|
|
|
|
|
crdn.setMinusAmt(row.number("MM_MINUS_KEUM").intValue()); // 감경 금액
|
|
|
|
|
crdn.setRcvmtAmt(row.number("MM_SUKEUM").intValue()); // 수납 금액
|
|
|
|
|
crdn.setBfrCrdnId(row.string("MM_PRECODE")); // 이전 단속 ID
|
|
|
|
|
crdn.setNxrpCrdnLinkYn(row.string("NIS_LINK_YN")); // 세외수입 단속 연계 여부
|
|
|
|
|
if (row.string("MC_LVY_KEY").length() == 11) { // 세외수입 대장 키
|
|
|
|
|
crdn.setNxrpAcbKey(row.string("MC_LVY_KEY"));
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setNxrpAcbKey(null);
|
|
|
|
|
}
|
|
|
|
|
// 단속 부가 정보
|
|
|
|
|
crdn.setCrdnSeCd(null); // 단속 구분 코드
|
|
|
|
|
crdn.setTeamId(null); // 조 ID
|
|
|
|
|
if (row.string("MM_PRECODE").equals("1")) { // 단속 특별구역 코드 FIM007
|
|
|
|
|
crdn.setCrdnSpareaCd("01");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setCrdnSpareaCd("00");
|
|
|
|
|
}
|
|
|
|
|
crdn.setCrdnBgngTm(row.string("MM_TIME")); // 단속 시작 시각
|
|
|
|
|
crdn.setCrdnEndTm(row.string("MM_TIME2")); // 단속 종료 시각
|
|
|
|
|
crdn.setCrdnSn(row.string("MM_SNO")); // 단속 일련번호
|
|
|
|
|
crdn.setMoscX(null); // 모자이크 X
|
|
|
|
|
crdn.setMoscY(null); // 모자이크 Y
|
|
|
|
|
if (row.string("MM_TRAC").equals("1")) { // 견인 여부
|
|
|
|
|
crdn.setTowngYn("Y");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setTowngYn("N");
|
|
|
|
|
}
|
|
|
|
|
crdn.setUseFuelCd(row.string("MM_CARFUEL")); // 사용 연료 코드 LVS005
|
|
|
|
|
if (!row.string("MM_CARKIND").equals("")) {
|
|
|
|
|
crdn.setFfnlgCarmdlCd(String.format("%02d", row.number("MM_CARKIND").intValue())); // 과태료 차종 코드 FIM009
|
|
|
|
|
for (int iLoop = 0; iLoop < mainListSize; iLoop++) {
|
|
|
|
|
DataObject row = mainList.get(iLoop);
|
|
|
|
|
|
|
|
|
|
// 단속 ID로 단속(TB_CRDN) 정보 조회
|
|
|
|
|
RentQuery rentQuery = new RentQuery();
|
|
|
|
|
rentQuery.setMmCode(row.string("MM_CODE"));
|
|
|
|
|
rentQuery.setTaskSeCd(row.string("MM_TASKGB"));
|
|
|
|
|
|
|
|
|
|
DataObject isCrdnInfo = lsctMpngMapper.selectIsCrdnInfo(rentQuery);
|
|
|
|
|
|
|
|
|
|
Crdn crdn = new Crdn(); // 단속 정보
|
|
|
|
|
Payer payer = new Payer(); // 납부자 정보
|
|
|
|
|
|
|
|
|
|
// 단속 정보가 존재하지 않는다면.. 해당 자료 insert
|
|
|
|
|
if (isCrdnInfo == null) {
|
|
|
|
|
Crdn lockQ = new Crdn();
|
|
|
|
|
lockQ.setSggCd(row.string("OM_SGGCODE"));
|
|
|
|
|
lockQ.setTaskSeCd(row.string("MM_TASKGB"));
|
|
|
|
|
lockQ.setMmCode(row.string("MM_CODE"));
|
|
|
|
|
int lock = applMapper.countLockMmCode(lockQ);
|
|
|
|
|
if(lock > 0) {
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 납부자 정보
|
|
|
|
|
payer.setSggCd(row.string("OM_SGGCODE")); // 시군구 코드
|
|
|
|
|
payer.setRtpyrInptSeCd("07"); // 납부자 입력 구분 코드 FIM015
|
|
|
|
|
switch (row.string("OM_NOGB")) { // 납부자 구분 코드 FIM011
|
|
|
|
|
case "11":
|
|
|
|
|
payer.setRtpyrSeCd("01"); break;
|
|
|
|
|
case "12":
|
|
|
|
|
payer.setRtpyrSeCd("02"); break;
|
|
|
|
|
case "13":
|
|
|
|
|
payer.setRtpyrSeCd("03"); break;
|
|
|
|
|
case "14":
|
|
|
|
|
payer.setRtpyrSeCd("04"); break;
|
|
|
|
|
case "15":
|
|
|
|
|
payer.setRtpyrSeCd("05"); break;
|
|
|
|
|
default:
|
|
|
|
|
payer.setRtpyrSeCd("05"); break;
|
|
|
|
|
}
|
|
|
|
|
payer.setRtpyrNo(row.string("OM_JNO")); // 납부자 번호
|
|
|
|
|
payer.setRtpyrNm(row.string("OM_NAME")); // 납부자명
|
|
|
|
|
payer.setRtpyrBrdt(row.string("OM_NO1")); // 납부자 생년월일
|
|
|
|
|
|
|
|
|
|
// 납부자 주소 정보
|
|
|
|
|
payer.setAddrInptSeCd("07"); // 주소 입력 구분 코드 FIM087
|
|
|
|
|
if (!row.string("OM_DORO_CODE").equals("")) { // 주소 구분 코드
|
|
|
|
|
payer.setAddrSeCd("02");
|
|
|
|
|
}
|
|
|
|
|
payer.setZip(row.string("OM_ZIP")); // 우편번호
|
|
|
|
|
payer.setAddr(row.string("OM_JUSO")); // 주소
|
|
|
|
|
payer.setDtlAddr(row.string("OM_BUNJI")); // 상세 주소
|
|
|
|
|
payer.setRoadNmCd(row.string("OM_DORO_CODE")); // 도로명 코드
|
|
|
|
|
payer.setUdgdSeCd(row.string("OM_BLD_POSITION")); // 지하 구분 코드
|
|
|
|
|
payer.setBmno(row.number("OM_BLD_NO1").intValue()); // 건물본번
|
|
|
|
|
payer.setBsno(row.number("OM_BLD_NO2").intValue()); // 건물부번
|
|
|
|
|
payer.setBldgMngNo(row.string("OM_BLD_ADMNO")); // 건물 관리 번호
|
|
|
|
|
payer.setStdgCd(row.string("OM_BDCODE")); // 법정동 코드
|
|
|
|
|
payer.setWholAddr(row.string("OM_JUSO") + ", " + row.string("OM_BUNJI")); // 전체 주소
|
|
|
|
|
|
|
|
|
|
// 납부자 주소 정보 등록
|
|
|
|
|
Payer result = payerBean.create(payer) ? payer : payerBean.getPayerAddrInfo(payer);
|
|
|
|
|
|
|
|
|
|
// 단속 정보
|
|
|
|
|
crdn.setSggCd(row.string("MM_SGGCODE")); // 시군구 코드
|
|
|
|
|
crdn.setTaskSeCd(row.string("MM_TASKGB")); // 업무 구분 코드
|
|
|
|
|
crdn.setCrdnRegSeCd(String.format("%02d", row.number("MM_DLGB").intValue())); // 단속 등록 구분 코드
|
|
|
|
|
crdn.setCrdnInptSeCd(String.format("%02d", row.number("MM_INGB").intValue())); // 단속 입력 구분 코드
|
|
|
|
|
// 민원 정보는 원본 시스템에서 확인하게끔 null로 입력한다.
|
|
|
|
|
crdn.setCvlcptLinkYn("N"); // 민원 연계 여부
|
|
|
|
|
crdn.setCvlcptLinkTblNm(null); // 민원 연계 테이블 명
|
|
|
|
|
crdn.setCvlcptLinkId(null); // 민원 연계 ID
|
|
|
|
|
crdn.setRtpyrId(result.getRtpyrId()); // 납부자 ID
|
|
|
|
|
crdn.setAddrSn(result.getAddrSn()); // 주소 일련번호
|
|
|
|
|
crdn.setCrdnYmd(row.string("MM_DATE")); // 단속 일자
|
|
|
|
|
crdn.setCrdnTm(row.string("MM_TIME")); // 단속 시간
|
|
|
|
|
crdn.setVhrno(row.string("MM_CARNO")); // 자동차등록번호
|
|
|
|
|
crdn.setCrdnStdgNm(row.string("CRDN_STDG_NM")); // 단속 법정동 명
|
|
|
|
|
crdn.setCrdnRoadNm(null); // 단속 도로 명
|
|
|
|
|
crdn.setCrdnPlc(row.string("MM_SGPOS")); // 단속 장소
|
|
|
|
|
crdn.setVltnId(row.string("VLTN_ID")); // 위반 ID
|
|
|
|
|
crdn.setGpsX(row.string("MM_GPS_X")); // GPS_X
|
|
|
|
|
crdn.setGpsY(row.string("MM_GPS_Y")); // GPS_Y
|
|
|
|
|
crdn.setAtchFileCnt(row.number("MM_IMAGECNT").intValue()); // 첨부 파일 수
|
|
|
|
|
crdn.setVin(row.string("MM_VHMNO")); // 차대번호
|
|
|
|
|
crdn.setVhclNm(row.string("MM_CARNAME")); // 차량 명
|
|
|
|
|
crdn.setVhclColr(row.string("MM_CARCOLOR")); // 차량 색상
|
|
|
|
|
crdn.setFfnlgCrdnAmt(row.number("MM_KEUM2").intValue()); // 과태료 단속 금액
|
|
|
|
|
crdn.setFfnlgRdcrt(null); // 과태료 감면율
|
|
|
|
|
crdn.setFfnlgAmt(row.number("MM_KEUM2").intValue() - row.number("MM_MINUS_KEUM").intValue()); // 과태료 금액
|
|
|
|
|
crdn.setAdvntceBgngYmd(row.string("MM_SDATE")); // 사전통지 시작 일자
|
|
|
|
|
crdn.setAdvntceDudtYmd(row.string("MM_EDATE")); // 사전통지 납기 일자
|
|
|
|
|
crdn.setAdvntceAmt(row.number("MM_KEUM1").intValue() - row.number("MM_MINUS_KEUM").intValue()); // 사전통지 금액
|
|
|
|
|
if (row.string("MM_RECALL").equals("1")) { // 의견 제출 여부
|
|
|
|
|
crdn.setOpnnSbmsnYn("Y");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setOpnnSbmsnYn("N");
|
|
|
|
|
}
|
|
|
|
|
crdn.setEtcCn(row.string("MM_ETC")); // 기타 내용
|
|
|
|
|
crdn.setCrdnSttsCd(row.string("MM_STATE")); // 단속 상태 코드
|
|
|
|
|
crdn.setCrdnSttsChgDt(row.string("MM_STATE_DT")); // 단속 상태 변경 일시
|
|
|
|
|
crdn.setAdtnAmt(row.number("MM_ADD_KEUM").intValue()); // 가산 금액
|
|
|
|
|
crdn.setMinusAmt(row.number("MM_MINUS_KEUM").intValue()); // 감경 금액
|
|
|
|
|
crdn.setRcvmtAmt(row.number("MM_SUKEUM").intValue()); // 수납 금액
|
|
|
|
|
crdn.setBfrCrdnId(row.string("MM_PRECODE")); // 이전 단속 ID
|
|
|
|
|
crdn.setNxrpCrdnLinkYn(row.string("NIS_LINK_YN")); // 세외수입 단속 연계 여부
|
|
|
|
|
crdn.setNxrpCrdnLinkUserId(null); // 세외수입 단속 연계 사용자 ID
|
|
|
|
|
crdn.setNxrpCrdnLinkDt(null); // 세외수입 단속 연계 일시
|
|
|
|
|
if (row.string("MC_LVY_KEY").length() == 11) { // 세외수입 대장 키
|
|
|
|
|
crdn.setNxrpAcbKey(row.string("MC_LVY_KEY"));
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setNxrpAcbKey(null);
|
|
|
|
|
}
|
|
|
|
|
crdn.setMmCode(row.string("MM_CODE")); // 메인코드 MM_CODE
|
|
|
|
|
crdn.setDelYn("N"); // 삭제 여부
|
|
|
|
|
crdn.setCreatedAt(row.string("MM_INDT"));
|
|
|
|
|
crdn.setCreatedBy(row.string("MM_INUSER"));
|
|
|
|
|
// 단속 부가 정보
|
|
|
|
|
crdn.setCrdnSeCd(null); // 단속 구분 코드
|
|
|
|
|
crdn.setTeamId(null); // 조 ID
|
|
|
|
|
if (row.string("MM_PRECODE").equals("1")) { // 단속 특별구역 코드 FIM007
|
|
|
|
|
crdn.setCrdnSpareaCd("01");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setCrdnSpareaCd("00");
|
|
|
|
|
}
|
|
|
|
|
crdn.setCrdnBgngTm(row.string("MM_TIME")); // 단속 시작 시각
|
|
|
|
|
crdn.setCrdnEndTm(row.string("MM_TIME2")); // 단속 종료 시각
|
|
|
|
|
crdn.setCrdnSn(row.string("MM_SNO")); // 단속 일련번호
|
|
|
|
|
crdn.setMoscX(null); // 모자이크 X
|
|
|
|
|
crdn.setMoscY(null); // 모자이크 Y
|
|
|
|
|
if (row.string("MM_TRAC").equals("1")) { // 견인 여부
|
|
|
|
|
crdn.setTowngYn("Y");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setTowngYn("N");
|
|
|
|
|
}
|
|
|
|
|
crdn.setUseFuelCd(row.string("MM_CARFUEL")); // 사용 연료 코드 LVS005
|
|
|
|
|
if (!row.string("MM_CARKIND").equals("")) {
|
|
|
|
|
crdn.setFfnlgCarmdlCd(String.format("%02d", row.number("MM_CARKIND").intValue())); // 과태료 차종 코드 FIM009
|
|
|
|
|
}
|
|
|
|
|
crdn.setPrkPsbltyRsltCd(row.string("MM_CARCHECK")); // 주차 가능 결과 코드
|
|
|
|
|
crdn.setVltnNmtm(row.string("MM_VIORCNT")); // 위반 횟수
|
|
|
|
|
crdn.setOvtmYn("N"); // 시간외 여부
|
|
|
|
|
crdn.setOvtmPrttnYn("N"); // 시간외 분할 여부
|
|
|
|
|
|
|
|
|
|
// 단속 대장 Insert
|
|
|
|
|
rtnNocs = lsctMpngMapper.insertMainToCrdn(crdn);
|
|
|
|
|
if (rtnNocs == 0) {
|
|
|
|
|
throw new RuntimeException("[F] 단속 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 단속 부가 대장 Insert
|
|
|
|
|
rtnNocs = lsctMpngMapper.insertMainToCrdnAdi(crdn);
|
|
|
|
|
if (rtnNocs == 0) {
|
|
|
|
|
throw new RuntimeException("[F] 단속 부가 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
|
|
|
//FTP 서버 정보 조회
|
|
|
|
|
DataObject main = row;
|
|
|
|
|
DataObject ftpQuery = new DataObject()
|
|
|
|
|
.set("sggCd", main.string("MM_SGGCODE"))
|
|
|
|
|
.set("taskSeCd", main.string("MM_TASKGB"));
|
|
|
|
|
DataObject storageServer = finSysFtpMapper.selectFtpInfo(ftpQuery);
|
|
|
|
|
|
|
|
|
|
//FTP 서버 접속
|
|
|
|
|
RemoteSystemInfo rs = new RemoteSystemInfo();
|
|
|
|
|
rs.setId(storageServer.string("REMOTE_ID"));
|
|
|
|
|
rs.setIp(storageServer.string("REMOTE_IP"));
|
|
|
|
|
rs.setPort(storageServer.string("REMOTE_PORT"));
|
|
|
|
|
rs.setPw(storageServer.string("REMOTE_PASSWORD"));
|
|
|
|
|
rs.setOsType(storageServer.string("REMOTE_OS"));
|
|
|
|
|
rs.setWorkPath(storageServer.string("REMOTE_WORK_PATH"));
|
|
|
|
|
SFTPUtil sftpUtil = new SFTPUtil();
|
|
|
|
|
sftpUtil.connect(rs);
|
|
|
|
|
|
|
|
|
|
boolean fileSearchEnd = false;
|
|
|
|
|
int i = 1;
|
|
|
|
|
while(!fileSearchEnd) {
|
|
|
|
|
///////////////////////////////////////////////
|
|
|
|
|
// 단속ID로 단속 파일 다운로드
|
|
|
|
|
String i_char = "";
|
|
|
|
|
|
|
|
|
|
switch (i) {
|
|
|
|
|
case 1:i_char="A";break;
|
|
|
|
|
case 2:i_char="B";break;
|
|
|
|
|
case 3:i_char="C";break;
|
|
|
|
|
case 4:i_char="D";break;
|
|
|
|
|
}
|
|
|
|
|
crdn.setPrkPsbltyRsltCd(row.string("MM_CARCHECK")); // 주차 가능 결과 코드
|
|
|
|
|
crdn.setVltnNmtm(row.string("MM_VIORCNT")); // 위반 횟수
|
|
|
|
|
crdn.setOvtmYn("N"); // 시간외 여부
|
|
|
|
|
crdn.setOvtmPrttnYn("N"); // 시간외 분할 여부
|
|
|
|
|
|
|
|
|
|
// 단속 대장 Insert
|
|
|
|
|
rtnNocs = lsctMpngMapper.updateMainToCrdn(crdn);
|
|
|
|
|
if (rtnNocs == 0) {
|
|
|
|
|
throw new RuntimeException("[F] 단속 대장 수정 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
|
|
|
|
|
String remoteFileName = main.string("MM_CODE")+i_char+".JPG";
|
|
|
|
|
String remoteFilePath = storageServer.string("REMOTE_WORK_PATH")+remoteFileName;
|
|
|
|
|
|
|
|
|
|
byte[] bytesObj = sftpUtil.getBytesObj(remoteFilePath);
|
|
|
|
|
if(bytesObj == null) {
|
|
|
|
|
fileSearchEnd = true;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 단속 부가 대장 Insert
|
|
|
|
|
rtnNocs = lsctMpngMapper.updateMainToCrdnAdi(crdn);
|
|
|
|
|
if (rtnNocs == 0) {
|
|
|
|
|
throw new RuntimeException("[F] 단속 부가 대장 수정 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
|
// 단속 파일 등록
|
|
|
|
|
Relation rel = new FileInfo.Relation().setInfoType(Crdn.INF_TYPE).setInfoKey(crdn.getCrdnId());
|
|
|
|
|
String originalFileName = remoteFileName;
|
|
|
|
|
DataHolder dataHolder = new FileInfo.DataHolder(rel, originalFileName, bytesObj);
|
|
|
|
|
List<FileInfo> fileInfoList = new FileInfoFactory().createFileInfos(List.of(dataHolder));
|
|
|
|
|
fileBean.create(fileInfoList);
|
|
|
|
|
|
|
|
|
|
i++;
|
|
|
|
|
if(i >= 5) {
|
|
|
|
|
fileSearchEnd = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/////////////////////////////
|
|
|
|
|
//sftp연결종료
|
|
|
|
|
sftpUtil.disconnect();
|
|
|
|
|
} else { // 단속 정보가 존재한다면.. 해당 자료 update
|
|
|
|
|
// 납부자 정보
|
|
|
|
|
payer.setSggCd(row.string("OM_SGGCODE")); // 시군구 코드
|
|
|
|
|
payer.setRtpyrInptSeCd("07"); // 납부자 입력 구분 코드 FIM015
|
|
|
|
|
switch (row.string("OM_NOGB")) { // 납부자 구분 코드 FIM011
|
|
|
|
|
case "11":
|
|
|
|
|
payer.setRtpyrSeCd("01"); break;
|
|
|
|
|
case "12":
|
|
|
|
|
payer.setRtpyrSeCd("02"); break;
|
|
|
|
|
case "13":
|
|
|
|
|
payer.setRtpyrSeCd("03"); break;
|
|
|
|
|
case "14":
|
|
|
|
|
payer.setRtpyrSeCd("04"); break;
|
|
|
|
|
case "15":
|
|
|
|
|
payer.setRtpyrSeCd("05"); break;
|
|
|
|
|
default:
|
|
|
|
|
payer.setRtpyrSeCd("05"); break;
|
|
|
|
|
}
|
|
|
|
|
payer.setRtpyrNo(row.string("OM_JNO")); // 납부자 번호
|
|
|
|
|
payer.setRtpyrNm(row.string("OM_NAME")); // 납부자명
|
|
|
|
|
payer.setRtpyrBrdt(row.string("OM_NO1")); // 납부자 생년월일
|
|
|
|
|
|
|
|
|
|
// 납부자 주소 정보
|
|
|
|
|
payer.setAddrInptSeCd("07"); // 주소 입력 구분 코드 FIM087
|
|
|
|
|
if (!row.string("OM_DORO_CODE").equals("")) { // 주소 구분 코드
|
|
|
|
|
payer.setAddrSeCd("02");
|
|
|
|
|
}
|
|
|
|
|
payer.setZip(row.string("OM_ZIP")); // 우편번호
|
|
|
|
|
payer.setAddr(row.string("OM_JUSO")); // 주소
|
|
|
|
|
payer.setDtlAddr(row.string("OM_BUNJI")); // 상세 주소
|
|
|
|
|
payer.setRoadNmCd(row.string("OM_DORO_CODE")); // 도로명 코드
|
|
|
|
|
payer.setUdgdSeCd(row.string("OM_BLD_POSITION")); // 지하 구분 코드
|
|
|
|
|
payer.setBmno(row.number("OM_BLD_NO1").intValue()); // 건물본번
|
|
|
|
|
payer.setBsno(row.number("OM_BLD_NO2").intValue()); // 건물부번
|
|
|
|
|
payer.setBldgMngNo(row.string("OM_BLD_ADMNO")); // 건물 관리 번호
|
|
|
|
|
payer.setStdgCd(row.string("OM_BDCODE")); // 법정동 코드
|
|
|
|
|
payer.setWholAddr(row.string("OM_JUSO") + ", " + row.string("OM_BUNJI")); // 전체 주소
|
|
|
|
|
|
|
|
|
|
// 납부자 주소 정보 등록
|
|
|
|
|
Payer result = payerBean.create(payer) ? payer : payerBean.getPayerAddrInfo(payer);
|
|
|
|
|
|
|
|
|
|
// 단속 정보
|
|
|
|
|
crdn.setCrdnId(isCrdnInfo.string("CRDN_ID")); // CRDN_ID
|
|
|
|
|
crdn.setSggCd(isCrdnInfo.string("SGG_CD")); // 시군구 코드
|
|
|
|
|
crdn.setTaskSeCd(isCrdnInfo.string("TASK_SE_CD")); // 업무 구분 코드
|
|
|
|
|
crdn.setMmCode(isCrdnInfo.string("MM_CODE")); // MM_CODE
|
|
|
|
|
crdn.setCrdnRegSeCd(String.format("%02d", row.number("MM_DLGB").intValue())); // 단속 등록 구분 코드
|
|
|
|
|
crdn.setCrdnInptSeCd(String.format("%02d", row.number("MM_INGB").intValue())); // 단속 입력 구분 코드
|
|
|
|
|
crdn.setRtpyrId(result.getRtpyrId()); // 납부자 ID
|
|
|
|
|
crdn.setAddrSn(result.getAddrSn()); // 주소 일련번호
|
|
|
|
|
crdn.setCrdnYmd(row.string("MM_DATE")); // 단속 일자
|
|
|
|
|
crdn.setCrdnTm(row.string("MM_TIME")); // 단속 시간
|
|
|
|
|
crdn.setVhrno(row.string("MM_CARNO")); // 자동차등록번호
|
|
|
|
|
crdn.setCrdnStdgNm(row.string("CRDN_STDG_NM")); // 단속 법정동 명
|
|
|
|
|
crdn.setCrdnPlc(row.string("MM_SGPOS")); // 단속 장소
|
|
|
|
|
crdn.setVltnId(row.string("VLTN_ID")); // 위반 ID
|
|
|
|
|
crdn.setGpsX(row.string("MM_GPS_X")); // GPS_X
|
|
|
|
|
crdn.setGpsY(row.string("MM_GPS_Y")); // GPS_Y
|
|
|
|
|
crdn.setAtchFileCnt(row.number("MM_IMAGECNT").intValue()); // 첨부 파일 수
|
|
|
|
|
crdn.setVin(row.string("MM_VHMNO")); // 차대번호
|
|
|
|
|
crdn.setVhclNm(row.string("MM_CARNAME")); // 차량 명
|
|
|
|
|
crdn.setVhclColr(row.string("MM_CARCOLOR")); // 차량 색상
|
|
|
|
|
crdn.setFfnlgCrdnAmt(row.number("MM_KEUM2").intValue()); // 과태료 단속 금액
|
|
|
|
|
crdn.setFfnlgRdcrt(null); // 과태료 감면율
|
|
|
|
|
crdn.setFfnlgAmt(row.number("MM_KEUM2").intValue() - row.number("MM_MINUS_KEUM").intValue()); // 과태료 금액
|
|
|
|
|
crdn.setAdvntceBgngYmd(row.string("MM_SDATE")); // 사전통지 시작 일자
|
|
|
|
|
crdn.setAdvntceDudtYmd(row.string("MM_EDATE")); // 사전통지 납기 일자
|
|
|
|
|
crdn.setAdvntceAmt(row.number("MM_KEUM1").intValue() - row.number("MM_MINUS_KEUM").intValue()); // 사전통지 금액
|
|
|
|
|
if (row.string("MM_RECALL").equals("1")) { // 의견 제출 여부
|
|
|
|
|
crdn.setOpnnSbmsnYn("Y");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setOpnnSbmsnYn("N");
|
|
|
|
|
}
|
|
|
|
|
crdn.setEtcCn(row.string("MM_ETC")); // 기타 내용
|
|
|
|
|
crdn.setCrdnSttsCd(row.string("MM_STATE")); // 단속 상태 코드
|
|
|
|
|
crdn.setCrdnSttsChgDt(row.string("MM_STATE_DT")); // 단속 상태 변경 일시
|
|
|
|
|
crdn.setAdtnAmt(row.number("MM_ADD_KEUM").intValue()); // 가산 금액
|
|
|
|
|
crdn.setMinusAmt(row.number("MM_MINUS_KEUM").intValue()); // 감경 금액
|
|
|
|
|
crdn.setRcvmtAmt(row.number("MM_SUKEUM").intValue()); // 수납 금액
|
|
|
|
|
crdn.setBfrCrdnId(row.string("MM_PRECODE")); // 이전 단속 ID
|
|
|
|
|
crdn.setNxrpCrdnLinkYn(row.string("NIS_LINK_YN")); // 세외수입 단속 연계 여부
|
|
|
|
|
if (row.string("MC_LVY_KEY").length() == 11) { // 세외수입 대장 키
|
|
|
|
|
crdn.setNxrpAcbKey(row.string("MC_LVY_KEY"));
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setNxrpAcbKey(null);
|
|
|
|
|
}
|
|
|
|
|
// 단속 부가 정보
|
|
|
|
|
crdn.setCrdnSeCd(null); // 단속 구분 코드
|
|
|
|
|
crdn.setTeamId(null); // 조 ID
|
|
|
|
|
if (row.string("MM_PRECODE").equals("1")) { // 단속 특별구역 코드 FIM007
|
|
|
|
|
crdn.setCrdnSpareaCd("01");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setCrdnSpareaCd("00");
|
|
|
|
|
}
|
|
|
|
|
crdn.setCrdnBgngTm(row.string("MM_TIME")); // 단속 시작 시각
|
|
|
|
|
crdn.setCrdnEndTm(row.string("MM_TIME2")); // 단속 종료 시각
|
|
|
|
|
crdn.setCrdnSn(row.string("MM_SNO")); // 단속 일련번호
|
|
|
|
|
crdn.setMoscX(null); // 모자이크 X
|
|
|
|
|
crdn.setMoscY(null); // 모자이크 Y
|
|
|
|
|
if (row.string("MM_TRAC").equals("1")) { // 견인 여부
|
|
|
|
|
crdn.setTowngYn("Y");
|
|
|
|
|
} else {
|
|
|
|
|
crdn.setTowngYn("N");
|
|
|
|
|
}
|
|
|
|
|
crdn.setUseFuelCd(row.string("MM_CARFUEL")); // 사용 연료 코드 LVS005
|
|
|
|
|
if (!row.string("MM_CARKIND").equals("")) {
|
|
|
|
|
crdn.setFfnlgCarmdlCd(String.format("%02d", row.number("MM_CARKIND").intValue())); // 과태료 차종 코드 FIM009
|
|
|
|
|
}
|
|
|
|
|
crdn.setPrkPsbltyRsltCd(row.string("MM_CARCHECK")); // 주차 가능 결과 코드
|
|
|
|
|
crdn.setVltnNmtm(row.string("MM_VIORCNT")); // 위반 횟수
|
|
|
|
|
crdn.setOvtmYn("N"); // 시간외 여부
|
|
|
|
|
crdn.setOvtmPrttnYn("N"); // 시간외 분할 여부
|
|
|
|
|
|
|
|
|
|
// 단속 대장 Insert
|
|
|
|
|
rtnNocs = lsctMpngMapper.updateMainToCrdn(crdn);
|
|
|
|
|
if (rtnNocs == 0) {
|
|
|
|
|
throw new RuntimeException("[F] 단속 대장 수정 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
|
|
|
//FTP 서버 정보 조회
|
|
|
|
|
// 단속 부가 대장 Insert
|
|
|
|
|
rtnNocs = lsctMpngMapper.updateMainToCrdnAdi(crdn);
|
|
|
|
|
if (rtnNocs == 0) {
|
|
|
|
|
throw new RuntimeException("[F] 단속 부가 대장 수정 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
|
|
|
//FTP 서버 정보 조회
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 부과 정보 insert
|
|
|
|
|
if (row.string("NIS_LINK_YN").equals("Y")) {
|
|
|
|
|
Levy levy = new Levy(); // 부과 TB_LEVY
|
|
|
|
|
levy.setSggCd(crdn.getSggCd()); // 시군구 코드
|
|
|
|
|
levy.setTaskSeCd(crdn.getTaskSeCd()); // 업무 구분 코드
|
|
|
|
|
levy.setCrdnId(crdn.getCrdnId()); // CRDN_ID
|
|
|
|
|
levy.setFyr(row.string("MC_ACC_YEAR")); // 회계연도
|
|
|
|
|
levy.setLevyNo(row.string("MC_LVY_NO")); // 부과 번호
|
|
|
|
|
levy.setEpayno(row.string("MC_ERC_NO")); // 전자납부번호
|
|
|
|
|
levy.setBankNm(row.string("MC_BANK_NM")); // 은행 명
|
|
|
|
|
levy.setVrActno(row.string("MC_ACCOUNT_NO")); // 가상 계좌번호
|
|
|
|
|
levy.setBankNm2(row.string("MC_BANK_NM2")); // 은행 명2
|
|
|
|
|
levy.setVrActno2(row.string("MC_ACCOUNT_NO2")); // 가상 계좌번호2
|
|
|
|
|
levy.setBankNm3(row.string("MC_BANK_NM3")); // 은행 명3
|
|
|
|
|
levy.setVrActno3(row.string("MC_ACCOUNT_NO3")); // 가상 계좌번호3
|
|
|
|
|
levy.setBankNm4(row.string("MC_BANK_NM4")); // 은행 명4
|
|
|
|
|
levy.setVrActno4(row.string("MC_ACCOUNT_NO4")); // 가상 계좌번호4
|
|
|
|
|
levy.setBankNm5(row.string("MC_BANK_NM5")); // 은행 명5
|
|
|
|
|
levy.setVrActno5(row.string("MC_ACCOUNT_NO5")); // 가상 계좌번호5
|
|
|
|
|
levy.setBankNm6(row.string("MC_BANK_NM6")); // 은행 명6
|
|
|
|
|
levy.setVrActno6(row.string("MC_ACCOUNT_NO6")); // 가상 계좌번호6
|
|
|
|
|
levy.setBankNm7(row.string("MC_BANK_NM7")); // 은행 명7
|
|
|
|
|
levy.setVrActno7(row.string("MC_ACCOUNT_NO7")); // 가상 계좌번호7
|
|
|
|
|
levy.setBankNm8(row.string("MC_BANK_NM8")); // 은행 명8
|
|
|
|
|
levy.setVrActno8(row.string("MC_ACCOUNT_NO8")); // 가상 계좌번호8
|
|
|
|
|
levy.setBankNm9(row.string("MC_BANK_NM9")); // 은행 명9
|
|
|
|
|
levy.setVrActno9(row.string("MC_ACCOUNT_NO9")); // 가상 계좌번호9
|
|
|
|
|
levy.setBankNm10(row.string("MC_BANK_NM10")); // 은행 명10
|
|
|
|
|
levy.setVrActno10(row.string("MC_ACCOUNT_NO10")); // 가상 계좌번호10
|
|
|
|
|
levy.setBankNm11(row.string("MC_BANK_NM11")); // 은행 명11
|
|
|
|
|
levy.setVrActno11(row.string("MC_ACCOUNT_NO11")); // 가상 계좌번호11
|
|
|
|
|
if (row.string("MC_LVY_KEY").length() == 20) {
|
|
|
|
|
levy.setNxrpLevyKey(row.string("MC_LVY_KEY")); // 세외수입 부과 키
|
|
|
|
|
} else {
|
|
|
|
|
levy.setNxrpLevyKey(null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 부과 정보 insert
|
|
|
|
|
if (row.string("NIS_LINK_YN").equals("Y")) {
|
|
|
|
|
Levy levy = new Levy(); // 부과 TB_LEVY
|
|
|
|
|
levy.setSggCd(crdn.getSggCd()); // 시군구 코드
|
|
|
|
|
levy.setTaskSeCd(crdn.getTaskSeCd()); // 업무 구분 코드
|
|
|
|
|
levy.setCrdnId(crdn.getCrdnId()); // CRDN_ID
|
|
|
|
|
levy.setFyr(row.string("MC_ACC_YEAR")); // 회계연도
|
|
|
|
|
levy.setLevyNo(row.string("MC_LVY_NO")); // 부과 번호
|
|
|
|
|
levy.setEpayno(row.string("MC_ERC_NO")); // 전자납부번호
|
|
|
|
|
levy.setBankNm(row.string("MC_BANK_NM")); // 은행 명
|
|
|
|
|
levy.setVrActno(row.string("MC_ACCOUNT_NO")); // 가상 계좌번호
|
|
|
|
|
levy.setBankNm2(row.string("MC_BANK_NM2")); // 은행 명2
|
|
|
|
|
levy.setVrActno2(row.string("MC_ACCOUNT_NO2")); // 가상 계좌번호2
|
|
|
|
|
levy.setBankNm3(row.string("MC_BANK_NM3")); // 은행 명3
|
|
|
|
|
levy.setVrActno3(row.string("MC_ACCOUNT_NO3")); // 가상 계좌번호3
|
|
|
|
|
levy.setBankNm4(row.string("MC_BANK_NM4")); // 은행 명4
|
|
|
|
|
levy.setVrActno4(row.string("MC_ACCOUNT_NO4")); // 가상 계좌번호4
|
|
|
|
|
levy.setBankNm5(row.string("MC_BANK_NM5")); // 은행 명5
|
|
|
|
|
levy.setVrActno5(row.string("MC_ACCOUNT_NO5")); // 가상 계좌번호5
|
|
|
|
|
levy.setBankNm6(row.string("MC_BANK_NM6")); // 은행 명6
|
|
|
|
|
levy.setVrActno6(row.string("MC_ACCOUNT_NO6")); // 가상 계좌번호6
|
|
|
|
|
levy.setBankNm7(row.string("MC_BANK_NM7")); // 은행 명7
|
|
|
|
|
levy.setVrActno7(row.string("MC_ACCOUNT_NO7")); // 가상 계좌번호7
|
|
|
|
|
levy.setBankNm8(row.string("MC_BANK_NM8")); // 은행 명8
|
|
|
|
|
levy.setVrActno8(row.string("MC_ACCOUNT_NO8")); // 가상 계좌번호8
|
|
|
|
|
levy.setBankNm9(row.string("MC_BANK_NM9")); // 은행 명9
|
|
|
|
|
levy.setVrActno9(row.string("MC_ACCOUNT_NO9")); // 가상 계좌번호9
|
|
|
|
|
levy.setBankNm10(row.string("MC_BANK_NM10")); // 은행 명10
|
|
|
|
|
levy.setVrActno10(row.string("MC_ACCOUNT_NO10")); // 가상 계좌번호10
|
|
|
|
|
levy.setBankNm11(row.string("MC_BANK_NM11")); // 은행 명11
|
|
|
|
|
levy.setVrActno11(row.string("MC_ACCOUNT_NO11")); // 가상 계좌번호11
|
|
|
|
|
if (row.string("MC_LVY_KEY").length() == 20) {
|
|
|
|
|
levy.setNxrpLevyKey(row.string("MC_LVY_KEY")); // 세외수입 부과 키
|
|
|
|
|
} else {
|
|
|
|
|
levy.setNxrpLevyKey(null);
|
|
|
|
|
// 부과 정보가 존재하지 않는다면.. 해당 자료 insert
|
|
|
|
|
if (isCrdnInfo == null || isCrdnInfo.string("LEVY_ID").equals("")) {
|
|
|
|
|
// 부과(TB_LEVY) 대장을 등록한다.
|
|
|
|
|
rtnNocs = levyMapper.insertLevy(levy);
|
|
|
|
|
if (rtnNocs != 1) {
|
|
|
|
|
throw new RuntimeException("부과 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
levy.setLevyId(isCrdnInfo.string("LEVY_ID")); // 부과 ID
|
|
|
|
|
|
|
|
|
|
// 부과 정보가 존재하지 않는다면.. 해당 자료 insert
|
|
|
|
|
if (isCrdnInfo == null || isCrdnInfo.string("LEVY_ID").equals("")) {
|
|
|
|
|
// 부과(TB_LEVY) 대장을 등록한다.
|
|
|
|
|
rtnNocs = levyMapper.insertLevy(levy);
|
|
|
|
|
if (rtnNocs != 1) {
|
|
|
|
|
throw new RuntimeException("부과 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
levy.setLevyId(isCrdnInfo.string("LEVY_ID")); // 부과 ID
|
|
|
|
|
|
|
|
|
|
// 부과(TB_LEVY) 대장의 전자납부번호, 가상계좌번호 정보를 수정한다.
|
|
|
|
|
rtnNocs = levyMapper.updateEpaynoVrActnoLevy(levy);
|
|
|
|
|
if (rtnNocs != 1) {
|
|
|
|
|
throw new RuntimeException("부과 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
// 부과(TB_LEVY) 대장의 전자납부번호, 가상계좌번호 정보를 수정한다.
|
|
|
|
|
rtnNocs = levyMapper.updateEpaynoVrActnoLevy(levy);
|
|
|
|
|
if (rtnNocs != 1) {
|
|
|
|
|
throw new RuntimeException("부과 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return "[S] 등록 및 수정 작업이 정상 처리 되었습니다.";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -788,7 +801,7 @@ public class LsctMpngBean extends AbstractBean {
|
|
|
|
|
lsctAprv.setHirerMblTelno(lsctMpngInfo.string("HIRER_MBL_TELNO")); // 임차인 휴대 전화번호
|
|
|
|
|
lsctAprv.setHirerEmlAddr(lsctMpngInfo.string("HIRER_EML_ADDR")); // 임차인 이메일 주소
|
|
|
|
|
|
|
|
|
|
if(!lsctMpngInfo.string("HIRER_SE_CD").equals("01") && lsctMpngInfo.string("HIRER_ADDR").equals("")){
|
|
|
|
|
if(lsctMpngInfo.string("HIRER_ADDR").equals("")){
|
|
|
|
|
lsctAprv.setHirerZip(crdnInfo.string("ZIP")); // 임차인 우편번호
|
|
|
|
|
lsctAprv.setHirerAddr(crdnInfo.string("ADDR")); // 임차인 주소
|
|
|
|
|
lsctAprv.setHirerDtlAddr(crdnInfo.string("DTL_ADDR")); // 임차인 상세 주소
|
|
|
|
|
|