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/RentEnt.java b/src/main/java/cokr/xit/fims/rent/RentEnt.java new file mode 100644 index 00000000..9c187d65 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/RentEnt.java @@ -0,0 +1,85 @@ +package cokr.xit.fims.rent; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +/** + * 임대 기업 대장 + * @author JoJH + */ +@Getter +@Setter +public class RentEnt extends AbstractEntity { + + /** + * 기업 ID + */ + private String entId; + + /** + * 기업 구분 코드 + */ + private String entSeCd; + + /** + * 기업 명 + */ + private String entNm; + + /** + * 기업 번호 + */ + private String entNo; + + /** + * 대표자 명 + */ + private String rprsvNm; + + /** + * 기업 전화번호 + */ + private String entTelno; + + /** + * 기업 팩스번호 + */ + private String entFxno; + + /** + * 기업 이메일 주소 + */ + private String entEmlAddr; + + /** + * 기업 우편번호 + */ + private String entZip; + + /** + * 기업 주소 + */ + private String entAddr; + + /** + * 기업 상세 주소 + */ + private String entDtlAddr; + + /** + * 삭제 여부 + */ + private String delYn; + + /** + * 삭제 사유 + */ + private String delRsn; + + /** + * 기업 IDs + */ + private String[] entIds; + +} diff --git a/src/main/java/cokr/xit/fims/rent/RentQuery.java b/src/main/java/cokr/xit/fims/rent/RentQuery.java new file mode 100644 index 00000000..54c496b7 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/RentQuery.java @@ -0,0 +1,216 @@ +package cokr.xit.fims.rent; + +import cokr.xit.fims.cmmn.CmmnQuery; + +/**임대 차량 정보 조회 요청 + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-07-24   JoJH 최초 작성
+ * ================================
+ * 
+ */ +public class RentQuery extends CmmnQuery { + + private static final long serialVersionUID = 1L; + + // ID + private String crdnId; // 단속 ID + private String mpngId; // 매핑 ID + private String userId; // 사용자 ID + private String[] entIds; // 기업 IDs + private String entId; // 기업 ID + 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; // 납부자 번호 + private String nxrpCrdnLinkYn; // 세외수입 단속 연계 여부 + + // ETC + private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회). + private String delRsn; // 삭제 사유 + + public String getCrdnId() { + return ifEmpty(crdnId, () -> null); + } + + public void setCrdnId(String crdnId) { + this.crdnId = crdnId; + } + + public String getMpngId() { + return ifEmpty(mpngId, () -> null); + } + + public void setMpngId(String mpngId) { + this.mpngId = mpngId; + } + + public String getUserId() { + return ifEmpty(userId, () -> null); + } + + public void setUserId(String userId) { + this.userId = userId; + } + + public String[] getEntIds() { + return ifEmpty(entIds, () -> null); + } + + public void setEntIds(String... entIds) { + this.entIds = entIds; + } + + public String getEntId() { + return ifEmpty(entId, () -> null); + } + + public void setEntId(String entId) { + this.entId = entId; + } + + public String getHirerId() { + return ifEmpty(hirerId, () -> null); + } + + public void setHirerId(String hirerId) { + this.hirerId = hirerId; + } + + public String getLsctId() { + return ifEmpty(lsctId, () -> null); + } + + public void setLsctId(String lsctId) { + this.lsctId = lsctId; + } + + public String[] getSchEntNos() { + return ifEmpty(schEntNos, () -> null); + } + + public void setSchEntNos(String... schEntNos) { + this.schEntNos = schEntNos; + } + + public String getSchEntNo() { + return ifEmpty(schEntNo, () -> null); + } + + public void setSchEntNo(String schEntNo) { + this.schEntNo = schEntNo; + } + + public String getSchEntNm() { + return ifEmpty(schEntNm, () -> null); + } + + public void setSchEntNm(String schEntNm) { + this.schEntNm = schEntNm; + } + + public String getSchRprsvNm() { + return ifEmpty(schRprsvNm, () -> null); + } + + public void setSchRprsvNm(String schRprsvNm) { + this.schRprsvNm = schRprsvNm; + } + + 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; + } + + public String getNxrpCrdnLinkYn() { + return ifEmpty(nxrpCrdnLinkYn, () -> null); + } + + public void setNxrpCrdnLinkYn(String nxrpCrdnLinkYn) { + this.nxrpCrdnLinkYn = nxrpCrdnLinkYn; + } + + // ETC ///////////////////////////////////////////////////////////////////// + public String getCallPurpose() { + return ifEmpty(callPurpose, () -> null); + } + + public void setCallPurpose(String callPurpose) { + this.callPurpose = callPurpose; + } + + public String getDelRsn() { + return ifEmpty(delRsn, () -> null); + } + + public void setDelRsn(String delRsn) { + this.delRsn = delRsn; + } + // ETC ///////////////////////////////////////////////////////////////////// + +} diff --git a/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java b/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java new file mode 100644 index 00000000..85f706cd --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/UserRentEntMpng.java @@ -0,0 +1,45 @@ +package cokr.xit.fims.rent; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +/** + * 사용자 임대 기업 매핑 + * @author JoJH + */ +@Getter +@Setter +public class UserRentEntMpng extends AbstractEntity { + + /** + * 매핑 ID + */ + private String mpngId; + + /** + * 사용자 ID + */ + private String userId; + + /** + * 기업 ID + */ + private String entId; + + /** + * 삭제 여부 + */ + private String delYn; + + /** + * 매핑 IDs + */ + private String[] mpngIds; + + /** + * 기업 IDs + */ + private String[] entIds; + +} 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 파라미터 + * + * @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/dao/RentEntMapper.java b/src/main/java/cokr/xit/fims/rent/dao/RentEntMapper.java new file mode 100644 index 00000000..aa7c8385 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/dao/RentEntMapper.java @@ -0,0 +1,78 @@ +package cokr.xit.fims.rent.dao; + +import java.util.List; + +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +import cokr.xit.fims.rent.RentEnt; +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; + +/** 임대 기업 대장 정보 DAO + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-07-24   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Mapper("rentEntMapper") +public interface RentEntMapper extends AbstractMapper { + /**지정한 조건에 따라 임대 기업 대장 목록을 조회하여 반환한다.
+ * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 대장 목록 + */ + List selectRentEntList(RentQuery req); + + /**지정한 조건에 따라 임대 기업 대장 객체들을 반환한다. + * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 대장 객체 목록 + */ + List selectRentEnts(RentQuery req); + + default DataObject selectRentEntInfo(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 기본 정렬 + if (req.getOrderBy() == null) { + req.setOrderBy("RE.ENT_ID DESC"); + } + + List rentEnts = selectRentEnts(req); + + return !rentEnts.isEmpty() ? rentEnts.get(0) : null; + } + + /**임대 기업 대장 정보를 등록한다. + * @param params 파라미터 + *
  • "rentEnt" - 임대 기업 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int insertRentEnt(RentEnt rentEnt); + + /**임대 기업 대장 정보를 수정한다. + * @param params 파라미터 + *
  • "rentEnt" - 임대 기업 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateRentEnt(RentEnt rentEnt); + + /**지정한 임대 기업 대장을 삭제한다. + * @param params 파라미터 + *
  • "rentEnt" - 임대 기업 대장
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteRentEnt(RentEnt rentEnt); + +} diff --git a/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java b/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java new file mode 100644 index 00000000..856ef428 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/dao/UserRentEntMpngMapper.java @@ -0,0 +1,83 @@ +package cokr.xit.fims.rent.dao; + +import java.util.List; + +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; + + +/** 사용자 임대 기업 매핑 정보 DAO + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-07-24   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Mapper("userRentEntMpngMapper") +public interface UserRentEntMpngMapper extends AbstractMapper { + /**지정한 조건에 따라 사용자 임대 기업 매핑 목록을 조회하여 반환한다.
+ * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 목록 + */ + List selectUserRentEntMpngList(RentQuery req); + + /**지정한 조건에 따라 사용자 임대 기업 매핑 객체들을 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 객체 목록 + */ + List selectUserRentEntMpngs(RentQuery req); + + /**지정한 조건에 따라 사용자 임대 기업 매핑 정보를 조회하여 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 객체 목록 + */ + default DataObject selectUserRentEntMpngInfo(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 기본 정렬 + if (req.getOrderBy() == null) { + req.setOrderBy("UREM.MPNG_ID DESC"); + } + + List userRentEntMpngs = selectUserRentEntMpngs(req); + + return !userRentEntMpngs.isEmpty() ? userRentEntMpngs.get(0) : null; + } + + /**사용자 임대 기업 매핑 정보를 등록한다. + * @param params 파라미터 + *
  • "userRentEntMpng" - 사용자 임대 기업 매핑
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int insertUserRentEntMpng(UserRentEntMpng userRentEntMpng); + + /**사용자 임대 기업 매핑 정보를 수정한다. + * @param params 파라미터 + *
  • "userRentEntMpng" - 사용자 임대 기업 매핑
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int updateUserRentEntMpng(UserRentEntMpng userRentEntMpng); + + /**지정한 사용자 임대 기업 매핑을 삭제한다. + * @param params 파라미터 + *
  • "userRentEntMpng" - 사용자 임대 기업 매핑
  • + *
  • "currentUser" - 현재 접속한 사용자
  • + *
+ * @return 저장된 정보수 + */ + int deleteUserRentEntMpng(UserRentEntMpng userRentEntMpng); + +} 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/RentEntService.java b/src/main/java/cokr/xit/fims/rent/service/RentEntService.java new file mode 100644 index 00000000..4ef4d6de --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/RentEntService.java @@ -0,0 +1,97 @@ +package cokr.xit.fims.rent.service; + +import java.util.List; + +import cokr.xit.fims.rent.RentEnt; +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; +import cokr.xit.foundation.data.DataObject; + +/**임대 기업 대장 관리 서비스 인터페이스. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-07-24   JoJH 최초 작성
+ * ================================
+ * 
+ */ +public interface RentEntService { + + /**지정한 조건에 따라 사용자 임대 기업 매핑 목록을 조회하여 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 목록 + */ + List getUserRentEntMpngList(RentQuery req); + + /**지정한 조건에 따라 사용자 임대 기업 매핑 객체들을 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 객체 목록 + */ + List getUserRentEntMpngs(RentQuery req); + + /**사용자 임대 기업 매핑 정보를 등록한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String createUserRentEntMpng(UserRentEntMpng userRentEntMpng); + + /**사용자 임대 기업 매핑 정보를 삭제한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String removeUserRentEntMpng(UserRentEntMpng userRentEntMpng); + + /**지정한 조건에 따라 임대 기업 대장 목록을 조회하여 반환한다. + * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 대장 목록 + */ + List getRentEntList(RentQuery req); + + /**지정한 조건에 따라 임대 기업 대장 객체들을 반환한다. + * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 대장 객체 목록 + */ + List getRentEnts(RentQuery req); + + /**지정한 조건에 따라 임대 기업 상세 정보를 조회하여 반환한다. + * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 상세 정보 + */ + DataObject getRentEntInfo(RentQuery req); + + /**임대 기업 대장 정보를 등록한다. + * @param rentEnt 임대 기업 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String createRentEnt(RentEnt rentEnt); + + /**임대 기업 대장 정보를 수정한다. + * @param rentEnt 임대 기업 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String updateRentEnt(RentEnt rentEnt); + + /**임대 기업 대장 정보를 삭제한다. + * @param rentEnt 임대 기업 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String removeRentEnt(RentEnt rentEnt); + +} 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..61b31135 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/bean/LsctBean.java @@ -0,0 +1,285 @@ +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.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; +import cokr.xit.foundation.component.AbstractBean; +import cokr.xit.foundation.data.DataObject; + +/**임대차계약 대장 정보 관리 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; + + /**지정한 조건에 따라 임대차계약 대장 목록을 조회하여 반환한다. + * 통합플랫폼으로 사용하지 안을 경우 렌트 소스만 사용하기 위해서 TB_CRDN, TB_PAYER에 직접 등록한다. + * @param req 임대차계약 대장 조회 조건 + * @return 임대차계약 대장 목록 + */ + public List getLsctList(RentQuery req) { + // 기존 과태료 시스템에서 사용하던 암/복호화 함수 사용을 위해서.. + XitAria crypto = new XitAria("xit-aria"); + + // 연계 view 테이블 검색 조건에 사용할 소유주 암호화 하기 + if (req.getSchEntNos() != null && req.getSchEntNos().length > 0 ) { // 임대기업번호s 암호화 + int tnocs = req.getSchEntNos().length; + + String[] strArray = req.getSchEntNos(); + String[] encArray = new String[tnocs]; + + for (int iLoop = 0; iLoop < tnocs; iLoop++) { + encArray[iLoop] = crypto.encrypt(strArray[iLoop]); + } + req.setOmJnos(encArray); + } else { // 임대기업번호 암호화 + req.setOmJno(crypto.encrypt(req.getSchEntNo())); + } + + // 연계 View 테이블 조회 + 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(mainList.get(iLoop).string("NIS_LINK_YN")); // 세외수입 단속 연계 여부 + crdn.setNxrpCrdnLinkUserId(null); // 세외수입 단속 연계 사용자 ID + crdn.setNxrpCrdnLinkDt(null); // 세외수입 단속 연계 일시 + if (mainList.get(iLoop).string("MC_LVY_KEY").length() == 11) { // 세외수입 대장 키 + crdn.setNxrpAcbKey(mainList.get(iLoop).string("MC_LVY_KEY")); + } else { + 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/service/bean/RentEntBean.java b/src/main/java/cokr/xit/fims/rent/service/bean/RentEntBean.java new file mode 100644 index 00000000..1bb64a2a --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/bean/RentEntBean.java @@ -0,0 +1,240 @@ +package cokr.xit.fims.rent.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import cokr.xit.fims.cmmn.CmmnUtil; +import cokr.xit.fims.rent.RentEnt; +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; +import cokr.xit.fims.rent.dao.RentEntMapper; +import cokr.xit.fims.rent.dao.UserRentEntMpngMapper; +import cokr.xit.foundation.component.AbstractBean; +import cokr.xit.foundation.data.DataObject; + +/**임대 기업 대장 정보 관리 Bean + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-07-24   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Component("rentEntBean") +public class RentEntBean extends AbstractBean { + + /** 사용자 임대 기업 매핑 정보 DAO */ + @Resource(name = "userRentEntMpngMapper") + private UserRentEntMpngMapper userRentEntMpngMapper; + + /** 임대 기업 대장 정보 DAO */ + @Resource(name = "rentEntMapper") + private RentEntMapper rentEntMapper; + + /**지정한 조건에 따라 사용자 임대 기업 매핑 목록을 조회하여 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 목록 + */ + public List getUserRentEntMpngList(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + if (req.getBy() == null) { + req.setOrderBy("REG_DT"); + } else { + req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy())); + } + } + + return userRentEntMpngMapper.selectUserRentEntMpngList(req); + } + + /**지정한 조건에 따라 사용자 임대 기업 매핑 객체들을 반환한다. + * @param req 사용자 임대 기업 매핑 조회 조건 + * @return 사용자 임대 기업 매핑 객체 목록 + */ + public List getUserRentEntMpngs(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + req.setOrderBy("UREM.MPNG_ID DESC"); + } + + return userRentEntMpngMapper.selectUserRentEntMpngs(req); + } + + /**사용자 임대 기업 매핑 정보를 등록한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String createUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + // 변수 선언 + String rtnMsg = ""; // 처리 결과 메시지 + + RentQuery req = new RentQuery(); + req.setUserId(userRentEntMpng.getUserId()); + req.setEntId(userRentEntMpng.getEntId()); + req.setDelYn("N"); + + // 사용자 임대 기업 매핑(TB_USER_RENT_ENT_MPNG) 정보를 조회한다. + DataObject userRentEntMpngInfo = userRentEntMpngMapper.selectUserRentEntMpngInfo(req); + + if (userRentEntMpngInfo != null) { + rtnMsg = "[F] 등록 작업 중 오류가 발생하였습니다.
이미 등록된 매핑 정보가 존재합니다." + + "

" + "법인(사업자)번호 : " + userRentEntMpngInfo.string("ENT_NO") + "

";; + return rtnMsg; + } + + // 사용자 임대 기업 매핑(TB_USER_RENT_ENT_MPNG) 대장을 등록한다. + int rtnNocs = userRentEntMpngMapper.insertUserRentEntMpng(userRentEntMpng); + if (rtnNocs != 1) { + throw new RuntimeException("[F] 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 등록 작업이 정상 처리 되었습니다."; + } + + /**사용자 임대 기업 매핑 정보를 삭제한다. + * @param userRentEntMpng 사용자 임대 기업 매핑 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String removeUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + // 사용자 임대 기업 매핑(TB_USER_RENT_ENT_MPNG) 대장을 삭제한다. + int rtnNocs = userRentEntMpngMapper.deleteUserRentEntMpng(userRentEntMpng); + if (rtnNocs < 1) { + throw new RuntimeException("[F] 삭제 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 삭제 작업이 정상 처리 되었습니다."; + } + + /**지정한 조건에 따라 임대 기업 대장 목록을 조회하여 반환한다. + * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 대장 목록 + */ + public List getRentEntList(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + if (req.getBy() == null) { + req.setOrderBy("REG_DT"); + } else { + req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy())); + } + } + + return rentEntMapper.selectRentEntList(req); + } + + /**지정한 조건에 따라 임대 기업 대장 객체들을 반환한다. + * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 대장 객체 목록 + */ + public List getRentEnts(RentQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } + // 정렬 확인 + if (req.getOrderBy() == null) { + req.setOrderBy("RE.ENT_ID DESC"); + } + + return rentEntMapper.selectRentEnts(req); + } + + /**지정한 조건에 따라 임대 기업 대장 목록을 조회하여 반환한다. + * @param req 임대 기업 대장 조회 조건 + * @return 임대 기업 대장 목록 + */ + public DataObject getRentEntInfo(RentQuery req) { + return rentEntMapper.selectRentEntInfo(req); + } + + /**임대 기업 대장 정보를 등록한다. + * @param rentEnt 임대 기업 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String createRentEnt(RentEnt rentEnt) { + // 변수 선언 + String rtnMsg = ""; // 처리 결과 메시지 + + RentQuery req = new RentQuery(); + req.setSchEntNo(rentEnt.getEntNo()); + req.setDelYn("N"); + + // 임대 기업(TB_RENT_ENT) 정보를 조회한다. + DataObject rentEntInfo = rentEntMapper.selectRentEntInfo(req); + + if (rentEntInfo != null) { + rtnMsg = "[F] 등록 중 오류가 발생하였습니다.
이미 등록된 [F] 정보가 존재합니다."; + return rtnMsg; + } + + // 임대기업(TB_RENT_ENT) 대장을 등록한다. + int rtnNocs = rentEntMapper.insertRentEnt(rentEnt); + if (rtnNocs != 1) { + throw new RuntimeException("[F] 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 등록 작업이 정상 처리 되었습니다."; + } + + /**임대 기업 대장 정보를 수정한다. + * @param rentEnt 임대 기업 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String updateRentEnt(RentEnt rentEnt) { + // 임대기업(TB_RENT_ENT) 대장을 수정한다. + int rtnNocs = rentEntMapper.updateRentEnt(rentEnt); + if (rtnNocs != 1) { + throw new RuntimeException("[F] 수정 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 수정 작업이 정상 처리 되었습니다."; + } + + /**임대 기업 대장 정보를 삭제한다. + * @param rentEnt 임대 기업 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public String removeRentEnt(RentEnt rentEnt) { + // 임대기업(TB_RENT_ENT) 대장을 등록한다. + int rtnNocs = rentEntMapper.deleteRentEnt(rentEnt); + if (rtnNocs != 1) { + throw new RuntimeException("[F] 삭제 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + + return "[S] 삭제 작업이 정상 처리 되었습니다."; + } + +} diff --git a/src/main/java/cokr/xit/fims/rent/service/bean/RentEntServiceBean.java b/src/main/java/cokr/xit/fims/rent/service/bean/RentEntServiceBean.java new file mode 100644 index 00000000..0e2d9271 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/service/bean/RentEntServiceBean.java @@ -0,0 +1,83 @@ +package cokr.xit.fims.rent.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import cokr.xit.fims.rent.RentEnt; +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; +import cokr.xit.fims.rent.service.RentEntService; +import cokr.xit.foundation.component.AbstractServiceBean; +import cokr.xit.foundation.data.DataObject; + +/**임대 기업 대장 서비스 구현체. + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-07-24   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Service("rentEntService") +public class RentEntServiceBean extends AbstractServiceBean implements RentEntService { + + /** 임대 기업 대장 정보 Bean */ + @Resource(name = "rentEntBean") + private RentEntBean rentEntBean; + + @Override + public List getUserRentEntMpngList(RentQuery req) { + return rentEntBean.getUserRentEntMpngList(req); + } + + @Override + public List getUserRentEntMpngs(RentQuery req) { + return rentEntBean.getUserRentEntMpngs(req); + } + + @Override + public String createUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + return rentEntBean.createUserRentEntMpng(userRentEntMpng); + } + + @Override + public String removeUserRentEntMpng(UserRentEntMpng userRentEntMpng) { + return rentEntBean.removeUserRentEntMpng(userRentEntMpng); + } + + @Override + public List getRentEntList(RentQuery req) { + return rentEntBean.getRentEntList(req); + } + + @Override + public List getRentEnts(RentQuery req) { + return rentEntBean.getRentEnts(req); + } + + @Override + public DataObject getRentEntInfo(RentQuery req) { + return rentEntBean.getRentEntInfo(req); + } + + @Override + public String createRentEnt(RentEnt rentEnt) { + return rentEntBean.createRentEnt(rentEnt); + } + + @Override + public String updateRentEnt(RentEnt rentEnt) { + return rentEntBean.updateRentEnt(rentEnt); + } + + @Override + public String removeRentEnt(RentEnt rentEnt) { + return rentEntBean.removeRentEnt(rentEnt); + } + +} diff --git a/src/main/java/cokr/xit/fims/rent/web/Rent01Controller.java b/src/main/java/cokr/xit/fims/rent/web/Rent01Controller.java new file mode 100644 index 00000000..fc3f3fbb --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/web/Rent01Controller.java @@ -0,0 +1,410 @@ +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 javax.servlet.http.HttpServletRequest; + +import org.apache.poi.ss.usermodel.CellStyle; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import cokr.xit.base.code.CommonCode; +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.rent.RentEnt; +import cokr.xit.fims.rent.RentQuery; +import cokr.xit.fims.rent.UserRentEntMpng; +import cokr.xit.fims.rent.service.RentEntService; +import cokr.xit.fims.task.Task; +import cokr.xit.foundation.data.DataObject; + +/**임대 기업 대장 서비스의 웹 컨트롤러 + * + *

상세 설명: + * + *

+ * ============ 변경 이력 ============
+ * 2024-07-24   JoJH 최초 작성
+ * ================================
+ * 
+ */ +@Controller +@RequestMapping(name="임대 기업 관리", value=Rent01Controller.CLASS_URL) +public class Rent01Controller extends ApplicationController { + + public static final String CLASS_URL = "/rent/rent01"; + + public class METHOD_URL { + public static final String + userRentEnterpriseMappingMain = "/010/main.do" // 사용자 임대 기업 매핑 관리 메인 화면 + , getUserRentEnterpriseMappingList = "/010/list.do" // 사용자 임대 기업 매핑 대장 목록 조회 + , removeUserRentEnterpriseMapping = "/010/removeMpng.do" // 사용자 임대 기업 매핑 대장 삭제 + , getUserRentEnterpriseMappingInfo = "/020/info.do" // 사용자 임대 기업 매핑 대장 상세 조회 + , createUserRentEnterpriseMapping = "/020/createMpng.do" // 사용자 임대 기업 매핑 대장 등록 + , getRentEnterpriseList = "/020/list.do" // 임대 기업 대장 목록 조회 + , removeRentEnterprise = "/020/remove.do" // 임대 기업 대장 삭제 + , getRentEnterpriseInfo = "/030/info.do" // 임대 기업 대장 상세 조회 + , createRentEnterprise = "/030/create.do" // 임대 기업 대장 등록 + , updateRentEnterprise = "/030/update.do" // 임대 기업 대장 수정 + ; + } + + /**임대 기업 대장 서비스*/ + @Resource(name = "rentEntService") + private RentEntService rentEntService; + + /**설정 정보 Bean */ + @Resource(name = "stngBean") + private StngBean stngBean; + + /**임대 기업 대장 관리 메인화면(fims/rent/rent01010-main)을 연다. + * 조건없는 {@link #getRentEntList(RentEntQuery) 임대 기업 대장 조회 결과}를 포함시킨다. + * @return /rent/rent01010-main + */ + @RequestMapping(name = "사용자 임대기업 대장 메인", value=METHOD_URL.userRentEnterpriseMappingMain) + public ModelAndView userRentEnterpriseMappingMain() { + ModelAndView mav = new ModelAndView("fims/rent/rent01010-main"); + + // 사용자 정보 + FimsUser fimsUser = (FimsUser)currentUser().getUser(); + + return mav + .addObject("pageName", "rent01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("prefixUrl", CLASS_URL) // prefixUrl + .addObject("userId", fimsUser.getId()) // 사용자 ID(USER_ID) + .addObject("userAcnt", fimsUser.getAccount()) // 사용자 계정(USER_ACNT) + ; + } + + /**임대 기업 대장 목록을 조회하여 반환한다.
+ * {@link RentEntService#getRentEntList(RentEntQuery)} 참고 + * @param req 임대 기업 대장 조회 조건 + * @return jsonView + *
 {
+     *     "rentEntList": [임대 기업 대장 목록]
+     *     "rentEntStart": 임대 기업 대장 목록 시작 인덱스
+     *     "rentEntFetch": 한 번에 가져오는 임대 기업 대장 목록 수
+     *     "rentEntTotal": 조회 결과 찾은 전체 임대 기업 대장 수
+     * }
+ */ + @Task("CMN") + @RequestMapping(name = "사용자 임대기업 대장 조회", value=METHOD_URL.getUserRentEnterpriseMappingList) + public ModelAndView getUserRentEnterpriseMappingList(RentQuery req) { + if (!"xls".equals(req.getDownload())) { + List result = rentEntService.getUserRentEntMpngList(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 = rentEntService.getUserRentEntMpngList(req.setFetchSize(0)); + + Map valueMap = new HashMap(); + + valueMap.put("사용자계정", format.of("USER_ACNT")); + valueMap.put("사용자명", format.of("USER_NM").style(center)); + valueMap.put("기업구분", format.of("ENT_SE_NM").style(center)); + valueMap.put("기업명", format.of("ENT_NM")); + valueMap.put("법인(사업자)번호", format.of("ENT_NO").style(center)); + valueMap.put("대표자명", format.of("RPRSV_NM").style(center)); + valueMap.put("전화번호", format.of("ENT_TELNO").style(center)); + valueMap.put("팩스번호", format.of("ENT_FXNO").style(center)); + valueMap.put("이메일주소", format.of("ENT_EML_ADDR")); + valueMap.put("우편번호", format.of("ENT_ZIP").style(center)); + valueMap.put("주소", format.of("ENT_ADDR")); + valueMap.put("상세주소", format.of("ENT_DTL_ADDR")); + 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")); + } + } + + /**사용자 임대 기업 대장 상세 정보 화면(fims/rent/rent01020-info)을 연다. + * 조건없는 {@link #getRentEntList(RentEntQuery) 사용자 임대 기업 대장 조회 결과}를 포함시킨다. + * @return /rentEnt/rentEnt-main + */ + @Task("CMN") + @RequestMapping(name = "사용자 임대기업 상세 정보", value=METHOD_URL.getUserRentEnterpriseMappingInfo) + public ModelAndView getUserRentEnterpriseMappingInfo(HttpServletRequest hReq, RentQuery req) { + ModelAndView mav = new ModelAndView("fims/rent/rent01020-info"); + + return mav + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("pageName", "rent01020") // jsp pageName + .addObject("prefixUrl", CLASS_URL) // prefixUrl + .addObject("userId", req.getUserId()) // 사용자 ID + .addObject("schEntNo", req.getSchEntNo()) // 기업 (법인/사업자)번호 + ; + } + + /**임대 기업 대장 목록을 조회하여 반환한다.
+ * {@link RentEntService#getRentEntList(RentEntQuery)} 참고 + * @param req 임대 기업 대장 조회 조건 + * @return jsonView + *
 {
+     *     "rentEntList": [임대 기업 대장 목록]
+     *     "rentEntStart": 임대 기업 대장 목록 시작 인덱스
+     *     "rentEntFetch": 한 번에 가져오는 임대 기업 대장 목록 수
+     *     "rentEntTotal": 조회 결과 찾은 전체 임대 기업 대장 수
+     * }
+ */ + @Task("CMN") + @RequestMapping(name = "임대 기업 대장 조회", value=METHOD_URL.getRentEnterpriseList) + public ModelAndView getRentEnterpriseList(RentQuery req) { + if (!"xls".equals(req.getDownload())) { + List result = rentEntService.getRentEntList(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 = rentEntService.getUserRentEntMpngList(req.setFetchSize(0)); + + Map valueMap = new HashMap(); + valueMap.put("기업구분", format.of("ENT_SE_NM").style(center)); + valueMap.put("기업명", format.of("ENT_NM")); + valueMap.put("법인(사업자)번호", format.of("ENT_NO").style(center)); + valueMap.put("대표자명", format.of("RPRSV_NM").style(center)); + valueMap.put("전화번호", format.of("ENT_TELNO").style(center)); + valueMap.put("팩스번호", format.of("ENT_FXNO").style(center)); + valueMap.put("이메일주소", format.of("ENT_EML_ADDR")); + valueMap.put("우편번호", format.of("ENT_ZIP").style(center)); + valueMap.put("주소", format.of("ENT_ADDR")); + valueMap.put("상세주소", format.of("ENT_DTL_ADDR")); + 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 userRentEntMpng 사용자 임대 기업 매핑 정보 + * @return jsonView + *
 {
+     *     "saved": 등록되었으면 true, 그렇지 않으면 false
+     * }
+ */ + @Task("CMN") + @RequestMapping(name = "사용자 임대 기업 매핑 등록", value = METHOD_URL.createUserRentEnterpriseMapping) + public ModelAndView createUserRentEnterpriseMapping(UserRentEntMpng userRentEntMpng) { + boolean saved = false; + String rtnMsg = ""; + + // 단건 등록 + if (userRentEntMpng.getEntIds() == null || userRentEntMpng.getEntIds().length < 1) { + rtnMsg = rentEntService.createUserRentEntMpng(userRentEntMpng); + } else { + // Ids 만큼 반복 등록 + for (String entId : userRentEntMpng.getEntIds()) { + UserRentEntMpng createMpng = new UserRentEntMpng(); + createMpng.setUserId(userRentEntMpng.getUserId()); + createMpng.setEntId(entId); + + // 등록 호출 + rtnMsg = rentEntService.createUserRentEntMpng(createMpng); + if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료.. + saved = false; + break; + } + } + } + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + + /**지정한 사용자 임대 기업 매핑를 제거한다. + * @param userRentEntMpngIDs 사용자 임대 기업 매핑 아이디 + * @return jsonView + *
 {
+     *     "affected": 저장된 정보수
+     *     "saved": 저장되었으면 true, 그렇지 않으면 false
+     * }
+ */ + @Task("CMN") + @RequestMapping(name = "사용자 임대 기업 매핑 제거", value = METHOD_URL.removeUserRentEnterpriseMapping) + public ModelAndView removeUserRentEnterpriseMapping(UserRentEntMpng userRentEntMpng) { + boolean saved = false; + String rtnMsg = rentEntService.removeUserRentEntMpng(userRentEntMpng); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + + /**임대 기업 대장 상세 정보 화면(fims/rent/rent01030-info)을 연다. + * 조건없는 {@link #getRentEntList(RentEntQuery) 임대 기업 대장 조회 결과}를 포함시킨다. + * @return /rentEnt/rentEnt-main + */ + @Task("CMN") + @RequestMapping(name = "임대기업 상세 정보", value=METHOD_URL.getRentEnterpriseInfo) + public ModelAndView getRentEnterpriseInfo(HttpServletRequest hReq, RentQuery req) { + boolean json = jsonResponse(); + ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/rent/rent01030-info"); + + // View(jsp)에서 사용할 공통코드를 조회 + Map> commonCodes = getCodesOf("FIM088"); + + // 수정(update)으로 호출 + if (req.getCallPurpose().equals("update")) { + DataObject info = rentEntService.getRentEntInfo(req); // 상세 정보 조회 + mav.addObject("Info", json ? info : toJson(info)); // 정보 + } + + return mav + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("pageName", "rent01030") // jsp pageName + .addObject("prefixUrl", CLASS_URL) // prefixUrl + .addObject("FIM088List", commonCodes.get("FIM088")) // 기업 구분 코드(ENT_SE_CD) + ; + } + + /**임대 기업 대장를 등록한다. + * @param rentEnt 임대 기업 대장 정보 + * @return jsonView + *
 {
+     *     "saved": 등록되었으면 true, 그렇지 않으면 false
+     * }
+ */ + @Task("CMN") + @RequestMapping(name = "임대기업 대장 등록", value=METHOD_URL.createRentEnterprise) + public ModelAndView createRentEnterprise(RentEnt rentEnt) { + boolean saved = false; + String rtnMsg = rentEntService.createRentEnt(rentEnt); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + + /**임대 기업 대장 정보를 수정한다. + * @param rentEnt 임대 기업 대장 정보 + * @return jsonView + *
 {
+     *     "saved": 수정되었으면 true, 그렇지 않으면 false
+     * }
+ */ + @Task("CMN") + @RequestMapping(name = "임대기업 대장 수정", value=METHOD_URL.updateRentEnterprise) + public ModelAndView updateRentEnterprise(RentEnt rentEnt) { + boolean saved = false; + String rtnMsg = rentEntService.updateRentEnt(rentEnt); + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + + /**지정한 임대 기업 대장를 제거한다. + * @param rentEntIDs 임대 기업 대장 아이디 + * @return jsonView + *
 {
+     *     "affected": 저장된 정보수
+     *     "saved": 저장되었으면 true, 그렇지 않으면 false
+     * }
+ */ + @Task("CMN") + @RequestMapping(name = "임대기업 대장 제거", value=METHOD_URL.removeRentEnterprise) + public ModelAndView removeRentEnterprise(RentEnt rentEnt) { + boolean saved = false; + String rtnMsg = ""; + + // 단건 삭제 + if (rentEnt.getEntIds() == null || rentEnt.getEntIds().length < 1) { + rtnMsg = rentEntService.removeRentEnt(rentEnt); + } else { + // Ids 만큼 반복 등록 + for (String entId : rentEnt.getEntIds()) { + RentEnt deleteRentEnt = new RentEnt(); + deleteRentEnt.setEntId(entId); + + // 등록 호출 + rtnMsg = rentEntService.removeRentEnt(deleteRentEnt); + if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료.. + saved = false; + break; + } + } + } + + if (rtnMsg.contains("[S]")) { + saved = true; + } else { + saved = false; + } + + return new ModelAndView("jsonView") + .addObject("saved", saved) + .addObject("rtnMsg", rtnMsg); + } + +} 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..aefcb3f3 --- /dev/null +++ b/src/main/java/cokr/xit/fims/rent/web/Rent02Controller.java @@ -0,0 +1,202 @@ +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.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 numeric = format.n_nn0(); + CellStyle dateDT = format.yyyy_mm_dd_hh_mm_ss(); + + List list = lsctService.getLsctList(req.setFetchSize(0)); + + Map valueMap = new HashMap(); + + valueMap.put("업무구분", format.of("TASK_SE_NM").style(center)); + valueMap.put("단속일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CRDN_YMD_TM").style(dateDT)); + valueMap.put("차량번호", format.of("VHRNO")); + valueMap.put("납부자구분", format.of("RTPYR_SE_NM").style(center)); + valueMap.put("납부자번호", format.of("RTPYR_NO").style(center)); + valueMap.put("납부자명", format.of("RTPYR_NM")); + valueMap.put("위반항목", format.of("VLTN_ARTCL")); + valueMap.put("단속법정동", format.of("CRDN_STDG_NM").style(center)); + valueMap.put("단속장소", format.of("CRDN_PLC")); + valueMap.put("단속원금", format.of("FFNLG_CRDN_AMT").style(numeric)); + valueMap.put("처리상태", format.of("CRDN_STTS_NM")); + valueMap.put("등록일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "REG_DT").style(dateDT)); + valueMap.put("등록사용자", format.of("RGTR_NM").style(center)); + valueMap.put("수정일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "MDFCN_DT").style(dateDT)); + valueMap.put("수정사용자", format.of("MDFR_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/rent/hirer-mapper.xml b/src/main/resources/sql/mapper/rent/hirer-mapper.xml new file mode 100644 index 00000000..9c88f58e --- /dev/null +++ b/src/main/resources/sql/mapper/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/rent/lsct-mapper.xml b/src/main/resources/sql/mapper/rent/lsct-mapper.xml new file mode 100644 index 00000000..f8d766a3 --- /dev/null +++ b/src/main/resources/sql/mapper/rent/lsct-mapper.xml @@ -0,0 +1,563 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* 단속 대장 등록(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 + , C.NXRP_CRDN_LINK_YN + , C.NXRP_ACB_KEY + , 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} + + + diff --git a/src/main/resources/sql/mapper/rent/rentEnt-mapper.xml b/src/main/resources/sql/mapper/rent/rentEnt-mapper.xml new file mode 100644 index 00000000..a0548906 --- /dev/null +++ b/src/main/resources/sql/mapper/rent/rentEnt-mapper.xml @@ -0,0 +1,186 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT RE.ENT_ID + , RE.ENT_SE_CD + , (SELECT GET_CODE_NM('FIM088', RE.ENT_SE_CD) FROM DUAL) AS ENT_SE_NM + , RE.ENT_NM + , RE.ENT_NO + , RE.RPRSV_NM + , RE.ENT_TELNO + , RE.ENT_FXNO + , RE.ENT_EML_ADDR + , RE.ENT_ZIP + , RE.ENT_ADDR + , RE.ENT_DTL_ADDR + , RE.DEL_YN + , RE.REG_DT + , RE.RGTR + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = RE.RGTR) AS RGTR_NM + , RE.MDFCN_DT + , RE.MDFR + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = RE.MDFR) AS MDFR_NM + FROM TB_RENT_ENT RE + + + + + + + /* 임대 기업 대장 등록(rentEntMapper.insertRentEnt) */ + + + + + + + + INSERT + INTO TB_RENT_ENT ( + ENT_ID + , ENT_SE_CD + , ENT_NO + , ENT_NM + , RPRSV_NM + , ENT_TELNO + , ENT_FXNO + , ENT_EML_ADDR + , ENT_ZIP + , ENT_ADDR + , ENT_DTL_ADDR + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + , DEL_DT + , DLTR + , DEL_RSN + ) + VALUES ( + #{entId} + , #{entSeCd} + , #{entNo} + , #{entNm} + , #{rprsvNm} + , #{entTelno} + , #{entFxno} + , #{entEmlAddr} + , #{entZip} + , #{entAddr} + , #{entDtlAddr} + , 'N' + , + , #{createdBy} + , + , #{modifiedBy} + , NULL + , NULL + , NULL + ) + + + /* 임대 기업 대장 수정(rentEntMapper.updateRentEnt) */ + UPDATE TB_RENT_ENT + SET ENT_SE_CD = #{entSeCd} + , ENT_NM = #{entNm} + , ENT_NO = #{entNo} + , RPRSV_NM = #{rprsvNm} + , ENT_TELNO = #{entTelno} + , ENT_FXNO = #{entFxno} + , ENT_EML_ADDR = #{entEmlAddr} + , ENT_ZIP = #{entZip} + , ENT_ADDR = #{entAddr} + , ENT_DTL_ADDR = #{entDtlAddr} + , MDFCN_DT = + , MDFR = #{modifiedBy} + WHERE ENT_ID = #{entId} + AND DEL_YN = 'N' + + + /* 임대 기업 대장 삭제(rentEntMapper.deleteRentEnt) */ + UPDATE TB_RENT_ENT + SET DEL_YN = 'Y' + , DEL_DT = + , DLTR = #{modifiedBy} + , DEL_RSN = #{delRsn} + WHERE ENT_ID = #{entId} + AND DEL_YN = 'N' + + + diff --git a/src/main/resources/sql/mapper/rent/userRentEntMpng-mapper.xml b/src/main/resources/sql/mapper/rent/userRentEntMpng-mapper.xml new file mode 100644 index 00000000..0baf768c --- /dev/null +++ b/src/main/resources/sql/mapper/rent/userRentEntMpng-mapper.xml @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + SELECT UREM.MPNG_ID + , UREM.USER_ID + , UREM.ENT_ID + , UREM.DEL_YN + , (SELECT GET_CODE_NM('CMN007', UREM.DEL_YN) FROM DUAL) AS DEL_YN_NM + , UREM.REG_DT + , UREM.RGTR + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = UREM.RGTR) AS RGTR_NM + , U.USER_ACNT + , U.USER_NM + , RE.ENT_SE_CD + , (SELECT GET_CODE_NM('FIM088', RE.ENT_SE_CD) FROM DUAL) AS ENT_SE_NM + , RE.ENT_NM + , RE.ENT_NO + , RE.RPRSV_NM + , RE.ENT_TELNO + , RE.ENT_FXNO + , RE.ENT_EML_ADDR + , RE.ENT_ZIP + , RE.ENT_ADDR + , RE.ENT_DTL_ADDR + FROM TB_USER_RENT_ENT_MPNG UREM + INNER JOIN TB_USER U ON (UREM.USER_ID = U.USER_ID) + INNER JOIN TB_RENT_ENT RE ON (UREM.ENT_ID = RE.ENT_ID) + + + + + + + /* 사용자 임대 기업 매핑 등록(userRentEntMpngMapper.insertUserRentEntMpng) */ + + + + + + + + INSERT + INTO TB_USER_RENT_ENT_MPNG ( + MPNG_ID + , USER_ID + , ENT_ID + , DEL_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + ) + VALUES ( + #{mpngId} + , #{userId} + , #{entId} + , 'N' + , + , #{createdBy} + , + , #{modifiedBy} + ) + + + /* 사용자 임대 기업 매핑 삭제(userRentEntMpngMapper.deleteUserRentEntMpng) */ + UPDATE TB_USER_RENT_ENT_MPNG + SET DEL_YN = 'Y' + , DEL_DT = + , DLTR = #{modifiedBy} + + + WHERE MPNG_ID IN ( + #{mpngId} + ) + + + WHERE MPNG_ID = #{mpngId} + + + + +