|
|
|
|
@ -7,6 +7,7 @@ import java.io.InputStream;
|
|
|
|
|
import java.io.OutputStream;
|
|
|
|
|
import java.nio.file.Files;
|
|
|
|
|
import java.nio.file.StandardCopyOption;
|
|
|
|
|
import java.text.SimpleDateFormat;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.function.Consumer;
|
|
|
|
|
|
|
|
|
|
@ -22,8 +23,11 @@ import org.springframework.web.servlet.ModelAndView;
|
|
|
|
|
|
|
|
|
|
import cokr.xit.applib.AppCmmnUtil;
|
|
|
|
|
import cokr.xit.fims.appl.service.bean.ApplBean;
|
|
|
|
|
import cokr.xit.fims.cmmn.CmmnUtil;
|
|
|
|
|
import cokr.xit.fims.nxrp.dao.NisIndivMapper;
|
|
|
|
|
import cokr.xit.fims.rent.LsctAprv;
|
|
|
|
|
import cokr.xit.fims.rent.RentQuery;
|
|
|
|
|
import cokr.xit.fims.rent.dao.LsctMpngMapper;
|
|
|
|
|
import cokr.xit.foundation.Downloadable;
|
|
|
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
|
import cokr.xit.foundation.web.AbstractController;
|
|
|
|
|
@ -40,6 +44,9 @@ public class ApplController extends AbstractController {
|
|
|
|
|
@Resource(name = "nisIndivMapper")
|
|
|
|
|
private NisIndivMapper nisIndivMapper;
|
|
|
|
|
|
|
|
|
|
@Resource(name = "lsctMpngMapper")
|
|
|
|
|
private LsctMpngMapper lsctMpngMapper;
|
|
|
|
|
|
|
|
|
|
/** 응용프로그램을 다운로드한다.
|
|
|
|
|
* @return 응용프로그램 파일
|
|
|
|
|
* @throws Exception
|
|
|
|
|
@ -113,7 +120,6 @@ public class ApplController extends AbstractController {
|
|
|
|
|
lsctAprv.setChgDmndIp(remoteAddr); // 변경 요청 IP
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String sggCd = ifEmpty(lsctAprv.getSggCd(), ()->"");
|
|
|
|
|
String taskSeCd = ifEmpty(lsctAprv.getTaskSeCd(), ()->"");
|
|
|
|
|
if (sggCd.equals("")) {
|
|
|
|
|
@ -161,6 +167,19 @@ public class ApplController extends AbstractController {
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String hirerSeCd = lsctAprv.getHirerSeCd();
|
|
|
|
|
if(hirerSeCd == null || hirerSeCd.equals("")) {
|
|
|
|
|
lsctAprv.setHirerSeCd("01"); // 임차인 구분 코드
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
hirerSeCd = lsctAprv.getHirerSeCd();
|
|
|
|
|
if(!hirerSeCd.equals("01") && !hirerSeCd.equals("02") && !hirerSeCd.equals("03") && !hirerSeCd.equals("04")) {
|
|
|
|
|
rtnMsg = "[F] 임차인 구분 코드 오류";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String nxrpCrdnLinkYn = lsctAprv.getNxrpCrdnLinkYn();
|
|
|
|
|
if(nxrpCrdnLinkYn == null || nxrpCrdnLinkYn.equals("")) {
|
|
|
|
|
lsctAprv.setNxrpCrdnLinkYn("Y");
|
|
|
|
|
@ -174,6 +193,214 @@ public class ApplController extends AbstractController {
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String rentEntNm = ifEmpty(lsctAprv.getRentEntNm(), ()->"");
|
|
|
|
|
if (rentEntNm.equals("")) {
|
|
|
|
|
rtnMsg = "[F] 임대기업명 파라미터가 없습니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String rentEntRegNo = ifEmpty(lsctAprv.getRentEntRegNo(), ()->"");
|
|
|
|
|
rentEntRegNo = rentEntRegNo.replace("-", "");
|
|
|
|
|
if (rentEntRegNo.equals("")) {
|
|
|
|
|
rtnMsg = "[F] 임대기업등록번호 파라미터가 없습니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String vhrno = ifEmpty(lsctAprv.getVhrno(), ()->"");
|
|
|
|
|
if (vhrno.equals("")) {
|
|
|
|
|
rtnMsg = "[F] 차량번호 파라미터가 없습니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String crdnYmd = ifEmpty(lsctAprv.getCrdnYmd(), ()->"");
|
|
|
|
|
crdnYmd = crdnYmd.replace("-","");
|
|
|
|
|
if (crdnYmd.equals("")) {
|
|
|
|
|
rtnMsg = "[F] 단속일자 파라미터가 없습니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
SimpleDateFormat sdf_ymd = new SimpleDateFormat("yyyyMMdd");
|
|
|
|
|
sdf_ymd.setLenient(false);
|
|
|
|
|
boolean ymdErr = false;
|
|
|
|
|
try {
|
|
|
|
|
sdf_ymd.parse(crdnYmd);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
ymdErr = true;
|
|
|
|
|
}
|
|
|
|
|
if (ymdErr) {
|
|
|
|
|
rtnMsg = "[F] 단속일자가 년월일 형식이 아닙니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String crdnTm = ifEmpty(lsctAprv.getCrdnTm(), ()->"");
|
|
|
|
|
crdnTm = crdnTm.replace(":","");
|
|
|
|
|
if (crdnTm.equals("")) {
|
|
|
|
|
rtnMsg = "[F] 단속시간 파라미터가 없습니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
SimpleDateFormat sdf_hms = new SimpleDateFormat("HHmmss");
|
|
|
|
|
sdf_hms.setLenient(false);
|
|
|
|
|
boolean hmsErr = false;
|
|
|
|
|
try {
|
|
|
|
|
sdf_hms.parse(crdnTm);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
hmsErr = true;
|
|
|
|
|
}
|
|
|
|
|
if (hmsErr) {
|
|
|
|
|
rtnMsg = "[F] 단속시간이 시분초 형식이 아닙니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String hirerNm = ifEmpty(lsctAprv.getHirerNm(), ()->"");
|
|
|
|
|
if (hirerNm.equals("")) {
|
|
|
|
|
rtnMsg = "[F] 임차인명 파라미터가 없습니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String omJno = ifEmpty(lsctAprv.getOmJno(), ()->"");
|
|
|
|
|
omJno = omJno.replace("-", "");
|
|
|
|
|
omJno = omJno.replace(" ", "");
|
|
|
|
|
if (omJno.equals("")) {
|
|
|
|
|
if(hirerSeCd.equals("02")) {
|
|
|
|
|
rtnMsg = "[F] 법인번호 파라미터가 없습니다.";
|
|
|
|
|
} else if(hirerSeCd.equals("03")) {
|
|
|
|
|
rtnMsg = "[F] 사업자번호 파라미터가 없습니다.";
|
|
|
|
|
} else {
|
|
|
|
|
rtnMsg = "[F] 면허번호 파라미터가 없습니다.";
|
|
|
|
|
}
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
if (!CmmnUtil.isNumeric(omJno)) {
|
|
|
|
|
if(hirerSeCd.equals("02")) {
|
|
|
|
|
rtnMsg = "[F] 법인번호는 숫자만 입력 가능합니다.";
|
|
|
|
|
} else if(hirerSeCd.equals("03")) {
|
|
|
|
|
rtnMsg = "[F] 사업자번호는 숫자만 입력 가능합니다.";
|
|
|
|
|
} else {
|
|
|
|
|
rtnMsg = "[F] 면허번호는 숫자만 입력 가능합니다.";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(hirerSeCd.equals("01")) {
|
|
|
|
|
if (omJno.length() != 12) {
|
|
|
|
|
rtnMsg = "[F] 면허번호 자릿수는 12자리이여야 합니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
} else if(hirerSeCd.equals("02")) {
|
|
|
|
|
if (omJno.length() != 13) {
|
|
|
|
|
rtnMsg = "[F] 법인번호 자릿수는 13자리이여야 합니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
} else if(hirerSeCd.equals("03")) {
|
|
|
|
|
if (omJno.length() != 10) {
|
|
|
|
|
rtnMsg = "[F] 사업자번호 자릿수는 10자리이여야 합니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
} else if(hirerSeCd.equals("04")) {
|
|
|
|
|
if (omJno.length() < 6 || omJno.length() > 18) {
|
|
|
|
|
rtnMsg = "[F] 외국인 면허번호 자릿수는 6~18자리이여야 합니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
lsctAprv.setOmJno(omJno);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String ctrtBgngYmd = ifEmpty(lsctAprv.getCtrtBgngYmd(), ()->"");
|
|
|
|
|
ctrtBgngYmd = ctrtBgngYmd.replace("-","");
|
|
|
|
|
if (!ctrtBgngYmd.equals("")) {
|
|
|
|
|
try {
|
|
|
|
|
sdf_ymd.parse(ctrtBgngYmd);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
ymdErr = true;
|
|
|
|
|
}
|
|
|
|
|
if (ymdErr) {
|
|
|
|
|
rtnMsg = "[F] 계약시작일자가 년월일 형식이 아닙니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
String ctrtEndYmd = ifEmpty(lsctAprv.getCtrtEndYmd(), ()->"");
|
|
|
|
|
ctrtEndYmd = ctrtEndYmd.replace("-","");
|
|
|
|
|
if (!ctrtEndYmd.equals("")) {
|
|
|
|
|
try {
|
|
|
|
|
sdf_ymd.parse(ctrtEndYmd);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
ymdErr = true;
|
|
|
|
|
}
|
|
|
|
|
if (ymdErr) {
|
|
|
|
|
rtnMsg = "[F] 계약종료일자가 년월일 형식이 아닙니다.";
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RentQuery mmQuery = new RentQuery();
|
|
|
|
|
mmQuery.setSggCd(sggCd);
|
|
|
|
|
mmQuery.setTaskSeCd(taskSeCd);
|
|
|
|
|
mmQuery.setMmCode(mmCode);
|
|
|
|
|
mmQuery.setOrderBy("MM_DATE, MM_TIME"); // 정렬
|
|
|
|
|
List<DataObject> mainList = lsctMpngMapper.selectFfnlgMainList(mmQuery);
|
|
|
|
|
|
|
|
|
|
if(mainList != null && !mainList.isEmpty()) {
|
|
|
|
|
DataObject mmInfo = mainList.get(0);
|
|
|
|
|
lsctAprv.setHirerZip(mmInfo.string("OM_ZIP"));
|
|
|
|
|
lsctAprv.setHirerAddr(mmInfo.string("OM_JUSO"));
|
|
|
|
|
lsctAprv.setHirerDtlAddr(mmInfo.string("OM_BUNJI"));
|
|
|
|
|
lsctAprv.setRoadNmCd(mmInfo.string("OM_DORO_CODE"));
|
|
|
|
|
lsctAprv.setUdgdSeCd(mmInfo.string("OM_BLD_POSITION"));
|
|
|
|
|
lsctAprv.setBmno(mmInfo.string("OM_BLD_NO1"));
|
|
|
|
|
lsctAprv.setBsno(mmInfo.string("OM_BLD_NO2"));
|
|
|
|
|
lsctAprv.setBldgMngNo(mmInfo.string("OM_BLD_ADMNO"));
|
|
|
|
|
lsctAprv.setStdgCd(mmInfo.string("OM_BDCODE"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if("Y".equals(lsctAprv.getUdgdSeCd())) {
|
|
|
|
|
lsctAprv.setUdgdSeCd("1");
|
|
|
|
|
} else if("N".equals(lsctAprv.getUdgdSeCd())) {
|
|
|
|
|
lsctAprv.setUdgdSeCd("0");
|
|
|
|
|
}
|
|
|
|
|
if("".equals(lsctAprv.getBmno())) {
|
|
|
|
|
lsctAprv.setBmno(null);
|
|
|
|
|
}
|
|
|
|
|
if("".equals(lsctAprv.getBsno())) {
|
|
|
|
|
lsctAprv.setBsno(null);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
rtnMsg = applBean.createLsctAprv(lsctAprv); // 등록
|
|
|
|
|
|
|
|
|
|
|