단속조회 및 납부안내 추가.
parent
2434c79af2
commit
f983664a32
@ -0,0 +1,198 @@
|
|||||||
|
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.RentQuery;
|
||||||
|
import cokr.xit.fims.rent.service.LsctService;
|
||||||
|
import cokr.xit.fims.rent.service.LsctMpngService;
|
||||||
|
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=Rent03Controller.CLASS_URL)
|
||||||
|
public class Rent03Controller extends ApplicationController {
|
||||||
|
|
||||||
|
public static final String CLASS_URL = "/rent/rent03";
|
||||||
|
|
||||||
|
public class METHOD_URL {
|
||||||
|
public static final String
|
||||||
|
crackdownMain = "/010/main.do" // 단속 대장 메인 화면
|
||||||
|
, getCrackdownList = "/010/list.do" // 단속 대장 목록 조회
|
||||||
|
, getCrackdownInfo = "/020/info.do" // 단속 대장 상세 화면
|
||||||
|
, getCrackdown = "/020/list.do" // 단속 대장 상세 조회
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**임대차계약 대장 서비스*/
|
||||||
|
@Resource(name = "lsctMpngService")
|
||||||
|
private LsctMpngService lsctMpngService;
|
||||||
|
|
||||||
|
/**임차인 정보 서비스*/
|
||||||
|
@Resource(name = "lsctService")
|
||||||
|
private LsctService lsctService;
|
||||||
|
|
||||||
|
/**임대 기업 대장 서비스*/
|
||||||
|
@Resource(name = "rentEntService")
|
||||||
|
private RentEntService rentEntService;
|
||||||
|
|
||||||
|
/**설정 정보 Bean */
|
||||||
|
@Resource(name = "stngBean")
|
||||||
|
private StngBean stngBean;
|
||||||
|
|
||||||
|
/**세외수입 연계 단속 대장 메인 화면(fims/rent/rent03010-main)을 연다.
|
||||||
|
* @return fims/rent/rent03010-main
|
||||||
|
*/
|
||||||
|
@RequestMapping(name = "단속 대장 메인 화면", value=METHOD_URL.crackdownMain)
|
||||||
|
public ModelAndView crackdownMain() {
|
||||||
|
ModelAndView mav = new ModelAndView("fims/rent/rent03010-main");
|
||||||
|
|
||||||
|
// 사용자 정보
|
||||||
|
FimsUser fimsUser = (FimsUser)currentUser().getUser();
|
||||||
|
|
||||||
|
// 사용자와 매핑되어있는 임대업체 정보 조회
|
||||||
|
RentQuery req = new RentQuery();
|
||||||
|
req.setUserId(fimsUser.getId());
|
||||||
|
|
||||||
|
List<DataObject> entRegNoList = rentEntService.getUserRentEntMpngs(req);
|
||||||
|
|
||||||
|
return mav
|
||||||
|
.addObject("pageName", "rent03010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
|
||||||
|
.addObject("prefixUrl", CLASS_URL) // prefixUrl
|
||||||
|
.addObject("userId", fimsUser.getId()) // 사용자 ID(USER_ID)
|
||||||
|
.addObject("entRegNoList", entRegNoList) // 임대업체 목록
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**세외수입 연계 단속 대장 목록 조회하여 반환한다.
|
||||||
|
* {@link LsctMpngService#getLsctList(LsctQuery)} 참고
|
||||||
|
* @param req 임대차계약 대장 조회 조건
|
||||||
|
* @return jsonView
|
||||||
|
* <pre><code> {
|
||||||
|
* "List": [임대차계약 대장 목록]
|
||||||
|
* "Start": 임대차계약 대장 목록 시작 인덱스
|
||||||
|
* "Fetch": 한 번에 가져오는 임대차계약 대장 목록 수
|
||||||
|
* "Total": 조회 결과 찾은 전체 임대차계약 대장 수
|
||||||
|
* }</code></pre>
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Task("CMN")
|
||||||
|
@RequestMapping(name = "단속 대장 목록 조회", value=METHOD_URL.getCrackdownList)
|
||||||
|
public ModelAndView getCrackdownList(RentQuery req) {
|
||||||
|
if (!"xls".equals(req.getDownload())) {
|
||||||
|
List<?> result = lsctMpngService.getCrdnList(setFetchSize(req));
|
||||||
|
return setPagingInfo(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 = lsctMpngService.getCrdnList(req.setFetchSize(0));
|
||||||
|
|
||||||
|
Map<String,Object> valueMap = new HashMap<String,Object>();
|
||||||
|
|
||||||
|
valueMap.put("업무구분", format.of("TASK_SE_NM").style(center));
|
||||||
|
valueMap.put("대상여부", format.of("TRGT_STTS_NM").style(center));
|
||||||
|
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_NO").style(center));
|
||||||
|
valueMap.put("납부자명", format.of("RTPYR_NM"));
|
||||||
|
valueMap.put("단속법정동", format.of("CRDN_STDG_NM").style(center));
|
||||||
|
valueMap.put("단속장소", format.of("CRDN_PLC"));
|
||||||
|
valueMap.put("위반항목", format.of("VLTN_ARTCL"));
|
||||||
|
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"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**세외수입 연계 단속 대장 상세 화면(fims/rent/rent03020-info)을 연다.
|
||||||
|
* 조건없는 {@link #getCrackdownLeaseContract(RentQuery) 단속 임대차계약 대장 조회 결과}를 포함시킨다.
|
||||||
|
* @return fims/rent/rent03020-info
|
||||||
|
*/
|
||||||
|
@Task("CMN")
|
||||||
|
@RequestMapping(name = "단속 대장 상세 화면", value=METHOD_URL.getCrackdownInfo)
|
||||||
|
public ModelAndView getCrackdownInfo(HttpServletRequest hReq, RentQuery req) {
|
||||||
|
boolean json = jsonResponse();
|
||||||
|
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/rent/rent03020-info");
|
||||||
|
|
||||||
|
// 상세 정보 조회
|
||||||
|
DataObject info = getCrackdown(req);
|
||||||
|
mav.addObject("Info", json ? info : toJson(info));
|
||||||
|
|
||||||
|
if (!json) {
|
||||||
|
// View(jsp)에서 사용할 공통코드를 조회
|
||||||
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM089");
|
||||||
|
|
||||||
|
mav.addObject("callPageName", req.getCallPageName()) // 호출 pageName
|
||||||
|
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
|
||||||
|
.addObject("pageName", "rent03020") // jsp pageName
|
||||||
|
.addObject("prefixUrl", CLASS_URL) // prefixUrl
|
||||||
|
.addObject("FIM089List", commonCodes.get("FIM089")) // 임차인 구분 코드(HIRER_SE_CD)
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Task("CMN")
|
||||||
|
@RequestMapping(name = "과태료시스템 연계 단속 대장 상세 조회", value=METHOD_URL.getCrackdown)
|
||||||
|
public DataObject getCrackdown(RentQuery req) {
|
||||||
|
// 상세 정보 조회
|
||||||
|
return lsctMpngService.getCrdnInfo(req);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue