제주도 차세대세외수입 면허번호 연계 추가
parent
12a732cf79
commit
14c8dc30c4
@ -0,0 +1,43 @@
|
||||
package cokr.xit.fims;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import cokr.xit.fims.nxrp.NisIndivQuery;
|
||||
import cokr.xit.fims.nxrp.service.NisIndivService;
|
||||
import cokr.xit.fims.nxrp.service.bean.NisIndivBean;
|
||||
import cokr.xit.foundation.AbstractComponent;
|
||||
|
||||
@Component
|
||||
public class RentSchedule extends AbstractComponent {
|
||||
|
||||
@Resource(name = "nisIndivService")
|
||||
private NisIndivService nisIndivService;
|
||||
@Resource(name = "nisIndivBean")
|
||||
private NisIndivBean nisIndivBean;
|
||||
|
||||
|
||||
|
||||
//@Scheduled(cron = "0 22 * * * *")
|
||||
public void sendRun() {
|
||||
|
||||
NisIndivQuery query = new NisIndivQuery();
|
||||
query.setSggCd("50110");
|
||||
query.setTaskSeCd("ECA");
|
||||
String zipPath = nisIndivBean.makeNisIndivJeju01(query, false);
|
||||
if(zipPath != null && !zipPath.equals("")) {
|
||||
nisIndivBean.send_DO_to_SI(zipPath);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//@Scheduled(cron = "0 9 * * * *")
|
||||
public void receiveRun() {
|
||||
|
||||
nisIndivBean.get_SI_to_DO();
|
||||
|
||||
nisIndivBean.applyNisIndivJeju02();
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package cokr.xit.fims.nxrp;
|
||||
|
||||
import cokr.xit.foundation.AbstractEntity;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
public class Hirer extends AbstractEntity {
|
||||
private String lsctLinkTblNm;
|
||||
private String rcptnYmd;
|
||||
private String aprvId;
|
||||
private String sggCd;
|
||||
private String taskSeCd;
|
||||
private String npaLinkRspnsNm;
|
||||
private String omJno;
|
||||
private String pyrNo;
|
||||
private String lotnoRoadAddrSeCd;
|
||||
private String zip;
|
||||
private String roadNmCd;
|
||||
private String addrUdgdYn;
|
||||
private String bmno;
|
||||
private String bsno;
|
||||
private String addr;
|
||||
private String daddr;
|
||||
private String stdgCd;
|
||||
private String dongCd;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,136 @@
|
||||
package cokr.xit.fims.nxrp;
|
||||
|
||||
import cokr.xit.foundation.component.QueryRequest;
|
||||
|
||||
/**과태료 대장 단속 정보 등록 정보 조회 요청
|
||||
*
|
||||
* <p>상세 설명:
|
||||
*
|
||||
* <pre>
|
||||
* ============ 변경 이력 ============
|
||||
* 2024-02-16 JoJH 최초 작성
|
||||
* ================================
|
||||
* </pre>
|
||||
*/
|
||||
public class NisIndivQuery extends QueryRequest {
|
||||
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String sggCd;
|
||||
private String taskSeCd;
|
||||
private String lsctLinkTblNm;
|
||||
|
||||
private String[] someIds; //테스트용 임시 변수
|
||||
private String someId; //테스트용 임시 변수
|
||||
|
||||
// ID
|
||||
private String[] crdnIds; // 단속 Ids
|
||||
private String crdnId; // 단속 ID
|
||||
private String sndngDtlId; // 발송 상세 Id
|
||||
// 연계 Key
|
||||
private String linkTrgtCd;
|
||||
private String linkMngKey;
|
||||
//
|
||||
private String sndngYmd; // 발송(TB_SNDNG)_발송 일자
|
||||
|
||||
public String getSggCd() {
|
||||
return ifEmpty(sggCd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setSggCd(String sggCd) {
|
||||
this.sggCd = sggCd;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getTaskSeCd() {
|
||||
return ifEmpty(taskSeCd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setTaskSeCd(String taskSeCd) {
|
||||
this.taskSeCd = taskSeCd;
|
||||
return self();
|
||||
}
|
||||
public String getLsctLinkTblNm() {
|
||||
return ifEmpty(lsctLinkTblNm, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setLsctLinkTblNm(String lsctLinkTblNm) {
|
||||
this.lsctLinkTblNm = lsctLinkTblNm;
|
||||
return self();
|
||||
}
|
||||
|
||||
|
||||
public String[] getCrdnIds() {
|
||||
return ifEmpty(crdnIds, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setCrdnIds(String... crdnIds) {
|
||||
this.crdnIds = crdnIds;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getCrdnId() {
|
||||
return ifEmpty(crdnId, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setCrdnId(String crdnId) {
|
||||
this.crdnId = crdnId;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getSndngDtlId() {
|
||||
return ifEmpty(sndngDtlId, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setSndngDtlId(String sndngDtlId) {
|
||||
this.sndngDtlId = sndngDtlId;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getLinkTrgtCd() {
|
||||
return ifEmpty(linkTrgtCd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setLinkTrgtCd(String linkTrgtCd) {
|
||||
this.linkTrgtCd = linkTrgtCd;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getLinkMngKey() {
|
||||
return ifEmpty(linkMngKey, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setLinkMngKey(String linkMngKey) {
|
||||
this.linkMngKey = linkMngKey;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getSndngYmd() {
|
||||
return ifEmpty(sndngYmd, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setSndngYmd(String sndngYmd) {
|
||||
this.sndngYmd = sndngYmd;
|
||||
return self();
|
||||
}
|
||||
|
||||
|
||||
public String[] getSomeIds() {
|
||||
return ifEmpty(someIds, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setSomeIds(String... someIds) {
|
||||
this.someIds = someIds;
|
||||
return self();
|
||||
}
|
||||
|
||||
public String getSomeId() {
|
||||
return ifEmpty(someId, () -> null);
|
||||
}
|
||||
|
||||
public <T extends NisIndivQuery> T setSomeId(String someId) {
|
||||
this.someId = someId;
|
||||
return self();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package cokr.xit.fims.nxrp.dao;
|
||||
import java.util.List;
|
||||
|
||||
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
||||
|
||||
import cokr.xit.fims.nxrp.NisIndivQuery;
|
||||
import cokr.xit.foundation.component.AbstractMapper;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
@Mapper("nisIndivMapper")
|
||||
public interface NisIndivMapper extends AbstractMapper {
|
||||
|
||||
List<DataObject> selectLcnsNoLinkTarget(NisIndivQuery query);
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package cokr.xit.fims.nxrp.service;
|
||||
|
||||
public interface NisIndivService {
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,380 @@
|
||||
package cokr.xit.fims.nxrp.service.bean;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileReader;
|
||||
import java.io.FilenameFilter;
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import cokr.xit.base.code.service.bean.CodeBean;
|
||||
import cokr.xit.base.file.ZIP;
|
||||
import cokr.xit.base.file.service.bean.FileBean;
|
||||
import cokr.xit.fims.cmmn.dao.StngMapper;
|
||||
import cokr.xit.fims.cmmn.ftp.RemoteSystemInfo;
|
||||
import cokr.xit.fims.cmmn.ftp.SFTPUtil;
|
||||
import cokr.xit.fims.cmmn.service.bean.StngBean;
|
||||
import cokr.xit.fims.mngt.dao.TaskMapper;
|
||||
import cokr.xit.fims.nxrp.Hirer;
|
||||
import cokr.xit.fims.nxrp.NisIndivQuery;
|
||||
import cokr.xit.fims.nxrp.dao.NisIndivMapper;
|
||||
import cokr.xit.fims.nxrp.support.OnlyTxtMaker;
|
||||
import cokr.xit.fims.rent.dao.LsctAprvMapper;
|
||||
import cokr.xit.foundation.component.AbstractBean;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
@Component("nisIndivBean")
|
||||
public class NisIndivBean extends AbstractBean {
|
||||
|
||||
@Resource(name="taskMapper")
|
||||
private TaskMapper taskMapper;
|
||||
|
||||
@Resource(name="nisIndivMapper")
|
||||
private NisIndivMapper nisIndivMapper;
|
||||
|
||||
@Resource(name="lsctAprvMapper")
|
||||
private LsctAprvMapper lsctAprvMapper;
|
||||
|
||||
/** 설정 정보 DAO */
|
||||
@Resource(name="stngMapper")
|
||||
protected StngMapper stngMapper;
|
||||
|
||||
/** 파일 정보 DAO */
|
||||
@Resource(name="fileBean")
|
||||
protected FileBean fileBean;
|
||||
|
||||
/** 코드 정보 DAO */
|
||||
@Resource(name="codeBean")
|
||||
protected CodeBean codeBean;
|
||||
|
||||
/** 설정 정보 DAO */
|
||||
@Resource(name="stngBean")
|
||||
protected StngBean stngBean;
|
||||
|
||||
public enum WORKING_UNIT {
|
||||
DOWNLOAD_DIR, ZIP_PATH, TXT_PATH, TXT_LINE
|
||||
}
|
||||
|
||||
FilenameFilter zipFilter = new FilenameFilter() {
|
||||
@Override
|
||||
public boolean accept(File dir, String name) {
|
||||
return (name.toUpperCase().endsWith(".ZIP"));
|
||||
}
|
||||
};
|
||||
|
||||
public String makeNisIndivJeju01(NisIndivQuery req, boolean randomData) {
|
||||
|
||||
String sggCd = req.getSggCd();
|
||||
String taskSeCd = req.getTaskSeCd();
|
||||
String instDigit7 = "6510000";
|
||||
|
||||
|
||||
String deptCd = "";
|
||||
if(sggCd.equals("50110") && taskSeCd.equals("ECA")) {
|
||||
deptCd = "6510245";
|
||||
} else if(sggCd.equals("50130") && taskSeCd.equals("ECA")) {
|
||||
deptCd = "6520178";
|
||||
}
|
||||
|
||||
String lsctLinkTblNm = "TB_LSCT_APRV_"+sggCd+"_"+taskSeCd;
|
||||
req.setLsctLinkTblNm(lsctLinkTblNm);
|
||||
|
||||
DataObject deptStng = stngMapper.selectDeptStng(deptCd);
|
||||
String gujesi = deptStng.string("NXRP_RGN_SE_CD");
|
||||
|
||||
|
||||
List<DataObject> targets = null;
|
||||
if(randomData) {
|
||||
targets = this.makeRandomJeju01Targets();
|
||||
} else {
|
||||
targets = nisIndivMapper.selectLcnsNoLinkTarget(req);
|
||||
}
|
||||
|
||||
|
||||
if(targets == null || targets.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Iterator<DataObject> it = targets.iterator();
|
||||
while(it.hasNext()) {
|
||||
DataObject item = it.next();
|
||||
if (item.string("OM_JNO").length() != 12) {
|
||||
it.remove();
|
||||
} else {
|
||||
item.set("DEPT_CD",deptCd);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
OnlyTxtMaker linkFileMaker = new OnlyTxtMaker(instDigit7);
|
||||
|
||||
if (!isEmpty(gujesi)) {
|
||||
linkFileMaker.setGujesiStng(gujesi);
|
||||
}
|
||||
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
String ymd = now.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
|
||||
String workPath = "files/temp/sendLcns/"+sggCd+"/"+ymd;
|
||||
File workFolder = new File(workPath);
|
||||
if (workFolder.exists()) {
|
||||
boolean del = false;
|
||||
File[] lf = workFolder.listFiles();
|
||||
if (lf != null && lf.length > 0) {
|
||||
for (File f : lf) {
|
||||
del = f.delete();
|
||||
if (!del)
|
||||
throw new RuntimeException("[F]파일삭제오류");
|
||||
}
|
||||
}
|
||||
del = workFolder.delete();
|
||||
if (!del)
|
||||
throw new RuntimeException("[F]파일삭제오류");
|
||||
}
|
||||
workFolder.mkdirs();
|
||||
|
||||
|
||||
for(DataObject one : targets) {
|
||||
String[] items = linkFileMaker.extract(one,sggCd,taskSeCd).get();
|
||||
linkFileMaker.writeTextFileContents(workPath, items);
|
||||
linkFileMaker.increaseInnerFileIndex();
|
||||
}
|
||||
|
||||
File[] fileList = workFolder.listFiles(new FilenameFilter() {
|
||||
@Override
|
||||
public boolean accept(File dir, String name) {
|
||||
return !(name.toUpperCase().endsWith(".ZIP"));
|
||||
}
|
||||
});
|
||||
String[] fileNameList = new String[fileList.length];
|
||||
for (int i = 0; i < fileList.length; i++) {
|
||||
fileNameList[i] = fileList[i].getPath();
|
||||
}
|
||||
|
||||
|
||||
String zipFilePath = workPath + "/" + linkFileMaker.getZipFileName();
|
||||
new ZIP().compress(zipFilePath, fileNameList);
|
||||
|
||||
for (File file : fileList) {
|
||||
if (!file.delete())
|
||||
throw new RuntimeException("[F]파일 삭제 중 오류가 발생하였습니다.");
|
||||
}
|
||||
|
||||
return zipFilePath;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void send_DO_to_SI(String zipPath) {
|
||||
|
||||
SFTPUtil sftp = new SFTPUtil();
|
||||
RemoteSystemInfo rs = new RemoteSystemInfo();
|
||||
if(isLocal()) {
|
||||
rs.setId("d_user");
|
||||
rs.setPw("1111");
|
||||
rs.setIp("211.119.124.122");
|
||||
rs.setPort("1922");
|
||||
rs.setWorkPath("StorkShareAgent_ECA_JEJU/files/SND/1741000NIS");
|
||||
} else {
|
||||
rs.setId("d_user");
|
||||
rs.setPw("1111");
|
||||
rs.setIp("172.25.102.61");
|
||||
rs.setPort("1922");
|
||||
rs.setWorkPath("StorkShareAgent_ECA_JEJU/files/SND/1741000NIS");
|
||||
}
|
||||
|
||||
rs.setOsType("windows");
|
||||
|
||||
|
||||
sftp.connect(rs);
|
||||
|
||||
sftp.upload(zipPath);
|
||||
sftp.disconnect();
|
||||
}
|
||||
|
||||
public void get_SI_to_DO() {
|
||||
|
||||
SFTPUtil sftp = new SFTPUtil();
|
||||
RemoteSystemInfo rs = new RemoteSystemInfo();
|
||||
if(isLocal()) {
|
||||
rs.setId("d_user");
|
||||
rs.setPw("1111");
|
||||
rs.setIp("211.119.124.122");
|
||||
rs.setPort("1922");
|
||||
rs.setWorkPath("StorkShareAgent_ECA_JEJU/files/RCV/1741000NIS");
|
||||
} else {
|
||||
rs.setId("d_user");
|
||||
rs.setPw("1111");
|
||||
rs.setIp("172.25.102.61");
|
||||
rs.setPort("1922");
|
||||
rs.setWorkPath("StorkShareAgent_ECA_JEJU/files/RCV/1741000NIS");
|
||||
}
|
||||
rs.setOsType("windows");
|
||||
|
||||
|
||||
sftp.connect(rs);
|
||||
sftp.downloadByFilenamePrefix("EBF_1741000NIS_Z000001LGE_2001","files/temp/receiveDriver");
|
||||
sftp.disconnect();
|
||||
}
|
||||
|
||||
|
||||
public void applyNisIndivJeju02() {
|
||||
List<Hirer> results = new ArrayList<Hirer>();
|
||||
getCarDriverInfoFromWorkingUnit(WORKING_UNIT.DOWNLOAD_DIR,"files/temp/receiveDriver",results);
|
||||
for(Hirer result : results) {
|
||||
updateDriverInfo(result);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void getCarDriverInfoFromWorkingUnit(WORKING_UNIT pathType, String workingUnitString, List<Hirer> results) {
|
||||
switch(pathType) {
|
||||
case DOWNLOAD_DIR:
|
||||
|
||||
List<String> zips = new ArrayList<>();
|
||||
for(File file : new File(workingUnitString).listFiles(zipFilter)) {
|
||||
|
||||
zips.add(file.getPath());
|
||||
}
|
||||
|
||||
for(String zip : zips) {
|
||||
getCarDriverInfoFromWorkingUnit(WORKING_UNIT.ZIP_PATH,zip,results);
|
||||
}
|
||||
break;
|
||||
case ZIP_PATH:
|
||||
|
||||
String zip = workingUnitString;
|
||||
String unzip = workingUnitString.substring(0,zip.length()-4);
|
||||
new ZIP().decompress(zip, unzip);
|
||||
|
||||
List<String> txts = new ArrayList<>();
|
||||
for(File file : new File(unzip).listFiles()) {
|
||||
txts.add(file.getPath());
|
||||
}
|
||||
|
||||
for(String txt : txts) {
|
||||
getCarDriverInfoFromWorkingUnit(WORKING_UNIT.TXT_PATH,txt,results);
|
||||
}
|
||||
|
||||
new File(zip).delete();
|
||||
new File(unzip).delete();
|
||||
|
||||
break;
|
||||
case TXT_PATH:
|
||||
|
||||
File txtFile = new File(workingUnitString);
|
||||
|
||||
List<String> lines = new ArrayList<>();
|
||||
|
||||
try (BufferedReader reader = new BufferedReader(new FileReader(txtFile))) {
|
||||
String line;
|
||||
// 파일의 각 줄을 읽어와 화면에 출력합니다.
|
||||
while ((line = reader.readLine()) != null) {
|
||||
lines.add(line);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// 파일이 존재하지 않거나 읽기 오류가 발생하면 예외를 처리합니다.
|
||||
System.err.println("파일을 읽는 중 오류가 발생했습니다: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
return;
|
||||
}
|
||||
|
||||
for(String line : lines) {
|
||||
if(line != null && !line.equals("")) {
|
||||
getCarDriverInfoFromWorkingUnit(WORKING_UNIT.TXT_LINE,line,results);
|
||||
}
|
||||
}
|
||||
|
||||
txtFile.delete();
|
||||
break;
|
||||
case TXT_LINE:
|
||||
|
||||
String[] items = workingUnitString.split("\\|",-1);
|
||||
|
||||
Hirer driverVO = new Hirer();
|
||||
String srcSstKey = items[2-1];
|
||||
String sggCd = srcSstKey.substring(0,5);
|
||||
String taskSeCd = srcSstKey.substring(5,8);
|
||||
String aprvId = srcSstKey.substring(8);
|
||||
|
||||
driverVO.setSggCd(sggCd);
|
||||
driverVO.setTaskSeCd(taskSeCd);
|
||||
driverVO.setAprvId(aprvId);
|
||||
driverVO.setOmJno(items[5-1]);
|
||||
driverVO.setLotnoRoadAddrSeCd(items[6-1]);
|
||||
driverVO.setZip(items[7-1]);
|
||||
driverVO.setRoadNmCd(items[8-1]);
|
||||
driverVO.setAddrUdgdYn(items[9-1]);
|
||||
driverVO.setBmno(items[10-1]);
|
||||
driverVO.setBsno(items[11-1]);
|
||||
driverVO.setAddr(items[12-1]);
|
||||
driverVO.setDaddr(items[13-1]);
|
||||
driverVO.setStdgCd(items[14-1]);
|
||||
driverVO.setDongCd(items[15-1]);
|
||||
|
||||
|
||||
results.add(driverVO);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public List<DataObject> makeRandomJeju01Targets(){
|
||||
List<DataObject> result = new ArrayList<>();
|
||||
|
||||
DataObject tagets = new DataObject();
|
||||
|
||||
//APRV_ID
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
String hms = now.format(DateTimeFormatter.ofPattern("HHmmss"));
|
||||
tagets.put("APRV_ID", "9999"+hms);
|
||||
|
||||
//랜덤
|
||||
tagets.put("VHRNO", shuffleAndGet(Arrays.asList("11가1111", "22가2222", "33가3333")));
|
||||
tagets.put("HIRER_NM", shuffleAndGet(Arrays.asList("최렌트", "김렌트", "박렌트")));
|
||||
tagets.put("OM_JNO", shuffleAndGet(Arrays.asList("123456123456", "654321654321", "123456654321")));
|
||||
tagets.put("RENT_ENT_NM", shuffleAndGet(Arrays.asList("롯데렌트카", "제주렌트카", "기타렌트카")));
|
||||
tagets.put("RENT_ENT_REG_NO", shuffleAndGet(Arrays.asList("1111112222222", "1111113333333", "1111114444444")));
|
||||
|
||||
//CTRT_BGNG_YMD,CTRT_END_YMD는 9월1일~9월16일
|
||||
tagets.put("CTRT_BGNG_YMD", "20250901");
|
||||
tagets.put("CTRT_END_YMD", "20250916");
|
||||
//CTRT_NO는 빈값
|
||||
tagets.put("CTRT_NO", "");
|
||||
result.add(tagets);
|
||||
return result;
|
||||
}
|
||||
|
||||
public String shuffleAndGet(List<String> list) {
|
||||
Collections.shuffle(list);
|
||||
return list.get(0);
|
||||
}
|
||||
|
||||
public boolean updateDriverInfo(Hirer driverInfo) {
|
||||
|
||||
String table = "TB_LSCT_APRV_"+driverInfo.getSggCd()+"_"+driverInfo.getTaskSeCd();
|
||||
driverInfo.setLsctLinkTblNm(table);
|
||||
|
||||
return lsctAprvMapper.updateDriverInfo(driverInfo) == 1 ? true : false;
|
||||
}
|
||||
|
||||
|
||||
public boolean isLocal() {
|
||||
if(new File("C:/Users/XIT_LBJ").exists()) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package cokr.xit.fims.nxrp.service.bean;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import cokr.xit.fims.nxrp.service.NisIndivService;
|
||||
import cokr.xit.foundation.component.AbstractServiceBean;
|
||||
|
||||
@Service("nisIndivService")
|
||||
public class NisIndivServiceBean extends AbstractServiceBean implements NisIndivService {
|
||||
|
||||
@Resource(name = "nisIndivBean")
|
||||
private NisIndivBean nisIndivBean;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package cokr.xit.fims.nxrp.support;
|
||||
|
||||
import cokr.xit.applib.UnnamedItems;
|
||||
import cokr.xit.foundation.AbstractComponent;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
public abstract class LinkFileMaker extends AbstractComponent {
|
||||
|
||||
protected String ifId;
|
||||
protected String zipFileName;
|
||||
protected String gujesiStng;
|
||||
|
||||
public void setGujesiStng(String gujesi) {
|
||||
this.gujesiStng = gujesi;
|
||||
}
|
||||
|
||||
public String getIfId() {
|
||||
return ifId;
|
||||
}
|
||||
|
||||
public String getZipFileName() {
|
||||
return zipFileName;
|
||||
}
|
||||
|
||||
abstract public UnnamedItems extract(DataObject rentInfo,String sggCd, String taskSeCd);
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
package cokr.xit.fims.nxrp.support;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import cokr.xit.applib.UnnamedItems;
|
||||
import cokr.xit.foundation.data.DataObject;
|
||||
|
||||
public class OnlyTxtMaker extends LinkFileMaker {
|
||||
|
||||
private String innerFilePrefix;
|
||||
|
||||
private int innerFileIndex = 0;
|
||||
|
||||
public OnlyTxtMaker(String instDigit7){
|
||||
String ifId = "EBF_Z000001LGE_1741000NIS_2001";
|
||||
String systemCode = "ECA";
|
||||
|
||||
this.ifId = ifId;
|
||||
|
||||
SimpleDateFormat ymdhmsFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
|
||||
String currentTime = ymdhmsFormat.format(new Date());
|
||||
|
||||
zipFileName = ifId + "_" + currentTime + "@" + instDigit7 + systemCode + ".zip";
|
||||
|
||||
innerFilePrefix = ifId + "_" + currentTime + "_" + instDigit7 + "_";
|
||||
|
||||
}
|
||||
|
||||
public String getTextFileName() {
|
||||
return innerFilePrefix + innerFileIndex + ".txt";
|
||||
}
|
||||
|
||||
public void increaseInnerFileIndex() {
|
||||
innerFileIndex++;
|
||||
};
|
||||
|
||||
|
||||
@Override
|
||||
public UnnamedItems extract(DataObject rentInfo, String sggCd, String taskSeCd) {
|
||||
UnnamedItems u = new UnnamedItems();
|
||||
u.setItemLength(10);
|
||||
u.set(1, sggCd+taskSeCd+rentInfo.string("APRV_ID"));
|
||||
u.set(2, rentInfo.string("DEPT_CD"));
|
||||
u.set(3, rentInfo.string("RENT_ENT_NM"));
|
||||
u.set(4, rentInfo.string("RENT_ENT_REG_NO"));
|
||||
u.set(5, rentInfo.string("VHRNO"));
|
||||
u.set(6, rentInfo.string("CTRT_NO"));
|
||||
u.set(7, rentInfo.string("CTRT_BGNG_YMD"));
|
||||
u.set(8, rentInfo.string("CTRT_END_YMD"));
|
||||
u.set(9, rentInfo.string("HIRER_NM"));
|
||||
u.set(10, rentInfo.string("OM_JNO"));
|
||||
return u;
|
||||
}
|
||||
|
||||
public void writeTextFileContents(String workPath, String... contents) {
|
||||
try {
|
||||
File txtFile = new File(workPath + "/" + getTextFileName());
|
||||
if(!txtFile.createNewFile()) {
|
||||
throw new RuntimeException("[F]파일 생성 오류");
|
||||
}
|
||||
|
||||
FileWriter fileWriter = new FileWriter(txtFile);
|
||||
|
||||
for(int i=0; i < contents.length; i++) {
|
||||
if(i != 0) {
|
||||
fileWriter.write("|");
|
||||
}
|
||||
fileWriter.write(contents[i]);
|
||||
}
|
||||
fileWriter.close();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("[F]"+e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,98 @@
|
||||
package cokr.xit.fims.nxrp.web;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import cokr.xit.fims.nxrp.NisIndivQuery;
|
||||
import cokr.xit.fims.nxrp.service.NisIndivService;
|
||||
import cokr.xit.fims.nxrp.service.bean.NisIndivBean;
|
||||
import cokr.xit.foundation.web.AbstractController;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(name="차세대 세외수입 연계", value=NxrpController.CLASS_URL)
|
||||
public class NxrpController extends AbstractController {
|
||||
|
||||
public static final String CLASS_URL = "/intf/nxrp";
|
||||
|
||||
|
||||
@Resource(name = "nisIndivService")
|
||||
private NisIndivService nisIndivService;
|
||||
@Resource(name = "nisIndivBean")
|
||||
private NisIndivBean nisIndivBean;
|
||||
|
||||
//테스트
|
||||
@RequestMapping(name="계약정보", value="/sendIndivJeju01.do")
|
||||
public ModelAndView sendNisIndivJeju01(NisIndivQuery req) {
|
||||
|
||||
NisIndivQuery query = new NisIndivQuery();
|
||||
query.setSggCd("50110");
|
||||
query.setTaskSeCd("ECA");
|
||||
String zipPath = nisIndivBean.makeNisIndivJeju01(query,true);
|
||||
|
||||
if(zipPath != null && !zipPath.equals("")) {
|
||||
nisIndivBean.send_DO_to_SI(zipPath);
|
||||
}
|
||||
|
||||
return new ModelAndView("jsonView");
|
||||
}
|
||||
|
||||
//테스트 계약정보만들기
|
||||
@RequestMapping(name="계약정보만들기", value="/makeJeju01.do")
|
||||
public ModelAndView makeJeju01(NisIndivQuery req) {
|
||||
|
||||
NisIndivQuery query = new NisIndivQuery();
|
||||
query.setSggCd("50110");
|
||||
query.setTaskSeCd("ECA");
|
||||
String zipPath = nisIndivBean.makeNisIndivJeju01(query,true);
|
||||
|
||||
return new ModelAndView("jsonView");
|
||||
}
|
||||
|
||||
//테스트 계약정보 보내기
|
||||
@RequestMapping(name="sendDoToSi", value="/sendDoToSi.do")
|
||||
public ModelAndView sendDoToSi(NisIndivQuery req) {
|
||||
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
String ymd = now.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
nisIndivBean.send_DO_to_SI("/files/temp/sendLcns/50110/"+ymd);
|
||||
|
||||
return new ModelAndView("jsonView");
|
||||
}
|
||||
|
||||
|
||||
//테스트 면허정보응답파일 가져오기
|
||||
@RequestMapping(name="getSiToDo", value="/getSiToDo.do")
|
||||
public ModelAndView getSiToDo(NisIndivQuery req) {
|
||||
|
||||
nisIndivBean.get_SI_to_DO();
|
||||
|
||||
return new ModelAndView("jsonView");
|
||||
}
|
||||
//테스트
|
||||
@RequestMapping(name="면허정보 응답 적용", value="/lcnsRespUnzip.do")
|
||||
public ModelAndView lcnsRespUnzip(NisIndivQuery req) {
|
||||
|
||||
nisIndivBean.applyNisIndivJeju02();
|
||||
|
||||
return new ModelAndView("jsonView");
|
||||
}
|
||||
|
||||
//테스트
|
||||
@RequestMapping(name="면허정보 응답", value="/receiveIndivJeju02.do")
|
||||
public ModelAndView receiveNisIndivJeju02(NisIndivQuery req) {
|
||||
nisIndivBean.get_SI_to_DO();
|
||||
|
||||
nisIndivBean.applyNisIndivJeju02();
|
||||
|
||||
return new ModelAndView("jsonView");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="cokr.xit.fims.nxrp.dao.NisIndivMapper">
|
||||
|
||||
<select id="selectLcnsNoLinkTarget" parameterType="map" resultType="dataobject">
|
||||
SELECT LA.VHRNO
|
||||
, LA.HIRER_NM
|
||||
, LA.OM_JNO
|
||||
, LA.RENT_ENT_NM
|
||||
, LA.RENT_ENT_REG_NO
|
||||
, LA.APRV_ID
|
||||
, LA.CTRT_BGNG_YMD
|
||||
, LA.CTRT_END_YMD
|
||||
, '' AS CTRT_NO
|
||||
FROM ${lsctLinkTblNm} LA
|
||||
WHERE LA.HIRER_SE_CD='01'
|
||||
AND LA.SGG_CD = #{sggCd}
|
||||
AND LA.CHG_APRV_STTS_CD = 'RQ'
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue