You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

329 lines
9.2 KiB
Java

package cokr.xit.fims.nxrp.web;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.FilenameUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.fims.nxrp.Hirer;
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.Downloadable;
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(HttpServletRequest hreq, NisIndivQuery req) {
String random = hreq.getParameter("random");
boolean randomFlag = true;
if(random != null && random.equals("N")) {
randomFlag = false;
}
NisIndivQuery query = new NisIndivQuery();
query.setSggCd("50110");
query.setTaskSeCd("ECA");
String zipPath = nisIndivBean.makeNisIndivJeju01(query, randomFlag);
if(zipPath != null && !zipPath.equals("")) {
nisIndivBean.send_DO_to_SI(zipPath);
}
return new ModelAndView("jsonView");
}
//테스트서버에서 압축파일만들고 제주도운영서버에 파일보내기
@RequestMapping(name="테스트서버에서 압축파일만들고 제주도운영서버에 파일보내기", value="/jeju01_test_to_jejudo.do")
public ModelAndView jeju01_test_to_jejudo(HttpServletRequest hreq, NisIndivQuery req) {
ModelAndView jsonView = new ModelAndView("jsonView");
if(!isLocal() && !isTestServer()) {
return jsonView;
}
String url = "";
String prodYn = hreq.getParameter("prodYn");
if(prodYn == null) {
return jsonView;
} else if(prodYn.equals("Y")) {
url = "https://jeju.go.kr";
} else if(prodYn.equals("N")) {
url = "http://dev.jejudo.go.kr";
} else {
return jsonView;
}
String random = hreq.getParameter("random");
boolean randomFlag = true;
if(random != null && random.equals("N")) {
randomFlag = false;
}
NisIndivQuery query = new NisIndivQuery();
query.setSggCd("50110");
query.setTaskSeCd("ECA");
String zipPath = nisIndivBean.makeNisIndivJeju01(query, randomFlag);
String zipFolder = FilenameUtils.getPath(zipPath);
if(zipPath != null && !zipPath.equals("")) {
MultipartTest mt = new MultipartTest();
try {
mt.multipartPost(zipPath, zipFolder, url+"/is/rentcar/intf/nxrp/jeju01_multipart_to_jejusi.do");
} catch (IOException e) {
e.printStackTrace();
}
(new File(zipPath)).delete();
}
jsonView.addObject("res", "ok");
return jsonView;
}
//테스트서버에서 보낸 압축파일 받아서 제주시로 보내기
@RequestMapping(name="테스트서버에서 보낸 압축파일 받아서 제주시로 보내기", value="/jeju01_multipart_to_jejusi.do")
public ModelAndView jeju01_multipart_to_jejusi(MultipartFile[] file, HttpServletRequest req) throws IllegalStateException, IOException {
String zipFolder = req.getParameter("fileSavePath");
File file0 = new File(zipFolder+file[0].getOriginalFilename());
file[0].transferTo(file0);
nisIndivBean.send_DO_to_SI(file0.getPath());
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"));
String sggCd = "50110";
File folder = new File("/files/temp/sendLcns/"+sggCd+"/"+ymd);
File[] files = folder.listFiles();
for(File file : files) {
nisIndivBean.send_DO_to_SI(file.getPath());
}
return new ModelAndView("jsonView");
}
//테스트 면허정보응답파일 가져오기
@RequestMapping(name="getSiToTest0", value="/getSiToTest0.do")
public ModelAndView getSiToTest0(HttpServletRequest req) throws IOException {
System.out.println("getSiToTest0 1");
ModelAndView jsonView = new ModelAndView("jsonView");
if(!isLocal() && !isTestServer()) {
return jsonView;
}
System.out.println("getSiToTest0 2");
String url = "";
String prodYn = req.getParameter("prodYn");
if(prodYn == null) {
return jsonView;
} else if(prodYn.equals("Y")) {
url = "https://jeju.go.kr";
} else if(prodYn.equals("N")) {
url = "http://dev.jejudo.go.kr";
} else {
return jsonView;
}
System.out.println("getSiToTest0 3");
MultipartTest mt0 = new MultipartTest();
Map<String, Object> map = mt0.getFileList(url+"/is/rentcar/intf/nxrp/getSiToTest1.do");
if(map == null || map.get("names") == null) {
return jsonView;
}
List<String> names = (List<String>)map.get("names");
for(String name : names) {
MultipartTest mt = new MultipartTest();
mt.fileDown(url+"/is/rentcar/intf/nxrp/getSiToTest2.do", "files/temp/receiveDriver/"
+name);
}
System.out.println("getSiToTest0 4");
File folder = new File("files/temp/receiveDriver");
File[] fl = folder.listFiles();
System.out.println("getSiToTest0 5");
if(fl == null || fl.length == 0) {
System.out.println("1!!!");
return jsonView;
}
System.out.println("getSiToTest0 7");
List<Hirer> results = nisIndivBean.getCarDriverInfoFromFile();
for(Hirer result : results) {
nisIndivBean.updateDriverInfo(result);
}
jsonView.addObject("res", "ok");
return jsonView;
}
//테스트 면허정보응답파일 가져오기
@RequestMapping(name="getSiToTest1", value="/getSiToTest1.do")
public ModelAndView getSiToTest1(NisIndivQuery req) throws IOException {
ModelAndView jsonView = new ModelAndView("jsonView");
nisIndivBean.get_SI_to_DO();
File folder = new File("files/temp/receiveDriver");
File[] fl = folder.listFiles();
if(fl == null || fl.length == 0) {
return jsonView;
}
List<String> names = new ArrayList<String>();
for(File f : fl) {
names.add(f.getName());
}
jsonView.addObject("names", names);
return jsonView;
}
//테스트 면허정보응답파일 가져오기
@RequestMapping(name="getSiToTest2", value="/getSiToTest2.do")
public ModelAndView getSiToTest2(NisIndivQuery req) throws IOException {
ModelAndView dv = new ModelAndView("downloadView");
File folder = new File("files/temp/receiveDriver");
File[] fl = folder.listFiles();
if(fl != null && fl.length > 0) {
String name = fl[0].getName();
InputStream menualIS = new FileInputStream(fl[0]);
byte[] menualBytes = menualIS.readAllBytes();
menualIS.close();
Consumer<OutputStream> writer = new Consumer<OutputStream>() {
@Override
public void accept(OutputStream os) {
try {
os.write(menualBytes);
} catch (IOException e) {
e.printStackTrace();
}
}
};
dv.addObject("download",
new Downloadable()
.setContentType("application/zip")
.setWriter(writer)
.setFilename(name)
);
return dv;
}
return null;
}
//테스트 면허정보응답파일 가져오기
@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) {
List<Hirer> results = nisIndivBean.getCarDriverInfoFromFile();
for(Hirer result : results) {
nisIndivBean.updateDriverInfo(result);
}
return new ModelAndView("jsonView");
}
//테스트 면허정보응답파일 가져오고 적용하기
@RequestMapping(name="면허정보 응답", value="/receiveIndivJeju02.do")
public ModelAndView receiveNisIndivJeju02(NisIndivQuery req) {
nisIndivBean.get_SI_to_DO();
List<Hirer> results = nisIndivBean.getCarDriverInfoFromFile();
for(Hirer result : results) {
nisIndivBean.updateDriverInfo(result);
}
return new ModelAndView("jsonView");
}
public boolean isLocal() {
if(new File("C:/Users/XIT_LBJ").exists()) {
return true;
} else {
return false;
}
}
public boolean isTestServer() {
if(new File("/home/xituser").exists()) {
return true;
} else {
return false;
}
}
}