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