렌트 관련 소스 이동

main
이범준 2 months ago
parent ccc4b15429
commit 1e8402046e

@ -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;
}

@ -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;
}

@ -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;
}

@ -0,0 +1,216 @@
package cokr.xit.fims.rent;
import cokr.xit.fims.cmmn.CmmnQuery;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2024-07-24 JoJH
* ================================
* </pre>
*/
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 /////////////////////////////////////////////////////////////////////
}

@ -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;
}

@ -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
*
* <p> :
*
* <pre>
* ============ ============
* 2024-08-27 JoJH
* ================================
* </pre>
*/
@Mapper("hirerMapper")
public interface HirerMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectHirerList(RentQuery req);
/** .
* @param req
* @return
*/
List<Hirer> selectHirers(RentQuery req);
/** .
* @param params
* <ul><li>"hirer" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertHirer(Map<String, Object> params);
/** .
* @param hirer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(Hirer hirer) {
return hirer != null && insertHirer(params().set("hirer", hirer)) == 1;
}
/** .
* @param params
* <ul><li>"hirer" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateHirer(Map<String, Object> params);
/** .
* @param hirer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(Hirer hirer) {
return hirer != null && updateHirer(params().set("hirer", hirer)) == 1;
}
/** .
* @param params
* <ul><li>"hirer" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int deleteHirer(Map<String, ?> params);
/** .
* @param hirer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(Hirer hirer) {
return hirer != null && deleteHirer(params().set("hirer", hirer)) == 1;
}
}

@ -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
*
* <p> :
*
* <pre>
* ============ ============
* 2024-08-27 JoJH
* ================================
* </pre>
*/
@Mapper("lsctMapper")
public interface LsctMapper extends AbstractMapper {
/**
* @param req
* @return
*/
List<DataObject> selectMainList(RentQuery req);
/**
* @param req
* @return
*/
DataObject selectCrdnInfo(String crndId);
/** .
* @param params
* <ul><li>"lsct" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int copyMainToCrdn(Crdn crdn);
int copyMainToCrdnAdi(Crdn crdn);
/** .<br />
* @param req
* @return
*/
List<DataObject> selectLsctList(RentQuery req);
/** .
* @param req
* @return
*/
List<Lsct> selectLscts(RentQuery req);
/** .
* @param params
* <ul><li>"lsct" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertLsct(Map<String, Object> params);
/** .
* @param lsct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(Lsct lsct) {
return lsct != null && insertLsct(params().set("lsct", lsct)) == 1;
}
/** .
* @param params
* <ul><li>"lsct" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateLsct(Map<String, Object> params);
/** .
* @param lsct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(Lsct lsct) {
return lsct != null && updateLsct(params().set("lsct", lsct)) == 1;
}
/** .
* @param params
* <ul><li>"lsct" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int deleteLsct(Map<String, ?> params);
/** .
* @param lsct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(Lsct lsct) {
return lsct != null && deleteLsct(params().set("lsct", lsct)) == 1;
}
}

@ -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
*
* <p> :
*
* <pre>
* ============ ============
* 2024-07-24 JoJH
* ================================
* </pre>
*/
@Mapper("rentEntMapper")
public interface RentEntMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectRentEntList(RentQuery req);
/** .
* @param req
* @return
*/
List<DataObject> 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<DataObject> rentEnts = selectRentEnts(req);
return !rentEnts.isEmpty() ? rentEnts.get(0) : null;
}
/** .
* @param params
* <ul><li>"rentEnt" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertRentEnt(RentEnt rentEnt);
/** .
* @param params
* <ul><li>"rentEnt" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateRentEnt(RentEnt rentEnt);
/** .
* @param params
* <ul><li>"rentEnt" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int deleteRentEnt(RentEnt rentEnt);
}

@ -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
*
* <p> :
*
* <pre>
* ============ ============
* 2024-07-24 JoJH
* ================================
* </pre>
*/
@Mapper("userRentEntMpngMapper")
public interface UserRentEntMpngMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectUserRentEntMpngList(RentQuery req);
/** .
* @param req
* @return
*/
List<DataObject> 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<DataObject> userRentEntMpngs = selectUserRentEntMpngs(req);
return !userRentEntMpngs.isEmpty() ? userRentEntMpngs.get(0) : null;
}
/** .
* @param params
* <ul><li>"userRentEntMpng" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertUserRentEntMpng(UserRentEntMpng userRentEntMpng);
/** .
* @param params
* <ul><li>"userRentEntMpng" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateUserRentEntMpng(UserRentEntMpng userRentEntMpng);
/** .
* @param params
* <ul><li>"userRentEntMpng" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int deleteUserRentEntMpng(UserRentEntMpng userRentEntMpng);
}

@ -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;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2024-08-27 JoJH
* ================================
* </pre>
*/
public interface HirerService {
/** .
* @param req
* @return
*/
List<DataObject> getHirerList(RentQuery req);
/** .
* @param req
* @return
*/
List<Hirer> getHirers(RentQuery req);
/** .
* @param hirer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean create(Hirer hirer);
/** .
* @param hirer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean update(Hirer hirer);
/** .
* @param hirer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean remove(Hirer hirer);
}

@ -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;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2024-08-27 JoJH
* ================================
* </pre>
*/
public interface LsctService {
/** .
* @param req
* @return
*/
List<DataObject> getLsctList(RentQuery req);
/** .
* @param req
* @return
*/
List<Lsct> getLscts(RentQuery req);
/** .
* @param lsct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean create(Lsct lsct);
/** .
* @param lsct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean update(Lsct lsct);
/** .
* @param lsct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean remove(Lsct lsct);
}

@ -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;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2024-07-24 JoJH
* ================================
* </pre>
*/
public interface RentEntService {
/** .
* @param req
* @return
*/
List<DataObject> getUserRentEntMpngList(RentQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getUserRentEntMpngs(RentQuery req);
/** .
* @param userRentEntMpng
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String createUserRentEntMpng(UserRentEntMpng userRentEntMpng);
/** .
* @param userRentEntMpng
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String removeUserRentEntMpng(UserRentEntMpng userRentEntMpng);
/** .
* @param req
* @return
*/
List<DataObject> getRentEntList(RentQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getRentEnts(RentQuery req);
/** .
* @param req
* @return
*/
DataObject getRentEntInfo(RentQuery req);
/** .
* @param rentEnt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String createRentEnt(RentEnt rentEnt);
/** .
* @param rentEnt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String updateRentEnt(RentEnt rentEnt);
/** .
* @param rentEnt
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String removeRentEnt(RentEnt rentEnt);
}

@ -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
*
* <p> :
*
* <pre>
* ============ ============
* 2024-08-27 JoJH
* ================================
* </pre>
*/
@Component("hirerBean")
public class HirerBean extends AbstractBean {
/** 임차인 정보 정보 DAO */
@Resource(name = "hirerMapper")
private HirerMapper hirerMapper;
/** .
* @param req
* @return
*/
public List<DataObject> getHirerList(RentQuery req) {
return hirerMapper.selectHirerList(req);
}
/** .
* @param req
* @return
*/
public List<Hirer> getHirers(RentQuery req) {
return hirerMapper.selectHirers(req);
}
/** .
* @param hirer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean create(Hirer hirer) {
return hirerMapper.insert(hirer);
}
/** .
* @param hirer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean update(Hirer hirer) {
return hirerMapper.update(hirer);
}
/** .
* @param hirer
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean remove(Hirer hirer) {
return hirerMapper.delete(hirer);
}
}

@ -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;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2024-08-27 JoJH
* ================================
* </pre>
*/
@Service("hirerService")
public class HirerServiceBean extends AbstractServiceBean implements HirerService {
/** 임차인 정보 정보 Bean */
@Resource(name = "hirerBean")
private HirerBean hirerBean;
@Override
public List<DataObject> getHirerList(RentQuery req) {
return hirerBean.getHirerList(req);
}
@Override
public List<Hirer> 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);
}
}

@ -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
*
* <p> :
*
* <pre>
* ============ ============
* 2024-08-27 JoJH
* ================================
* </pre>
*/
@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<DataObject> 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<DataObject> 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<FileInfo> fileInfoList = new ArrayList<FileInfo>();
//
}
}
}
// 단속(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<Lsct> getLscts(RentQuery req) {
return lsctMapper.selectLscts(req);
}
/** .
* @param lsct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean create(Lsct lsct) {
return lsctMapper.insert(lsct);
}
/** .
* @param lsct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean update(Lsct lsct) {
return lsctMapper.update(lsct);
}
/** .
* @param lsct
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean remove(Lsct lsct) {
return lsctMapper.delete(lsct);
}
}

@ -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;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2024-08-27 JoJH
* ================================
* </pre>
*/
@Service("lsctService")
public class LsctServiceBean extends AbstractServiceBean implements LsctService {
/** 임대차계약 대장 정보 Bean */
@Resource(name = "lsctBean")
private LsctBean lsctBean;
@Override
public List<DataObject> getLsctList(RentQuery req) {
return lsctBean.getLsctList(req);
}
@Override
public List<Lsct> 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);
}
}

