diff --git a/src/main/java/cokr/xit/fims/rent/RentQuery.java b/src/main/java/cokr/xit/fims/rent/RentQuery.java index e56b5553..b2a9bdf3 100644 --- a/src/main/java/cokr/xit/fims/rent/RentQuery.java +++ b/src/main/java/cokr/xit/fims/rent/RentQuery.java @@ -44,7 +44,7 @@ public class RentQuery extends CmmnQuery { private String omJno; // 소유주 번호 private String[] rtpyrNos; // 납부자 번호s private String rtpyrNo; // 납부자 번호 - private String regTrgtYn; // 임대차계약 등록 대상 여부 + private String trgtSttsNm; // 등록 대상 여부 private String nxrpCrdnLinkYn; // 세외수입 단속 연계 여부 // ETC @@ -251,12 +251,12 @@ public class RentQuery extends CmmnQuery { this.rtpyrNo = rtpyrNo; } - public String getRegTrgtYn() { - return ifEmpty(regTrgtYn, () -> null); + public String getTrgtSttsNm() { + return ifEmpty(trgtSttsNm, () -> null); } - public void setRegTrgtYn(String regTrgtYn) { - this.regTrgtYn = regTrgtYn; + public void setTrgtSttsNm(String trgtSttsNm) { + this.trgtSttsNm = trgtSttsNm; } public String getNxrpCrdnLinkYn() { diff --git a/src/main/java/cokr/xit/fims/rent/dao/LsctMapper.java b/src/main/java/cokr/xit/fims/rent/dao/LsctMapper.java index 0badc891..2a104d59 100644 --- a/src/main/java/cokr/xit/fims/rent/dao/LsctMapper.java +++ b/src/main/java/cokr/xit/fims/rent/dao/LsctMapper.java @@ -30,8 +30,8 @@ public interface LsctMapper extends AbstractMapper { List selectMainList(RentQuery req); /** - * @param req 임대차계약 대장 조회 조건 - * @return 임대차계약 대장 목록 + * @param req 단속 ID + * @return 단속 대장 목록 */ DataObject selectCrdnInfo(String crndId); diff --git a/src/main/java/cokr/xit/fims/rent/service/bean/LsctBean.java b/src/main/java/cokr/xit/fims/rent/service/bean/LsctBean.java index 167758d1..00a96f81 100644 --- a/src/main/java/cokr/xit/fims/rent/service/bean/LsctBean.java +++ b/src/main/java/cokr/xit/fims/rent/service/bean/LsctBean.java @@ -25,7 +25,9 @@ import cokr.xit.fims.payer.service.bean.PayerBean; import cokr.xit.fims.rent.Lsct; import cokr.xit.fims.rent.RentQuery; import cokr.xit.fims.rent.dao.FinSysFtpMapper; +import cokr.xit.fims.rent.dao.HirerMapper; import cokr.xit.fims.rent.dao.LsctMapper; +import cokr.xit.fims.rent.dao.RentEntMapper; import cokr.xit.foundation.component.AbstractBean; import cokr.xit.foundation.data.DataObject; @@ -46,6 +48,14 @@ public class LsctBean extends AbstractBean { @Resource(name = "lsctMapper") private LsctMapper lsctMapper; + /** 임대 기업 대장 정보 DAO */ + @Resource(name = "rentEntMapper") + private RentEntMapper rentEntMapper; + + /** 임차인 정보 정보 DAO */ + @Resource(name = "hirerMapper") + private HirerMapper hirerMapper; + /** 파일 정보 Bean */ @Resource(name = "fileBean") private FileBean fileBean; @@ -599,10 +609,73 @@ public class LsctBean extends AbstractBean { * */ public String createLsct(Lsct lsct) { - // 사용자 임대 기업 매핑(TB_USER_RENT_ENT_MPNG) 대장을 등록한다. - int rtnNocs = lsctMapper.insertLsct(lsct); + // 변수 선언 + int rtnNocs = -1; // 처리 결과 건수 + String rtnMsg = ""; // 처리 결과 메시지 + + RentQuery req = new RentQuery(); + req.setCrdnId(lsct.getCrdnId()); // 단속 ID + req.setEntId(lsct.getEntId()); // 기업 ID + req.setHirerId(lsct.getHirerId()); // 임차인 ID + req.setDelYn("N"); + + // 단속(TB_CRDN) 대장 조회 + DataObject crdnInfo = lsctMapper.selectCrdnInfo(lsct.getCrdnId()); + + // 단속 자료가 없다면 종료.. + if (crdnInfo == null) { + rtnMsg = "[F] 작업 중 단속 자료가 존재하지 않습니다."; + return rtnMsg; + } + // 단속 자료가 삭제 되었다면 종료.. + if (crdnInfo.string("DEL_YN").equals("Y")) { + rtnMsg = "[F] 작업 중 단속 자료가 삭제되었습니다."; + return rtnMsg; + } + + // 임대 기업(TB_RENT_ENT) 대장 조회 + req.setOrderBy("RE.ENT_ID DESC"); + DataObject rentEntInfo = rentEntMapper.selectRentEntInfo(req); + + // 임대 기업 자료가 없다면 종료.. + if (rentEntInfo == null) { + rtnMsg = "[F] 작업 중 임대 기업 자료가 존재하지 않습니다."; + return rtnMsg; + } + // 임대 기업 자료가 삭제 되었다면 종료.. + if (rentEntInfo.string("DEL_YN").equals("Y")) { + rtnMsg = "[F] 작업 중 임대 기업 자료가 삭제되었습니다."; + return rtnMsg; + } + + // 임차인(TB_HIRER) 대장 조회 + req.setOrderBy("H.HIRER_ID DESC"); + DataObject hirerInfo = hirerMapper.selectHirerInfo(req); + + // 임차인 자료가 없다면 종료.. + if (hirerInfo == null) { + rtnMsg = "[F] 작업 중 임차인 자료가 존재하지 않습니다."; + return rtnMsg; + } + // 임차인 자료가 삭제 되었다면 종료.. + if (hirerInfo.string("DEL_YN").equals("Y")) { + rtnMsg = "[F] 작업 중 임차인 자료가 삭제되었습니다."; + return rtnMsg; + } + + // 임대차계약(TB_LSCT) 대장에 등록할 기초 정보 입력 + lsct.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드 + lsct.setTaskSeCd(crdnInfo.string("TASK_SE_CD")); // 업무 구분 코드 + lsct.setCrdnYmd(crdnInfo.string("CRDN_YMD")); // 단속 일자 + lsct.setCrdnTm(crdnInfo.string("CRDN_TM")); // 단속 시각 + lsct.setVhrno(crdnInfo.string("VHRNO")); // 자동차등록번호 + lsct.setRtpyrNo(crdnInfo.string("RTPYR_NO")); // 납부자 번호 + lsct.setRtpyrNm(crdnInfo.string("RTPYR_NM")); // 납부자 명 + + // 임대차계약(TB_LSCT) 대장을 등록한다. + rtnNocs = lsctMapper.insertLsct(lsct); if (rtnNocs != 1) { - throw new RuntimeException("[F] 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + throw new RuntimeException("[F] 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } return "[S] 등록 작업이 정상 처리 되었습니다."; @@ -619,7 +692,7 @@ public class LsctBean extends AbstractBean { // 임대차계약(TB_LSCT) 대장을 삭제한다. int rtnNocs = lsctMapper.deleteLsct(lsct); if (rtnNocs < 1) { - throw new RuntimeException("[F] 삭제 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + throw new RuntimeException("[F] 삭제 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } return "[S] 삭제 작업이 정상 처리 되었습니다."; diff --git a/src/main/java/cokr/xit/fims/rent/web/Rent02Controller.java b/src/main/java/cokr/xit/fims/rent/web/Rent02Controller.java index ae742cc7..d2f2395d 100644 --- a/src/main/java/cokr/xit/fims/rent/web/Rent02Controller.java +++ b/src/main/java/cokr/xit/fims/rent/web/Rent02Controller.java @@ -272,6 +272,7 @@ public class Rent02Controller extends ApplicationController { return mav .addObject("pageName", "rent02030") // jsp pageName .addObject("prefixUrl", CLASS_URL) // prefixUrl + .addObject("crdnId", req.getCrdnId()) // 단속 ID .addObject("entId", req.getEntId()) // 기업 ID .addObject("schCtrtYmd", req.getSchCtrtYmd()) // 계약일자 - 단속일자 .addObject("schVhrno", req.getSchVhrno()) // 자동차등록번호 diff --git a/src/main/resources/sql/mapper/fims/rent/lsct-mapper.xml b/src/main/resources/sql/mapper/fims/rent/lsct-mapper.xml index 50588021..554765d8 100644 --- a/src/main/resources/sql/mapper/fims/rent/lsct-mapper.xml +++ b/src/main/resources/sql/mapper/fims/rent/lsct-mapper.xml @@ -149,11 +149,25 @@ @@ -337,9 +351,14 @@ , PA.ADDR , PA.DTL_ADDR , L.LSCT_ID - , (CASE WHEN L.LSCT_ID IS NULL THEN 'Y' ELSE 'N' END) AS TRGT_YN + , (CASE WHEN L.CHG_APRV_YN = 'Y' AND L.CHG_DMND_YN = 'Y' THEN '승인완료' + WHEN L.CHG_APRV_YN = 'N' AND L.CHG_DMND_YN = 'Y' THEN '승인요청' + WHEN L.CHG_APRV_YN = 'N' AND L.CHG_DMND_YN = 'N' THEN '계약서등록' + ELSE '대상' + END) AS TRGT_STTS_NM , (CASE WHEN L.ENT_ID IS NULL THEN (SELECT RE.ENT_ID FROM TB_RENT_ENT RE WHERE RE.ENT_NO = P.RTPYR_NO) - ELSE L.ENT_ID END) AS ENT_ID + ELSE L.ENT_ID + END) AS ENT_ID , L.HIRER_ID , L.CHG_DMND_YN , L.CHG_DMND_DT @@ -375,13 +394,22 @@ AND C.VHRNO = #{schVhrno} - + - - AND L.LSCT_ID IS NULL + + AND L.CHG_APRV_YN = 'Y' + AND L.CHG_DMND_YN = 'Y' + + + AND L.CHG_APRV_YN = 'N' + AND L.CHG_DMND_YN = 'Y' + + + AND L.CHG_APRV_YN = 'N' + AND L.CHG_DMND_YN = 'N' - AND L.LSCT_ID IS NOT NULL + AND L.LSCT_ID IS NULL @@ -529,6 +557,13 @@ /* 임대차계약 대장 등록(lsctMapper.insertLsct) */ + + + + + + + INSERT INTO TB_LSCT ( LSCT_ID , CRDN_ID @@ -572,14 +607,14 @@ , #{rtpyrNm} , #{entId} , #{hirerId} - , #{chgDmndYn} + , 'N' , #{chgDmndDt} , #{chgDmndRgtr} , #{chgDmndIp} , #{chgDmndMdfcnDt} , #{chgDmndMdfr} , #{chgDmndMdfcnIp} - , #{chgAprvYn} + , 'N' , #{chgAprvDt} , #{chgAutzr} , #{chgAprvRsn}