임대차계약 조회 수정.

main
xitpc\xituser 3 weeks ago
parent 9e7503848b
commit 2434c79af2

@ -47,6 +47,7 @@ public class RentQuery extends CmmnQuery {
private String omJno; // 소유주 번호
private String[] rtpyrNos; // 납부자 번호s
private String rtpyrNo; // 납부자 번호
private String rtpyrNm; // 납부자 명
private String trgtSttsNm; // 등록 대상 여부
private String nxrpCrdnLinkYn; // 세외수입 단속 연계 여부
@ -55,6 +56,7 @@ public class RentQuery extends CmmnQuery {
// ETC
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
private String delRsn; // 삭제 사유
private String ffnlgSysInqYn; // 과태료 시스템 조회 여부
private String cellDataDef;
@ -282,6 +284,14 @@ public class RentQuery extends CmmnQuery {
this.rtpyrNo = rtpyrNo;
}
public String getRtpyrNm() {
return ifEmpty(rtpyrNm, () -> null);
}
public void setRtpyrNm(String rtpyrNm) {
this.rtpyrNm = rtpyrNm;
}
public String getTrgtSttsNm() {
return ifEmpty(trgtSttsNm, () -> null);
}
@ -322,6 +332,14 @@ public class RentQuery extends CmmnQuery {
public void setDelRsn(String delRsn) {
this.delRsn = delRsn;
}
public String getFfnlgSysInqYn() {
return ifEmpty(ffnlgSysInqYn, () -> null);
}
public void setFfnlgSysInqYn(String ffnlgSysInqYn) {
this.ffnlgSysInqYn = ffnlgSysInqYn;
}
// ETC /////////////////////////////////////////////////////////////////////
public String getCellDataDef() {

@ -23,28 +23,45 @@ import cokr.xit.foundation.data.DataObject;
@Mapper("lsctMpngMapper")
public interface LsctMpngMapper extends AbstractMapper {
/**
* @param req
/** (CP_MAIN) .
* @param req
* @return
*/
List<DataObject> selectFfnlgMainList(RentQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectMainList(RentQuery req);
List<DataObject> selectCrdnList(RentQuery req);
/**
/** .
* @param req ID
* @return
*/
DataObject selectCrdnInfo(RentQuery req);
/** .
/** .
* @param params
* <ul><li>"lsct" - </li>
* <ul><li>"crdn" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertMainToCrdn(Crdn crdn);
int insertMainToCrdnAdi(Crdn crdn);
/** .
* @param params
* <ul><li>"crdn" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int copyMainToCrdn(Crdn crdn);
int updateMainToCrdn(Crdn crdn);
int copyMainToCrdnAdi(Crdn crdn);
int updateMainToCrdnAdi(Crdn crdn);
/** .
* @param req

@ -20,6 +20,12 @@ import cokr.xit.fims.rent.RentQuery;
*/
public interface LsctMpngService {
/** .
* @param req
* @return (TB_CRDN)
*/
List<DataObject> getCrdnList(RentQuery req);
/** .
* @param req
* @return

@ -80,7 +80,7 @@ public class LsctMpngBean extends AbstractBean {
@Resource(name = "finSysFtpMapper")
private FinSysFtpMapper finSysFtpMapper;
/** , .
/** (CP_MAIN) (TB_CRDN) .
* TB_CRDN, TB_PAYER .
* @param req
* @return ,
@ -89,7 +89,7 @@ public class LsctMpngBean extends AbstractBean {
* @throws NumberFormatException
* @throws SftpException
*/
public List<DataObject> getCrdnLsctMpngList(RentQuery req) {
public String saveFfnlgMainList(RentQuery req) {
// 기존 과태료 시스템에서 사용하던 암/복호화 함수 사용을 위해서..
XitAria crypto = new XitAria("xit-aria");
@ -109,7 +109,7 @@ public class LsctMpngBean extends AbstractBean {
}
// 연계 View 테이블 조회
List<DataObject> mainList = lsctMpngMapper.selectMainList(req);
List<DataObject> mainList = lsctMpngMapper.selectFfnlgMainList(req);
if (mainList.size() > 0) {
for (int iLoop = 0; iLoop < mainList.size(); iLoop++) {
@ -120,7 +120,7 @@ public class LsctMpngBean extends AbstractBean {
DataObject crdnInfo = lsctMpngMapper.selectCrdnInfo(rentQuery);
// 단속 정보가 존재하지 않는다면..
// 단속 정보가 존재하지 않는다면.. 해당 자료 insert
if (crdnInfo == null) {
// 납부자 정보
Payer payer = new Payer();
@ -163,7 +163,7 @@ public class LsctMpngBean extends AbstractBean {
// 납부자 주소 정보 등록
Payer result = payerBean.create(payer) ? payer : payerBean.getPayerAddrInfo(payer);
// 단속 정보 Insert
// 단속 정보
Crdn crdn = new Crdn();
crdn.setSggCd(mainList.get(iLoop).string("MM_SGGCODE")); // 시군구 코드
crdn.setTaskSeCd(mainList.get(iLoop).string("MM_TASKGB")); // 업무 구분 코드
@ -190,10 +190,10 @@ public class LsctMpngBean extends AbstractBean {
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.setFfnlgAmt(mainList.get(iLoop).number("MM_KEUM2").intValue() - mainList.get(iLoop).number("MM_MINUS_KEUM").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()); // 사전통지 금액
crdn.setAdvntceAmt(mainList.get(iLoop).number("MM_KEUM1").intValue() - mainList.get(iLoop).number("MM_MINUS_KEUM").intValue()); // 사전통지 금액
if (mainList.get(iLoop).string("MM_RECALL").equals("1")) { // 의견 제출 여부
crdn.setOpnnSbmsnYn("Y");
} else {
@ -218,13 +218,7 @@ public class LsctMpngBean extends AbstractBean {
crdn.setDelYn("N"); // 삭제 여부
crdn.setCreatedAt(mainList.get(iLoop).string("MM_INDT"));
crdn.setCreatedBy(mainList.get(iLoop).string("MM_INUSER"));
int rtnNocs = lsctMpngMapper.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
@ -237,25 +231,28 @@ public class LsctMpngBean extends AbstractBean {
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
if (!mainList.get(iLoop).string("MM_CARKIND").equals("")) {
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 = lsctMpngMapper.copyMainToCrdnAdi(crdn);
// 단속 대장 Insert
int rtnNocs = lsctMpngMapper.insertMainToCrdn(crdn);
if (rtnNocs == 0) {
throw new RuntimeException("[F] 단속 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
// 단속 부가 대장 Insert
rtnNocs = lsctMpngMapper.insertMainToCrdnAdi(crdn);
if (rtnNocs == 0) {
throw new RuntimeException("[F] 단속 부가 대장 등록 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
@ -279,7 +276,6 @@ public class LsctMpngBean extends AbstractBean {
SFTPUtil sftpUtil = new SFTPUtil();
sftpUtil.connect(rs);
boolean fileSearchEnd = false;
int i = 1;
while(!fileSearchEnd) {
@ -319,20 +315,164 @@ public class LsctMpngBean extends AbstractBean {
/////////////////////////////
//sftp연결종료
sftpUtil.disconnect();
} else { // 단속 정보가 존재한다면.. 해당 자료 update
// 납부자 정보
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);
// 단속 정보
Crdn crdn = new Crdn();
crdn.setCrdnId(crdnInfo.string("CRDN_ID")); // CRDN_ID
crdn.setMmCode(crdnInfo.string("MM_CODE")); // MM_CODE
crdn.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드
crdn.setTaskSeCd(crdnInfo.string("TASK_SE_CD")); // 업무 구분 코드
crdn.setCrdnRegSeCd(String.format("%02d", mainList.get(iLoop).number("MM_DLGB").intValue())); // 단속 등록 구분 코드
crdn.setCrdnInptSeCd(String.format("%02d", mainList.get(iLoop).number("MM_INGB").intValue())); // 단속 입력 구분 코드
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.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() - mainList.get(iLoop).number("MM_MINUS_KEUM").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() - mainList.get(iLoop).number("MM_MINUS_KEUM").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")); // 세외수입 단속 연계 여부
if (mainList.get(iLoop).string("MC_LVY_KEY").length() == 11) { // 세외수입 대장 키
crdn.setNxrpAcbKey(mainList.get(iLoop).string("MC_LVY_KEY"));
} else {
crdn.setNxrpAcbKey(null);
}
// 단속 부가 정보
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
if (!mainList.get(iLoop).string("MM_CARKIND").equals("")) {
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"); // 시간외 분할 여부
//
// 단속 대장 Insert
int rtnNocs = lsctMpngMapper.updateMainToCrdn(crdn);
if (rtnNocs == 0) {
throw new RuntimeException("[F] 단속 대장 수정 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
//등록 또는 수정 완료
//////////////////////////
// 단속 부가 대장 Insert
rtnNocs = lsctMpngMapper.updateMainToCrdnAdi(crdn);
if (rtnNocs == 0) {
throw new RuntimeException("[F] 단속 부가 대장 수정 작업에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
/////////////////////////////////////////////////
//FTP 서버 정보 조회
//...
}
}
}
return "[S] 등록 및 수정 작업이 정상 처리 되었습니다.";
}
/** , .
* TB_CRDN, TB_PAYER .
* @param req
* @return ,
* @throws IOException
* @throws JSchException
* @throws NumberFormatException
* @throws SftpException
*/
public List<DataObject> getCrdnList(RentQuery req) {
// 변수 선언
String rtnMsg = ""; // 처리 결과 메시지
// 과태료 시스템 조회하여 변경 내역 등록 및 수정.
if (req.getFfnlgSysInqYn().equals("Y")) {
rtnMsg = saveFfnlgMainList(req);
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
}
}
// 단속(TB_CRDN) 자료 조회
if (req.getSchEntRegNos() != null) {
@ -343,7 +483,7 @@ public class LsctMpngBean extends AbstractBean {
req.setRtpyrNo(req.getSchEntRegNo());
}
return lsctMpngMapper.selectCrdnLsctMpngList(req);
return lsctMpngMapper.selectCrdnList(req);
}
/** .
@ -354,6 +494,39 @@ public class LsctMpngBean extends AbstractBean {
return lsctMpngMapper.selectCrdnInfo(req);
}
/** , .
* TB_CRDN, TB_PAYER .
* @param req
* @return ,
* @throws IOException
* @throws JSchException
* @throws NumberFormatException
* @throws SftpException
*/
public List<DataObject> getCrdnLsctMpngList(RentQuery req) {
// 변수 선언
String rtnMsg = ""; // 처리 결과 메시지
// 과태료 시스템 조회하여 변경 내역 등록 및 수정.
if (req.getFfnlgSysInqYn().equals("Y")) {
rtnMsg = saveFfnlgMainList(req);
if (!rtnMsg.contains("[S]")) {
throw new RuntimeException(rtnMsg); // 예외를 발생시켜서 DB Rollback
}
}
// 단속(TB_CRDN) 자료 조회
if (req.getSchEntRegNos() != null) {
// 잠시 대기.. 한실장님 확인중
// req.setRtpyrNos(req.getSchEntRegNos());
}
if (req.getSchEntRegNo() != null) {
req.setRtpyrNo(req.getSchEntRegNo());
}
return lsctMpngMapper.selectCrdnLsctMpngList(req);
}
/** , .
* @param req
* @return ,

@ -37,6 +37,11 @@ public class LsctMpngServiceBean extends AbstractServiceBean implements LsctMpng
@Resource(name="fileBean")
private FileBean fileBean;
@Override
public List<DataObject> getCrdnList(RentQuery req) {
return lsctMpngBean.getCrdnList(req);
}
@Override
public DataObject getCrdnInfo(RentQuery req) {
return lsctMpngBean.getCrdnInfo(req);

@ -45,7 +45,7 @@
<result property="delRsn" column="DEL_RSN" /> <!-- 삭제 사유 -->
</resultMap>
<select id="selectMainList" parameterType="map" resultType="dataobject">/* 연계뷰 단속 목록 조회(lsctMapper.selectMainList) */
<select id="selectFfnlgMainList" parameterType="map" resultType="dataobject">/* 연계뷰 단속 목록 조회(lsctMapper.selectFfnlgMainList) */
SELECT MM_CODE
, MM_SGGCODE
, MM_TASKGB
@ -152,25 +152,47 @@
<include refid="utility.orderBy" />
</select>
<select id="selectCrdnInfo" parameterType="map" resultType="dataobject">/* 단속 객체 가져오기(lsctMapper.selectCrdnInfo) */
<sql id="selectCrdn">
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
, (GET_CODE_NM('FIM054', C.TASK_SE_CD)) AS TASK_SE_NM <!-- 업무 구분 명 -->
, C.CRDN_REG_SE_CD <!-- 단속 등록 구분 코드 -->
, C.CRDN_INPT_SE_CD <!-- 단속 입력 구분 코드 -->
, C.RTPYR_ID <!-- 납부자 ID -->
, C.ADDR_SN <!-- 주소 일련번호 -->
, C.CRDN_YMD <!-- 단속 일자 -->
, C.CRDN_TM <!-- 단속 시각 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_DT <!-- 단속 일시 -->
, C.VHRNO <!-- 자동차등록번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_PLC <!-- 단속 장소 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (GET_CODE_NM('FIM010', C.CRDN_STTS_CD)) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, C.RTPYR_ID <!-- 납부자 ID -->
, C.ADDR_SN <!-- 주소 일련번호 -->
, C.MM_CODE <!-- 메인 코드 -->
, (SELECT V.VLTN_ARTCL
FROM TB_VLTN V
WHERE V.VLTN_ID = C.VLTN_ID) AS VLTN_ARTCL <!-- 위반 항목 -->
, C.VIN <!-- 차대번호 -->
, C.VHCL_NM <!-- 차량 명 -->
, C.VHCL_COLR <!-- 차량 색상 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.FFNLG_AMT <!-- 과태료 금액 -->
, C.ADVNTCE_BGNG_YMD <!-- 사전통지 시작 일자 -->
, C.ADVNTCE_DUDT_YMD <!-- 사전통지 납기 일자 -->
, C.ADVNTCE_AMT <!-- 사전통지 금액 -->
, C.OPNN_SBMSN_YN <!-- 의견 제출 여부 -->
, (GET_CODE_NM('CMN006', C.OPNN_SBMSN_YN)) AS OPNN_SBMSN_NM <!-- 의견 제출 여부 -->
, C.ETC_CN <!-- 기타 내용 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (GET_CODE_NM('FIM010', C.CRDN_STTS_CD)) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, C.CRDN_STTS_CHG_DT <!-- 단속 상태 변경 일시 -->
, C.MM_CODE <!-- 메인 코드 -->
, C.REG_DT <!-- 등록 일시 -->
, C.RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, C.MDFCN_DT <!-- 수정 일시 -->
, C.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, P.RTPYR_SE_CD <!-- 납부자 구분 코드 -->
, (GET_CODE_NM('FIM011', P.RTPYR_SE_CD)) AS RTPYR_SE_NM <!-- 납부자 구분 명 -->
, P.RTPYR_NO <!-- 납부자 번호 -->
, P.RTPYR_NM <!-- 납부자 명 -->
, PA.ZIP <!-- 우편번호 -->
@ -179,6 +201,46 @@
FROM TB_CRDN C
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)
</sql>
<select id="selectCrdnList" parameterType="map" resultType="dataobject">/* 단속 대장 목록 조회(lsctMapper.selectCrdnList) */
<include refid="utility.paging-prefix" />
<include refid="selectCrdn" />
<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="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="rtpyrNm != null">
AND P.RTPYR_NM = #{rtpyrNm} <!-- 납부자 명 -->
</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>
<select id="selectCrdnInfo" parameterType="map" resultType="dataobject">/* 단속 객체 가져오기(lsctMapper.selectCrdnInfo) */
<include refid="selectCrdn" />
<where>
<choose>
<when test="crdnId != null">
@ -195,7 +257,7 @@
</where>
</select>
<insert id="copyMainToCrdn" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 대장 등록(lsctMapper.copyMainToCrdn) */
<insert id="insertMainToCrdn" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 대장 등록(lsctMapper.insertMainToCrdn) */
<selectKey resultType="string" keyProperty="crdnId" keyColumn="NEW_ID" order="BEFORE">
<include refid="numbering.keyByYear">
<property name="TABLE_NAME" value="TB_CRDN" />
@ -303,7 +365,7 @@
)
</insert>
<insert id="copyMainToCrdnAdi" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 부가 대장 등록(lsctMapper.copyMainToCrdnAdi) */
<insert id="insertMainToCrdnAdi" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 부가 대장 등록(lsctMapper.insertMainToCrdnAdi) */
INSERT
INTO TB_CRDN_ADI (
CRDN_ID <!-- 단속 ID -->
@ -354,7 +416,83 @@
)
</insert>
<sql id="selectCrdn">
<update id="updateMainToCrdn" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 정보 수정(lsctMapper.updateMainToCrdn) */
UPDATE TB_CRDN
SET CRDN_REG_SE_CD = #{crdnRegSeCd} <!-- 단속 등록 구분 코드 -->
, CRDN_INPT_SE_CD = #{crdnInptSeCd} <!-- 단속 입력 구분 코드 -->
, CRDN_YMD = #{crdnYmd} <!-- 단속 일자 -->
, CRDN_TM = #{crdnTm} <!-- 단속 시각 -->
, VHRNO = #{vhrno} <!-- 차량번호 -->
, CRDN_STDG_NM = #{crdnStdgNm} <!-- 단속 법정동 명 -->
, CRDN_ROAD_NM = #{crdnRoadNm} <!-- 단속 도로 명 -->
, CRDN_PLC = #{crdnPlc} <!-- 단속 장소 -->
, VLTN_ID = #{vltnId} <!-- 위반 ID -->
, GPS_X = #{gpsX} <!-- GPS X -->
, GPS_Y = #{gpsY} <!-- GPS Y -->
, ATCH_FILE_CNT = #{atchFileCnt} <!-- 첨부 파일 수 -->
, VIN = #{vin} <!-- 차대번호 -->
, VHCL_NM = #{vhclNm} <!-- 차량 명 -->
, VHCL_COLR = #{vhclColr} <!-- 차량 색상 -->
, FFNLG_CRDN_AMT = #{ffnlgCrdnAmt} <!-- 과태료 단속 금액 -->
, FFNLG_RDCRT = #{ffnlgRdcrt} <!-- 과태료 감면율 -->
, FFNLG_AMT = #{ffnlgAmt} <!-- 과태료 금액 -->
, ADVNTCE_BGNG_YMD = #{advntceBgngYmd} <!-- 사전통지 시작 일자 -->
, ADVNTCE_DUDT_YMD = #{advntceDudtYmd} <!-- 사전통지 납기 일자 -->
, ADVNTCE_AMT = #{advntceAmt} <!-- 사전통지 금액 -->
, OPNN_SBMSN_YN = #{opnnSbmsnYn} <!-- 의견 제출 여부 -->
, ETC_CN = #{etcCn} <!-- 기타 내용 -->
, CRDN_STTS_CD = #{crdnSttsCd} <!-- 단속 상태 코드 -->
, CRDN_STTS_CHG_DT = #{crdnSttsChgDt} <!-- 단속 상태 변경 일시 -->
, ADTN_AMT = #{adtnAmt} <!-- 가산 금액 -->
, MINUS_AMT = #{minusAmt} <!-- 감경 금액 -->
, RCVMT_AMT = #{rcvmtAmt} <!-- 수납 금액 -->
, BFR_CRDN_ID = #{bfrCrdnId} <!-- 이전 단속 ID -->
, NXRP_CRDN_LINK_YN = #{nxrpCrdnLinkYn} <!-- 세외수입 단속 연계 여부 -->
, NXRP_ACB_KEY = #{nxrpAcbKey} <!-- 세외수입 대장 키 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정일시 -->
, MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND MM_CODE = #{mmCode} <!-- 메인 코드 -->
AND DEL_YN = 'N' <!-- 삭제 여부 -->
</update>
<update id="updateMainToCrdnAdi" parameterType="cokr.xit.fims.crdn.Crdn">/* 단속 부가정보 수정(lsctMapper.updateMainToCrdnAdi) */
UPDATE TB_CRDN_ADI
SET MDFCN_DT = <include refid="utility.now" /> <!-- 수정일시 -->
, MDFR = #{modifiedBy} <!-- 수정자 -->
<if test="taskSeCd == 'PVS'">
, OVTM_YN = #{ovtmYn} <!-- 시간외 여부 -->
, CRDN_SPAREA_CD = #{crdnSpareaCd} <!-- 단속 특별구역 코드 -->
</if>
<if test="taskSeCd == 'BPV'">
, DTL_CRDN_PLC = #{dtlCrdnPlc} <!-- 상세 단속 장소 -->
, MOSC_X = #{moscX} <!-- 모자이크 X -->
, MOSC_Y = #{moscY} <!-- 모자이크 Y -->
</if>
<if test="taskSeCd == 'ECA'">
, USE_FUEL_CD = #{useFuelCd} <!-- 사용 연료 코드 -->
</if>
<if test="taskSeCd == 'DPV'">
, PRK_PSBLTY_RSLT_CD = #{prkPsbltyRsltCd} <!-- 주차 가능 결과 코드 -->
</if>
<if test="taskSeCd == 'PES'">
, VLTN_NMTM = #{vltnNmtm} <!-- 위반 횟수 -->
</if>
<if test="taskSeCd == 'PVS' or taskSeCd == 'BPV'">
, CRDN_SE_CD = #{crdnSeCd} <!-- 단속 구분 코드 -->
, CRDN_BGNG_TM = #{crdnBgngTm} <!-- 단속 시작 시각 -->
, CRDN_END_TM = #{crdnEndTm} <!-- 단속 종료 시간 -->
, FFNLG_CARMDL_CD = #{ffnlgCarmdlCd} <!-- 과태료 차종 코드 -->
</if>
<if test="taskSeCd == 'DPV' or taskSeCd == 'ECA' or taskSeCd == 'PVS'">
, CRDN_SN = #{crdnSn} <!-- 단속 일련번호 -->
, TOWNG_YN = #{towngYn} <!-- 견인 여부 -->
</if>
WHERE CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND DEL_YN = 'N'
</update>
<sql id="selectCrdnLsctMpng">
SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->
@ -430,9 +568,9 @@
LEFT OUTER JOIN TB_LSCT L ON (LM.LSCT_ID = L.LSCT_ID AND L.DEL_YN = 'N')
</sql>
<select id="selectCrdnLsctMpngList" parameterType="map" resultType="dataobject">/* 단속 대장 목록 조회(lsctMapper.selectCrdnLsctMpngList) */
<select id="selectCrdnLsctMpngList" parameterType="map" resultType="dataobject">/* 단속, 임대차계약 매핑 대장 목록 조회(lsctMapper.selectCrdnLsctMpngList) */
<include refid="utility.paging-prefix" />
<include refid="selectCrdn" />
<include refid="selectCrdnLsctMpng" />
<where>
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[>=]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->
@ -481,8 +619,8 @@
<include refid="utility.paging-suffix" />
</select>
<select id="selectCrdnLsctMpngs" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(lsctMapper.selectCrdnLsctMpngs) */
<include refid="selectCrdn" />
<select id="selectCrdnLsctMpngs" parameterType="map" resultType="dataobject">/* 단속, 임대차계약 매핑 대장 객체 가져오기(lsctMapper.selectCrdnLsctMpngs) */
<include refid="selectCrdnLsctMpng" />
<where>
<if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->

Loading…
Cancel
Save