parent
9587d4b0e5
commit
50f9c1e972
@ -0,0 +1,16 @@
|
|||||||
|
package cokr.xit.fims.appl.dao;
|
||||||
|
|
||||||
|
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
|
||||||
|
import cokr.xit.fims.crdn.Crdn;
|
||||||
|
import cokr.xit.fims.rent.LsctAprv;
|
||||||
|
import cokr.xit.foundation.component.AbstractMapper;
|
||||||
|
|
||||||
|
@Mapper("applMapper")
|
||||||
|
public interface ApplMapper extends AbstractMapper {
|
||||||
|
|
||||||
|
int countRequestedLsctAprv(LsctAprv lsctAprv);
|
||||||
|
|
||||||
|
int updateInProgress(Crdn crdn);
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,231 @@
|
|||||||
|
package cokr.xit.fims.appl.service.bean;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import cokr.xit.base.file.service.bean.FileBean;
|
||||||
|
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.payer.service.bean.PayerBean;
|
||||||
|
import cokr.xit.fims.rent.LsctAprv;
|
||||||
|
import cokr.xit.fims.rent.dao.FinSysFtpMapper;
|
||||||
|
import cokr.xit.fims.rent.dao.LsctAprvMapper;
|
||||||
|
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;
|
||||||
|
|
||||||
|
@Component("applBean")
|
||||||
|
public class ApplBean extends AbstractBean {
|
||||||
|
/** 임대차계약 대장 정보 DAO */
|
||||||
|
@Resource(name = "applMapper")
|
||||||
|
private ApplMapper applMapper;
|
||||||
|
|
||||||
|
/** 임대차계약 대장 정보 DAO */
|
||||||
|
@Resource(name = "lsctMpngMapper")
|
||||||
|
private LsctMpngMapper lsctMpngMapper;
|
||||||
|
|
||||||
|
/** 임대차계약 승인 대장 정보 DAO */
|
||||||
|
@Resource(name = "lsctAprvMapper")
|
||||||
|
private LsctAprvMapper lsctAprvMapper;
|
||||||
|
|
||||||
|
/** 임대 기업 대장 정보 DAO */
|
||||||
|
@Resource(name = "rentEntMapper")
|
||||||
|
private RentEntMapper rentEntMapper;
|
||||||
|
|
||||||
|
/** 임대차계약 정보 정보 DAO */
|
||||||
|
@Resource(name = "lsctMapper")
|
||||||
|
private LsctMapper lsctMapper;
|
||||||
|
|
||||||
|
/** 파일 정보 Bean */
|
||||||
|
@Resource(name = "fileBean")
|
||||||
|
private FileBean fileBean;
|
||||||
|
|
||||||
|
/** 납부자 대장 정보 Bean */
|
||||||
|
@Resource(name = "payerBean")
|
||||||
|
private PayerBean payerBean;
|
||||||
|
|
||||||
|
/** 부과 대장 정보 DAO */
|
||||||
|
@Resource(name = "levyMapper")
|
||||||
|
private LevyMapper levyMapper;
|
||||||
|
|
||||||
|
@Resource(name = "finSysFtpMapper")
|
||||||
|
private FinSysFtpMapper finSysFtpMapper;
|
||||||
|
|
||||||
|
public int countRequestedLsctAprv(LsctAprv lsctAprv) {
|
||||||
|
return applMapper.countRequestedLsctAprv(lsctAprv);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String createLsctAprv(LsctAprv lsctAprv) {
|
||||||
|
// 변수 선언
|
||||||
|
int rtnNocs = -1; // 처리 결과 건수
|
||||||
|
String rtnMsg = ""; // 처리 결과 메시지
|
||||||
|
|
||||||
|
|
||||||
|
String sggCd = ifEmpty(lsctAprv.getSggCd(), ()->"");
|
||||||
|
String taskSeCd = ifEmpty(lsctAprv.getTaskSeCd(), ()->"");
|
||||||
|
if (sggCd.equals("")) {
|
||||||
|
rtnMsg = "[F] 시군구 코드 파라미터가 없습니다.(sggCd)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
if (taskSeCd.equals("")) {
|
||||||
|
rtnMsg = "[F] 업무 구분 코드 파라미터가 없습니다.(taskSeCd)";
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
String rentEntNm = ifEmpty(lsctAprv.getRentEntNm(), ()->"");
|
||||||
|
if (rentEntNm.equals("")) {
|
||||||
|
rtnMsg = "[F] 임대기업명 파라미터가 없습니다.(rentEntNm)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
String rentEntRegNo = ifEmpty(lsctAprv.getRentEntRegNo(), ()->"");
|
||||||
|
rentEntRegNo = rentEntRegNo.replace("-", "");
|
||||||
|
if (rentEntRegNo.equals("")) {
|
||||||
|
rtnMsg = "[F] 임대기업등록번호 파라미터가 없습니다.(rentEntRegNo)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
String vhrno = ifEmpty(lsctAprv.getVhrno(), ()->"");
|
||||||
|
if (vhrno.equals("")) {
|
||||||
|
rtnMsg = "[F] 차량번호 파라미터가 없습니다.(vhrno)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
String hirerNm = ifEmpty(lsctAprv.getHirerNm(), ()->"");
|
||||||
|
if (hirerNm.equals("")) {
|
||||||
|
rtnMsg = "[F] 임차인명 파라미터가 없습니다.(hirerNm)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
String omJno = ifEmpty(lsctAprv.getOmJno(), ()->"");
|
||||||
|
omJno = omJno.replace("-", "");
|
||||||
|
omJno = omJno.replace(" ", "");
|
||||||
|
if (omJno.equals("")) {
|
||||||
|
rtnMsg = "[F] 면허번호 파라미터가 없습니다.(omJno)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
if (!CmmnUtil.isNumeric(omJno)) {
|
||||||
|
rtnMsg = "[F] 면허번호는 숫자만 입력 가능합니다.(omJno)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
if (omJno.length() != 12) {
|
||||||
|
rtnMsg = "[F] 면허번호 자릿수는 12자리이여야 합니다.(omJno)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
String crdnYmd = ifEmpty(lsctAprv.getCrdnYmd(), ()->"");
|
||||||
|
crdnYmd = crdnYmd.replace("-","");
|
||||||
|
if (crdnYmd.equals("")) {
|
||||||
|
rtnMsg = "[F] 단속일자 파라미터가 없습니다.(crdnYmd)";
|
||||||
|
return 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] 단속일자가 년월일 형식이 아닙니다.(crdnYmd)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
String crdnTm = ifEmpty(lsctAprv.getCrdnTm(), ()->"");
|
||||||
|
crdnTm = crdnTm.replace(":","");
|
||||||
|
if (crdnTm.equals("")) {
|
||||||
|
rtnMsg = "[F] 단속시간 파라미터가 없습니다.(crdnTm)";
|
||||||
|
return 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] 단속시간이 시분초 형식이 아닙니다.(crdnTm)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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] 계약시작일자가 년월일 형식이 아닙니다.(ctrtBgngYmd)";
|
||||||
|
return 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] 계약종료일자가 년월일 형식이 아닙니다.(ctrtEndYmd)";
|
||||||
|
return rtnMsg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lsctAprv.setHirerSeCd("01"); // 임차인 구분 코드
|
||||||
|
lsctAprv.setNxrpCrdnLinkYn("N"); // 세외수입 단속 연계 여부
|
||||||
|
lsctAprv.setAtchFileCnt(0); // 첨부 파일 수
|
||||||
|
lsctAprv.setLsctMpngId("9999999999");
|
||||||
|
|
||||||
|
|
||||||
|
// 현재 날짜 구하기
|
||||||
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
||||||
|
String dmndDateTime = dateFormat.format(System.currentTimeMillis());
|
||||||
|
|
||||||
|
lsctAprv.setDmndYmd(dmndDateTime.substring(0, 8)); // 요청 일자
|
||||||
|
lsctAprv.setDmndTm(dmndDateTime.substring(8, 14)); // 요청 시각
|
||||||
|
lsctAprv.setChgAprvSttsCd("RQ"); // 변경 승인 상태
|
||||||
|
|
||||||
|
|
||||||
|
// 임대차계약 승인 대장(TB_LSCT_APRV)을 등록한다.
|
||||||
|
rtnNocs = lsctAprvMapper.insertLsctAprv(lsctAprv);
|
||||||
|
if (rtnNocs < 1) {
|
||||||
|
throw new RuntimeException("[F] 임대차계약 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
|
||||||
|
}
|
||||||
|
|
||||||
|
// 단속 대장의 임차인수기등록 여부를 변경한다.
|
||||||
|
Crdn crdn = new Crdn();
|
||||||
|
crdn.setMmCode(lsctAprv.getMmCode());
|
||||||
|
crdn.setSggCd(lsctAprv.getSggCd());
|
||||||
|
crdn.setTaskSeCd(lsctAprv.getTaskSeCd());
|
||||||
|
applMapper.updateInProgress(crdn);
|
||||||
|
|
||||||
|
|
||||||
|
return "[S] 임대차계약 등록 작업이 정상 처리 되었습니다.";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,93 @@
|
|||||||
|
package cokr.xit.fims.appl.web;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
import cokr.xit.applib.AppCmmnUtil;
|
||||||
|
import cokr.xit.fims.appl.service.bean.ApplBean;
|
||||||
|
import cokr.xit.fims.rent.LsctAprv;
|
||||||
|
import cokr.xit.foundation.web.AbstractController;
|
||||||
|
|
||||||
|
@Controller
|
||||||
|
@RequestMapping(name="응용프로그램 연계", value=ApplController.CLASS_URL)
|
||||||
|
public class ApplController extends AbstractController {
|
||||||
|
|
||||||
|
public static final String CLASS_URL = "/intf/appl";
|
||||||
|
|
||||||
|
@Resource(name = "applBean")
|
||||||
|
private ApplBean applBean;
|
||||||
|
|
||||||
|
@RequestMapping(name = "임대차계약정보 수기 등록", value="/createLeaseContractApproval.do")
|
||||||
|
public ModelAndView createLeaseContractApproval(HttpServletRequest hreq, @RequestBody LsctAprv lsctAprv) {
|
||||||
|
boolean saved = false;
|
||||||
|
String rtnMsg = "";
|
||||||
|
|
||||||
|
// 클라이언트 IP 확인
|
||||||
|
String remoteAddr = AppCmmnUtil.getClientIpAddr(hreq);
|
||||||
|
lsctAprv.setChgDmndIp(remoteAddr); // 변경 요청 IP
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
String sggCd = ifEmpty(lsctAprv.getSggCd(), ()->"");
|
||||||
|
String taskSeCd = ifEmpty(lsctAprv.getTaskSeCd(), ()->"");
|
||||||
|
if (sggCd.equals("")) {
|
||||||
|
rtnMsg = "[F] 시군구 코드 파라미터가 없습니다.";
|
||||||
|
return new ModelAndView("jsonView")
|
||||||
|
.addObject("saved", saved)
|
||||||
|
.addObject("rtnMsg", rtnMsg);
|
||||||
|
}
|
||||||
|
if (taskSeCd.equals("")) {
|
||||||
|
rtnMsg = "[F] 업무 구분 코드 파라미터가 없습니다.";
|
||||||
|
return new ModelAndView("jsonView")
|
||||||
|
.addObject("saved", saved)
|
||||||
|
.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] 작업 중 연계시스템이 확인되지 않았습니다.";
|
||||||
|
return new ModelAndView("jsonView")
|
||||||
|
.addObject("saved", saved)
|
||||||
|
.addObject("rtnMsg", rtnMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
String mmCode = ifEmpty(lsctAprv.getMmCode(), ()->"");
|
||||||
|
if (mmCode.equals("")) {
|
||||||
|
rtnMsg = "[F] mmCode 파라미터가 없습니다.";
|
||||||
|
return new ModelAndView("jsonView")
|
||||||
|
.addObject("saved", saved)
|
||||||
|
.addObject("rtnMsg", rtnMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
int existRq = applBean.countRequestedLsctAprv(lsctAprv);
|
||||||
|
if(existRq > 0) {
|
||||||
|
rtnMsg = "[F] 임대차계약서가 이미 등록되어 있습니다.";
|
||||||
|
return new ModelAndView("jsonView")
|
||||||
|
.addObject("saved", saved)
|
||||||
|
.addObject("rtnMsg", rtnMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rtnMsg = applBean.createLsctAprv(lsctAprv); // 등록
|
||||||
|
|
||||||
|
if (rtnMsg.contains("[S]")) {
|
||||||
|
saved = true;
|
||||||
|
} else {
|
||||||
|
saved = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ModelAndView("jsonView")
|
||||||
|
.addObject("saved", saved)
|
||||||
|
.addObject("rtnMsg", rtnMsg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
<?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.appl.dao.ApplMapper">
|
||||||
|
|
||||||
|
<select id="countRequestedLsctAprv" parameterType="cokr.xit.fims.rent.LsctAprv" resultType="int">
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM TB_LSCT_MPNG LM
|
||||||
|
LEFT OUTER JOIN TB_LSCT L ON (LM.LSCT_ID = L.LSCT_ID)
|
||||||
|
LEFT OUTER JOIN TB_RENT_ENT RE ON (LM.ENT_ID = RE.ENT_ID)
|
||||||
|
LEFT OUTER JOIN TB_CRDN C ON (LM.CRDN_ID = C.CRDN_ID)
|
||||||
|
WHERE LM.DEL_YN = 'N'
|
||||||
|
AND LM.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
|
||||||
|
AND LM.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
|
||||||
|
AND LM.DMND_YN = 'Y' <!-- 요청 여부 -->
|
||||||
|
AND LM.CHG_APRV_STTS_CD = 'RQ' <!-- 변경 승인 상태 -->
|
||||||
|
AND C.CRDN_STTS_CD BETWEEN '11' AND '45'
|
||||||
|
AND LM.LSCT_MPNG_ID != '9999999999'
|
||||||
|
AND C.MM_CODE = #{mmCode}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<update id="updateInProgress" parameterType="cokr.xit.fims.crdn.Crdn">
|
||||||
|
UPDATE TB_CRDN
|
||||||
|
SET IN_PROGRESS = 'Y'
|
||||||
|
WHERE DEL_YN = 'N'
|
||||||
|
AND MM_CODE = #{mmCode}
|
||||||
|
AND SGG_CD = #{sggCd}
|
||||||
|
AND TASK_SE_CD = #{taskSeCd}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue