|
|
@ -73,7 +73,7 @@ public class LsctBean extends AbstractBean {
|
|
|
|
* @throws NumberFormatException
|
|
|
|
* @throws NumberFormatException
|
|
|
|
* @throws SftpException
|
|
|
|
* @throws SftpException
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public List<DataObject> getCrdnLsctList(RentQuery req) throws Exception {
|
|
|
|
public List<DataObject> getCrdnLsctList(RentQuery req) {
|
|
|
|
// 기존 과태료 시스템에서 사용하던 암/복호화 함수 사용을 위해서..
|
|
|
|
// 기존 과태료 시스템에서 사용하던 암/복호화 함수 사용을 위해서..
|
|
|
|
XitAria crypto = new XitAria("xit-aria");
|
|
|
|
XitAria crypto = new XitAria("xit-aria");
|
|
|
|
|
|
|
|
|
|
|
@ -237,100 +237,120 @@ public class LsctBean extends AbstractBean {
|
|
|
|
throw new RuntimeException("[F] 단속 부가 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
throw new RuntimeException("[F] 단속 부가 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////////
|
|
|
|
//FTP 서버 정보 조회
|
|
|
|
//FTP 서버 정보 조회
|
|
|
|
DataObject main = mainList.get(iLoop);
|
|
|
|
DataObject main = mainList.get(iLoop);
|
|
|
|
DataObject ftpQuery = new DataObject()
|
|
|
|
DataObject ftpQuery = new DataObject()
|
|
|
|
.set("SGG_CD", main.string("MM_SGGCODE"))
|
|
|
|
.set("SGG_CD", main.string("MM_SGGCODE"))
|
|
|
|
.set("TASK_SE_CD", main.string("MM_TASKGB"));
|
|
|
|
.set("TASK_SE_CD", main.string("MM_TASKGB"));
|
|
|
|
DataObject storageServer = finSysFtpMapper.selectFtpInfo(ftpQuery);
|
|
|
|
DataObject storageServer = finSysFtpMapper.selectFtpInfo(ftpQuery);
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////
|
|
|
|
|
|
|
|
//SFTP접속
|
|
|
|
|
|
|
|
Session session = null;
|
|
|
|
|
|
|
|
JSch jsch = new JSch();
|
|
|
|
|
|
|
|
Channel channel = null;
|
|
|
|
|
|
|
|
ChannelSftp channelSftp = null;
|
|
|
|
|
|
|
|
//세션객체 생성
|
|
|
|
|
|
|
|
session = jsch.getSession("admin", "127.0.0.1", Integer.parseInt("22"));
|
|
|
|
|
|
|
|
session.setPassword("pass");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//세션관련 설정정보 설정
|
|
|
|
|
|
|
|
java.util.Properties config = new java.util.Properties();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//호스트 정보 검사하지 않는다.
|
|
|
|
|
|
|
|
config.put("StrictHostKeyChecking", "no");
|
|
|
|
|
|
|
|
session.setConfig(config);
|
|
|
|
|
|
|
|
session.setTimeout(10000); //타임아웃 설정
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//log.info("connect.. " + connIp);
|
|
|
|
|
|
|
|
System.out.println("connect.. ");
|
|
|
|
|
|
|
|
session.connect(); //접속
|
|
|
|
|
|
|
|
channel = session.openChannel("sftp"); //sftp 채널 접속
|
|
|
|
|
|
|
|
channel.connect();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
channelSftp = (ChannelSftp) channel;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String remoteWorkPath = storageServer.string("REMOTE_WORK_PATH");
|
|
|
|
|
|
|
|
channelSftp.cd(remoteWorkPath);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//접속완료
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
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 = remoteWorkPath+remoteFileName;
|
|
|
|
|
|
|
|
InputStream is = channelSftp.get(remoteFilePath);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(is == null) {
|
|
|
|
|
|
|
|
fileSearchEnd = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
byte[] bytesOfFile = is.readAllBytes();
|
|
|
|
|
|
|
|
is.close();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
|
|
|
|
// 단속 파일 등록
|
|
|
|
|
|
|
|
Relation rel = new FileInfo.Relation().setInfoType(Crdn.INF_TYPE).setInfoKey(crdn.getCrdnId());
|
|
|
|
|
|
|
|
String originalFileName = remoteFileName;
|
|
|
|
|
|
|
|
DataHolder dataHolder = new FileInfo.DataHolder(rel, originalFileName, bytesOfFile);
|
|
|
|
|
|
|
|
List<FileInfo> fileInfoList = new FileInfoFactory().createFileInfos(List.of(dataHolder));
|
|
|
|
|
|
|
|
fileBean.create(fileInfoList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i++;
|
|
|
|
/////////////////////////////////////////////////
|
|
|
|
if(i >= 5) {
|
|
|
|
//SFTP접속
|
|
|
|
fileSearchEnd = true;
|
|
|
|
Session session = null;
|
|
|
|
}
|
|
|
|
JSch jsch = new JSch();
|
|
|
|
}
|
|
|
|
Channel channel = null;
|
|
|
|
|
|
|
|
ChannelSftp channelSftp = null;
|
|
|
|
|
|
|
|
//세션객체 생성
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
session = jsch.getSession("admin", "127.0.0.1", Integer.parseInt("22"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
session.setPassword("pass");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//세션관련 설정정보 설정
|
|
|
|
|
|
|
|
java.util.Properties config = new java.util.Properties();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//호스트 정보 검사하지 않는다.
|
|
|
|
|
|
|
|
config.put("StrictHostKeyChecking", "no");
|
|
|
|
|
|
|
|
session.setConfig(config);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
session.setTimeout(10000);
|
|
|
|
|
|
|
|
session.connect(); //접속
|
|
|
|
|
|
|
|
channel = session.openChannel("sftp"); //sftp 채널 접속
|
|
|
|
|
|
|
|
channel.connect();
|
|
|
|
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 접속 오류");
|
|
|
|
|
|
|
|
} catch (JSchException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 접속 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
channelSftp = (ChannelSftp) channel;
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////
|
|
|
|
|
|
|
|
//sftp연결종료
|
|
|
|
|
|
|
|
session.disconnect();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String remoteWorkPath = storageServer.string("REMOTE_WORK_PATH");
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
channelSftp.cd(remoteWorkPath);
|
|
|
|
|
|
|
|
} catch (SftpException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 경로 이동 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
//접속완료
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
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 = remoteWorkPath+remoteFileName;
|
|
|
|
|
|
|
|
|
|
|
|
// 단속 정보가 존재한다면 update??
|
|
|
|
InputStream is;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
is = channelSftp.get(remoteFilePath);
|
|
|
|
|
|
|
|
} catch (SftpException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 파일 읽기 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(is == null) {
|
|
|
|
|
|
|
|
fileSearchEnd = true;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
byte[] bytesOfFile;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
bytesOfFile = is.readAllBytes();
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 파일 읽기 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//사진?
|
|
|
|
try {
|
|
|
|
|
|
|
|
is.close();
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 파일 읽기 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
|
|
|
|
// 단속 파일 등록
|
|
|
|
|
|
|
|
Relation rel = new FileInfo.Relation().setInfoType(Crdn.INF_TYPE).setInfoKey(crdn.getCrdnId());
|
|
|
|
|
|
|
|
String originalFileName = remoteFileName;
|
|
|
|
|
|
|
|
DataHolder dataHolder = new FileInfo.DataHolder(rel, originalFileName, bytesOfFile);
|
|
|
|
|
|
|
|
List<FileInfo> fileInfoList = new FileInfoFactory().createFileInfos(List.of(dataHolder));
|
|
|
|
|
|
|
|
fileBean.create(fileInfoList);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i++;
|
|
|
|
|
|
|
|
if(i >= 5) {
|
|
|
|
|
|
|
|
fileSearchEnd = true;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////
|
|
|
|
|
|
|
|
//sftp연결종료
|
|
|
|
|
|
|
|
session.disconnect();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//등록 또는 수정 완료
|
|
|
|
//등록 또는 수정 완료
|
|
|
|
//////////////////////////
|
|
|
|
//////////////////////////
|
|
|
@ -364,7 +384,7 @@ public class LsctBean extends AbstractBean {
|
|
|
|
* @throws JSchException
|
|
|
|
* @throws JSchException
|
|
|
|
* @throws NumberFormatException
|
|
|
|
* @throws NumberFormatException
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
public List<DataObject> getLsctList(RentQuery req) throws Exception {
|
|
|
|
public List<DataObject> getLsctList(RentQuery req) {
|
|
|
|
// 기존 과태료 시스템에서 사용하던 암/복호화 함수 사용을 위해서..
|
|
|
|
// 기존 과태료 시스템에서 사용하던 암/복호화 함수 사용을 위해서..
|
|
|
|
XitAria crypto = new XitAria("xit-aria");
|
|
|
|
XitAria crypto = new XitAria("xit-aria");
|
|
|
|
|
|
|
|
|
|
|
@ -545,29 +565,36 @@ public class LsctBean extends AbstractBean {
|
|
|
|
Channel channel = null;
|
|
|
|
Channel channel = null;
|
|
|
|
ChannelSftp channelSftp = null;
|
|
|
|
ChannelSftp channelSftp = null;
|
|
|
|
//세션객체 생성
|
|
|
|
//세션객체 생성
|
|
|
|
session = jsch.getSession("admin", "127.0.0.1", Integer.parseInt("22"));
|
|
|
|
try {
|
|
|
|
session.setPassword("pass");
|
|
|
|
session = jsch.getSession("admin", "127.0.0.1", Integer.parseInt("22"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
session.setPassword("pass");
|
|
|
|
//세션관련 설정정보 설정
|
|
|
|
|
|
|
|
java.util.Properties config = new java.util.Properties();
|
|
|
|
//세션관련 설정정보 설정
|
|
|
|
|
|
|
|
java.util.Properties config = new java.util.Properties();
|
|
|
|
//호스트 정보 검사하지 않는다.
|
|
|
|
|
|
|
|
config.put("StrictHostKeyChecking", "no");
|
|
|
|
//호스트 정보 검사하지 않는다.
|
|
|
|
session.setConfig(config);
|
|
|
|
config.put("StrictHostKeyChecking", "no");
|
|
|
|
session.setTimeout(10000); //타임아웃 설정
|
|
|
|
session.setConfig(config);
|
|
|
|
|
|
|
|
|
|
|
|
//log.info("connect.. " + connIp);
|
|
|
|
session.setTimeout(10000);
|
|
|
|
System.out.println("connect.. ");
|
|
|
|
session.connect(); //접속
|
|
|
|
session.connect(); //접속
|
|
|
|
channel = session.openChannel("sftp"); //sftp 채널 접속
|
|
|
|
channel = session.openChannel("sftp"); //sftp 채널 접속
|
|
|
|
channel.connect();
|
|
|
|
channel.connect();
|
|
|
|
} catch (NumberFormatException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 접속 오류");
|
|
|
|
|
|
|
|
} catch (JSchException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 접속 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
channelSftp = (ChannelSftp) channel;
|
|
|
|
channelSftp = (ChannelSftp) channel;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String remoteWorkPath = storageServer.string("REMOTE_WORK_PATH");
|
|
|
|
String remoteWorkPath = storageServer.string("REMOTE_WORK_PATH");
|
|
|
|
channelSftp.cd(remoteWorkPath);
|
|
|
|
try {
|
|
|
|
|
|
|
|
channelSftp.cd(remoteWorkPath);
|
|
|
|
|
|
|
|
} catch (SftpException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 경로 이동 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//접속완료
|
|
|
|
//접속완료
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
|
///////////////////////////////////////////////////////////////////
|
|
|
@ -588,15 +615,31 @@ public class LsctBean extends AbstractBean {
|
|
|
|
|
|
|
|
|
|
|
|
String remoteFileName = main.string("MM_CODE")+i_char+".JPG";
|
|
|
|
String remoteFileName = main.string("MM_CODE")+i_char+".JPG";
|
|
|
|
String remoteFilePath = remoteWorkPath+remoteFileName;
|
|
|
|
String remoteFilePath = remoteWorkPath+remoteFileName;
|
|
|
|
InputStream is = channelSftp.get(remoteFilePath);
|
|
|
|
|
|
|
|
|
|
|
|
InputStream is;
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
is = channelSftp.get(remoteFilePath);
|
|
|
|
|
|
|
|
} catch (SftpException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 파일 읽기 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(is == null) {
|
|
|
|
if(is == null) {
|
|
|
|
fileSearchEnd = true;
|
|
|
|
fileSearchEnd = true;
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
byte[] bytesOfFile = is.readAllBytes();
|
|
|
|
byte[] bytesOfFile;
|
|
|
|
is.close();
|
|
|
|
try {
|
|
|
|
|
|
|
|
bytesOfFile = is.readAllBytes();
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 파일 읽기 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
|
|
|
is.close();
|
|
|
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
|
|
|
throw new RuntimeException("[F] FTP 파일 읽기 오류");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////
|
|
|
|
// 단속 파일 등록
|
|
|
|
// 단속 파일 등록
|
|
|
|