diff --git a/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java b/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java index 7919448e..9cfbd4ee 100644 --- a/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java +++ b/src/main/java/cokr/xit/fims/excl/LevyExclQuery.java @@ -41,22 +41,17 @@ public class LevyExclQuery extends CmmnQuery { private String schSttrNm; // 의견제출_진술자 명 private String schReRegYmdFrom; // 단속재등록_재등록 일자 시작 private String schReRegYmdTo; // 단속재등록_재등록 일자 종료 - private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작 - private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료 - private String schVhrno; // 단속(TB_CRDN)_차량번호 - private String schRtpyrNo; // 납부자(TB_PAYER)_납부자 번호 - private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명 // 상세 검색 조건 + private String schCrdnYmdFrom; // 단속(TB_CRDN)_단속 일자 시작 + private String schCrdnYmdTo; // 단속(TB_CRDN)_단속 일자 종료 + private String schVhrno; // 단속(TB_CRDN)_차량번호 + private String schRtpyrNo; // 납부자(TB_PAYER)_납부자 번호 + private String schRtpyrNm; // 납부자(TB_PAYER)_납부자 명 - // 동적 검색 조건 - private String levyExclSeCd; // 부과제외_부과 제외 구분 코드 - private String levyExclSeNm; // 부과제외_부과 제외 구분 명 - private String vhrno; // 단속(TB_CRDN)_차량번호 - private String rtpyrNm; // 납부자(TB_PAYER)_납부자 명 - private String rtpyrNo; // 납부자(TB_PAYER)_납부자 번호 // ETC private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). private String delRsn; // 삭제 사유 + private String levyExclSeCd; // 부과제외_부과 제외 구분 코드 private String ansRsnCd; // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) - 답변 사유 코드 private String sndngRcvmtCd; // 발송 수납 코드 @@ -258,101 +253,47 @@ public class LevyExclQuery extends CmmnQuery { return self(); } - public String getSchVhrno() { - return ifEmpty(schVhrno, () -> null); - } - - public T setSchVhrno(String schVhrno) { - this.schVhrno = schVhrno; - return self(); - } - - public String getSchRtpyrNo() { - return ifEmpty(schRtpyrNo, () -> null); - } - - public T setSchRtpyrNo(String schRtpyrNo) { - this.schRtpyrNo = schRtpyrNo; - return self(); - } - - public String getSchRtpyrNm() { - return ifEmpty(schRtpyrNm, () -> null); - } - - public T setSchRtpyrNm(String schRtpyrNm) { - this.schRtpyrNm = schRtpyrNm; - return self(); - } - - public String getSchCrdnYmdFrom() { - return ifEmpty(schCrdnYmdFrom, () -> null); - } - - public T setSchCrdnYmdFrom(String schCrdnYmdFrom) { - this.schCrdnYmdFrom = schCrdnYmdFrom; - return self(); - } - - public String getSchCrdnYmdTo() { - return ifEmpty(schCrdnYmdTo, () -> null); - } - - public T setSchCrdnYmdTo(String schCrdnYmdTo) { - this.schCrdnYmdTo = schCrdnYmdTo; - return self(); - } - // 상세 검색 조건 /////////////////////////////////////////////////////////////// + public String getSchCrdnYmdFrom() { + return ifEmpty(schCrdnYmdFrom, () -> null); + } - // 상세 검색 조건 /////////////////////////////////////////////////////////////// - - // 동적 검색 조건 /////////////////////////////////////////////////////////////// - public String getLevyExclSeNm() { - return ifEmpty(levyExclSeNm, () -> null); - } - - public T setLevyExclSeNm(String levyExclSeNm) { - this.levyExclSeNm = levyExclSeNm; - return self(); - } + public void setSchCrdnYmdFrom(String schCrdnYmdFrom) { + this.schCrdnYmdFrom = schCrdnYmdFrom; + } - public String getVhrno() { - return ifEmpty(vhrno, () -> null); - } + public String getSchCrdnYmdTo() { + return ifEmpty(schCrdnYmdTo, () -> null); + } - public T setVhrno(String vhrno) { - this.vhrno = vhrno; - return self(); - } + public void setSchCrdnYmdTo(String schCrdnYmdTo) { + this.schCrdnYmdTo = schCrdnYmdTo; + } - public String getRtpyrNm() { - return ifEmpty(rtpyrNm, () -> null); - } + public String getSchVhrno() { + return ifEmpty(schVhrno, () -> null); + } - public T setRtpyrNm(String rtpyrNm) { - this.rtpyrNm = rtpyrNm; - return self(); - } + public void setSchVhrno(String schVhrno) { + this.schVhrno = schVhrno; + } - public String getRtpyrNo() { - return ifEmpty(rtpyrNo, () -> null); + public String getSchRtpyrNo() { + return ifEmpty(schRtpyrNo, () -> null); } - public T setRtpyrNo(String rtpyrNo) { - this.rtpyrNo = rtpyrNo; - return self(); + public void setSchRtpyrNo(String schRtpyrNo) { + this.schRtpyrNo = schRtpyrNo; } - public String getLevyExclSeCd() { - return ifEmpty(levyExclSeCd, () -> null); - } + public String getSchRtpyrNm() { + return ifEmpty(schRtpyrNm, () -> null); + } - public T setLevyExclSeCd(String levyExclSeCd) { - this.levyExclSeCd = levyExclSeCd; - return self(); - } - // 동적 검색 조건 /////////////////////////////////////////////////////////////// + public void setSchRtpyrNm(String schRtpyrNm) { + this.schRtpyrNm = schRtpyrNm; + } + // 상세 검색 조건 /////////////////////////////////////////////////////////////// // ETC ///////////////////////////////////////////////////////////////////// public String getCallPurpose() { @@ -373,6 +314,15 @@ public class LevyExclQuery extends CmmnQuery { return self(); } + public String getLevyExclSeCd() { + return ifEmpty(levyExclSeCd, () -> null); + } + + public T setLevyExclSeCd(String levyExclSeCd) { + this.levyExclSeCd = levyExclSeCd; + return self(); + } + public String getAnsRsnCd() { return ifEmpty(ansRsnCd, () -> null); } diff --git a/src/main/java/cokr/xit/fims/rent/Hirer.java b/src/main/java/cokr/xit/fims/rent/Hirer.java new file mode 100644 index 00000000..fc2fb4e0 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/Hirer.java @@ -0,0 +1,130 @@ +package cokr.xit.fims.rent; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +/** + * 임차인 정보 + * @author JoJH + */ +@Getter +@Setter +public class Hirer extends AbstractEntity { + + /** + * 임차인 ID + */ + private String hirerId; + + /** + * 자동차등록번호 + */ + private String vhrno; + + /** + * 임차 시작 일시 + */ + private String hireBgngDt; + + /** + * 임차 종료 일시 + */ + private String hireEndDt; + + /** + * 임차인 구분 코드 + */ + private String hirerSeCd; + + /** + * 법인 사업자 번호 + */ + private String corpBzmnNo; + + /** + * 면허 번호 + */ + private String lcnsNo; + + /** + * 임차인 명 + */ + private String hirerNm; + + /** + * 임차인 휴대 전화번호 + */ + private String hirerMblTelno; + + /** + * 임차인 이메일 + */ + private String hirerEml; + + /** + * 임차인 우편번호 + */ + private String hirerZip; + + /** + * 임차인 주소 + */ + private String hirerAddr; + + /** + * 임차인 상세 주소 + */ + private String hirerDtlAddr; + + /** + * 첨부 파일 수 + */ + private Integer atchFileCnt; + + /** + * 첨부 파일 삭제 여부 + */ + private String atchFileDelYn; + + /** + * 첨부 파일 등록 일시 + */ + private String atchFileRegDt; + + /** + * 첨부 파일 등록자 + */ + private String atchFileRgtr; + + /** + * 첨부 파일 등록 IP + */ + private String atchFileRegIp; + + /** + * 첨부 파일 삭제 일시 + */ + private String atchFileDelDt; + + /** + * 첨부 파일 삭제자 + */ + private String atchFileDltr; + + /** + * 첨부 파일 삭제 IP + */ + private String atchFileDelIp; + + /** + * 삭제 여부 + */ + private String delYn; + + /** + * 삭제 사유 + */ + private String delRsn; + +} diff --git a/src/main/java/cokr/xit/fims/rent/Lsct.java b/src/main/java/cokr/xit/fims/rent/Lsct.java new file mode 100644 index 00000000..50a1e9bd --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/Lsct.java @@ -0,0 +1,200 @@ +package cokr.xit.fims.rent; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +/** + * 임대차계약 운전자 정보 + * @author JoJH + */ +@Getter +@Setter +public class Lsct extends AbstractEntity { + + /** + * 임대차계약 ID + */ + private String lsctId; + + /** + * 단속 ID + */ + private String crdnId; + + /** + * 부과 ID + */ + private String levyId; + + /** + * 시군구 코드 + */ + private String sggCd; + + /** + * 업무 구분 코드 + */ + private String taskSeCd; + + /** + * 단속 일시 + */ + private String crdnDt; + + /** + * 자동차등록번호 + */ + private String vhrno; + + /** + * 단속 법정동 명 + */ + private String crdnStdgNm; + + /** + * 단속 장소 + */ + private String crdnPlc; + + /** + * 위반 항목 + */ + private String vltnArtcl; + + /** + * 납부자 번호 + */ + private String rtpyrNo; + + /** + * 납부자 명 + */ + private String rtpyrNm; + + /** + * 기업 ID + */ + private String entId; + + /** + * 임차인 ID + */ + private String hirerId; + + /** + * 임차인 구분 코드 + */ + private String hirerSeCd; + + /** + * 임차인 명 + */ + private String hirerNm; + + /** + * 임차인 번호 + */ + private String hirerNo; + + /** + * 임차인 휴대 전화번호 + */ + private String hirerMblTelno; + + /** + * 임차인 이메일 주소 + */ + private String hirerEmlAddr; + + /** + * 임차인 우편번호 + */ + private String hirerZip; + + /** + * 임차인 주소 + */ + private String hirerAddr; + + /** + * 임차인 상세 주소 + */ + private String hirerDtlAddr; + + /** + * 첨부 파일 수 + */ + private Integer atchFileCnt; + + /** + * 변경 요청 여부 + */ + private String chgDmndYn; + + /** + * 변경 요청 일시 + */ + private String chgDmndDt; + + /** + * 변경 요청 등록자 + */ + private String chgDmndRgtr; + + /** + * 변경 요청 IP + */ + private String chgDmndIp; + + /** + * 변경 요청 수정 일시 + */ + private String chgDmndMdfcnDt; + + /** + * 변경 요청 수정자 + */ + private String chgDmndMdfr; + + /** + * 변경 요청 수정 IP + */ + private String chgDmndMdfcnIp; + + /** + * 변경 승인 여부 + */ + private String chgAprvYn; + + /** + * 변경 승인 일시 + */ + private String chgAprvDt; + + /** + * 변경 승인자 + */ + private String chgAutzr; + + /** + * 변경 승인 사유 + */ + private String chgAprvRsn; + + /** + * 변경 승인 IP + */ + private String chgAprvIp; + + /** + * 삭제 여부 + */ + private String delYn; + + /** + * 삭제 사유 + */ + private String delRsn; + +} diff --git a/src/main/java/cokr/xit/fims/rent/RentQuery.java b/src/main/java/cokr/xit/fims/rent/RentQuery.java index dee1224d..f8fc50fa 100644 --- a/src/main/java/cokr/xit/fims/rent/RentQuery.java +++ b/src/main/java/cokr/xit/fims/rent/RentQuery.java @@ -25,9 +25,18 @@ public class RentQuery extends CmmnQuery { private String hirerId; // 임차인 ID private String lsctId; // 임대차계약 ID + private String[] schEntNos; // 기업 번호s private String schEntNo; // 기업 번호 private String schEntNm; // 기업 명 private String schRprsvNm; // 대표자 명 + private String schCrdnYmdFrom; // 단속 일자 시작 + private String schCrdnYmdTo; // 단속 일자 종료 + private String schVhrno; // 차량번호 + + private String[] omJnos; // 소유주 번호s + private String omJno; // 소유주 번호 + private String[] rtpyrNos; // 납부자 번호s + private String rtpyrNo; // 납부자 번호 // ETC private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). @@ -37,91 +46,144 @@ public class RentQuery extends CmmnQuery { return ifEmpty(crdnId, () -> null); } - public T setCrdnId(String crdnId) { + public void setCrdnId(String crdnId) { this.crdnId = crdnId; - return self(); } public String getMpngId() { return ifEmpty(mpngId, () -> null); } - public T setMpngId(String mpngId) { + public void setMpngId(String mpngId) { this.mpngId = mpngId; - return self(); } public String getUserId() { return ifEmpty(userId, () -> null); } - public T setUserId(String userId) { + public void setUserId(String userId) { this.userId = userId; - return self(); } public String[] getEntIds() { return ifEmpty(entIds, () -> null); } - public T setEntIds(String... entIds) { + public void setEntIds(String... entIds) { this.entIds = entIds; - return self(); } public String getEntId() { return ifEmpty(entId, () -> null); } - public T setEntId(String entId) { + public void setEntId(String entId) { this.entId = entId; - return self(); } public String getHirerId() { return ifEmpty(hirerId, () -> null); } - public T setHirerId(String hirerId) { + public void setHirerId(String hirerId) { this.hirerId = hirerId; - return self(); } public String getLsctId() { return ifEmpty(lsctId, () -> null); } - public T setLsctId(String lsctId) { + public void setLsctId(String lsctId) { this.lsctId = lsctId; - return self(); } + public String[] getSchEntNos() { + return ifEmpty(schEntNos, () -> null); + } + + public void setSchEntNos(String... schEntNos) { + this.schEntNos = schEntNos; + } public String getSchEntNo() { return ifEmpty(schEntNo, () -> null); } - public T setSchEntNo(String schEntNo) { + public void setSchEntNo(String schEntNo) { this.schEntNo = schEntNo; - return self(); } public String getSchEntNm() { return ifEmpty(schEntNm, () -> null); } - public T setSchEntNm(String schEntNm) { + public void setSchEntNm(String schEntNm) { this.schEntNm = schEntNm; - return self(); } public String getSchRprsvNm() { return ifEmpty(schRprsvNm, () -> null); } - public T setSchRprsvNm(String schRprsvNm) { + public void setSchRprsvNm(String schRprsvNm) { this.schRprsvNm = schRprsvNm; - return self(); + } + + public String getSchCrdnYmdFrom() { + return ifEmpty(schCrdnYmdFrom, () -> null); + } + + public void setSchCrdnYmdFrom(String schCrdnYmdFrom) { + this.schCrdnYmdFrom = schCrdnYmdFrom; + } + + public String getSchCrdnYmdTo() { + return ifEmpty(schCrdnYmdTo, () -> null); + } + + public void setSchCrdnYmdTo(String schCrdnYmdTo) { + this.schCrdnYmdTo = schCrdnYmdTo; + } + + public String getSchVhrno() { + return ifEmpty(schVhrno, () -> null); + } + + public void setSchVhrno(String schVhrno) { + this.schVhrno = schVhrno; + } + + public String[] getOmJnos() { + return ifEmpty(omJnos, () -> null); + } + + public void setOmJnos(String... omJnos) { + this.omJnos = omJnos; + } + + public String getOmJno() { + return ifEmpty(omJno, () -> null); + } + + public void setOmJno(String omJno) { + this.omJno = omJno; + } + + public String[] getRtpyrNos() { + return ifEmpty(rtpyrNos, () -> null); + } + + public void setRtpyrNos(String... rtpyrNos) { + this.rtpyrNos = rtpyrNos; + } + + public String getRtpyrNo() { + return ifEmpty(rtpyrNo, () -> null); + } + + public void setRtpyrNo(String rtpyrNo) { + this.rtpyrNo = rtpyrNo; } // ETC ///////////////////////////////////////////////////////////////////// @@ -129,18 +191,16 @@ public class RentQuery extends CmmnQuery { return ifEmpty(callPurpose, () -> null); } - public T setCallPurpose(String callPurpose) { + public void setCallPurpose(String callPurpose) { this.callPurpose = callPurpose; - return self(); } public String getDelRsn() { return ifEmpty(delRsn, () -> null); } - public T setDelRsn(String delRsn) { + public void setDelRsn(String delRsn) { this.delRsn = delRsn; - return self(); } // ETC ///////////////////////////////////////////////////////////////////// diff --git a/src/main/java/cokr/xit/fims/rent/dao/HirerMapper.java b/src/main/java/cokr/xit/fims/rent/dao/HirerMapper.java new file mode 100644 index 00000000..22b4c5ba --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/dao/HirerMapper.java @@ -0,0 +1,99 @@ +package cokr.xit.fims.rent.dao; + +import java.util.List; +import java.util.Map; + +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.rent.Hirer; +import cokr.xit.fims.rent.RentQuery; + +/** 임차인 정보 정보 DAO + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-08-27   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Mapper("hirerMapper") +public interface HirerMapper extends AbstractMapper { + + /**지정한 조건에 따라 임차인 정보 목록을 조회하여 반환한다.
+ * @param req 임차인 정보 조회 조건 + * @return 임차인 정보 목록 + */ + List selectHirerList(RentQuery req); + + /**지정한 조건에 따라 임차인 정보 객체들을 반환한다. + * @param req 임차인 정보 조회 조건 + * @return 임차인 정보 객체 목록 + */ + List selectHirers(RentQuery req); + + /**임차인 정보 정보를 등록한다. + * @param params 파라미터 + *
  • "hirer" - 임차인 정보
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int insertHirer(Map params); + + /**임차인 정보 정보를 등록한다. + * @param hirer 임차인 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean insert(Hirer hirer) { + return hirer != null && insertHirer(params().set("hirer", hirer)) == 1; + } + + /**임차인 정보 정보를 수정한다. + * @param params 파라미터 + *
  • "hirer" - 임차인 정보
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateHirer(Map params); + + /**임차인 정보 정보를 수정한다. + * @param hirer 임차인 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean update(Hirer hirer) { + return hirer != null && updateHirer(params().set("hirer", hirer)) == 1; + } + + /**지정한 임차인 정보을 삭제한다. + * @param params 파라미터 + *
  • "hirer" - 임차인 정보
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteHirer(Map params); + + /**임차인 정보 정보를 삭제한다. + * @param hirer 임차인 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean delete(Hirer hirer) { + return hirer != null && deleteHirer(params().set("hirer", hirer)) == 1; + } + +} diff --git a/src/main/java/cokr/xit/fims/rent/dao/LsctMapper.java b/src/main/java/cokr/xit/fims/rent/dao/LsctMapper.java new file mode 100644 index 00000000..f33d6299 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/dao/LsctMapper.java @@ -0,0 +1,122 @@ +package cokr.xit.fims.rent.dao; + +import java.util.List; +import java.util.Map; + +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; +import cokr.xit.fims.crdn.Crdn; +import cokr.xit.fims.rent.Lsct; +import cokr.xit.fims.rent.RentQuery; + +/** 임대차계약 대장 정보 DAO + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-08-27   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Mapper("lsctMapper") +public interface LsctMapper extends AbstractMapper { + + /** + * @param req 임대차계약 대장 조회 조건 + * @return 임대차계약 대장 목록 + */ + List selectMainList(RentQuery req); + + /** + * @param req 임대차계약 대장 조회 조건 + * @return 임대차계약 대장 목록 + */ + DataObject selectCrdnInfo(String crndId); + + /**원본 단속 뷰 정보를 단속 대장 정보에 복사 등록한다. + * @param params 파라미터 + *
  • "lsct" - 임대차계약 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int copyMainToCrdn(Crdn crdn); + + int copyMainToCrdnAdi(Crdn crdn); + + /**지정한 조건에 따라 임대차계약 대장 목록을 조회하여 반환한다.
+ * @param req 임대차계약 대장 조회 조건 + * @return 임대차계약 대장 목록 + */ + List selectLsctList(RentQuery req); + + /**지정한 조건에 따라 임대차계약 대장 객체들을 반환한다. + * @param req 임대차계약 대장 조회 조건 + * @return 임대차계약 대장 객체 목록 + */ + List selectLscts(RentQuery req); + + /**임대차계약 대장 정보를 등록한다. + * @param params 파라미터 + *
  • "lsct" - 임대차계약 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int insertLsct(Map params); + + /**임대차계약 대장 정보를 등록한다. + * @param lsct 임대차계약 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean insert(Lsct lsct) { + return lsct != null && insertLsct(params().set("lsct", lsct)) == 1; + } + + /**임대차계약 대장 정보를 수정한다. + * @param params 파라미터 + *
  • "lsct" - 임대차계약 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateLsct(Map params); + + /**임대차계약 대장 정보를 수정한다. + * @param lsct 임대차계약 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean update(Lsct lsct) { + return lsct != null && updateLsct(params().set("lsct", lsct)) == 1; + } + + /**지정한 임대차계약 대장을 삭제한다. + * @param params 파라미터 + *
  • "lsct" - 임대차계약 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteLsct(Map params); + + /**임대차계약 대장 정보를 삭제한다. + * @param lsct 임대차계약 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + default boolean delete(Lsct lsct) { + return lsct != null && deleteLsct(params().set("lsct", lsct)) == 1; + } + +} diff --git a/src/main/java/cokr/xit/fims/rent/service/HirerService.java b/src/main/java/cokr/xit/fims/rent/service/HirerService.java new file mode 100644 index 00000000..abc64fcd --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/HirerService.java @@ -0,0 +1,61 @@ +package cokr.xit.fims.rent.service; + +import java.util.List; + +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.rent.Hirer; +import cokr.xit.fims.rent.RentQuery; + +/**임차인 정보 관리 서비스 인터페이스. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-08-27   JoJH 최초 작성
+ * ================================
+ * 
+ */ +public interface HirerService { + + /**지정한 조건에 따라 임차인 정보 목록을 조회하여 반환한다. + * @param req 임차인 정보 조회 조건 + * @return 임차인 정보 목록 + */ + List getHirerList(RentQuery req); + + /**지정한 조건에 따라 임차인 정보 객체들을 반환한다. + * @param req 임차인 정보 조회 조건 + * @return 임차인 정보 객체 목록 + */ + List getHirers(RentQuery req); + + /**임차인 정보 정보를 등록한다. + * @param hirer 임차인 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean create(Hirer hirer); + + /**임차인 정보 정보를 수정한다. + * @param hirer 임차인 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean update(Hirer hirer); + + /**임차인 정보 정보를 삭제한다. + * @param hirer 임차인 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean remove(Hirer hirer); + +} diff --git a/src/main/java/cokr/xit/fims/rent/service/LsctService.java b/src/main/java/cokr/xit/fims/rent/service/LsctService.java new file mode 100644 index 00000000..b1239e3b --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/LsctService.java @@ -0,0 +1,61 @@ +package cokr.xit.fims.rent.service; + +import java.util.List; + +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.rent.Lsct; +import cokr.xit.fims.rent.RentQuery; + +/**임대차계약 대장 관리 서비스 인터페이스. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-08-27   JoJH 최초 작성
+ * ================================
+ * 
+ */ +public interface LsctService { + + /**지정한 조건에 따라 임대차계약 대장 목록을 조회하여 반환한다. + * @param req 임대차계약 대장 조회 조건 + * @return 임대차계약 대장 목록 + */ + List getLsctList(RentQuery req); + + /**지정한 조건에 따라 임대차계약 대장 객체들을 반환한다. + * @param req 임대차계약 대장 조회 조건 + * @return 임대차계약 대장 객체 목록 + */ + List getLscts(RentQuery req); + + /**임대차계약 대장 정보를 등록한다. + * @param lsct 임대차계약 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean create(Lsct lsct); + + /**임대차계약 대장 정보를 수정한다. + * @param lsct 임대차계약 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean update(Lsct lsct); + + /**임대차계약 대장 정보를 삭제한다. + * @param lsct 임대차계약 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + boolean remove(Lsct lsct); + +} diff --git a/src/main/java/cokr/xit/fims/rent/service/bean/HirerBean.java b/src/main/java/cokr/xit/fims/rent/service/bean/HirerBean.java new file mode 100644 index 00000000..c5c7e994 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/bean/HirerBean.java @@ -0,0 +1,82 @@ +package cokr.xit.fims.rent.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import cokr.xit.foundation.component.AbstractBean; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.rent.Hirer; +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.dao.HirerMapper; + +/**임차인 정보 정보 관리 Bean + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-08-27   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Component("hirerBean") +public class HirerBean extends AbstractBean { + + /** 임차인 정보 정보 DAO */ + @Resource(name = "hirerMapper") + private HirerMapper hirerMapper; + + /**지정한 조건에 따라 임차인 정보 목록을 조회하여 반환한다. + * @param req 임차인 정보 조회 조건 + * @return 임차인 정보 목록 + */ + public List getHirerList(RentQuery req) { + return hirerMapper.selectHirerList(req); + } + + /**지정한 조건에 따라 임차인 정보 객체들을 반환한다. + * @param req 임차인 정보 조회 조건 + * @return 임차인 정보 객체 목록 + */ + public List getHirers(RentQuery req) { + return hirerMapper.selectHirers(req); + } + + /**임차인 정보 정보를 등록한다. + * @param hirer 임차인 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean create(Hirer hirer) { + return hirerMapper.insert(hirer); + } + + /**임차인 정보 정보를 수정한다. + * @param hirer 임차인 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean update(Hirer hirer) { + return hirerMapper.update(hirer); + } + + /**임차인 정보 정보를 삭제한다. + * @param hirer 임차인 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean remove(Hirer hirer) { + return hirerMapper.delete(hirer); + } + +} diff --git a/src/main/java/cokr/xit/fims/rent/service/bean/HirerServiceBean.java b/src/main/java/cokr/xit/fims/rent/service/bean/HirerServiceBean.java new file mode 100644 index 00000000..10c336e5 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/bean/HirerServiceBean.java @@ -0,0 +1,58 @@ +package cokr.xit.fims.rent.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import cokr.xit.foundation.component.AbstractServiceBean; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.rent.Hirer; +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.service.HirerService; + +/**임차인 정보 서비스 구현체. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-08-27   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Service("hirerService") +public class HirerServiceBean extends AbstractServiceBean implements HirerService { + + /** 임차인 정보 정보 Bean */ + @Resource(name = "hirerBean") + private HirerBean hirerBean; + + @Override + public List getHirerList(RentQuery req) { + return hirerBean.getHirerList(req); + } + + @Override + public List getHirers(RentQuery req) { + return hirerBean.getHirers(req); + } + + @Override + public boolean create(Hirer hirer) { + return hirerBean.create(hirer); + } + + @Override + public boolean update(Hirer hirer) { + return hirerBean.update(hirer); + } + + @Override + public boolean remove(Hirer hirer) { + return hirerBean.remove(hirer); + } + +} 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 new file mode 100644 index 00000000..e2d60e70 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/bean/LsctBean.java @@ -0,0 +1,268 @@ +package cokr.xit.fims.rent.service.bean; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import cokr.xit.foundation.component.AbstractBean; +import cokr.xit.foundation.data.DataObject; +import cokr.xit.base.crypto.bean.XitAria; +import cokr.xit.base.file.FileInfo; +import cokr.xit.base.file.service.bean.FileBean; +import cokr.xit.fims.crdn.Crdn; +import cokr.xit.fims.crdn.service.bean.CrdnBean; +import cokr.xit.fims.payer.Payer; +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.LsctMapper; + +/**임대차계약 대장 정보 관리 Bean + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-08-27   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Component("lsctBean") +public class LsctBean extends AbstractBean { + + /** 임대차계약 대장 정보 DAO */ + @Resource(name = "lsctMapper") + private LsctMapper lsctMapper; + + /** 파일 정보 Bean */ + @Resource(name = "fileBean") + private FileBean fileBean; + + /** 단속 정보 Bean */ + @Resource(name="crdnBean") + private CrdnBean crdnBean; + + /** 납부자 대장 정보 Bean */ + @Resource(name = "payerBean") + private PayerBean payerBean; + + /**지정한 조건에 따라 임대차계약 대장 목록을 조회하여 반환한다. + * @param req 임대차계약 대장 조회 조건 + * @return 임대차계약 대장 목록 + */ + public List getLsctList(RentQuery req) { + // 기존 과태료 시스템에서 사용하던 암/복호화 함수 사용을 위해서.. + XitAria crypto = new XitAria("xit-aria"); + + // 연계 View 테이블 조회 + if (req.getSchEntNo() != null && !req.getSchEntNo().equals("")) { + req.setOmJno(crypto.encrypt(req.getSchEntNo())); + } + + List mainList = lsctMapper.selectMainList(req); + + if (mainList.size() > 0) { + for (int iLoop = 0; iLoop < mainList.size(); iLoop++) { + // 통합플랫폼 ID에 맞게 20자리로 변경 + String mainCode = String.format("%020d", mainList.get(iLoop).number("MM_CODE").longValue()); + + // 단속 ID로 단속(TB_CRDN) 정보 조회 + DataObject crdnInfo = lsctMapper.selectCrdnInfo(mainCode); + + // 단속 정보가 존재하지 않는다면.. + if (crdnInfo == null ) { + // 납부자 정보 + Payer payer = new Payer(); + payer.setSggCd(mainList.get(iLoop).string("OM_SGGCODE")); // 시군구 코드 + payer.setRtpyrInptSeCd("07"); // 납부자 입력 구분 코드 FIM015 + switch (mainList.get(iLoop).string("OM_NOGB")) { // 납부자 구분 코드 FIM011 + case "11": + payer.setRtpyrSeCd("01"); break; + case "12": + payer.setRtpyrSeCd("02"); break; + case "13": + payer.setRtpyrSeCd("03"); break; + case "14": + payer.setRtpyrSeCd("04"); break; + case "15": + payer.setRtpyrSeCd("05"); break; + default: + payer.setRtpyrSeCd("05"); break; + } + payer.setRtpyrNo(crypto.decrypt(mainList.get(iLoop).string("OM_JNO"))); // 납부자 번호 + payer.setRtpyrNm(mainList.get(iLoop).string("OM_NAME")); // 납부자명 + payer.setRtpyrBrdt(mainList.get(iLoop).string("OM_NO1")); // 납부자 생년월일 + + // 납부자 주소 정보 + payer.setAddrInptSeCd("07"); // 주소 입력 구분 코드 FIM087 + if (!mainList.get(iLoop).string("OM_DORO_CODE").equals("")) { // 주소 구분 코드 + payer.setAddrSeCd("02"); + } + payer.setZip(mainList.get(iLoop).string("OM_ZIP")); // 우편번호 + payer.setAddr(mainList.get(iLoop).string("OM_JUSO")); // 주소 + payer.setDtlAddr(mainList.get(iLoop).string("OM_BUNJI")); // 상세 주소 + payer.setRoadNmCd(mainList.get(iLoop).string("OM_DORO_CODE")); // 도로명 코드 + payer.setUdgdSeCd(mainList.get(iLoop).string("OM_BLD_POSITION")); // 지하 구분 코드 + payer.setBmno(mainList.get(iLoop).number("OM_BLD_NO1").intValue()); // 건물본번 + payer.setBsno(mainList.get(iLoop).number("OM_BLD_NO2").intValue()); // 건물부번 + payer.setBldgMngNo(mainList.get(iLoop).string("OM_BLD_ADMNO")); // 건물 관리 번호 + payer.setStdgCd(mainList.get(iLoop).string("OM_BDCODE")); // 법정동 코드 + payer.setWholAddr(mainList.get(iLoop).string("OM_JUSO") + ", " + mainList.get(iLoop).string("OM_BUNJI")); // 전체 주소 + + // 납부자 주소 정보 등록 + Payer result = payerBean.create(payer) ? payer : payerBean.getPayerAddrInfo(payer); + + // 단속 정보 Insert + Crdn crdn = new Crdn(); + crdn.setCrdnId(mainList.get(iLoop).string("MM_CODE")); + crdn.setSggCd(mainList.get(iLoop).string("MM_SGGCODE")); + crdn.setTaskSeCd(mainList.get(iLoop).string("MM_TASKGB")); + crdn.setCrdnRegSeCd(String.format("%02d", mainList.get(iLoop).number("MM_DLGB").intValue())); // 단속 등록 구분 코드 + crdn.setCrdnInptSeCd(String.format("%02d", mainList.get(iLoop).number("MM_INGB").intValue())); // 단속 입력 구분 코드 + // 민원 정보는 원본 시스템에서 확인하게끔 null로 입력한다. + crdn.setCvlcptLinkYn("N"); // 민원 연계 여부 + crdn.setLinkId(null); // 연계 ID + crdn.setLinkTblNm(null); // 민원 연계 테이블 명 + crdn.setRtpyrId(result.getRtpyrId()); // 납부자 ID + crdn.setAddrSn(result.getAddrSn()); // 주소 일련번호 + crdn.setCrdnYmd(mainList.get(iLoop).string("MM_DATE")); // 단속 일자 + crdn.setCrdnTm(mainList.get(iLoop).string("MM_TIME")); // 단속 시간 + crdn.setVhrno(mainList.get(iLoop).string("MM_CARNO")); // 자동차등록번호 + crdn.setCrdnStdgNm(mainList.get(iLoop).string("CRDN_STDG_NM")); // 단속 법정동 명 + crdn.setCrdnRoadNm(null); // 단속 도로 명 + crdn.setCrdnPlc(mainList.get(iLoop).string("MM_SGPOS")); // 단속 장소 + crdn.setVltnId(mainList.get(iLoop).string("VLTN_ID")); // 위반 ID + crdn.setGpsX(mainList.get(iLoop).string("MM_GPS_X")); // GPS_X + crdn.setGpsY(mainList.get(iLoop).string("MM_GPS_Y")); // GPS_Y + crdn.setAtchFileCnt(mainList.get(iLoop).number("MM_IMAGECNT").intValue()); // 첨부 파일 수 + crdn.setVin(mainList.get(iLoop).string("MM_VHMNO")); // 차대번호 + crdn.setVhclNm(mainList.get(iLoop).string("MM_CARNAME")); // 차량 명 + crdn.setVhclColr(mainList.get(iLoop).string("MM_CARCOLOR")); // 차량 색상 + crdn.setFfnlgCrdnAmt(mainList.get(iLoop).number("MM_KEUM2").intValue()); // 과태료 단속 금액 + crdn.setFfnlgRdcrt(null); // 과태료 감면율 + crdn.setFfnlgAmt(mainList.get(iLoop).number("MM_KEUM2").intValue()); // 과태료 금액 + crdn.setAdvntceBgngYmd(mainList.get(iLoop).string("MM_SDATE")); // 사전통지 시작 일자 + crdn.setAdvntceDudtYmd(mainList.get(iLoop).string("MM_EDATE")); // 사전통지 납기 일자 + crdn.setAdvntceAmt(mainList.get(iLoop).number("MM_KEUM1").intValue()); // 사전통지 금액 + if (mainList.get(iLoop).string("MM_RECALL").equals("1")) { // 의견 제출 여부 + crdn.setOpnnSbmsnYn("Y"); + } else { + crdn.setOpnnSbmsnYn("N"); + } + crdn.setEtcCn(mainList.get(iLoop).string("MM_ETC")); // 기타 내용 + crdn.setCrdnSttsCd(mainList.get(iLoop).string("MM_STATE")); // 단속 상태 코드 + crdn.setCrdnSttsChgDt(mainList.get(iLoop).string("MM_STATE_DT")); // 단속 상태 변경 일시 + crdn.setAdtnAmt(mainList.get(iLoop).number("MM_ADD_KEUM").intValue()); // 가산 금액 + crdn.setMinusAmt(mainList.get(iLoop).number("MM_MINUS_KEUM").intValue()); // 감경 금액 + crdn.setRcvmtAmt(mainList.get(iLoop).number("MM_SUKEUM").intValue()); // 수납 금액 + crdn.setBfrCrdnId(mainList.get(iLoop).string("MM_PRECODE")); // 이전 단속 ID + crdn.setNxrpCrdnLinkYn(null); // 세외수입 단속 연계 여부 + crdn.setNxrpCrdnLinkUserId(null); // 세외수입 단속 연계 사용자 ID + crdn.setNxrpCrdnLinkDt(null); // 세외수입 단속 연계 일시 + crdn.setNxrpAcbKey(null); // 세외수입 대장 키 + crdn.setDelYn("N"); // 삭제 여부 + crdn.setCreatedAt(mainList.get(iLoop).string("MM_INDT")); + crdn.setCreatedBy(mainList.get(iLoop).string("MM_INUSER")); + + int rtnNocs = lsctMapper.copyMainToCrdn(crdn); + if (rtnNocs == 0) { + throw new RuntimeException("[F] 단속 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 단속 부가 정보 Insert + crdn.setCrdnSeCd(null); // 단속 구분 코드 + crdn.setTeamId(null); // 조 ID + if (mainList.get(iLoop).string("MM_PRECODE").equals("1")) { // 단속 특별구역 코드 FIM007 + crdn.setCrdnSpareaCd("01"); + } else { + crdn.setCrdnSpareaCd("00"); + } + crdn.setCrdnBgngTm(mainList.get(iLoop).string("MM_TIME")); // 단속 시작 시각 + crdn.setCrdnEndTm(mainList.get(iLoop).string("MM_TIME2")); // 단속 종료 시각 + crdn.setCrdnSn(mainList.get(iLoop).string("MM_SNO")); // 단속 일련번호 + crdn.setMoscX(null); // 모자이크 X + crdn.setMoscY(null); // 모자이크 Y + if (mainList.get(iLoop).string("MM_TRAC").equals("1")) { // 견인 여부 + crdn.setTowngYn("Y"); + } else { + crdn.setTowngYn("N"); + } + crdn.setUseFuelCd(mainList.get(iLoop).string("MM_CARFUEL")); // 사용 연료 코드 LVS005 + crdn.setFfnlgCarmdlCd(String.format("%02d", mainList.get(iLoop).number("MM_CARKIND").intValue())); // 과태료 차종 코드 FIM009 + crdn.setPrkPsbltyRsltCd(mainList.get(iLoop).string("MM_CARCHECK")); // 주차 가능 결과 코드 + crdn.setVltnNmtm(mainList.get(iLoop).string("MM_VIORCNT")); // 위반 횟수 + crdn.setOvtmYn("N"); // 시간외 여부 + crdn.setOvtmPrttnYn("N"); // 시간외 분할 여부 + + rtnNocs = lsctMapper.copyMainToCrdnAdi(crdn); + if (rtnNocs == 0) { + throw new RuntimeException("[F] 단속 부가 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + // 단속ID로 단속 파일 다운로드 + + // 단속 파일 등록 + List fileInfoList = new ArrayList(); + + // + + } + } + } + + // 단속(TB_CRDN) 자료 조회 + if (req.getSchEntNos() != null) { + req.setRtpyrNos(req.getSchEntNos()); + } + if (req.getSchEntNo() != null) { + req.setRtpyrNo(req.getSchEntNo()); + } + + return lsctMapper.selectLsctList(req); + } + + /**지정한 조건에 따라 임대차계약 대장 객체들을 반환한다. + * @param req 임대차계약 대장 조회 조건 + * @return 임대차계약 대장 객체 목록 + */ + public List getLscts(RentQuery req) { + return lsctMapper.selectLscts(req); + } + + /**임대차계약 대장 정보를 등록한다. + * @param lsct 임대차계약 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean create(Lsct lsct) { + return lsctMapper.insert(lsct); + } + + /**임대차계약 대장 정보를 수정한다. + * @param lsct 임대차계약 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean update(Lsct lsct) { + return lsctMapper.update(lsct); + } + + /**임대차계약 대장 정보를 삭제한다. + * @param lsct 임대차계약 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean remove(Lsct lsct) { + return lsctMapper.delete(lsct); + } + +} diff --git a/src/main/java/cokr/xit/fims/rent/service/bean/LsctServiceBean.java b/src/main/java/cokr/xit/fims/rent/service/bean/LsctServiceBean.java new file mode 100644 index 00000000..0d2b25d7 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/bean/LsctServiceBean.java @@ -0,0 +1,58 @@ +package cokr.xit.fims.rent.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import cokr.xit.foundation.component.AbstractServiceBean; +import cokr.xit.foundation.data.DataObject; + +import cokr.xit.fims.rent.Lsct; +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.service.LsctService; + +/**임대차계약 대장 서비스 구현체. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-08-27   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Service("lsctService") +public class LsctServiceBean extends AbstractServiceBean implements LsctService { + + /** 임대차계약 대장 정보 Bean */ + @Resource(name = "lsctBean") + private LsctBean lsctBean; + + @Override + public List getLsctList(RentQuery req) { + return lsctBean.getLsctList(req); + } + + @Override + public List getLscts(RentQuery req) { + return lsctBean.getLscts(req); + } + + @Override + public boolean create(Lsct lsct) { + return lsctBean.create(lsct); + } + + @Override + public boolean update(Lsct lsct) { + return lsctBean.update(lsct); + } + + @Override + public boolean remove(Lsct lsct) { + return lsctBean.remove(lsct); + } + +} diff --git a/src/main/java/cokr/xit/fims/rent/web/Rent02Controller.java b/src/main/java/cokr/xit/fims/rent/web/Rent02Controller.java new file mode 100644 index 00000000..0cd087a4 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/web/Rent02Controller.java @@ -0,0 +1,189 @@ +package cokr.xit.fims.rent.web; + +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.apache.poi.ss.usermodel.CellStyle; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import cokr.xit.base.docs.xls.CellDef; +import cokr.xit.base.docs.xls.Format; +import cokr.xit.base.docs.xls.Style; +import cokr.xit.base.docs.xls.XLSWriter; +import cokr.xit.base.web.ApplicationController; +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.excl.LevyExclQuery; +import cokr.xit.fims.rent.Lsct; +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.service.HirerService; +import cokr.xit.fims.rent.service.LsctService; +import cokr.xit.fims.rent.service.RentEntService; +import cokr.xit.fims.task.Task; +import cokr.xit.foundation.data.DataObject; + +/**임대차계약 대장 서비스의 웹 컨트롤러 + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-08-27   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Controller +@RequestMapping(name = "임대차계약 운전자 정보", value=Rent02Controller.CLASS_URL) +public class Rent02Controller extends ApplicationController { + + public static final String CLASS_URL = "/rent/rent02"; + + public class METHOD_URL { + public static final String + leaseContractMain = "/010/main.do" // 임대차계약 메인 화면 + , getLeaseContractList = "/010/list.do" // 임대차계약 대장 목록 조회 + ; + } + + /**임대차계약 대장 서비스*/ + @Resource(name = "lsctService") + private LsctService lsctService; + + /**임차인 정보 서비스*/ + @Resource(name = "hirerService") + private HirerService hirerService; + + /**임대 기업 대장 서비스*/ + @Resource(name = "rentEntService") + private RentEntService rentEntService; + + /**설정 정보 Bean */ + @Resource(name = "stngBean") + private StngBean stngBean; + + /**임대차계약 대장 관리 메인화면(lsct/lsct-main)을 연다. + * 조건없는 {@link #getLsctList(LsctQuery) 임대차계약 대장 조회 결과}를 포함시킨다. + * @return /lsct/lsct-main + */ + @RequestMapping(name = "임대차계약 대장 메인", value=METHOD_URL.leaseContractMain) + public ModelAndView leaseContractMain() { + ModelAndView mav = new ModelAndView("fims/rent/rent02010-main"); + + // 사용자 정보 + FimsUser fimsUser = (FimsUser)currentUser().getUser(); + + // 사용자와 매핑되어있는 임대업체 정보 조회 + RentQuery req = new RentQuery(); + req.setUserId(fimsUser.getId()); + + List entNolist = rentEntService.getUserRentEntMpngs(req); + + return mav + .addObject("pageName", "rent02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("prefixUrl", CLASS_URL) // prefixUrl + .addObject("userId", fimsUser.getId()) // 사용자 ID(USER_ID) + .addObject("entNoList", entNolist) // 임대업체 목록 + ; + } + + /**임대차계약 대장 목록을 조회하여 반환한다.
+ * {@link LsctService#getLsctList(LsctQuery)} 참고 + * @param req 임대차계약 대장 조회 조건 + * @return jsonView + *
 {
+     *     "lsctList": [임대차계약 대장 목록]
+     *     "lsctStart": 임대차계약 대장 목록 시작 인덱스
+     *     "lsctFetch": 한 번에 가져오는 임대차계약 대장 목록 수
+     *     "lsctTotal": 조회 결과 찾은 전체 임대차계약 대장 수
+     * }
+ */ + + @Task("CMN") + @RequestMapping(name = "임대차계약 대장 조회", value=METHOD_URL.getLeaseContractList) + public ModelAndView getLeaseContractList(RentQuery req) { + if (!"xls".equals(req.getDownload())) { + List result = lsctService.getLsctList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, ""); + } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + + List cellDefs = fromJson(req.getCellDefs(), CellDef.listType()); + + XLSWriter xlsx = new XLSWriter().worksheet(0); + Format format = new Format(xlsx); + CellStyle center = format.cellStyle(Style.CENTER); + CellStyle dateDT = format.yyyy_mm_dd_hh_mm_ss(); + + List list = lsctService.getLsctList(req.setFetchSize(0)); + + Map valueMap = new HashMap(); + + valueMap.put("등록일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "REG_DT").style(dateDT)); + valueMap.put("등록사용자", format.of("RGTR_NM").style(center)); + + CellDef.setValues(cellDefs, valueMap); + + xlsx.cell(0, 0).value("임대계약서").value(center).merge(0, cellDefs.size() - 1) + .cell(3, 0).rowValues(CellDef.header(cellDefs, () -> StyleMaker.headerStyle(xlsx))) + .cell(4, 0).values(list, CellDef.values(cellDefs.stream().map(i -> {if(i.getValue() instanceof Format) {i.setField(null);}; return i;}).toList())); + + return new ModelAndView("downloadView") + .addObject("download", xlsx.getDownloadable().setFilename("임대계약서" + "_목록_" + dateTime + ".xlsx")); + } + } + + /**임대차계약 대장를 등록한다. + * @param lsct 임대차계약 대장 정보 + * @return jsonView + *
 {
+     *     "saved": 등록되었으면 true, 그렇지 않으면 false
+     * }
+ */ + @PostMapping(name = "임대차계약 대장 등록", value = "/create.do") + public ModelAndView create(Lsct lsct) { + boolean saved = lsctService.create(lsct); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + + /**임대차계약 대장 정보를 수정한다. + * @param lsct 임대차계약 대장 정보 + * @return jsonView + *
 {
+     *     "saved": 수정되었으면 true, 그렇지 않으면 false
+     * }
+ */ + @PostMapping(name = "임대차계약 대장 수정", value = "/update.do") + public ModelAndView update(Lsct lsct) { + boolean saved = lsctService.update(lsct); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + + /**지정한 임대차계약 대장를 제거한다. + * @param lsctIDs 임대차계약 대장 아이디 + * @return jsonView + *
 {
+     *     "affected": 저장된 정보수
+     *     "saved": 저장되었으면 true, 그렇지 않으면 false
+     * }
+ */ + @PostMapping(name = "임대차계약 대장 제거", value = "/remove.do") + public ModelAndView remove(Lsct lsct) { + boolean saved = lsctService.remove(lsct); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + +} diff --git a/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml b/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml index e4821d4e..14d4b4a2 100644 --- a/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/levyExcl-mapper.xml @@ -112,7 +112,7 @@ AND C.CRDN_YMD #{schCrdnYmdTo} - AND C.VHRNO = #{schVhrno} + AND C.VHRNO = #{schVhrno} AND P.RTPYR_NO = #{schRtpyrNo} diff --git a/src/main/resources/sql/mapper/fims/rent/hirer-mapper.xml b/src/main/resources/sql/mapper/fims/rent/hirer-mapper.xml new file mode 100644 index 00000000..9c88f58e --- /dev/null +++ b/src/main/resources/sql/mapper/fims/rent/hirer-mapper.xml @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +SELECT HIRER_ID + , VHRNO + , HIRE_BGNG_DT + , HIRE_END_DT + , HIRER_SE_CD + , CORP_BZMN_NO + , LCNS_NO + , HIRER_NM + , HIRER_MBL_TELNO + , HIRER_EML + , HIRER_ZIP + , HIRER_ADDR + , HIRER_DTL_ADDR + , ATCH_FILE_CNT + , ATCH_FILE_DEL_YN + , ATCH_FILE_REG_DT + , ATCH_FILE_RGTR + , ATCH_FILE_REG_IP + , ATCH_FILE_DEL_DT + , ATCH_FILE_DLTR + , ATCH_FILE_DEL_IP + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + , DEL_DT + , DLTR + , DEL_RSN + FROM TB_HIRER + + + + + +/* 임차인 정보 등록(hirerMapper.insertHirer) */ +INSERT INTO TB_HIRER ( + HIRER_ID + , VHRNO + , HIRE_BGNG_DT + , HIRE_END_DT + , HIRER_SE_CD + , CORP_BZMN_NO + , LCNS_NO + , HIRER_NM + , HIRER_MBL_TELNO + , HIRER_EML + , HIRER_ZIP + , HIRER_ADDR + , HIRER_DTL_ADDR + , ATCH_FILE_CNT + , ATCH_FILE_DEL_YN + , ATCH_FILE_REG_DT + , ATCH_FILE_RGTR + , ATCH_FILE_REG_IP + , ATCH_FILE_DEL_DT + , ATCH_FILE_DLTR + , ATCH_FILE_DEL_IP + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + , DEL_DT + , DLTR + , DEL_RSN +) VALUES ( + #{hirer.hirerId} + , #{hirer.vhrno} + , #{hirer.hireBgngDt} + , #{hirer.hireEndDt} + , #{hirer.hirerSeCd} + , #{hirer.corpBzmnNo} + , #{hirer.lcnsNo} + , #{hirer.hirerNm} + , #{hirer.hirerMblTelno} + , #{hirer.hirerEml} + , #{hirer.hirerZip} + , #{hirer.hirerAddr} + , #{hirer.hirerDtlAddr} + , #{hirer.atchFileCnt} + , #{hirer.atchFileDelYn} + , #{hirer.atchFileRegDt} + , #{hirer.atchFileRgtr} + , #{hirer.atchFileRegIp} + , #{hirer.atchFileDelDt} + , #{hirer.atchFileDltr} + , #{hirer.atchFileDelIp} + , #{hirer.delYn} + , + , #{currentUser.id} + , + , #{currentUser.id} + , #{hirer.removedAt} + , #{hirer.removedBy} + , #{hirer.delRsn} +) + +/* 임차인 정보 수정(hirerMapper.updateHirer) */ +UPDATE TB_HIRER SET + VHRNO = #{hirer.vhrno} + , HIRE_BGNG_DT = #{hirer.hireBgngDt} + , HIRE_END_DT = #{hirer.hireEndDt} + , HIRER_SE_CD = #{hirer.hirerSeCd} + , CORP_BZMN_NO = #{hirer.corpBzmnNo} + , LCNS_NO = #{hirer.lcnsNo} + , HIRER_NM = #{hirer.hirerNm} + , HIRER_MBL_TELNO = #{hirer.hirerMblTelno} + , HIRER_EML = #{hirer.hirerEml} + , HIRER_ZIP = #{hirer.hirerZip} + , HIRER_ADDR = #{hirer.hirerAddr} + , HIRER_DTL_ADDR = #{hirer.hirerDtlAddr} + , ATCH_FILE_CNT = #{hirer.atchFileCnt} + , ATCH_FILE_DEL_YN = #{hirer.atchFileDelYn} + , ATCH_FILE_REG_DT = #{hirer.atchFileRegDt} + , ATCH_FILE_RGTR = #{hirer.atchFileRgtr} + , ATCH_FILE_REG_IP = #{hirer.atchFileRegIp} + , ATCH_FILE_DEL_DT = #{hirer.atchFileDelDt} + , ATCH_FILE_DLTR = #{hirer.atchFileDltr} + , ATCH_FILE_DEL_IP = #{hirer.atchFileDelIp} + , DEL_YN = #{hirer.delYn} + , MDFCN_DT = + , MDFR = #{currentUser.id} + , DEL_DT = #{hirer.removedAt} + , DLTR = #{hirer.removedBy} + , DEL_RSN = #{hirer.delRsn} + WHERE HIRER_ID = #{hirer.hirerId} + +/* 임차인 정보 삭제(hirerMapper.deleteHirer) */ +UPDATE TB_HIRER SET + USE_YN = 'N' + , MDFCN_DT = + , MDFR = #{currentUser.id} + WHERE HIRER_ID = #{hirer.hirerId} + + diff --git a/src/main/resources/sql/mapper/fims/rent/lsct-mapper.xml b/src/main/resources/sql/mapper/fims/rent/lsct-mapper.xml new file mode 100644 index 00000000..291287ec --- /dev/null +++ b/src/main/resources/sql/mapper/fims/rent/lsct-mapper.xml @@ -0,0 +1,557 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* 단속 대장 등록(lsctMapper.copyMainToCrdn) */ + INSERT + INTO TB_CRDN ( + CRDN_ID + , SGG_CD + , TASK_SE_CD + , CRDN_REG_SE_CD + , CRDN_INPT_SE_CD + , CVLCPT_LINK_YN + , LINK_TBL_NM + , LINK_ID + , RTPYR_ID + , ADDR_SN + , CRDN_YMD + , CRDN_TM + , VHRNO + , CRDN_STDG_NM + , CRDN_ROAD_NM + , CRDN_PLC + , VLTN_ID + , GPS_X + , GPS_Y + , ATCH_FILE_CNT + , VIN + , VHCL_NM + , VHCL_COLR + , FFNLG_CRDN_AMT + , FFNLG_RDCRT + , FFNLG_AMT + , ADVNTCE_BGNG_YMD + , ADVNTCE_DUDT_YMD + , ADVNTCE_AMT + , OPNN_SBMSN_YN + , ETC_CN + , CRDN_STTS_CD + , CRDN_STTS_CHG_DT + , ADTN_AMT + , MINUS_AMT + , RCVMT_AMT + , BFR_CRDN_ID + , NXRP_CRDN_LINK_YN + , NXRP_CRDN_LINK_USER_ID + , NXRP_CRDN_LINK_DT + , NXRP_ACB_KEY + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + ) VALUES ( + LPAD(#{crdnId},20,'0') + , #{sggCd} + , #{taskSeCd} + , #{crdnRegSeCd} + , #{crdnInptSeCd} + , #{cvlcptLinkYn} + , #{linkTblNm} + , #{linkId} + , #{rtpyrId} + , #{addrSn} + , #{crdnYmd} + , #{crdnTm} + , #{vhrno} + , #{crdnStdgNm} + , #{crdnRoadNm} + , #{crdnPlc} + , #{vltnId} + , #{gpsX} + , #{gpsY} + , #{atchFileCnt} + , #{vin} + , #{vhclNm} + , #{vhclColr} + , #{ffnlgCrdnAmt} + , #{ffnlgRdcrt} + , #{ffnlgAmt} + , #{advntceBgngYmd} + , #{advntceDudtYmd} + , #{advntceAmt} + , #{opnnSbmsnYn} + , #{etcCn} + , #{crdnSttsCd} + , #{crdnSttsChgDt} + , #{adtnAmt} + , #{minusAmt} + , #{rcvmtAmt} + , #{bfrCrdnId} + , #{nxrpCrdnLinkYn} + , #{nxrpCrdnLinkUserId} + , #{nxrpCrdnLinkDt} + , #{nxrpAcbKey} + , #{delYn} + , #{createdAt} + , #{createdBy} + , + , #{modifiedBy} + ) + + + /* 단속 부가 대장 등록(lsctMapper.copyMainToCrdnAdi) */ + INSERT + INTO TB_CRDN_ADI ( + CRDN_ID + , CRDN_SE_CD + , TEAM_ID + , DTL_CRDN_PLC + , CRDN_SPAREA_CD + , CRDN_BGNG_TM + , CRDN_END_TM + , CRDN_SN + , MOSC_X + , MOSC_Y + , TOWNG_YN + , USE_FUEL_CD + , FFNLG_CARMDL_CD + , PRK_PSBLTY_RSLT_CD + , VLTN_NMTM + , OVTM_YN + , OVTM_PRTTN_YN + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + ) VALUES ( + LPAD(#{crdnId},20,'0') + , #{crdnSeCd} + , #{teamId} + , #{dtlCrdnPlc} + , #{crdnSpareaCd} + , #{crdnBgngTm} + , #{crdnEndTm} + , #{crdnSn} + , #{moscX} + , #{moscY} + , #{towngYn} + , #{useFuelCd} + , #{ffnlgCarmdlCd} + , #{prkPsbltyRsltCd} + , #{vltnNmtm} + , #{ovtmYn} + , #{ovtmPrttnYn} + , #{delYn} + , #{createdAt} + , #{createdBy} + , + , #{modifiedBy} + ) + + + + SELECT C.CRDN_ID + , C.SGG_CD + , C.TASK_SE_CD + , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM + , C.CRDN_YMD + , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM + , C.VHRNO + , C.CRDN_STDG_NM + , C.CRDN_ROAD_NM + , C.CRDN_PLC + , C.FFNLG_CRDN_AMT + , C.CRDN_STTS_CD + , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM + , V.VLTN_ID + , V.VLTN_CD + , V.VLTN_ARTCL + , P.RTPYR_ID + , P.RTPYR_SE_CD + , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM + , P.RTPYR_NO + , P.RTPYR_NM + , PA.ADDR_SN + , PA.ZIP + , PA.ADDR + , PA.DTL_ADDR + , L.LSCT_ID + , (CASE WHEN L.LSCT_ID IS NULL THEN 'Y' ELSE 'N' END) AS TRGT_YN + , L.ENT_ID + , L.HIRER_ID + , L.CHG_DMND_YN + , L.CHG_DMND_DT + , L.CHG_DMND_RGTR + , L.CHG_DMND_IP + , L.CHG_DMND_MDFCN_DT + , L.CHG_DMND_MDFR + , L.CHG_DMND_MDFCN_IP + , L.CHG_APRV_YN + , L.CHG_APRV_DT + , L.CHG_AUTZR + , L.CHG_APRV_RSN + , L.CHG_APRV_IP + , L.REG_DT + , L.RGTR + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.RGTR) AS RGTR_NM + , L.MDFCN_DT + , L.MDFR + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = L.MDFR) AS MDFR_NM + FROM TB_CRDN C + INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) + INNER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) + LEFT OUTER JOIN TB_PAYER_ADDR PA ON (C.RTPYR_ID = PA.RTPYR_ID AND C.ADDR_SN = PA.ADDR_SN) + LEFT OUTER JOIN TB_LSCT L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') + LEFT OUTER JOIN TB_HIRER H ON (L.HIRER_ID = H.HIRER_ID AND H.DEL_YN = 'N') + + + + + + SELECT LSCT_ID + , CRDN_ID + , LEVY_ID + , SGG_CD + , TASK_SE_CD + , CRDN_DT + , VHRNO + , CRDN_STDG_NM + , CRDN_PLC + , VLTN_ARTCL + , RTPYR_NO + , RTPYR_NM + , ENT_ID + , HIRER_ID + , CHG_DMND_YN + , CHG_DMND_DT + , CHG_DMND_RGTR + , CHG_DMND_IP + , CHG_DMND_MDFCN_DT + , CHG_DMND_MDFR + , CHG_DMND_MDFCN_IP + , CHG_APRV_YN + , CHG_APRV_DT + , CHG_AUTZR + , CHG_APRV_RSN + , CHG_APRV_IP + , DEL_YN + , REG_DT + , RGTR + FROM TB_LSCT + + + + + /* 임대차계약 대장 등록(lsctMapper.insertLsct) */ + INSERT INTO TB_LSCT ( + LSCT_ID + , CRDN_ID + , LEVY_ID + , SGG_CD + , TASK_SE_CD + , CRDN_DT + , VHRNO + , CRDN_STDG_NM + , CRDN_PLC + , VLTN_ARTCL + , RTPYR_NO + , RTPYR_NM + , ENT_ID + , HIRER_ID + , CHG_DMND_YN + , CHG_DMND_DT + , CHG_DMND_RGTR + , CHG_DMND_IP + , CHG_DMND_MDFCN_DT + , CHG_DMND_MDFR + , CHG_DMND_MDFCN_IP + , CHG_APRV_YN + , CHG_APRV_DT + , CHG_AUTZR + , CHG_APRV_RSN + , CHG_APRV_IP + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + , DEL_DT + , DLTR + , DEL_RSN + ) VALUES ( + #{lsct.lsctId} + , #{lsct.crdnId} + , #{lsct.levyId} + , #{lsct.sggCd} + , #{lsct.taskSeCd} + , #{lsct.crdnDt} + , #{lsct.vhrno} + , #{lsct.crdnStdgNm} + , #{lsct.crdnPlc} + , #{lsct.vltnArtcl} + , #{lsct.rtpyrNo} + , #{lsct.rtpyrNm} + , #{lsct.entId} + , #{lsct.hirerId} + , #{lsct.chgDmndYn} + , #{lsct.chgDmndDt} + , #{lsct.chgDmndRgtr} + , #{lsct.chgDmndIp} + , #{lsct.chgDmndMdfcnDt} + , #{lsct.chgDmndMdfr} + , #{lsct.chgDmndMdfcnIp} + , #{lsct.chgAprvYn} + , #{lsct.chgAprvDt} + , #{lsct.chgAutzr} + , #{lsct.chgAprvRsn} + , #{lsct.chgAprvIp} + , #{lsct.delYn} + , + , #{currentUser.id} + , + , #{currentUser.id} + , #{lsct.removedAt} + , #{lsct.removedBy} + , #{lsct.delRsn} + ) + + + /* 임대차계약 대장 수정(lsctMapper.updateLsct) */ + UPDATE TB_LSCT + SET CRDN_ID = #{lsct.crdnId} + , LEVY_ID = #{lsct.levyId} + , SGG_CD = #{lsct.sggCd} + , TASK_SE_CD = #{lsct.taskSeCd} + , CRDN_DT = #{lsct.crdnDt} + , VHRNO = #{lsct.vhrno} + , CRDN_STDG_NM = #{lsct.crdnStdgNm} + , CRDN_PLC = #{lsct.crdnPlc} + , VLTN_ARTCL = #{lsct.vltnArtcl} + , RTPYR_NO = #{lsct.rtpyrNo} + , RTPYR_NM = #{lsct.rtpyrNm} + , ENT_ID = #{lsct.entId} + , HIRER_ID = #{lsct.hirerId} + , CHG_DMND_YN = #{lsct.chgDmndYn} + , CHG_DMND_DT = #{lsct.chgDmndDt} + , CHG_DMND_RGTR = #{lsct.chgDmndRgtr} + , CHG_DMND_IP = #{lsct.chgDmndIp} + , CHG_DMND_MDFCN_DT = #{lsct.chgDmndMdfcnDt} + , CHG_DMND_MDFR = #{lsct.chgDmndMdfr} + , CHG_DMND_MDFCN_IP = #{lsct.chgDmndMdfcnIp} + , CHG_APRV_YN = #{lsct.chgAprvYn} + , CHG_APRV_DT = #{lsct.chgAprvDt} + , CHG_AUTZR = #{lsct.chgAutzr} + , CHG_APRV_RSN = #{lsct.chgAprvRsn} + , CHG_APRV_IP = #{lsct.chgAprvIp} + , DEL_YN = #{lsct.delYn} + , MDFCN_DT = + , MDFR = #{currentUser.id} + , DEL_DT = #{lsct.removedAt} + , DLTR = #{lsct.removedBy} + , DEL_RSN = #{lsct.delRsn} + WHERE LSCT_ID = #{lsct.lsctId} + + + /* 임대차계약 대장 삭제(lsctMapper.deleteLsct) */ + UPDATE TB_LSCT + SET USE_YN = 'N' + , MDFCN_DT = + , MDFR = #{currentUser.id} + WHERE LSCT_ID = #{lsct.lsctId} + + +