임차인계약서 관리 메뉴 수정.

main
xitpc\xituser 2 months ago
parent 475635a7d8
commit 6c00b131b8

@ -341,9 +341,6 @@ public class LsctBean extends AbstractBean {
return lsctMapper.selectCrdnLsctList(req); return lsctMapper.selectCrdnLsctList(req);
} }
/** . /** .
* TB_CRDN, TB_PAYER . * TB_CRDN, TB_PAYER .
* @param req * @param req
@ -352,246 +349,6 @@ public class LsctBean extends AbstractBean {
* @throws NumberFormatException * @throws NumberFormatException
*/ */
public List<DataObject> getLsctList(RentQuery req) { public List<DataObject> getLsctList(RentQuery req) {
// 기존 과태료 시스템에서 사용하던 암/복호화 함수 사용을 위해서..
XitAria crypto = new XitAria("xit-aria");
// 연계 view 테이블 검색 조건에 사용할 소유주 암호화 하기
if (req.getSchEntRegNos() != null && req.getSchEntRegNos().length > 0 ) { // 임대기업번호s 암호화
int tnocs = req.getSchEntRegNos().length;
String[] strArray = req.getSchEntRegNos();
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.getSchEntRegNo()));
}
// 연계 View 테이블 조회
List<DataObject> mainList = lsctMapper.selectMainList(req);
if (mainList.size() > 0) {
for (int iLoop = 0; iLoop < mainList.size(); iLoop++) {
// 단속 ID로 단속(TB_CRDN) 정보 조회
RentQuery rentQuery = new RentQuery();
rentQuery.setMmCode(mainList.get(iLoop).string("MM_CODE"));
rentQuery.setTaskSeCd(mainList.get(iLoop).string("MM_TASKGB"));
DataObject crdnInfo = lsctMapper.selectCrdnInfo(rentQuery);
// 단속 정보가 존재하지 않는다면..
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.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.setMmCode(mainList.get(iLoop).string("MM_CODE")); // 메인 코드(MM_CODE)
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
}
/////////////////////////////////////////////////
//FTP 서버 정보 조회
DataObject main = mainList.get(iLoop);
DataObject ftpQuery = new DataObject()
.set("SGG_CD", main.string("MM_SGGCODE"))
.set("TASK_SE_CD", main.string("MM_TASKGB"));
DataObject storageServer = finSysFtpMapper.selectFtpInfo(ftpQuery);
//FTP 서버 접속
RemoteSystemInfo rs = new RemoteSystemInfo();
rs.setId(storageServer.string("REMOTE_ID"));
rs.setIp(storageServer.string("REMOTE_IP"));
rs.setPort(storageServer.string("REMOTE_PORT"));
rs.setPw(storageServer.string("REMOTE_PASSWORD"));
rs.setOsType(storageServer.string("REMOTE_OS"));
rs.setWorkPath(storageServer.string("REMOTE_WORK_PATH"));
SFTPUtil sftpUtil = new SFTPUtil();
sftpUtil.connect(rs);
boolean fileSearchEnd = false;
int i = 1;
while(!fileSearchEnd) {
///////////////////////////////////////////////
// 단속ID로 단속 파일 다운로드
String i_char = "";
switch (i) {
case 1:i_char="A"; break;
case 2:i_char="B"; break;
case 3:i_char="C"; break;
case 4:i_char="D"; break;
}
String remoteFileName = main.string("MM_CODE")+i_char+".JPG";
String remoteFilePath = storageServer.string("REMOTE_WORK_PATH")+remoteFileName;
byte[] bytesObj = sftpUtil.getBytesObj(remoteFilePath);
if(bytesObj == null) {
fileSearchEnd = true;
continue;
}
/////////////////////////////////////////////
// 단속 파일 등록
Relation rel = new FileInfo.Relation().setInfoType(Crdn.INF_TYPE).setInfoKey(crdn.getCrdnId());
String originalFileName = remoteFileName;
DataHolder dataHolder = new FileInfo.DataHolder(rel, originalFileName, bytesObj);
List<FileInfo> fileInfoList = new FileInfoFactory().createFileInfos(List.of(dataHolder));
fileBean.create(fileInfoList);
i++;
if(i >= 5) {
fileSearchEnd = true;
}
}
/////////////////////////////
//sftp연결종료
sftpUtil.disconnect();
} else {
//
}
}
}
// 단속(TB_CRDN) 자료 조회
if (req.getSchEntRegNos() != null) {
// 잠시 대기.. 한실장님 확인중
// req.setRtpyrNos(req.getSchEntRegNos());
}
if (req.getSchEntRegNo() != null) {
req.setRtpyrNo(req.getSchEntRegNo());
}
return lsctMapper.selectLsctList(req); return lsctMapper.selectLsctList(req);
} }

@ -58,8 +58,6 @@ public class Rent02Controller extends ApplicationController {
leaseContractRegistrationMain = "/010/main.do" // 임대차계약 대장 등록 메인 화면 leaseContractRegistrationMain = "/010/main.do" // 임대차계약 대장 등록 메인 화면
, getLeaseContractRegistrationList = "/010/list.do" // 임대차계약 대장 등록 단속 대장 목록 조회 , getLeaseContractRegistrationList = "/010/list.do" // 임대차계약 대장 등록 단속 대장 목록 조회
, removeLeaseContract = "/010/removeCtrt.do" // 임대차계약 대장 삭제 , removeLeaseContract = "/010/removeCtrt.do" // 임대차계약 대장 삭제
, createLeaseContractApproval = "/010/createAprv.do" // 임대차계약 승인 대장 등록
, removeLeaseContractApproval = "/010/removeAprv.do" // 임대차계약 승인 대장 삭제
, getLeaseContractInfo = "/020/info.do" // 임대차계약 상세 화면 , getLeaseContractInfo = "/020/info.do" // 임대차계약 상세 화면
, getLeaseContract = "/020/list.do" // 임대차계약 상세 정보 조회 , getLeaseContract = "/020/list.do" // 임대차계약 상세 정보 조회
, hirerMain = "/030/main.do" // 임대차계약 등록 단속 대장 상세 조회 , hirerMain = "/030/main.do" // 임대차계약 등록 단속 대장 상세 조회
@ -73,6 +71,9 @@ public class Rent02Controller extends ApplicationController {
, removeAttachmentFile = "/040/removeAtchFile.do" // 임차인 첨부 파일 수정 , removeAttachmentFile = "/040/removeAtchFile.do" // 임차인 첨부 파일 수정
, leaseContractMain = "/050/main.do" // 임대차계약 관리 메인 화면 , leaseContractMain = "/050/main.do" // 임대차계약 관리 메인 화면
, getLeaseContractList = "/050/list.do" // 임대차계약 관리 대장 목록 조회 , getLeaseContractList = "/050/list.do" // 임대차계약 관리 대장 목록 조회
, createLeaseContractApproval = "/050/createAprv.do" // 임대차계약 승인 대장 등록
, removeLeaseContractApproval = "/050/removeAprv.do" // 임대차계약 승인 대장 삭제
; ;
} }
@ -153,8 +154,9 @@ public class Rent02Controller extends ApplicationController {
Map<String,Object> valueMap = new HashMap<String,Object>(); Map<String,Object> valueMap = new HashMap<String,Object>();
valueMap.put("업무구분", format.of("TASK_SE_NM").style(center)); 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("TRGT_STTS_NM").style(center));
valueMap.put("차량번호", format.of("VHRNO")); valueMap.put("단속일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CRDN_DT").style(dateDT));
valueMap.put("자동차등록번호", format.of("VHRNO"));
valueMap.put("납부자구분", format.of("RTPYR_SE_NM").style(center)); valueMap.put("납부자구분", format.of("RTPYR_SE_NM").style(center));
valueMap.put("납부자번호", format.of("RTPYR_NO").style(center)); valueMap.put("납부자번호", format.of("RTPYR_NO").style(center));
valueMap.put("납부자명", format.of("RTPYR_NM")); valueMap.put("납부자명", format.of("RTPYR_NM"));
@ -170,12 +172,12 @@ public class Rent02Controller extends ApplicationController {
CellDef.setValues(cellDefs, valueMap); CellDef.setValues(cellDefs, valueMap);
xlsx.cell(0, 0).value("임대차계약").value(center).merge(0, cellDefs.size() - 1) xlsx.cell(0, 0).value("임대차계약등록").value(center).merge(0, cellDefs.size() - 1)
.cell(3, 0).rowValues(CellDef.header(cellDefs, () -> StyleMaker.headerStyle(xlsx))) .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())); .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") return new ModelAndView("downloadView")
.addObject("download", xlsx.getDownloadable().setFilename("임대차계약" + "_목록_" + dateTime + ".xlsx")); .addObject("download", xlsx.getDownloadable().setFilename("임대차계약등록" + "_목록_" + dateTime + ".xlsx"));
} }
} }
@ -264,88 +266,6 @@ public class Rent02Controller extends ApplicationController {
.addObject("rtnMsg", rtnMsg); .addObject("rtnMsg", rtnMsg);
} }
/** .
* @param lsctAprv
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@Task("CMN")
@RequestMapping(name = "임대차계약 승인 대장 등록", value = METHOD_URL.createLeaseContractApproval)
public ModelAndView createLeaseContractApproval(LsctAprv lsctAprv) {
boolean saved = false;
String rtnMsg = "";
// 단건
if (lsctAprv.getLsctIds() == null || lsctAprv.getLsctIds().length < 1) {
rtnMsg = lsctService.createLsctAprv(lsctAprv); // 등록
} else {
// Ids 만큼 반복 등록
for (String lsctId : lsctAprv.getLsctIds()) {
LsctAprv createAprv = new LsctAprv();
createAprv.setLsctId(lsctId);
rtnMsg = lsctService.createLsctAprv(createAprv); // 등록
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 lsctAprvIDs
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@Task("CMN")
@RequestMapping(name = "임대차계약 승인 대장 제거", value = METHOD_URL.removeLeaseContractApproval)
public ModelAndView removeLeaseContractApproval(LsctAprv lsctAprv) {
boolean saved = false;
String rtnMsg = "";
// 단건
if (lsctAprv.getLsctIds() == null || lsctAprv.getLsctIds().length < 1) {
rtnMsg = lsctService.removeLsctAprv(lsctAprv); // 삭제
} else {
// Ids 만큼 반복 등록
for (String lsctId : lsctAprv.getLsctIds()) {
LsctAprv removeAprv = new LsctAprv();
removeAprv.setLsctId(lsctId);
rtnMsg = lsctService.removeLsctAprv(removeAprv); // 삭제
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);
}
/** (fims/rent/rent02030-main) . /** (fims/rent/rent02030-main) .
* {@link #getRentEntList(RentEntQuery) } . * {@link #getRentEntList(RentEntQuery) } .
* @return /rentEnt/rentEnt-main * @return /rentEnt/rentEnt-main
@ -568,18 +488,13 @@ public class Rent02Controller extends ApplicationController {
.addObject("rtnMsg", rtnMsg); .addObject("rtnMsg", rtnMsg);
} }
/** (lsct/lsct-main) . /** (lsct/lsct-main) .
* {@link #getLsctList(LsctQuery) } . * {@link #getLsctList(LsctQuery) } .
* @return /lsct/lsct-main * @return /lsct/lsct-main
*/ */
@RequestMapping(name = "임대차계약 대장 관리 메인", value=METHOD_URL.leaseContractMain) @RequestMapping(name = "임대차계약 대장 관리 메인", value=METHOD_URL.leaseContractMain)
public ModelAndView leaseContractMain() { public ModelAndView leaseContractMain() {
ModelAndView mav = new ModelAndView("fims/rent/rent02040-main"); ModelAndView mav = new ModelAndView("fims/rent/rent02050-main");
// 사용자 정보 // 사용자 정보
FimsUser fimsUser = (FimsUser)currentUser().getUser(); FimsUser fimsUser = (FimsUser)currentUser().getUser();
@ -588,13 +503,13 @@ public class Rent02Controller extends ApplicationController {
RentQuery req = new RentQuery(); RentQuery req = new RentQuery();
req.setUserId(fimsUser.getId()); req.setUserId(fimsUser.getId());
List<DataObject> entNolist = rentEntService.getUserRentEntMpngs(req); List<DataObject> entRegNoList = rentEntService.getUserRentEntMpngs(req);
return mav return mav
.addObject("pageName", "rent02040") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "rent02050") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("prefixUrl", CLASS_URL) // prefixUrl .addObject("prefixUrl", CLASS_URL) // prefixUrl
.addObject("userId", fimsUser.getId()) // 사용자 ID(USER_ID) .addObject("userId", fimsUser.getId()) // 사용자 ID(USER_ID)
.addObject("entNoList", entNolist) // 임대업체 목록 .addObject("entRegNoList", entRegNoList) // 임대업체 목록
; ;
} }
@ -609,7 +524,6 @@ public class Rent02Controller extends ApplicationController {
* "lsctTotal": * "lsctTotal":
* }</code></pre> * }</code></pre>
*/ */
@Task("CMN") @Task("CMN")
@RequestMapping(name = "임대차계약 대장 관리 조회", value=METHOD_URL.getLeaseContractList) @RequestMapping(name = "임대차계약 대장 관리 조회", value=METHOD_URL.getLeaseContractList)
public ModelAndView getLeaseContractList(RentQuery req) { public ModelAndView getLeaseContractList(RentQuery req) {
@ -634,12 +548,23 @@ public class Rent02Controller extends ApplicationController {
Map<String,Object> valueMap = new HashMap<String,Object>(); Map<String,Object> valueMap = new HashMap<String,Object>();
valueMap.put("업무구분", format.of("TASK_SE_NM").style(center)); 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("TRGT_STTS_NM").style(center));
valueMap.put("차량번호", format.of("VHRNO")); valueMap.put("요청일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CHG_DMND_DT").style(dateDT));
valueMap.put("납부자구분", format.of("RTPYR_SE_NM").style(center)); valueMap.put("승인여부", format.of("CHG_APRV_NM").style(center));
valueMap.put("납부자번호", format.of("RTPYR_NO").style(center)); valueMap.put("승인일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CHG_APRV_DT").style(dateDT));
valueMap.put("납부자명", format.of("RTPYR_NM")); valueMap.put("승인자", format.of("CHG_AUTZR").style(center));
valueMap.put("위반항목", format.of("VLTN_ARTCL")); valueMap.put("승인사유", format.of("CHG_APRV_RSN"));
valueMap.put("기업명", format.of("ENT_NM"));
valueMap.put("법인(사업자)번호", format.of("ENT_REG_NO").style(center));
valueMap.put("단속일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CRDN_DT").style(dateDT));
valueMap.put("자동차등록번호", format.of("VHRNO"));
valueMap.put("계약시작일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CTRT_BGNG_DT").style(dateDT));
valueMap.put("계약종료일시", FormatMaker.yyyy_mm_dd_hh_mm_ss(format, "CTRT_END_DT").style(dateDT));
valueMap.put("임차인구분", format.of("HIRER_SE_NM").style(center));
valueMap.put("임차인번호", format.of("HIRER_REG_NO").style(center));
valueMap.put("임차인명", format.of("HIRER_NM"));
valueMap.put("전화번호", format.of("HIRER_TELNO").style(center));
valueMap.put("휴대전화번호", format.of("HIRER_MBL_TELNO").style(center));
valueMap.put("단속법정동", format.of("CRDN_STDG_NM").style(center)); valueMap.put("단속법정동", format.of("CRDN_STDG_NM").style(center));
valueMap.put("단속장소", format.of("CRDN_PLC")); valueMap.put("단속장소", format.of("CRDN_PLC"));
valueMap.put("단속원금", format.of("FFNLG_CRDN_AMT").style(numeric)); valueMap.put("단속원금", format.of("FFNLG_CRDN_AMT").style(numeric));
@ -651,13 +576,95 @@ public class Rent02Controller extends ApplicationController {
CellDef.setValues(cellDefs, valueMap); CellDef.setValues(cellDefs, valueMap);
xlsx.cell(0, 0).value("임대차계약").value(center).merge(0, cellDefs.size() - 1) xlsx.cell(0, 0).value("임대차계약 관리").value(center).merge(0, cellDefs.size() - 1)
.cell(3, 0).rowValues(CellDef.header(cellDefs, () -> StyleMaker.headerStyle(xlsx))) .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())); .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") return new ModelAndView("downloadView")
.addObject("download", xlsx.getDownloadable().setFilename("임대차계약" + "_목록_" + dateTime + ".xlsx")); .addObject("download", xlsx.getDownloadable().setFilename("임대차계약관리" + "_목록_" + dateTime + ".xlsx"));
} }
} }
/** .
* @param lsctAprv
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@Task("CMN")
@RequestMapping(name = "임대차계약 승인 대장 등록", value = METHOD_URL.createLeaseContractApproval)
public ModelAndView createLeaseContractApproval(LsctAprv lsctAprv) {
boolean saved = false;
String rtnMsg = "";
// 단건
if (lsctAprv.getLsctIds() == null || lsctAprv.getLsctIds().length < 1) {
rtnMsg = lsctService.createLsctAprv(lsctAprv); // 등록
} else {
// Ids 만큼 반복 등록
for (String lsctId : lsctAprv.getLsctIds()) {
LsctAprv createAprv = new LsctAprv();
createAprv.setLsctId(lsctId);
rtnMsg = lsctService.createLsctAprv(createAprv); // 등록
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 lsctAprvIDs
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@Task("CMN")
@RequestMapping(name = "임대차계약 승인 대장 제거", value = METHOD_URL.removeLeaseContractApproval)
public ModelAndView removeLeaseContractApproval(LsctAprv lsctAprv) {
boolean saved = false;
String rtnMsg = "";
// 단건
if (lsctAprv.getLsctIds() == null || lsctAprv.getLsctIds().length < 1) {
rtnMsg = lsctService.removeLsctAprv(lsctAprv); // 삭제
} else {
// Ids 만큼 반복 등록
for (String lsctId : lsctAprv.getLsctIds()) {
LsctAprv removeAprv = new LsctAprv();
removeAprv.setLsctId(lsctId);
rtnMsg = lsctService.removeLsctAprv(removeAprv); // 삭제
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);
}
} }

@ -351,14 +351,14 @@
, C.TASK_SE_CD <!-- 업무 구분 코드 --> , C.TASK_SE_CD <!-- 업무 구분 코드 -->
, (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 --> , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, C.CRDN_YMD <!-- 단속 일자 --> , C.CRDN_YMD <!-- 단속 일자 -->
, (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM <!-- 단속 일시 --> , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_DT <!-- 단속 일시 -->
, C.VHRNO <!-- 차량번호 --> , C.VHRNO <!-- 차량번호 -->
, C.CRDN_STDG_NM <!-- 단속 법정동 명 --> , C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
, C.CRDN_ROAD_NM <!-- 단속 도로 명 --> , C.CRDN_ROAD_NM <!-- 단속 도로 명 -->
, C.CRDN_PLC <!-- 단속 장소 --> , C.CRDN_PLC <!-- 단속 장소 -->
, C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 --> , C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 --> , C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 --> , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, C.NXRP_CRDN_LINK_YN <!-- 세외수입 단속 연계 여부 --> , C.NXRP_CRDN_LINK_YN <!-- 세외수입 단속 연계 여부 -->
, C.NXRP_ACB_KEY <!-- 세외수입 대장 키 --> , C.NXRP_ACB_KEY <!-- 세외수입 대장 키 -->
, C.MM_CODE <!-- 매인 코드 --> , C.MM_CODE <!-- 매인 코드 -->
@ -375,9 +375,10 @@
, PA.ADDR <!-- 주소 --> , PA.ADDR <!-- 주소 -->
, PA.DTL_ADDR <!-- 상세 주소 --> , PA.DTL_ADDR <!-- 상세 주소 -->
, L.LSCT_ID <!-- 임대차계약 ID --> , L.LSCT_ID <!-- 임대차계약 ID -->
, (CASE WHEN L.CHG_APRV_YN = 'Y' AND L.CHG_DMND_YN = 'Y' THEN '승인완료' , (CASE WHEN L.CHG_APRV_YN = 'Y' AND L.CHG_DMND_YN = 'Y' AND C.NXRP_CRDN_LINK_YN = 'N' THEN '기타(승인완료)'
WHEN L.CHG_APRV_YN = 'N' AND L.CHG_DMND_YN = 'Y' THEN '승인요청' WHEN L.CHG_APRV_YN = 'N' AND L.CHG_DMND_YN = 'Y' AND C.NXRP_CRDN_LINK_YN = 'N' THEN '기타(승인요청)'
WHEN L.CHG_APRV_YN = 'N' AND L.CHG_DMND_YN = 'N' THEN '계약서등록' WHEN L.CHG_APRV_YN = 'N' AND L.CHG_DMND_YN = 'N' AND C.NXRP_CRDN_LINK_YN = 'Y' THEN '기타(세외수입)'
WHEN L.CHG_APRV_YN = 'N' AND L.CHG_DMND_YN = 'N' AND C.NXRP_CRDN_LINK_YN = 'N' THEN '계약서등록'
ELSE '대상' ELSE '대상'
END) AS TRGT_STTS_NM <!-- 계약서 등록 대상 --> END) AS TRGT_STTS_NM <!-- 계약서 등록 대상 -->
, (CASE WHEN L.ENT_ID IS NULL THEN (SELECT RE.ENT_ID FROM TB_RENT_ENT RE WHERE RE.ENT_REG_NO = P.RTPYR_NO) , (CASE WHEN L.ENT_ID IS NULL THEN (SELECT RE.ENT_ID FROM TB_RENT_ENT RE WHERE RE.ENT_REG_NO = P.RTPYR_NO)
@ -420,25 +421,23 @@
</if> </if>
<if test='trgtSttsNm != null and trgtSttsNm != "전체"'> <if test='trgtSttsNm != null and trgtSttsNm != "전체"'>
<choose> <choose>
<when test='trgtSttsNm == "승인완료"'>
AND L.CHG_APRV_YN = 'Y'
AND L.CHG_DMND_YN = 'Y'
</when>
<when test='trgtSttsNm == "승인요청"'>
AND L.CHG_APRV_YN = 'N'
AND L.CHG_DMND_YN = 'Y'
</when>
<when test='trgtSttsNm == "계약서등록"'> <when test='trgtSttsNm == "계약서등록"'>
AND L.LSCT_ID IS NOT NULL
AND L.CHG_APRV_YN = 'N' AND L.CHG_APRV_YN = 'N'
AND L.CHG_DMND_YN = 'N' AND L.CHG_DMND_YN = 'N'
AND C.NXRP_CRDN_LINK_YN = 'N'
</when>
<when test='trgtSttsNm == "대상"'>
AND L.LSCT_ID IS NULL
</when> </when>
<otherwise> <otherwise>
AND L.LSCT_ID IS NULL AND L.LSCT_ID IS NOT NULL
AND (L.CHG_APRV_YN = 'Y' OR L.CHG_DMND_YN = 'Y')
</otherwise> </otherwise>
</choose> </choose>
</if> </if>
<if test="rtpyrNos != null"> <if test="rtpyrNos != null">
AND P.RTPYR_NO IN ( <!-- 납부자 번호s --> AND P.RTPYR_NO IN ( <!-- 납부자 번호s -->
<foreach collection="rtpyrNos" item="rtpyrNo" separator=","> #{rtpyrNo} </foreach> <foreach collection="rtpyrNos" item="rtpyrNo" separator=","> #{rtpyrNo} </foreach>
) )
</if> </if>
@ -466,12 +465,14 @@
, (SELECT GET_CODE_NM('FIM054', L.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 --> , (SELECT GET_CODE_NM('FIM054', L.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM <!-- 업무 구분 명 -->
, L.CRDN_YMD <!-- 단속 일자 --> , L.CRDN_YMD <!-- 단속 일자 -->
, L.CRDN_TM <!-- 단속 시각 --> , L.CRDN_TM <!-- 단속 시각 -->
, (CONCAT(L.CRDN_YMD, L.CRDN_TM)) AS CRDN_DT <!-- 단속 일시 -->
, L.VHRNO <!-- 자동차등록번호 --> , L.VHRNO <!-- 자동차등록번호 -->
, L.RTPYR_NO <!-- 납부자 번호 --> , L.RTPYR_NO <!-- 납부자 번호 -->
, L.RTPYR_NM <!-- 납부자 명 --> , L.RTPYR_NM <!-- 납부자 명 -->
, L.ENT_ID <!-- 기업 ID --> , L.ENT_ID <!-- 기업 ID -->
, L.HIRER_ID <!-- 임차인 ID --> , L.HIRER_ID <!-- 임차인 ID -->
, L.CHG_DMND_YN <!-- 변경 요청 여부 --> , L.CHG_DMND_YN <!-- 변경 요청 여부 -->
, (SELECT GET_CODE_NM('CMN006', L.CHG_DMND_YN) FROM DUAL) AS CHG_DMND_NM <!-- 변경 요청 여부 명 -->
, L.CHG_DMND_DT <!-- 변경 요청 일시 --> , L.CHG_DMND_DT <!-- 변경 요청 일시 -->
, L.CHG_DMND_RGTR <!-- 변경 요청 등록자 --> , L.CHG_DMND_RGTR <!-- 변경 요청 등록자 -->
, L.CHG_DMND_IP <!-- 변경 요청 IP --> , L.CHG_DMND_IP <!-- 변경 요청 IP -->
@ -479,6 +480,7 @@
, L.CHG_DMND_MDFR <!-- 변경 요청 수정자 --> , L.CHG_DMND_MDFR <!-- 변경 요청 수정자 -->
, L.CHG_DMND_RTRCN_IP <!-- 변경 요청 취소 IP --> , L.CHG_DMND_RTRCN_IP <!-- 변경 요청 취소 IP -->
, L.CHG_APRV_YN <!-- 변경 승인 여부 --> , L.CHG_APRV_YN <!-- 변경 승인 여부 -->
, (SELECT GET_CODE_NM('CMN006', L.CHG_APRV_YN) FROM DUAL) AS CHG_APRV_NM <!-- 변경 승인 여부명 -->
, L.CHG_APRV_DT <!-- 변경 승인 일시 --> , L.CHG_APRV_DT <!-- 변경 승인 일시 -->
, L.CHG_AUTZR <!-- 변경 승인자 --> , L.CHG_AUTZR <!-- 변경 승인자 -->
, L.CHG_APRV_RSN <!-- 변경 승인 사유 --> , L.CHG_APRV_RSN <!-- 변경 승인 사유 -->
@ -486,8 +488,17 @@
, L.DEL_YN <!-- 삭제 여부 --> , L.DEL_YN <!-- 삭제 여부 -->
, L.REG_DT <!-- 등록 일시 --> , L.REG_DT <!-- 등록 일시 -->
, L.RGTR <!-- 등록자 --> , 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 <!-- 수정자 명 -->
, (CASE WHEN L.CHG_APRV_YN = 'Y' AND L.CHG_DMND_YN = 'Y' AND C.NXRP_CRDN_LINK_YN = 'N' THEN '승인완료'
WHEN L.CHG_APRV_YN = 'N' AND L.CHG_DMND_YN = 'Y' AND C.NXRP_CRDN_LINK_YN = 'N' THEN '승인요청'
WHEN L.CHG_APRV_YN = 'N' AND L.CHG_DMND_YN = 'N' AND C.NXRP_CRDN_LINK_YN = 'N' THEN '대상'
ELSE '미대상'
END) AS TRGT_STTS_NM <!-- 계약서 등록 대상 -->
, RE.ENT_SE_CD <!-- 기업 구분 코드 --> , RE.ENT_SE_CD <!-- 기업 구분 코드 -->
, (SELECT GET_CODE_NM('FIM088', RE.ENT_SE_CD) FROM DUAL) AS ENT_SE_NM <!-- 기업 구분 --> , (SELECT GET_CODE_NM('FIM088', RE.ENT_SE_CD) FROM DUAL) AS ENT_SE_NM <!-- 기업 구분 -->
, RE.ENT_NM <!-- 기업 명 --> , RE.ENT_NM <!-- 기업 명 -->
, RE.ENT_REG_NO <!-- 기업 등록 번호 --> , RE.ENT_REG_NO <!-- 기업 등록 번호 -->
, RE.RPRSV_NM <!-- 대표자 명 --> , RE.RPRSV_NM <!-- 대표자 명 -->
@ -499,9 +510,12 @@
, RE.ENT_DTL_ADDR <!-- 기업 상세 주소 --> , RE.ENT_DTL_ADDR <!-- 기업 상세 주소 -->
, H.CTRT_BGNG_YMD <!-- 계약 시작 일자 --> , H.CTRT_BGNG_YMD <!-- 계약 시작 일자 -->
, H.CTRT_BGNG_TM <!-- 계약 시작 시각 --> , H.CTRT_BGNG_TM <!-- 계약 시작 시각 -->
, (CONCAT(H.CTRT_BGNG_YMD, H.CTRT_BGNG_TM)) AS CTRT_BGNG_DT <!-- 계약 시작 일시 -->
, H.CTRT_END_YMD <!-- 계약 종료 시각 --> , H.CTRT_END_YMD <!-- 계약 종료 시각 -->
, H.CTRT_END_TM <!-- 임차 종료 일시 --> , H.CTRT_END_TM <!-- 계약 종료 일시 -->
, (CONCAT(H.CTRT_END_YMD, H.CTRT_END_TM)) AS CTRT_END_DT <!-- 계약 종료 일시 -->
, H.HIRER_SE_CD <!-- 임차인 구분 코드 --> , H.HIRER_SE_CD <!-- 임차인 구분 코드 -->
, (SELECT GET_CODE_NM('FIM089', H.HIRER_SE_CD) FROM DUAL) AS HIRER_SE_NM <!-- 임차인 구분 명 -->
, H.HIRER_REG_NO <!-- 임차인 등록 번호 --> , H.HIRER_REG_NO <!-- 임차인 등록 번호 -->
, H.HIRER_NM <!-- 임차인 명 --> , H.HIRER_NM <!-- 임차인 명 -->
, H.HIRER_TELNO <!-- 임차인 전화번호 --> , H.HIRER_TELNO <!-- 임차인 전화번호 -->
@ -511,9 +525,16 @@
, H.HIRER_ADDR <!-- 임차인 주소 --> , H.HIRER_ADDR <!-- 임차인 주소 -->
, H.HIRER_DTL_ADDR <!-- 임차인 상세 주소 --> , H.HIRER_DTL_ADDR <!-- 임차인 상세 주소 -->
, H.ATCH_FILE_CNT <!-- 첨부 파일 수 --> , H.ATCH_FILE_CNT <!-- 첨부 파일 수 -->
FROM TB_LSCT L , C.CRDN_STDG_NM <!-- 단속 법정동 명 -->
INNER JOIN TB_RENT_ENT RE ON (L.ENT_ID = RE.ENT_ID) , C.CRDN_PLC <!-- 단속 장소 -->
INNER JOIN TB_HIRER H ON (L.HIRER_ID = H.HIRER_ID) , C.FFNLG_CRDN_AMT <!-- 과태료 단속 금액 -->
, C.CRDN_STTS_CD <!-- 단속 상태 코드 -->
, (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM <!-- 단속 상태 명 -->
, C.MM_CODE <!-- 메인 코드 -->
FROM TB_LSCT L
LEFT OUTER JOIN TB_RENT_ENT RE ON (L.ENT_ID = RE.ENT_ID)
LEFT OUTER JOIN TB_HIRER H ON (L.HIRER_ID = H.HIRER_ID)
LEFT OUTER JOIN TB_CRDN C ON (L.CRDN_ID = C.CRDN_ID)
</sql> </sql>
<select id="selectLsctList" parameterType="map" resultType="dataobject">/* 임대차계약 대장 목록 조회(lsctMapper.selectLsctList) */ <select id="selectLsctList" parameterType="map" resultType="dataobject">/* 임대차계약 대장 목록 조회(lsctMapper.selectLsctList) */
@ -545,6 +566,28 @@
<if test="schEntRegNo != null"> <if test="schEntRegNo != null">
AND RE.ENT_REG_NO = #{schEntRegNo} <!-- 기업 번호 --> AND RE.ENT_REG_NO = #{schEntRegNo} <!-- 기업 번호 -->
</if> </if>
<if test='trgtSttsNm != null and trgtSttsNm != "전체"'>
<choose>
<when test='trgtSttsNm == "승인완료"'>
AND L.CHG_APRV_YN = 'Y'
AND L.CHG_DMND_YN = 'Y'
AND C.NXRP_CRDN_LINK_YN = 'N'
</when>
<when test='trgtSttsNm == "승인요청"'>
AND L.CHG_APRV_YN = 'N'
AND L.CHG_DMND_YN = 'Y'
AND C.NXRP_CRDN_LINK_YN = 'N'
</when>
<when test='trgtSttsNm == "대상"'>
AND L.CHG_APRV_YN = 'N'
AND L.CHG_DMND_YN = 'N'
AND C.NXRP_CRDN_LINK_YN = 'N'
</when>
<otherwise>
AND C.NXRP_CRDN_LINK_YN = 'Y'
</otherwise>
</choose>
</if>
<if test="sggCd != null"> <if test="sggCd != null">
AND L.SGG_CD = #{sggCd} <!-- 시군구 코드 --> AND L.SGG_CD = #{sggCd} <!-- 시군구 코드 -->
</if> </if>

Loading…
Cancel
Save