1. 시군구코드,시스템코드 하드코딩 제거

2. 프로그램파일 업로드,다운로드 추가
main
이범준 1 month ago
parent 3167dc2638
commit 3b3be84740

@ -9,9 +9,11 @@ import org.springframework.stereotype.Component;
import cokr.xit.fims.nxrp.Hirer;
import cokr.xit.fims.nxrp.NisIndivQuery;
import cokr.xit.fims.nxrp.dao.NisIndivMapper;
import cokr.xit.fims.nxrp.service.NisIndivService;
import cokr.xit.fims.nxrp.service.bean.NisIndivBean;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
@Component
public class RentSchedule extends AbstractComponent {
@ -20,11 +22,12 @@ public class RentSchedule extends AbstractComponent {
private NisIndivService nisIndivService;
@Resource(name = "nisIndivBean")
private NisIndivBean nisIndivBean;
@Resource(name = "nisIndivMapper")
private NisIndivMapper nisIndivMapper;
@Scheduled(cron = "0 0 20 * * *")
public void sendRun() {
public void sendRun() throws InterruptedException {
String useYn = nisIndivBean.getScheduleUseYn("NXRP_JEJU_01");
if(useYn == null || !useYn.equals("Y")) {
@ -32,13 +35,22 @@ public class RentSchedule extends AbstractComponent {
}
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);
List<DataObject> sggTasks = nisIndivMapper.getNxrpRentSggTask("");
for(DataObject sggTask : sggTasks) {
Thread.sleep(2000);
query.setSggCd(sggTask.string("SGG_CD"));
query.setTaskSeCd(sggTask.string("TASK_SE_CD"));
String zipPath = nisIndivBean.makeNisIndivJeju01(query, false);
if(zipPath != null && !zipPath.equals("")) {
nisIndivBean.send_DO_to_SI(zipPath);
}
}
}
@Scheduled(cron = "0 0 9 * * *")

@ -1,6 +1,7 @@
package cokr.xit.fims.appl.service.bean;
import java.text.SimpleDateFormat;
import java.util.List;
import javax.annotation.Resource;
@ -11,6 +12,7 @@ import cokr.xit.fims.appl.dao.ApplMapper;
import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.levy.dao.LevyMapper;
import cokr.xit.fims.nxrp.dao.NisIndivMapper;
import cokr.xit.fims.payer.service.bean.PayerBean;
import cokr.xit.fims.rent.LsctAprv;
import cokr.xit.fims.rent.dao.FinSysFtpMapper;
@ -19,12 +21,15 @@ import cokr.xit.fims.rent.dao.LsctMapper;
import cokr.xit.fims.rent.dao.LsctMpngMapper;
import cokr.xit.fims.rent.dao.RentEntMapper;
import cokr.xit.foundation.component.AbstractBean;
import cokr.xit.foundation.data.DataObject;
@Component("applBean")
public class ApplBean extends AbstractBean {
/** 임대차계약 대장 정보 DAO */
@Resource(name = "applMapper")
private ApplMapper applMapper;
@Resource(name = "nisIndivMapper")
private NisIndivMapper nisIndivMapper;
/** 임대차계약 대장 정보 DAO */
@Resource(name = "lsctMpngMapper")
@ -78,16 +83,19 @@ public class ApplBean extends AbstractBean {
return rtnMsg;
}
// 연계 테이블명
if (sggCd.equals("50110") && taskSeCd.equals("ECA")) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50110_ECA");
} else if (sggCd.equals("50130") && taskSeCd.equals("ECA")) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50130_ECA");
} else {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
return rtnMsg;
List<DataObject> sggTasks = nisIndivMapper.getNxrpRentSggTask("");
for(DataObject sggTask : sggTasks) {
if(sggTask.string("SGG_CD").equals(sggCd) && sggTask.string("TASK_SE_CD").equals(taskSeCd)) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_"+sggCd+"_"+taskSeCd);
}
}
if(ifEmpty(lsctAprv.getLsctLinkTblNm(), ()->"").equals("")) {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
return rtnMsg;
}
String rentEntNm = ifEmpty(lsctAprv.getRentEntNm(), ()->"");
if (rentEntNm.equals("")) {

@ -1,16 +1,31 @@
package cokr.xit.fims.appl.web;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.List;
import java.util.function.Consumer;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.applib.AppCmmnUtil;
import cokr.xit.fims.appl.service.bean.ApplBean;
import cokr.xit.fims.nxrp.dao.NisIndivMapper;
import cokr.xit.fims.rent.LsctAprv;
import cokr.xit.foundation.Downloadable;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.foundation.web.AbstractController;
@Controller
@ -22,6 +37,72 @@ public class ApplController extends AbstractController {
@Resource(name = "applBean")
private ApplBean applBean;
@Resource(name = "nisIndivMapper")
private NisIndivMapper nisIndivMapper;
/** .
* @return
* @throws Exception
*/
@RequestMapping(name = "응용프로그램 다운로드", value = "/downloadProgram.do")
public ModelAndView downloadPropgram() throws Exception {
String filePath = ("files/appl/CleanParking.exe");
InputStream programIS = new FileInputStream(filePath);
byte[] programBytes = programIS.readAllBytes();
programIS.close();
Consumer<OutputStream> writer = new Consumer<OutputStream>() {
@Override
public void accept(OutputStream os) {
try {
os.write(programBytes);
} catch (IOException e) {
e.printStackTrace();
}
}
};
return new ModelAndView("downloadView")
.addObject("download",
new Downloadable()
.setContentType("application/octet-stream")
.setWriter(writer)
.setFilename("CleanParking.exe")
);
}
/** .
* @return
* @throws Exception
*/
@PostMapping(name = "응용프로그램 업로드", value = "/uploadProgram.do")
public ModelAndView uploadPropgram(
HttpServletRequest req, MultipartFile mfile
) throws Exception {
if(!mfile.getOriginalFilename().equals("CleanParking.exe")) {
return new ModelAndView("jsonView")
.addObject("saved", false);
}
String folderPath = "files/appl";
if(!new File(folderPath).exists()) {
new File(folderPath).mkdirs();
}
String filePath = (folderPath+"/CleanParking.exe");
File newFile = new File(filePath);
Files.copy(mfile.getInputStream(), newFile.toPath(), StandardCopyOption.REPLACE_EXISTING);
return new ModelAndView("jsonView")
.addObject("saved", true);
}
@RequestMapping(name = "임대차계약정보 수기 등록", value="/createLeaseContractApproval.do")
public ModelAndView createLeaseContractApproval(HttpServletRequest hreq, @RequestBody LsctAprv lsctAprv) {
boolean saved = false;
@ -48,17 +129,21 @@ public class ApplController extends AbstractController {
.addObject("rtnMsg", rtnMsg);
}
// 연계 테이블명
if (sggCd.equals("50110") && taskSeCd.equals("ECA")) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50110_ECA");
} else if (sggCd.equals("50130") && taskSeCd.equals("ECA")) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50130_ECA");
} else {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
List<DataObject> sggTasks = nisIndivMapper.getNxrpRentSggTask("");
for(DataObject sggTask : sggTasks) {
if(sggTask.string("SGG_CD").equals(sggCd) && sggTask.string("TASK_SE_CD").equals(taskSeCd)) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_"+sggCd+"_"+taskSeCd);
}
}
if(ifEmpty(lsctAprv.getLsctLinkTblNm(), ()->"").equals("")) {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("rtnMsg", rtnMsg);
}
};
String mmCode = ifEmpty(lsctAprv.getMmCode(), ()->"");
if (mmCode.equals("")) {

@ -14,5 +14,8 @@ public interface NisIndivMapper extends AbstractMapper {
String getScheduleUseYn(String scheduleName);
List<DataObject> getNxrpRentSggTask(String str);
List<String> getNxrpRentSgg(String str);
}

@ -78,12 +78,17 @@ public class NisIndivBean extends AbstractBean {
String taskSeCd = req.getTaskSeCd();
List<DataObject> sggTasks = nisIndivMapper.getNxrpRentSggTask("");
String deptCd = "";
if(sggCd.equals("50110") && taskSeCd.equals("ECA")) {
deptCd = "6510245";
} else if(sggCd.equals("50130") && taskSeCd.equals("ECA")) {
deptCd = "6520178";
} else {
for(DataObject sggTask : sggTasks) {
if(sggTask.string("SGG_CD").equals(sggCd) && sggTask.string("TASK_SE_CD").equals(taskSeCd)) {
deptCd = sggTask.string("DEPT_CD");
}
}
if(deptCd.equals("")) {
return "";
}
@ -94,7 +99,8 @@ public class NisIndivBean extends AbstractBean {
String gujesi = deptStng.string("NXRP_RGN_SE_CD");
List<DataObject> targets = null;
List<DataObject> targets = new ArrayList<>();
if(randomData) {
targets = this.makeRandomJeju01Targets(10);
} else {
@ -102,6 +108,7 @@ public class NisIndivBean extends AbstractBean {
}
if(targets == null || targets.isEmpty()) {
return null;
}
@ -117,7 +124,9 @@ public class NisIndivBean extends AbstractBean {
}
OnlyTxtMaker linkFileMaker = new OnlyTxtMaker("ECA");
OnlyTxtMaker linkFileMaker = new OnlyTxtMaker();
if (!isEmpty(gujesi)) {
linkFileMaker.setGujesiStng(gujesi);

@ -16,7 +16,7 @@ public class OnlyTxtMaker extends LinkFileMaker {
private FileWriter fileWriter;
public OnlyTxtMaker(String systemCode){
public OnlyTxtMaker(){
String ifId = "EBF_Z000001LGE_1741000NIS_2001";
this.ifId = ifId;
@ -24,8 +24,8 @@ public class OnlyTxtMaker extends LinkFileMaker {
SimpleDateFormat ymdhmsFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String currentTime = ymdhmsFormat.format(new Date());
zipFileName = ifId + "_" + currentTime + "@6510000" + systemCode + ".zip";
txtFileName = ifId + "_" + currentTime + "@6510000" + systemCode + ".txt";
zipFileName = ifId + "_" + currentTime + "@6510000ECA.zip";
txtFileName = ifId + "_" + currentTime + "@6510000ECA.txt";
}

@ -28,9 +28,11 @@ import org.springframework.web.servlet.ModelAndView;
import cokr.xit.base.file.ZIP;
import cokr.xit.fims.nxrp.Hirer;
import cokr.xit.fims.nxrp.NisIndivQuery;
import cokr.xit.fims.nxrp.dao.NisIndivMapper;
import cokr.xit.fims.nxrp.service.NisIndivService;
import cokr.xit.fims.nxrp.service.bean.NisIndivBean;
import cokr.xit.foundation.Downloadable;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.foundation.web.AbstractController;
@Controller
@ -44,25 +46,39 @@ public class NxrpController extends AbstractController {
private NisIndivService nisIndivService;
@Resource(name = "nisIndivBean")
private NisIndivBean nisIndivBean;
@Resource(name = "nisIndivMapper")
private NisIndivMapper nisIndivMapper;
//테스트
@RequestMapping(name="계약정보 만들고 보내기", value="/sendIndivJeju01.do")
public ModelAndView sendNisIndivJeju01(HttpServletRequest hreq, NisIndivQuery req) {
public ModelAndView sendNisIndivJeju01(HttpServletRequest hreq, NisIndivQuery req) throws InterruptedException {
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);
List<DataObject> sggTasks = nisIndivMapper.getNxrpRentSggTask("");
for(DataObject sggTask : sggTasks) {
Thread.sleep(2000);
query.setSggCd(sggTask.string("SGG_CD"));
query.setTaskSeCd(sggTask.string("TASK_SE_CD"));
String zipPath = nisIndivBean.makeNisIndivJeju01(query, randomFlag);
if(zipPath != null && !zipPath.equals("")) {
nisIndivBean.send_DO_to_SI(zipPath);
}
}
return new ModelAndView("jsonView");
}
@ -70,7 +86,7 @@ public class NxrpController extends AbstractController {
//테스트서버에서 압축파일만들고 제주도운영서버에 파일보내기
@RequestMapping(name="테스트서버에서 압축파일만들고 제주도운영서버에 파일보내기", value="/jeju01_test_to_jejudo.do")
public ModelAndView jeju01_test_to_jejudo(HttpServletRequest hreq, NisIndivQuery req) {
public ModelAndView jeju01_test_to_jejudo(HttpServletRequest hreq, NisIndivQuery req) throws InterruptedException {
ModelAndView jsonView = new ModelAndView("jsonView");
@ -95,20 +111,28 @@ public class NxrpController extends AbstractController {
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();
List<DataObject> sggTasks = nisIndivMapper.getNxrpRentSggTask("");
for(DataObject sggTask : sggTasks) {
Thread.sleep(2000);
query.setSggCd(sggTask.string("SGG_CD"));
query.setTaskSeCd(sggTask.string("TASK_SE_CD"));
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();
}
(new File(zipPath)).delete();
}
jsonView.addObject("res", "ok");
@ -134,12 +158,18 @@ public class NxrpController extends AbstractController {
//테스트 계약정보만들기
@RequestMapping(name="계약정보만들기", value="/makeJeju01.do")
public ModelAndView makeJeju01(NisIndivQuery req) {
public ModelAndView makeJeju01(NisIndivQuery req) throws InterruptedException {
NisIndivQuery query = new NisIndivQuery();
query.setSggCd("50110");
query.setTaskSeCd("ECA");
String zipPath = nisIndivBean.makeNisIndivJeju01(query,true);
List<DataObject> sggTasks = nisIndivMapper.getNxrpRentSggTask("");
for(DataObject sggTask : sggTasks) {
Thread.sleep(2000);
query.setSggCd(sggTask.string("SGG_CD"));
query.setTaskSeCd(sggTask.string("TASK_SE_CD"));
String zipPath = nisIndivBean.makeNisIndivJeju01(query,true);
}
return new ModelAndView("jsonView");
}
@ -150,13 +180,18 @@ public class NxrpController extends AbstractController {
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());
}
List<String> nxrpSggs = nisIndivMapper.getNxrpRentSgg("");
for(String nxrpSgg : nxrpSggs) {
String sggCd = nxrpSgg;
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");
}

@ -25,6 +25,7 @@ import cokr.xit.fims.cmmn.ftp.SFTPUtil;
import cokr.xit.fims.crdn.Crdn;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.dao.LevyMapper;
import cokr.xit.fims.nxrp.dao.NisIndivMapper;
import cokr.xit.fims.payer.Payer;
import cokr.xit.fims.payer.service.bean.PayerBean;
import cokr.xit.fims.rent.Lsct;
@ -54,6 +55,8 @@ public class LsctMpngBean extends AbstractBean {
@Resource(name = "applMapper")
private ApplMapper applMapper;
@Resource(name = "nisIndivMapper")
private NisIndivMapper nisIndivMapper;
/** 임대차계약 대장 정보 DAO */
@Resource(name = "lsctMpngMapper")
@ -841,16 +844,20 @@ public class LsctMpngBean extends AbstractBean {
lsctAprv.setRqstrNm(fimsUser.getName()); // 요청자 명
lsctAprv.setChgAprvSttsCd("RQ"); // 변경 승인 상태
// 연계 테이블명
if (lsctMpngInfo.string("SGG_CD").equals("50110") && lsctMpngInfo.string("TASK_SE_CD").equals("ECA")) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50110_ECA");
} else if (lsctMpngInfo.string("SGG_CD").equals("50130") && lsctMpngInfo.string("TASK_SE_CD").equals("ECA")) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50130_ECA");
} else {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
return rtnMsg;
List<DataObject> sggTasks = nisIndivMapper.getNxrpRentSggTask("");
for(DataObject sggTask : sggTasks) {
if(sggTask.string("SGG_CD").equals(lsctMpngInfo.string("SGG_CD"))
&& sggTask.string("TASK_SE_CD").equals(lsctMpngInfo.string("TASK_SE_CD"))) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_"+lsctMpngInfo.string("SGG_CD")+"_"+lsctMpngInfo.string("TASK_SE_CD"));
}
}
if(ifEmpty(lsctAprv.getLsctLinkTblNm(), ()->"").equals("")) {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
return rtnMsg;
}
// 임대차계약 승인(TB_LSCT_APRV) 대장을 등록한다.
rtnNocs = lsctAprvMapper.insertLsctAprv(lsctAprv);
if (rtnNocs < 1) {

@ -28,6 +28,7 @@ import cokr.xit.fims.base.FimsUser;
import cokr.xit.fims.cmmn.service.bean.StngBean;
import cokr.xit.fims.cmmn.xls.FormatMaker;
import cokr.xit.fims.cmmn.xls.StyleMaker;
import cokr.xit.fims.nxrp.dao.NisIndivMapper;
import cokr.xit.fims.rent.Lsct;
import cokr.xit.fims.rent.LsctAprv;
import cokr.xit.fims.rent.LsctMpng;
@ -83,6 +84,10 @@ public class Rent02Controller extends ApplicationController {
;
}
@Resource(name = "nisIndivMapper")
private NisIndivMapper nisIndivMapper;
/**임대차계약 대장 서비스*/
@Resource(name = "lsctMpngService")
private LsctMpngService lsctMpngService;
@ -776,18 +781,20 @@ public class Rent02Controller extends ApplicationController {
rtnMsg = "[F] 작업 중 임대차계약 승인상태가 '요청' 이 아닙니다.";
return rtnMsg;
}
// 연계 테이블명
if (lsctMpngInfo.string("SGG_CD").equals("50110") && lsctMpngInfo.string("TASK_SE_CD").equals("ECA")) {
req.setLsctLinkTblNm("TB_LSCT_APRV_50110_ECA");
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50110_ECA");
} else if (lsctMpngInfo.string("SGG_CD").equals("50130") && lsctMpngInfo.string("TASK_SE_CD").equals("ECA")) {
req.setLsctLinkTblNm("TB_LSCT_APRV_50130_ECA");
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_50130_ECA");
} else {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
return rtnMsg;
List<DataObject> sggTasks = nisIndivMapper.getNxrpRentSggTask("");
for(DataObject sggTask : sggTasks) {
if(sggTask.string("SGG_CD").equals(lsctMpngInfo.string("SGG_CD")) && sggTask.string("TASK_SE_CD").equals(lsctMpngInfo.string("TASK_SE_CD"))) {
lsctAprv.setLsctLinkTblNm("TB_LSCT_APRV_"+lsctMpngInfo.string("SGG_CD")+"_"+lsctMpngInfo.string("TASK_SE_CD"));
}
}
if(ifEmpty(lsctAprv.getLsctLinkTblNm(), ()->"").equals("")) {
rtnMsg = "[F] 작업 중 연계시스템이 확인되지 않았습니다.";
return rtnMsg;
}
// 임대차계약 승인(TB_LSCT_APRV) 대장 조회
req.setOrderBy("LA.LSCT_MPNG_ID DESC"); // WHERE에 있는 컬럼만 정렬이 가능하다..

@ -25,4 +25,18 @@ SELECT USE_YN
FROM TB_RENT_SERVER_SCHEDULE
WHERE SCHEDULE_NAME = #{scheduleName}
</select>
<select id="getNxrpRentSggTask" parameterType="string" resultType="dataobject">
SELECT SGG_CD
, TASK_SE_CD
FROM TB_NXRP_RENT_SGG_TASK
WHERE USE_YN = 'Y'
</select>
<select id="getNxrpRentSgg" parameterType="string" resultType="string">
SELECT DISTINCT SGG_CD
FROM TB_NXRP_RENT_SGG_TASK
WHERE USE_YN = 'Y'
</select>
</mapper>
Loading…
Cancel
Save