@ -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
*
* <p> :
*
* <pre>
* ============ ============
* 2024-07-24 JoJH
* ================================
* </pre>
*/
@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<DataObject> 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<DataObject> 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
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
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] 등록 작업 중 오류가 발생하였습니다.<br>이미 등록된 매핑 정보가 존재합니다."
+ "<p>" + "법인(사업자)번호 : " + userRentEntMpngInfo.string("ENT_NO") + "</p>";;
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
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
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<DataObject> 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<DataObject> 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
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
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] 등록 중 오류가 발생하였습니다.<br>이미 등록된 [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
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
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
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String removeRentEnt(RentEnt rentEnt) {
// 임대기업(TB_RENT_ENT) 대장을 등록한다.
int rtnNocs = rentEntMapper.deleteRentEnt(rentEnt);
if (rtnNocs != 1) {
throw new RuntimeException("[F] 삭제 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
return "[S] 삭제 작업이 정상 처리 되었습니다.";
}
}

@ -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;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2024-07-24 JoJH
* ================================
* </pre>
*/
@Service("rentEntService")
public class RentEntServiceBean extends AbstractServiceBean implements RentEntService {
/** 임대 기업 대장 정보 Bean */
@Resource(name = "rentEntBean")
private RentEntBean rentEntBean;
@Override
public List<DataObject> getUserRentEntMpngList(RentQuery req) {
return rentEntBean.getUserRentEntMpngList(req);
}
@Override
public List<DataObject> 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<DataObject> getRentEntList(RentQuery req) {
return rentEntBean.getRentEntList(req);
}
@Override
public List<DataObject> 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);
}
}

@ -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;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2024-07-24 JoJH
* ================================
* </pre>
*/
@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)
;
}
/** .<br />
* {@link RentEntService#getRentEntList(RentEntQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "rentEntList": [ ]
* "rentEntStart":
* "rentEntFetch":
* "rentEntTotal":
* }</code></pre>
*/
@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<CellDef> 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<DataObject> list = rentEntService.getUserRentEntMpngList(req.setFetchSize(0));
Map<String,Object> valueMap = new HashMap<String,Object>();
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()) // 기업 (법인/사업자)번호
;
}
/** .<br />
* {@link RentEntService#getRentEntList(RentEntQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "rentEntList": [ ]
* "rentEntStart":
* "rentEntFetch":
* "rentEntTotal":
* }</code></pre>
*/
@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<CellDef> 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<DataObject> list = rentEntService.getUserRentEntMpngList(req.setFetchSize(0));
Map<String,Object> valueMap = new HashMap<String,Object>();
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
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@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
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@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<String, List<CommonCode>> 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
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@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
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@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
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@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);
}
}

@ -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;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2024-08-27 JoJH
* ================================
* </pre>
*/
@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<DataObject> 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) // 임대업체 목록
;
}
/** .<br />
* {@link LsctService#getLsctList(LsctQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "lsctList": [ ]
* "lsctStart":
* "lsctFetch":
* "lsctTotal":
* }</code></pre>
*/
@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<CellDef> 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<DataObject> list = lsctService.getLsctList(req.setFetchSize(0));
Map<String,Object> valueMap = new HashMap<String,Object>();
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
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@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
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@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
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "임대차계약 대장 제거", value = "/remove.do")
public ModelAndView remove(Lsct lsct) {
boolean saved = lsctService.remove(lsct);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
}

@ -0,0 +1,185 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.rent.dao.HirerMapper">
<!-- 임차인 정보 정보 매퍼
========== 변경 이력 ==========
2024-08-27 JoJH 최초 작성
============================ -->
<resultMap id="hirerRow" type="cokr.xit.fims.rent.Hirer"> <!-- 임차인 정보 -->
<result property="hirerId" column="HIRER_ID" /> <!-- 임차인 ID -->
<result property="vhrno" column="VHRNO" /> <!-- 자동차등록번호 -->
<result property="hireBgngDt" column="HIRE_BGNG_DT" /> <!-- 임차 시작 일시 -->
<result property="hireEndDt" column="HIRE_END_DT" /> <!-- 임차 종료 일시 -->
<result property="hirerSeCd" column="HIRER_SE_CD" /> <!-- 임차인 구분 코드 -->
<result property="corpBzmnNo" column="CORP_BZMN_NO" /> <!-- 법인 사업자 번호 -->
<result property="lcnsNo" column="LCNS_NO" /> <!-- 면허 번호 -->
<result property="hirerNm" column="HIRER_NM" /> <!-- 임차인 명 -->
<result property="hirerMblTelno" column="HIRER_MBL_TELNO" /> <!-- 임차인 휴대 전화번호 -->
<result property="hirerEml" column="HIRER_EML" /> <!-- 임차인 이메일 -->
<result property="hirerZip" column="HIRER_ZIP" /> <!-- 임차인 우편번호 -->
<result property="hirerAddr" column="HIRER_ADDR" /> <!-- 임차인 주소 -->
<result property="hirerDtlAddr" column="HIRER_DTL_ADDR" /> <!-- 임차인 상세 주소 -->
<result property="atchFileCnt" column="ATCH_FILE_CNT" /> <!-- 첨부 파일 수 -->
<result property="atchFileDelYn" column="ATCH_FILE_DEL_YN" /> <!-- 첨부 파일 삭제 여부 -->
<result property="atchFileRegDt" column="ATCH_FILE_REG_DT" /> <!-- 첨부 파일 등록 일시 -->
<result property="atchFileRgtr" column="ATCH_FILE_RGTR" /> <!-- 첨부 파일 등록자 -->
<result property="atchFileRegIp" column="ATCH_FILE_REG_IP" /> <!-- 첨부 파일 등록 IP -->
<result property="atchFileDelDt" column="ATCH_FILE_DEL_DT" /> <!-- 첨부 파일 삭제 일시 -->
<result property="atchFileDltr" column="ATCH_FILE_DLTR" /> <!-- 첨부 파일 삭제자 -->
<result property="atchFileDelIp" column="ATCH_FILE_DEL_IP" /> <!-- 첨부 파일 삭제 IP -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
<result property="removedAt" column="DEL_DT" /> <!-- 삭제 일시 -->
<result property="removedBy" column="DLTR" /> <!-- 삭제자 -->
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<sql id="select">SELECT HIRER_ID <!-- 임차인 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 <!-- 첨부 파일 등록 IP -->
, ATCH_FILE_DEL_DT <!-- 첨부 파일 삭제 일시 -->
, ATCH_FILE_DLTR <!-- 첨부 파일 삭제자 -->
, ATCH_FILE_DEL_IP <!-- 첨부 파일 삭제 IP -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
, DEL_DT <!-- 삭제 일시 -->
, DLTR <!-- 삭제자 -->
, DEL_RSN <!-- 삭제 사유 -->
FROM TB_HIRER</sql>
<select id="selectHirerList" parameterType="map" resultType="dataobject">/* 임차인 정보 목록 조회(hirerMapper.selectHirerList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where></where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" /></select>
<select id="selectHirers" parameterType="map" resultMap="hirerRow">/* 임차인 정보 객체 가져오기(hirerMapper.selectHirers) */
<include refid="select" />
<where></where>
<include refid="utility.orderBy" /></select>
<insert id="insertHirer" parameterType="map">/* 임차인 정보 등록(hirerMapper.insertHirer) */
INSERT INTO TB_HIRER (
HIRER_ID <!-- 임차인 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 <!-- 첨부 파일 등록 IP -->
, ATCH_FILE_DEL_DT <!-- 첨부 파일 삭제 일시 -->
, ATCH_FILE_DLTR <!-- 첨부 파일 삭제자 -->
, ATCH_FILE_DEL_IP <!-- 첨부 파일 삭제 IP -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
, DEL_DT <!-- 삭제 일시 -->
, DLTR <!-- 삭제자 -->
, DEL_RSN <!-- 삭제 사유 -->
) VALUES (
#{hirer.hirerId} <!-- 임차인 ID -->
, #{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} <!-- 첨부 파일 등록 IP -->
, #{hirer.atchFileDelDt} <!-- 첨부 파일 삭제 일시 -->
, #{hirer.atchFileDltr} <!-- 첨부 파일 삭제자 -->
, #{hirer.atchFileDelIp} <!-- 첨부 파일 삭제 IP -->
, #{hirer.delYn} <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{currentUser.id} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{currentUser.id} <!-- 수정자 -->
, #{hirer.removedAt} <!-- 삭제 일시 -->
, #{hirer.removedBy} <!-- 삭제자 -->
, #{hirer.delRsn} <!-- 삭제 사유 -->
)</insert>
<update id="updateHirer" parameterType="map">/* 임차인 정보 수정(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} <!-- 첨부 파일 등록 IP -->
, ATCH_FILE_DEL_DT = #{hirer.atchFileDelDt} <!-- 첨부 파일 삭제 일시 -->
, ATCH_FILE_DLTR = #{hirer.atchFileDltr} <!-- 첨부 파일 삭제자 -->
, ATCH_FILE_DEL_IP = #{hirer.atchFileDelIp} <!-- 첨부 파일 삭제 IP -->
, DEL_YN = #{hirer.delYn} <!-- 삭제 여부 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{currentUser.id} <!-- 수정자 -->
, DEL_DT = #{hirer.removedAt} <!-- 삭제 일시 -->
, DLTR = #{hirer.removedBy} <!-- 삭제자 -->
, DEL_RSN = #{hirer.delRsn} <!-- 삭제 사유 -->
WHERE HIRER_ID = #{hirer.hirerId}</update>
<update id="deleteHirer" parameterType="map">/* 임차인 정보 삭제(hirerMapper.deleteHirer) */
UPDATE TB_HIRER SET
USE_YN = 'N'
, MDFCN_DT =<include refid="utility.now" />
, MDFR = #{currentUser.id}
WHERE HIRER_ID = #{hirer.hirerId}</update>
</mapper>

@ -0,0 +1,563 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.rent.dao.LsctMapper">
<!-- 임대차계약 대장 정보 매퍼
========== 변경 이력 ==========
2024-08-27 JoJH 최초 작성
============================ -->
<resultMap id="lsctRow" type="cokr.xit.fims.rent.Lsct"> <!-- 임대차계약 대장 -->
<result property="lsctId" column="LSCT_ID" /> <!-- 임대차계약 ID -->
<result property="crdnId" column="CRDN_ID" /> <!-- 단속 ID -->
<result property="levyId" column="LEVY_ID" /> <!-- 부과 ID -->
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="crdnDt" column="CRDN_DT" /> <!-- 단속 일시 -->
<result property="vhrno" column="VHRNO" /> <!-- 자동차등록번호 -->
<result property="crdnStdgNm" column="CRDN_STDG_NM" /> <!-- 단속 법정동 명 -->
<result property="crdnPlc" column="CRDN_PLC" /> <!-- 단속 장소 -->
<result property="vltnArtcl" column="VLTN_ARTCL" /> <!-- 위반 항목 -->
<result property="rtpyrNo" column="RTPYR_NO" /> <!-- 납부자 번호 -->
<result property="rtpyrNm" column="RTPYR_NM" /> <!-- 납부자 명 -->
<result property="entId" column="ENT_ID" /> <!-- 기업 ID -->
<result property="hirerId" column="HIRER_ID" /> <!-- 임차인 ID -->
<result property="chgDmndYn" column="CHG_DMND_YN" /> <!-- 변경 요청 여부 -->
<result property="chgDmndDt" column="CHG_DMND_DT" /> <!-- 변경 요청 일시 -->
<result property="chgDmndRgtr" column="CHG_DMND_RGTR" /> <!-- 변경 요청 등록자 -->
<result property="chgDmndIp" column="CHG_DMND_IP" /> <!-- 변경 요청 IP -->
<result property="chgDmndMdfcnDt" column="CHG_DMND_MDFCN_DT" /> <!-- 변경 요청 수정 일시 -->
<result property="chgDmndMdfr" column="CHG_DMND_MDFR" /> <!-- 변경 요청 수정자 -->
<result property="chgDmndMdfcnIp" column="CHG_DMND_MDFCN_IP" /> <!-- 변경 요청 수정 IP -->
<result property="chgAprvYn" column="CHG_APRV_YN" /> <!-- 변경 승인 여부 -->
<result property="chgAprvDt" column="CHG_APRV_DT" /> <!-- 변경 승인 일시 -->
<result property="chgAutzr" column="CHG_AUTZR" /> <!-- 변경 승인자 -->
<result property="chgAprvRsn" column="CHG_APRV_RSN" /> <!-- 변경 승인 사유 -->
<result property="chgAprvIp" column="CHG_APRV_IP" /> <!-- 변경 승인 IP -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
<result property="removedAt" column="DEL_DT" /> <!-- 삭제 일시 -->
<result property="removedBy" column="DLTR" /> <!-- 삭제자 -->
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<select id="selectMainList" parameterType="map" resultType="dataobject">/* 연계뷰 단속 목록 조회(lsctMapper.selectMainList) */
SELECT MM_CODE
, MM_SGGCODE
, MM_TASKGB
, MM_DLGB
, MM_INGB
, MM_DATE
, (CASE WHEN LENGTH(MM_TIME) = 4 THEN CONCAT(MM_TIME, '00') ELSE MM_TIME END) AS MM_TIME
, MM_LAWGB
, (SELECT VLTN_ID FROM TB_VLTN X
WHERE X.VLTN_CD = LPAD(MM_LAWGB, 2, '0')
AND X.SGG_CD = MM_SGGCODE
AND X.TASK_SE_CD = MM_TASKGB) AS VLTN_ID
, MM_SGNM
, MM_SGTEL
, MM_SGCONT
, MM_SGPOS
, MM_BDCODE
, (SELECT TRIM(CONCAT(X.EMD_NM, ' ', X.LI_NM)) FROM TB_STDG X
WHERE X.STDG_CD = MM_BDCODE) AS CRDN_STDG_NM
, MM_GPS_X
, MM_GPS_Y
, MM_TRAC
, MM_SNO
, MM_IMAGECNT
, MM_IMAGEGB
, MM_CARNO
, MM_VHMNO
, MM_CARGB
, MM_CARKIND
, MM_OMCODE
, MM_SDATE
, MM_EDATE
, MM_KEUM1
, MM_KEUM2
, MM_SUKEUM
, MM_MINUS_KEUM
, MM_ADD_KEUM
, MM_RECALL
, MM_INUSER
, MM_INDT
, MM_STATE
, MM_STATE_DT
, MM_CARCHECK
, MM_PRECODE
, MM_ETC
, MM_VIDEOFILENM
, MM_SAFEZONE
, MM_VIORCNT
, (CASE WHEN LENGTH(MM_TIME2) = 4 THEN CONCAT(MM_TIME2, '00') ELSE MM_TIME2 END) AS MM_TIME2
, MM_CARNAME
, MM_CARCOLOR
, MM_CARFUEL
, MM_TRANSMIT_SGG
, MM_TRANSMIT_TEAM
, OM_CODE
, OM_SGGCODE
, OM_NAME
, OM_NO1
, OM_JNO
, OM_NOGB
, OM_JUSO
, OM_BUNJI
, OM_ZIP
, OM_DORO_CODE
, OM_BLD_POSITION
, OM_BLD_NO1
, OM_BLD_NO2
, OM_BLD_ADMNO
, OM_INGB
, OM_INDT
, OM_BDCODE
, MC_LVY_KEY
, (CASE WHEN MC_LVY_KEY IS NOT NULL THEN 'Y' ELSE 'N' END) AS NIS_LINK_YN
FROM VW_CP_MAIN
<where>
<if test="schCrdnYmdFrom != null">
AND MM_DATE <![CDATA[>=]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
</if>
<if test="schCrdnYmdTo != null">
AND MM_DATE <![CDATA[<=]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
</if>
<if test="schVhrno != null">
AND MM_CARNO = #{schVhrno} <!-- 차량번호 -->
</if>
<if test="omJnos != null">
AND OM_JNO IN ( <!-- 납부자 번호s -->
<foreach collection="omJnos" item="omJno" separator=","> #{omJno} </foreach>
)
</if>
<if test="omJno != null">
AND OM_JNO = #{omJno} <!-- 납부자 번호 -->
</if>
<if test="schEntNm != null">
AND OM_NAME = #{schEntNm} <!-- 납부자 명 -->
</if>
<if test="sggCd != null">
AND MM_SGGCODE = #{sggCd} <!-- 시군구 코드 -->
</if>
<if test="taskSeCd != null">
AND MM_TASKGB = #{taskSeCd} <!-- 업무 구분 코드 -->
</if>
</where>
<include refid="utility.orderBy" />
</select>
<select id="selectCrdnInfo" parameterType="string" resultType="dataobject">/* 단속 객체 가져오기(lsctMapper.selectCrdnInfo) */
SELECT CRDN_ID <!-- 단속 ID -->
, VHRNO <!-- 차량번호 -->
, CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
FROM TB_CRDN
WHERE CRDN_ID = #{crdnId}
</select>
<insert id="copyMainToCrdn" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 대장 등록(lsctMapper.copyMainToCrdn) */
INSERT
INTO TB_CRDN (
CRDN_ID <!-- 단속 ID -->
, SGG_CD <!-- 시군구 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, CRDN_REG_SE_CD <!-- 단속 등록 구분 코드 -->
, CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
, CVLCPT_LINK_YN <!-- 민원 연계 여부 -->
, LINK_TBL_NM <!-- 연계 테이블 명 -->
, LINK_ID <!-- 연계 ID -->
, RTPYR_ID <!-- 납부자 ID -->
, ADDR_SN <!-- 주소 일련번호 -->
, CRDN_YMD <!-- 단속 일자 -->
, CRDN_TM <!-- 단속 시각 -->
, VHRNO <!-- 자동차등록번호 -->
, CRDN_STDG_NM <!-- 단속 법정동 명 -->
, CRDN_ROAD_NM <!-- 단속 도로 명 -->
, CRDN_PLC <!-- 단속 장소 -->
, VLTN_ID <!-- 위반 ID -->
, GPS_X <!-- GPS X -->
, GPS_Y <!-- 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 <!-- 이전 단속 ID -->
, NXRP_CRDN_LINK_YN <!-- 세외수입 단속 연계 여부 -->
, NXRP_CRDN_LINK_USER_ID <!-- 세외수입 단속 연계 사용자 ID -->
, NXRP_CRDN_LINK_DT <!-- 세외수입 단속 연계 일시 -->
, NXRP_ACB_KEY <!-- 세외수입 대장 키 -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
) VALUES (
LPAD(#{crdnId},20,'0') <!-- 단속 ID -->
, #{sggCd} <!-- 시군구 코드 -->
, #{taskSeCd} <!-- 업무 구분 코드 -->
, #{crdnRegSeCd} <!-- 단속 등록 구분 코드 -->
, #{crdnInptSeCd} <!-- 단속 입력 구분 코드 -->
, #{cvlcptLinkYn} <!-- 민원 연계 여부 -->
, #{linkTblNm} <!-- 연계 테이블 명 -->
, #{linkId} <!-- 연계 ID -->
, #{rtpyrId} <!-- 납부자 ID -->
, #{addrSn} <!-- 주소 일련번호 -->
, #{crdnYmd} <!-- 단속 일자 -->
, #{crdnTm} <!-- 단속 시각 -->
, #{vhrno} <!-- 자동차등록번호 -->
, #{crdnStdgNm} <!-- 단속 법정동 명 -->
, #{crdnRoadNm} <!-- 단속 도로 명 -->
, #{crdnPlc} <!-- 단속 장소 -->
, #{vltnId} <!-- 위반 ID -->
, #{gpsX} <!-- GPS X -->
, #{gpsY} <!-- GPS Y -->
, #{atchFileCnt} <!-- 첨부 파일 수 -->
, #{vin} <!-- 차대번호 -->
, #{vhclNm} <!-- 차량 명 -->
, #{vhclColr} <!-- 차량 색상 -->
, #{ffnlgCrdnAmt} <!-- 과태료 단속 금액 -->
, #{ffnlgRdcrt} <!-- 과태료 감면율 -->
, #{ffnlgAmt} <!-- 과태료 금액 -->
, #{advntceBgngYmd} <!-- 사전통지 시작 일자 -->
, #{advntceDudtYmd} <!-- 사전통지 납기 일자 -->
, #{advntceAmt} <!-- 사전통지 금액 -->
, #{opnnSbmsnYn} <!-- 의견 제출 여부 -->
, #{etcCn} <!-- 기타 내용 -->
, #{crdnSttsCd} <!-- 단속 상태 코드 -->
, #{crdnSttsChgDt} <!-- 단속 상태 변경 일시 -->
, #{adtnAmt} <!-- 가산 금액 -->
, #{minusAmt} <!-- 감경 금액 -->
, #{rcvmtAmt} <!-- 수납 금액 -->
, #{bfrCrdnId} <!-- 이전 단속 ID -->
, #{nxrpCrdnLinkYn} <!-- 세외수입 단속 연계 여부 -->
, #{nxrpCrdnLinkUserId} <!-- 세외수입 단속 연계 사용자 ID -->
, #{nxrpCrdnLinkDt} <!-- 세외수입 단속 연계 일시 -->
, #{nxrpAcbKey} <!-- 세외수입 대장 키 -->
, #{delYn} <!-- 삭제 여부 -->
, #{createdAt} <!-- 등록 일시 -->
, #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{modifiedBy} <!-- 수정자 -->
)
</insert>
<insert id="copyMainToCrdnAdi" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 부가 대장 등록(lsctMapper.copyMainToCrdnAdi) */
INSERT
INTO TB_CRDN_ADI (
CRDN_ID <!-- 단속 ID -->
, CRDN_SE_CD <!-- 단속 구분 코드 -->
, TEAM_ID <!-- 조 ID -->
, DTL_CRDN_PLC <!-- 상세 단속 장소 -->
, CRDN_SPAREA_CD <!-- 단속 특별구역 코드 -->
, CRDN_BGNG_TM <!-- 단속 시작 시각 -->
, CRDN_END_TM <!-- 단속 종료 시각 -->
, CRDN_SN <!-- 단속 일련번호 -->
, MOSC_X <!-- 모자이크 X -->
, MOSC_Y <!-- 모자이크 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') <!-- 단속 ID -->
, #{crdnSeCd} <!-- 단속 구분 코드 -->
, #{teamId} <!-- 조 ID -->
, #{dtlCrdnPlc} <!-- 상세 단속 장소 -->
, #{crdnSpareaCd} <!-- 단속 특별구역 코드 -->
, #{crdnBgngTm} <!-- 단속 시작 시각 -->
, #{crdnEndTm} <!-- 단속 종료 시각 -->
, #{crdnSn} <!-- 단속 일련번호 -->
, #{moscX} <!-- 모자이크 X -->
, #{moscY} <!-- 모자이크 Y -->
, #{towngYn} <!-- 견인 여부 -->
, #{useFuelCd} <!-- 사용 연료 코드 -->
, #{ffnlgCarmdlCd} <!-- 과태료 차종 코드 -->
, #{prkPsbltyRsltCd} <!-- 주차 가능 결과 코드 -->
, #{vltnNmtm} <!-- 위반 횟수 -->
, #{ovtmYn} <!-- 시간외 여부 -->
, #{ovtmPrttnYn} <!-- 시간외 분할 여부 -->
, #{delYn} <!-- 삭제 여부 -->
, #{createdAt} <!-- 등록 일시 -->
, #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{modifiedBy} <!-- 수정자 -->
)
</insert>
<sql id="selectList">
SELECT C.CRDN_ID <!-- 단속 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 <!-- 위반 ID -->
, V.VLTN_CD <!-- 위반 코드 -->
, V.VLTN_ARTCL <!-- 위반 항목 -->
, P.RTPYR_ID <!-- 납부자 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 <!-- 임대차계약 ID -->
, (CASE WHEN L.LSCT_ID IS NULL THEN 'Y' ELSE 'N' END) AS TRGT_YN <!-- 계약서 등록 대상 -->
, L.ENT_ID <!-- 기업 ID -->
, L.HIRER_ID <!-- 임차인 ID -->
, L.CHG_DMND_YN <!-- 변경 요청 여부 -->
, L.CHG_DMND_DT <!-- 변경 요청 일시 -->
, L.CHG_DMND_RGTR <!-- 변경 요청 등록자 -->
, L.CHG_DMND_IP <!-- 변경 요청 IP -->
, L.CHG_DMND_MDFCN_DT <!-- 변경 요청 수정 일시 -->
, L.CHG_DMND_MDFR <!-- 변경 요청 수정자 -->
, L.CHG_DMND_MDFCN_IP <!-- 변경 요청 수정 IP -->
, L.CHG_APRV_YN <!-- 변경 승인 여부 -->
, L.CHG_APRV_DT <!-- 변경 승인 일시 -->
, L.CHG_AUTZR <!-- 변경 승인자 -->
, L.CHG_APRV_RSN <!-- 변경 승인 사유 -->
, L.CHG_APRV_IP <!-- 변경 승인 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')
</sql>
<select id="selectLsctList" parameterType="map" resultType="dataobject">/* 임대차계약 대장 목록 조회(lsctMapper.selectLsctList) */
<include refid="utility.paging-prefix" />
<include refid="selectList" />
<where>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[>=]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
</if>
<if test="schCrdnYmdTo != null">
AND C.CRDN_YMD <![CDATA[<=]]> #{schCrdnYmdTo} <!-- 단속 일자 종료 -->
</if>
<if test="schVhrno != null">
AND C.VHRNO = #{schVhrno} <!-- 차량번호 -->
</if>
<if test="nxrpCrdnLinkYn != null">
AND C.NXRP_CRDN_LINK_YN = #{nxrpCrdnLinkYn} <!-- 세외수입 단속 연계 여부 -->
</if>
<if test="rtpyrNos != null">
AND P.RTPYR_NO IN ( <!-- 납부자 번호s -->
<foreach collection="rtpyrNos" item="rtpyrNo" separator=","> #{rtpyrNo} </foreach>
)
</if>
<if test="rtpyrNo != null">
AND P.RTPYR_NO = #{rtpyrNo} <!-- 납부자 번호 -->
</if>
<if test="sggCd != null">
AND C.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
</if>
<if test="taskSeCd != null">
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
</if>
AND C.DEL_YN = 'N' <!-- 단속 삭제 여부 -->
</where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<sql id="select">
SELECT LSCT_ID <!-- 임대차계약 ID -->
, CRDN_ID <!-- 단속 ID -->
, LEVY_ID <!-- 부과 ID -->
, SGG_CD <!-- 시군구 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, CRDN_DT <!-- 단속 일시 -->
, VHRNO <!-- 자동차등록번호 -->
, CRDN_STDG_NM <!-- 단속 법정동 명 -->
, CRDN_PLC <!-- 단속 장소 -->
, VLTN_ARTCL <!-- 위반 항목 -->
, RTPYR_NO <!-- 납부자 번호 -->
, RTPYR_NM <!-- 납부자 명 -->
, ENT_ID <!-- 기업 ID -->
, HIRER_ID <!-- 임차인 ID -->
, CHG_DMND_YN <!-- 변경 요청 여부 -->
, CHG_DMND_DT <!-- 변경 요청 일시 -->
, CHG_DMND_RGTR <!-- 변경 요청 등록자 -->
, CHG_DMND_IP <!-- 변경 요청 IP -->
, CHG_DMND_MDFCN_DT <!-- 변경 요청 수정 일시 -->
, CHG_DMND_MDFR <!-- 변경 요청 수정자 -->
, CHG_DMND_MDFCN_IP <!-- 변경 요청 수정 IP -->
, CHG_APRV_YN <!-- 변경 승인 여부 -->
, CHG_APRV_DT <!-- 변경 승인 일시 -->
, CHG_AUTZR <!-- 변경 승인자 -->
, CHG_APRV_RSN <!-- 변경 승인 사유 -->
, CHG_APRV_IP <!-- 변경 승인 IP -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
FROM TB_LSCT
</sql>
<select id="selectLscts" parameterType="map" resultMap="lsctRow">/* 임대차계약 대장 객체 가져오기(lsctMapper.selectLscts) */
<include refid="select" />
<where></where>
<include refid="utility.orderBy" />
</select>
<insert id="insertLsct" parameterType="map">/* 임대차계약 대장 등록(lsctMapper.insertLsct) */
INSERT INTO TB_LSCT (
LSCT_ID <!-- 임대차계약 ID -->
, CRDN_ID <!-- 단속 ID -->
, LEVY_ID <!-- 부과 ID -->
, SGG_CD <!-- 시군구 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, CRDN_DT <!-- 단속 일시 -->
, VHRNO <!-- 자동차등록번호 -->
, CRDN_STDG_NM <!-- 단속 법정동 명 -->
, CRDN_PLC <!-- 단속 장소 -->
, VLTN_ARTCL <!-- 위반 항목 -->
, RTPYR_NO <!-- 납부자 번호 -->
, RTPYR_NM <!-- 납부자 명 -->
, ENT_ID <!-- 기업 ID -->
, HIRER_ID <!-- 임차인 ID -->
, CHG_DMND_YN <!-- 변경 요청 여부 -->
, CHG_DMND_DT <!-- 변경 요청 일시 -->
, CHG_DMND_RGTR <!-- 변경 요청 등록자 -->
, CHG_DMND_IP <!-- 변경 요청 IP -->
, CHG_DMND_MDFCN_DT <!-- 변경 요청 수정 일시 -->
, CHG_DMND_MDFR <!-- 변경 요청 수정자 -->
, CHG_DMND_MDFCN_IP <!-- 변경 요청 수정 IP -->
, CHG_APRV_YN <!-- 변경 승인 여부 -->
, CHG_APRV_DT <!-- 변경 승인 일시 -->
, CHG_AUTZR <!-- 변경 승인자 -->
, CHG_APRV_RSN <!-- 변경 승인 사유 -->
, CHG_APRV_IP <!-- 변경 승인 IP -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
, DEL_DT <!-- 삭제 일시 -->
, DLTR <!-- 삭제자 -->
, DEL_RSN <!-- 삭제 사유 -->
) VALUES (
#{lsct.lsctId} <!-- 임대차계약 ID -->
, #{lsct.crdnId} <!-- 단속 ID -->
, #{lsct.levyId} <!-- 부과 ID -->
, #{lsct.sggCd} <!-- 시군구 코드 -->
, #{lsct.taskSeCd} <!-- 업무 구분 코드 -->
, #{lsct.crdnDt} <!-- 단속 일시 -->
, #{lsct.vhrno} <!-- 자동차등록번호 -->
, #{lsct.crdnStdgNm} <!-- 단속 법정동 명 -->
, #{lsct.crdnPlc} <!-- 단속 장소 -->
, #{lsct.vltnArtcl} <!-- 위반 항목 -->
, #{lsct.rtpyrNo} <!-- 납부자 번호 -->
, #{lsct.rtpyrNm} <!-- 납부자 명 -->
, #{lsct.entId} <!-- 기업 ID -->
, #{lsct.hirerId} <!-- 임차인 ID -->
, #{lsct.chgDmndYn} <!-- 변경 요청 여부 -->
, #{lsct.chgDmndDt} <!-- 변경 요청 일시 -->
, #{lsct.chgDmndRgtr} <!-- 변경 요청 등록자 -->
, #{lsct.chgDmndIp} <!-- 변경 요청 IP -->
, #{lsct.chgDmndMdfcnDt} <!-- 변경 요청 수정 일시 -->
, #{lsct.chgDmndMdfr} <!-- 변경 요청 수정자 -->
, #{lsct.chgDmndMdfcnIp} <!-- 변경 요청 수정 IP -->
, #{lsct.chgAprvYn} <!-- 변경 승인 여부 -->
, #{lsct.chgAprvDt} <!-- 변경 승인 일시 -->
, #{lsct.chgAutzr} <!-- 변경 승인자 -->
, #{lsct.chgAprvRsn} <!-- 변경 승인 사유 -->
, #{lsct.chgAprvIp} <!-- 변경 승인 IP -->
, #{lsct.delYn} <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{currentUser.id} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{currentUser.id} <!-- 수정자 -->
, #{lsct.removedAt} <!-- 삭제 일시 -->
, #{lsct.removedBy} <!-- 삭제자 -->
, #{lsct.delRsn} <!-- 삭제 사유 -->
)
</insert>
<update id="updateLsct" parameterType="map">/* 임대차계약 대장 수정(lsctMapper.updateLsct) */
UPDATE TB_LSCT
SET CRDN_ID = #{lsct.crdnId} <!-- 단속 ID -->
, LEVY_ID = #{lsct.levyId} <!-- 부과 ID -->
, 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} <!-- 기업 ID -->
, HIRER_ID = #{lsct.hirerId} <!-- 임차인 ID -->
, CHG_DMND_YN = #{lsct.chgDmndYn} <!-- 변경 요청 여부 -->
, CHG_DMND_DT = #{lsct.chgDmndDt} <!-- 변경 요청 일시 -->
, CHG_DMND_RGTR = #{lsct.chgDmndRgtr} <!-- 변경 요청 등록자 -->
, CHG_DMND_IP = #{lsct.chgDmndIp} <!-- 변경 요청 IP -->
, CHG_DMND_MDFCN_DT = #{lsct.chgDmndMdfcnDt} <!-- 변경 요청 수정 일시 -->
, CHG_DMND_MDFR = #{lsct.chgDmndMdfr} <!-- 변경 요청 수정자 -->
, CHG_DMND_MDFCN_IP = #{lsct.chgDmndMdfcnIp} <!-- 변경 요청 수정 IP -->
, CHG_APRV_YN = #{lsct.chgAprvYn} <!-- 변경 승인 여부 -->
, CHG_APRV_DT = #{lsct.chgAprvDt} <!-- 변경 승인 일시 -->
, CHG_AUTZR = #{lsct.chgAutzr} <!-- 변경 승인자 -->
, CHG_APRV_RSN = #{lsct.chgAprvRsn} <!-- 변경 승인 사유 -->
, CHG_APRV_IP = #{lsct.chgAprvIp} <!-- 변경 승인 IP -->
, DEL_YN = #{lsct.delYn} <!-- 삭제 여부 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{currentUser.id} <!-- 수정자 -->
, DEL_DT = #{lsct.removedAt} <!-- 삭제 일시 -->
, DLTR = #{lsct.removedBy} <!-- 삭제자 -->
, DEL_RSN = #{lsct.delRsn} <!-- 삭제 사유 -->
WHERE LSCT_ID = #{lsct.lsctId}
</update>
<update id="deleteLsct" parameterType="map">/* 임대차계약 대장 삭제(lsctMapper.deleteLsct) */
UPDATE TB_LSCT
SET USE_YN = 'N'
, MDFCN_DT =<include refid="utility.now" />
, MDFR = #{currentUser.id}
WHERE LSCT_ID = #{lsct.lsctId}
</update>
</mapper>

@ -0,0 +1,186 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.rent.dao.RentEntMapper">
<!-- 임대 기업 대장 정보 매퍼
========== 변경 이력 ==========
2024-07-24 JoJH 최초 작성
============================ -->
<resultMap id="rentEntRow" type="cokr.xit.fims.rent.RentEnt"> <!-- 임대 기업 대장 -->
<result property="entId" column="ENT_ID" /> <!-- 기업 ID -->
<result property="entSeCd" column="ENT_SE_CD" /> <!-- 기업 구분 코드 -->
<result property="entNm" column="ENT_NM" /> <!-- 기업 명 -->
<result property="entNo" column="ENT_NO" /> <!-- 기업 번호 -->
<result property="rprsvNm" column="RPRSV_NM" /> <!-- 대표자 명 -->
<result property="entTelno" column="ENT_TELNO" /> <!-- 기업 전화번호 -->
<result property="entFxno" column="ENT_FXNO" /> <!-- 기업 팩스번호 -->
<result property="entEmlAddr" column="ENT_EML_ADDR" /> <!-- 기업 이메일 주소 -->
<result property="entZip" column="ENT_ZIP" /> <!-- 기업 우편번호 -->
<result property="entAddr" column="ENT_ADDR" /> <!-- 기업 주소 -->
<result property="entDtlAddr" column="ENT_DTL_ADDR" /> <!-- 기업 상세 주소 -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
<result property="removedAt" column="DEL_DT" /> <!-- 삭제 일시 -->
<result property="removedBy" column="DLTR" /> <!-- 삭제자 -->
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<sql id="select">
SELECT RE.ENT_ID <!-- 기업 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
</sql>
<select id="selectRentEntList" parameterType="map" resultType="dataobject">/* 임대 기업 대장 목록 조회(rentEntMapper.selectRentEntList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where>
<if test="entId != null">
AND RE.ENT_ID = #{entId} <!-- 기업 ID -->
</if>
<if test="schEntNo != null">
AND RE.ENT_NO = #{schEntNo} <!-- 기업 번호 -->
</if>
<if test="schEntNm != null">
AND RE.ENT_NM LIKE CONCAT('%', #{schEntNm}, '%') <!-- 기업 명 -->
</if>
<if test="schRprsvNm != null">
AND RE.RPRSV_NM = #{schRprsvNm} <!-- 대표자 명 -->
</if>
<choose>
<when test="delYn != null">
AND RE.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</when>
<otherwise>
AND RE.DEL_YN = 'N' <!-- 삭제 여부 -->
</otherwise>
</choose>
</where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectRentEnts" parameterType="map" resultType="dataobject">/* 임대 기업 대장 객체 가져오기(rentEntMapper.selectRentEnts) */
<include refid="select" />
<where>
<if test="entId != null">
AND RE.ENT_ID = #{entId} <!-- 기업 ID -->
</if>
<if test="schEntNo != null">
AND RE.ENT_NO = #{schEntNo} <!-- 기업 번호 -->
</if>
<choose>
<when test="delYn != null">
AND RE.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</when>
<otherwise>
AND RE.DEL_YN = 'N' <!-- 삭제 여부 -->
</otherwise>
</choose>
</where>
<include refid="utility.orderBy" />
</select>
<insert id="insertRentEnt" parameterType="cokr.xit.fims.rent.RentEnt">/* 임대 기업 대장 등록(rentEntMapper.insertRentEnt) */
<selectKey resultType="string" keyProperty="entId" keyColumn="NEW_ID" order="BEFORE">
<include refid="numbering.key">
<property name="TABLE_NAME" value="TB_RENT_ENT" />
<property name="TABLE_KEY" value="ENT_ID" />
<property name="pad" value="10" />
</include>
</selectKey>
INSERT
INTO TB_RENT_ENT (
ENT_ID <!-- 기업 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} <!-- 기업 ID -->
, #{entSeCd} <!-- 기업 구분 코드 -->
, #{entNo} <!-- 기업 번호 -->
, #{entNm} <!-- 기업 명 -->
, #{rprsvNm} <!-- 대표자 명 -->
, #{entTelno} <!-- 기업 전화번호 -->
, #{entFxno} <!-- 기업 팩스번호 -->
, #{entEmlAddr} <!-- 기업 이메일 주소 -->
, #{entZip} <!-- 기업 우편번호 -->
, #{entAddr} <!-- 기업 주소 -->
, #{entDtlAddr} <!-- 기업 상세 주소 -->
, 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{modifiedBy} <!-- 수정자 -->
, NULL <!-- 삭제 일시 -->
, NULL <!-- 삭제자 -->
, NULL <!-- 삭제 사유 -->
)
</insert>
<update id="updateRentEnt" parameterType="cokr.xit.fims.rent.RentEnt">/* 임대 기업 대장 수정(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 = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE ENT_ID = #{entId} <!-- 기업 ID -->
AND DEL_YN = 'N'
</update>
<update id="deleteRentEnt" parameterType="cokr.xit.fims.rent.RentEnt">/* 임대 기업 대장 삭제(rentEntMapper.deleteRentEnt) */
UPDATE TB_RENT_ENT
SET DEL_YN = 'Y'
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{delRsn} <!-- 삭제 사유 -->
WHERE ENT_ID = #{entId} <!-- 기업 ID -->
AND DEL_YN = 'N'
</update>
</mapper>

@ -0,0 +1,142 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.rent.dao.UserRentEntMpngMapper">
<!-- 사용자 임대 기업 매핑 정보 매퍼
========== 변경 이력 ==========
2024-07-24 JoJH 최초 작성
============================ -->
<resultMap id="userRentEntMpngRow" type="cokr.xit.fims.rent.UserRentEntMpng"> <!-- 사용자 임대 기업 매핑 -->
<result property="mpngId" column="MPNG_ID" /> <!-- 매핑 ID -->
<result property="userId" column="USER_ID" /> <!-- 사용자 ID -->
<result property="entId" column="ENT_ID" /> <!-- 기업 ID -->
<result property="delYn" column="DEL_YN" /> <!-- 삭제 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
<result property="removedAt" column="DEL_DT" /> <!-- 삭제 일시 -->
<result property="removedBy" column="DLTR" /> <!-- 삭제자 -->
</resultMap>
<sql id="select">
SELECT UREM.MPNG_ID <!-- 매핑 ID -->
, UREM.USER_ID <!-- 사용자 ID -->
, UREM.ENT_ID <!-- 기업 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)
</sql>
<select id="selectUserRentEntMpngList" parameterType="map" resultType="dataobject">/* 사용자 임대 기업 매핑 목록 조회(userRentEntMpngMapper.selectUserRentEntMpngList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where>
<if test="userId != null">
AND UREM.USER_ID = #{userId} <!-- 사용자 ID -->
</if>
<if test="entId != null">
AND UREM.ENT_ID = #{entId} <!-- 기업 ID -->
</if>
<choose>
<when test="delYn != null">
AND UREM.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</when>
<otherwise>
AND UREM.DEL_YN = 'N' <!-- 삭제 여부 -->
</otherwise>
</choose>
</where>
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectUserRentEntMpngs" parameterType="map" resultType="dataobject">/* 사용자 임대 기업 매핑 객체 가져오기(userRentEntMpngMapper.selectUserRentEntMpngs) */
<include refid="select" />
<where>
<if test="userId != null">
AND UREM.USER_ID = #{userId} <!-- 사용자 ID -->
</if>
<if test="entId != null">
AND UREM.ENT_ID = #{entId} <!-- 기업 ID -->
</if>
<choose>
<when test="delYn != null">
AND UREM.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</when>
<otherwise>
AND UREM.DEL_YN = 'N' <!-- 삭제 여부 -->
</otherwise>
</choose>
</where>
<include refid="utility.orderBy" />
</select>
<insert id="insertUserRentEntMpng" parameterType="cokr.xit.fims.rent.UserRentEntMpng">/* 사용자 임대 기업 매핑 등록(userRentEntMpngMapper.insertUserRentEntMpng) */
<selectKey resultType="string" keyProperty="mpngId" keyColumn="NEW_ID" order="BEFORE">
<include refid="numbering.keyByYear">
<property name="TABLE_NAME" value="TB_USER_RENT_ENT_MPNG" />
<property name="TABLE_KEY" value="MPNG_ID" />
<property name="pad" value="20" />
</include>
</selectKey>
INSERT
INTO TB_USER_RENT_ENT_MPNG (
MPNG_ID <!-- 매핑 ID -->
, USER_ID <!-- 사용자 ID -->
, ENT_ID <!-- 기업 ID -->
, DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
)
VALUES (
#{mpngId} <!-- 매핑 ID -->
, #{userId} <!-- 사용자 ID -->
, #{entId} <!-- 기업 ID -->
, 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{modifiedBy} <!-- 수정자 -->
)
</insert>
<update id="deleteUserRentEntMpng" parameterType="cokr.xit.fims.rent.UserRentEntMpng">/* 사용자 임대 기업 매핑 삭제(userRentEntMpngMapper.deleteUserRentEntMpng) */
UPDATE TB_USER_RENT_ENT_MPNG
SET DEL_YN = 'Y'
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{modifiedBy} <!-- 삭제자 -->
<choose>
<when test="mpngIds != null">
WHERE MPNG_ID IN ( <!-- 매핑 Ids -->
<foreach collection="mpngIds" item="mpngId" separator=","> #{mpngId} </foreach>
)
</when>
<otherwise>
WHERE MPNG_ID = #{mpngId} <!-- 매핑 ID -->
</otherwise>
</choose>
</update>
</mapper>
Loading…
Cancel
Save