|
|
|
|
@ -35,7 +35,7 @@ import cokr.xit.foundation.data.DataObject;
|
|
|
|
|
*
|
|
|
|
|
* <pre>
|
|
|
|
|
* ============ 변경 이력 ============
|
|
|
|
|
* 2023-08-31 JoJH 최초 작성
|
|
|
|
|
* 2023-08-31 JoJH 최초 작성
|
|
|
|
|
* ================================
|
|
|
|
|
* </pre>
|
|
|
|
|
*/
|
|
|
|
|
@ -43,243 +43,239 @@ import cokr.xit.foundation.data.DataObject;
|
|
|
|
|
@RequestMapping(name = "수납 관리", value = Rcvm01Controller.CLASS_URL)
|
|
|
|
|
public class Rcvm01Controller extends ApplicationController {
|
|
|
|
|
|
|
|
|
|
public static final String CLASS_URL = "/rcvm/rcvm01";
|
|
|
|
|
|
|
|
|
|
public class METHOD_URL {
|
|
|
|
|
public static final String
|
|
|
|
|
receivingMoneyMain = "/010/main.do" // 수납 관리 메인 화면
|
|
|
|
|
, getReceivingMoneyList = "/010/list.do" // 수납 대장 목록 조회
|
|
|
|
|
, getReceivingMoneyInfo = "/020/info.do" // 수납 정보 조회
|
|
|
|
|
, createReceivingMoney = "/020/create.do" // 수납 대장 등록
|
|
|
|
|
, updateReceivingMoney = "/020/update.do" // 수납 대장 수정
|
|
|
|
|
, removeReceivingMoney = "/010/remove.do" // 수납 대장 삭제
|
|
|
|
|
, updateReceivingMoneyRetraction = "/010/updateRcvmtRtrcn.do" // 수납취소 등록
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장 서비스*/
|
|
|
|
|
@Resource(name="rcvmtService")
|
|
|
|
|
private RcvmtService rcvmtService;
|
|
|
|
|
|
|
|
|
|
@Resource(name="stngBean")
|
|
|
|
|
private StngBean stngBean;
|
|
|
|
|
|
|
|
|
|
/**수납 대장 관리 메인화면(rcvmt/rcvmt-main)을 연다.
|
|
|
|
|
* 조건없는 {@link #getRcvmtList(RcvmtQuery) 수납 대장 조회 결과}를 포함시킨다.
|
|
|
|
|
* @return /rcvmt/rcvmt-main
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(name = "수납 관리 메인", value = METHOD_URL.receivingMoneyMain)
|
|
|
|
|
public ModelAndView receivingMoneyMain() {
|
|
|
|
|
// View(jsp)
|
|
|
|
|
ModelAndView mav = new ModelAndView("fims/rcvm/rcvm01010-main");
|
|
|
|
|
|
|
|
|
|
// 사용자 정보
|
|
|
|
|
FimsUser fimsUser = (FimsUser)currentUser().getUser();
|
|
|
|
|
|
|
|
|
|
// View(jsp)에서 사용할 공통코드를 조회
|
|
|
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM041", "FIM045", "FIM054");
|
|
|
|
|
|
|
|
|
|
return mav
|
|
|
|
|
.addObject("pageName", "rcvm01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
|
|
|
|
|
.addObject("infoPrefix", "rcvmt") // prefix
|
|
|
|
|
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
|
|
|
|
|
.addObject("sggCd", fimsUser.getOrgID()) // 시군구 코드(SGG_CD)
|
|
|
|
|
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054")))
|
|
|
|
|
.addObject("FIM041List", commonCodes.get("FIM041")) // 수납 구분 코드(RCVMT_SE_CD)
|
|
|
|
|
.addObject("FIM045List", commonCodes.get("FIM045")) // 납부 방법 구분 코드(PAY_MTHD_SE_CD)
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장 목록을 조회하여 반환한다.<br />
|
|
|
|
|
* {@link RcvmtService#getRcvmtList(RcvmtQuery)} 참고
|
|
|
|
|
* @param req 수납 대장 조회 조건
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "rcvmtList": [수납 대장 목록]
|
|
|
|
|
* "rcvmtStart": 수납 대장 목록 시작 인덱스
|
|
|
|
|
* "rcvmtFetch": 한 번에 가져오는 수납 대장 목록 수
|
|
|
|
|
* "rcvmtTotal": 조회 결과 찾은 전체 수납 대장 수
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 대장 목록 조회", value=METHOD_URL.getReceivingMoneyList)
|
|
|
|
|
public ModelAndView getReceivingMoneyList(RcvmtQuery req) {
|
|
|
|
|
if (!"xls".equals(req.getDownload())) {
|
|
|
|
|
List<?> result = rcvmtService.getRcvmtList(setFetchSize(req));
|
|
|
|
|
return setCollectionInfo(new ModelAndView("jsonView"), result, "rcvmt");
|
|
|
|
|
} 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 dateYMD = format.yyyy_mm_dd();
|
|
|
|
|
CellStyle dateDT = format.yyyy_mm_dd_hh_mm_ss();
|
|
|
|
|
|
|
|
|
|
List<DataObject> list = rcvmtService.getRcvmtList(req.setFetchSize(0));
|
|
|
|
|
|
|
|
|
|
Map<String,Object> valueMap = new HashMap<String,Object>();
|
|
|
|
|
valueMap.put("업무구분", format.of("TASK_SE_NM").style(center));
|
|
|
|
|
valueMap.put("수납입력구분", format.of("RCVMT_INPT_SE_NM").style(center));
|
|
|
|
|
valueMap.put("수납취소", format.of("RCVMT_RTRCN_NM").style(center));
|
|
|
|
|
valueMap.put("회계연도", format.of("FYR").style(center));
|
|
|
|
|
valueMap.put("회계구분", format.of("ACNTG_SE_CD").style(center));
|
|
|
|
|
valueMap.put("세목코드", format.of("TXITM_CD").style(center));
|
|
|
|
|
valueMap.put("세목명", format.of("TXITM_NM"));
|
|
|
|
|
valueMap.put("부과번호", format.of("LEVY_NO").style(center));
|
|
|
|
|
valueMap.put("분납일련번호", format.of("ISPY_SN").style(center));
|
|
|
|
|
valueMap.put("최종본세", format.of("LAST_PCPTAX").style(numeric));
|
|
|
|
|
valueMap.put("최종가산금", format.of("LAST_ADAMT").style(numeric));
|
|
|
|
|
valueMap.put("수납일련번호", format.of("RCVMT_SN").style(center));
|
|
|
|
|
valueMap.put("수납구분", format.of("RCVMT_SE_NM").style(center));
|
|
|
|
|
valueMap.put("수납일자", FormatMaker.yyyy_mm_dd(format, "RCVMT_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("회계일자", FormatMaker.yyyy_mm_dd(format, "ACNTG_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("이체일자", FormatMaker.yyyy_mm_dd(format, "TSF_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("수납금액", format.of("RCVMT_AMT").style(numeric));
|
|
|
|
|
valueMap.put("수납본세", format.of("RCVMT_PCPTAX").style(numeric));
|
|
|
|
|
valueMap.put("수납가산금", format.of("RCVMT_ADAMT").style(numeric));
|
|
|
|
|
valueMap.put("수납이자", format.of("RCVMT_INT").style(numeric));
|
|
|
|
|
valueMap.put("수납은행", format.of("RCVMT_BANK_NM"));
|
|
|
|
|
valueMap.put("납부방법", format.of("PAY_MTHD_SE_NM"));
|
|
|
|
|
valueMap.put("수납상태", format.of("RCVMT_STTS_NM").style(center));
|
|
|
|
|
valueMap.put("부과일자", FormatMaker.yyyy_mm_dd(format, "LEVY_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("최초납기일자", FormatMaker.yyyy_mm_dd(format, "FRST_DUDT_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("납기일자", FormatMaker.yyyy_mm_dd(format, "DUDT_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("압류일자", FormatMaker.yyyy_mm_dd(format, "SZR_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("압류물건", format.of("SZR_THING"));
|
|
|
|
|
valueMap.put("대체압류차량", format.of("RPM_SZR_VHRNO"));
|
|
|
|
|
valueMap.put("압류해제일자", FormatMaker.yyyy_mm_dd(format, "SZR_RMV_YMD").style(dateYMD));
|
|
|
|
|
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("CRDN_STDG_NM"));
|
|
|
|
|
valueMap.put("단속장소", format.of("CRDN_PLC"));
|
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**지정한 부과 ID의 수납 정보를 반환한다.
|
|
|
|
|
* @param levyId 부과 ID
|
|
|
|
|
* @return fims/rcvm/rcvm01020-info 또는 jsonView
|
|
|
|
|
* <pre>{
|
|
|
|
|
* "rcvmtInfo": 수납 정보
|
|
|
|
|
* }</pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 정보 조회", value=METHOD_URL.getReceivingMoneyInfo)
|
|
|
|
|
public ModelAndView getReceivingMoneyInfo(HttpServletRequest hReq, RcvmtQuery req) {
|
|
|
|
|
DataObject info = rcvmtService.getRcvmtInfo(req);
|
|
|
|
|
|
|
|
|
|
boolean json = jsonResponse();
|
|
|
|
|
|
|
|
|
|
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/rcvm/rcvm01020-info");
|
|
|
|
|
|
|
|
|
|
// View(jsp)에서 사용할 공통코드를 조회
|
|
|
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM041", "FIM045", "FIM054");
|
|
|
|
|
|
|
|
|
|
return mav
|
|
|
|
|
.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
|
|
|
|
|
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
|
|
|
|
|
.addObject("pageName", "rcvm01020") // jsp pageName
|
|
|
|
|
.addObject("infoPrefix", "rcvmt") // prefix
|
|
|
|
|
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
|
|
|
|
|
.addObject("FIM041List", commonCodes.get("FIM041")) // 수납 구분 코드(RCVMT_SE_CD)
|
|
|
|
|
.addObject("FIM045List", commonCodes.get("FIM045")) // 납부 방법 구분 코드(PAY_MTHD_SE_CD)
|
|
|
|
|
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
|
|
|
|
|
.addObject("rcvmtInfo", json ? info : toJson(info)) // 수납 정보
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장 정보를 등록한다.
|
|
|
|
|
* @param rcvmt 수납 대장 정보
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 대장 등록", value=METHOD_URL.createReceivingMoney)
|
|
|
|
|
public ModelAndView createReceivingMoney(Rcvmt rcvmt) {
|
|
|
|
|
boolean saved = false;
|
|
|
|
|
String rtnMsg = rcvmtService.createRcvmt(rcvmt);
|
|
|
|
|
|
|
|
|
|
if (rtnMsg.contains("[S]")) {
|
|
|
|
|
saved = true;
|
|
|
|
|
} else {
|
|
|
|
|
saved = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장에 수납취소 정보를 등록한다.
|
|
|
|
|
* @param rcvmt 수납 대장 정보
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 대장에 수납취소 수정", value=METHOD_URL.updateReceivingMoneyRetraction)
|
|
|
|
|
public ModelAndView updateReceivingMoneyRetraction(Rcvmt rcvmt) {
|
|
|
|
|
boolean saved = false;
|
|
|
|
|
String rtnMsg = rcvmtService.updateRcvmtRtrcn(rcvmt);
|
|
|
|
|
|
|
|
|
|
if (rtnMsg.contains("[S]")) {
|
|
|
|
|
saved = true;
|
|
|
|
|
} else {
|
|
|
|
|
saved = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장 정보를 삭제한다.
|
|
|
|
|
* @param rcvmt 수납 대장 정보
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 대장 삭제", value=METHOD_URL.removeReceivingMoney)
|
|
|
|
|
public ModelAndView removeReceivingMoney(Rcvmt rcvmt) {
|
|
|
|
|
boolean saved = false;
|
|
|
|
|
String rtnMsg = rcvmtService.removeRcvmt(rcvmt);
|
|
|
|
|
|
|
|
|
|
if (rtnMsg.contains("[S]")) {
|
|
|
|
|
saved = true;
|
|
|
|
|
} else {
|
|
|
|
|
saved = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
public static final String CLASS_URL = "/rcvm/rcvm01";
|
|
|
|
|
|
|
|
|
|
public class METHOD_URL {
|
|
|
|
|
public static final String
|
|
|
|
|
receivingMoneyMain = "/010/main.do" // 수납 관리 메인 화면
|
|
|
|
|
, getReceivingMoneyList = "/010/list.do" // 수납 대장 목록 조회
|
|
|
|
|
, getReceivingMoneyInfo = "/020/info.do" // 수납 정보 조회
|
|
|
|
|
, createReceivingMoney = "/020/create.do" // 수납 대장 등록
|
|
|
|
|
, updateReceivingMoney = "/020/update.do" // 수납 대장 수정
|
|
|
|
|
, removeReceivingMoney = "/010/remove.do" // 수납 대장 삭제
|
|
|
|
|
, updateReceivingMoneyRetraction = "/010/updateRcvmtRtrcn.do" // 수납취소 등록
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장 서비스*/
|
|
|
|
|
@Resource(name="rcvmtService")
|
|
|
|
|
private RcvmtService rcvmtService;
|
|
|
|
|
|
|
|
|
|
@Resource(name="stngBean")
|
|
|
|
|
private StngBean stngBean;
|
|
|
|
|
|
|
|
|
|
/**수납 대장 관리 메인화면(rcvmt/rcvmt-main)을 연다.
|
|
|
|
|
* 조건없는 {@link #getRcvmtList(RcvmtQuery) 수납 대장 조회 결과}를 포함시킨다.
|
|
|
|
|
* @return /rcvmt/rcvmt-main
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(name = "수납 관리 메인", value = METHOD_URL.receivingMoneyMain)
|
|
|
|
|
public ModelAndView receivingMoneyMain() {
|
|
|
|
|
// View(jsp)
|
|
|
|
|
ModelAndView mav = new ModelAndView("fims/rcvm/rcvm01010-main");
|
|
|
|
|
|
|
|
|
|
// 사용자 정보
|
|
|
|
|
FimsUser fimsUser = (FimsUser)currentUser().getUser();
|
|
|
|
|
|
|
|
|
|
// View(jsp)에서 사용할 공통코드를 조회
|
|
|
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM041", "FIM045", "FIM054");
|
|
|
|
|
|
|
|
|
|
return mav
|
|
|
|
|
.addObject("pageName", "rcvm01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
|
|
|
|
|
.addObject("prefixUrl", CLASS_URL) // prefixUrl
|
|
|
|
|
.addObject("sggCd", fimsUser.getOrgID()) // 시군구 코드(SGG_CD)
|
|
|
|
|
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054")))
|
|
|
|
|
.addObject("FIM041List", commonCodes.get("FIM041")) // 수납 구분 코드(RCVMT_SE_CD)
|
|
|
|
|
.addObject("FIM045List", commonCodes.get("FIM045")) // 납부 방법 구분 코드(PAY_MTHD_SE_CD)
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장 목록을 조회하여 반환한다.<br />
|
|
|
|
|
* {@link RcvmtService#getRcvmtList(RcvmtQuery)} 참고
|
|
|
|
|
* @param req 수납 대장 조회 조건
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "rcvmtList": [수납 대장 목록]
|
|
|
|
|
* "rcvmtStart": 수납 대장 목록 시작 인덱스
|
|
|
|
|
* "rcvmtFetch": 한 번에 가져오는 수납 대장 목록 수
|
|
|
|
|
* "rcvmtTotal": 조회 결과 찾은 전체 수납 대장 수
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 대장 목록 조회", value=METHOD_URL.getReceivingMoneyList)
|
|
|
|
|
public ModelAndView getReceivingMoneyList(RcvmtQuery req) {
|
|
|
|
|
if (!"xls".equals(req.getDownload())) {
|
|
|
|
|
List<?> result = rcvmtService.getRcvmtList(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 dateYMD = format.yyyy_mm_dd();
|
|
|
|
|
CellStyle dateDT = format.yyyy_mm_dd_hh_mm_ss();
|
|
|
|
|
|
|
|
|
|
List<DataObject> list = rcvmtService.getRcvmtList(req.setFetchSize(0));
|
|
|
|
|
|
|
|
|
|
Map<String,Object> valueMap = new HashMap<String,Object>();
|
|
|
|
|
valueMap.put("업무구분", format.of("TASK_SE_NM").style(center));
|
|
|
|
|
valueMap.put("수납입력구분", format.of("RCVMT_INPT_SE_NM").style(center));
|
|
|
|
|
valueMap.put("수납취소", format.of("RCVMT_RTRCN_NM").style(center));
|
|
|
|
|
valueMap.put("회계연도", format.of("FYR").style(center));
|
|
|
|
|
valueMap.put("회계구분", format.of("ACNTG_SE_CD").style(center));
|
|
|
|
|
valueMap.put("세목코드", format.of("TXITM_CD").style(center));
|
|
|
|
|
valueMap.put("세목명", format.of("TXITM_NM"));
|
|
|
|
|
valueMap.put("부과번호", format.of("LEVY_NO").style(center));
|
|
|
|
|
valueMap.put("분납일련번호", format.of("ISPY_SN").style(center));
|
|
|
|
|
valueMap.put("최종본세", format.of("LAST_PCPTAX").style(numeric));
|
|
|
|
|
valueMap.put("최종가산금", format.of("LAST_ADAMT").style(numeric));
|
|
|
|
|
valueMap.put("수납일련번호", format.of("RCVMT_SN").style(center));
|
|
|
|
|
valueMap.put("수납구분", format.of("RCVMT_SE_NM").style(center));
|
|
|
|
|
valueMap.put("수납일자", FormatMaker.yyyy_mm_dd(format, "RCVMT_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("회계일자", FormatMaker.yyyy_mm_dd(format, "ACNTG_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("이체일자", FormatMaker.yyyy_mm_dd(format, "TSF_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("수납금액", format.of("RCVMT_AMT").style(numeric));
|
|
|
|
|
valueMap.put("수납본세", format.of("RCVMT_PCPTAX").style(numeric));
|
|
|
|
|
valueMap.put("수납가산금", format.of("RCVMT_ADAMT").style(numeric));
|
|
|
|
|
valueMap.put("수납이자", format.of("RCVMT_INT").style(numeric));
|
|
|
|
|
valueMap.put("수납은행", format.of("RCVMT_BANK_NM"));
|
|
|
|
|
valueMap.put("납부방법", format.of("PAY_MTHD_SE_NM"));
|
|
|
|
|
valueMap.put("수납상태", format.of("RCVMT_STTS_NM").style(center));
|
|
|
|
|
valueMap.put("부과일자", FormatMaker.yyyy_mm_dd(format, "LEVY_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("최초납기일자", FormatMaker.yyyy_mm_dd(format, "FRST_DUDT_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("납기일자", FormatMaker.yyyy_mm_dd(format, "DUDT_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("압류일자", FormatMaker.yyyy_mm_dd(format, "SZR_YMD").style(dateYMD));
|
|
|
|
|
valueMap.put("압류물건", format.of("SZR_THING"));
|
|
|
|
|
valueMap.put("대체압류차량", format.of("RPM_SZR_VHRNO"));
|
|
|
|
|
valueMap.put("압류해제일자", FormatMaker.yyyy_mm_dd(format, "SZR_RMV_YMD").style(dateYMD));
|
|
|
|
|
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("CRDN_STDG_NM"));
|
|
|
|
|
valueMap.put("단속장소", format.of("CRDN_PLC"));
|
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**지정한 부과 ID의 수납 정보를 반환한다.
|
|
|
|
|
* @param levyId 부과 ID
|
|
|
|
|
* @return fims/rcvm/rcvm01020-info 또는 jsonView
|
|
|
|
|
* <pre>{
|
|
|
|
|
* "rcvmtInfo": 수납 정보
|
|
|
|
|
* }</pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 정보 조회", value=METHOD_URL.getReceivingMoneyInfo)
|
|
|
|
|
public ModelAndView getReceivingMoneyInfo(HttpServletRequest hReq, RcvmtQuery req) {
|
|
|
|
|
//
|
|
|
|
|
DataObject rcvmtInfo = rcvmtService.getRcvmtInfo(req);
|
|
|
|
|
|
|
|
|
|
boolean json = jsonResponse();
|
|
|
|
|
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/rcvm/rcvm01020-info");
|
|
|
|
|
|
|
|
|
|
// View(jsp)에서 사용할 공통코드를 조회
|
|
|
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM041", "FIM045");
|
|
|
|
|
|
|
|
|
|
return mav
|
|
|
|
|
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
|
|
|
|
|
.addObject("pageName", "rcvm01020") // jsp pageName
|
|
|
|
|
.addObject("prefixUrl", CLASS_URL) // prefixUrl
|
|
|
|
|
.addObject("FIM041List", commonCodes.get("FIM041")) // 수납 구분 코드(RCVMT_SE_CD)
|
|
|
|
|
.addObject("FIM045List", commonCodes.get("FIM045")) // 납부 방법 구분 코드(PAY_MTHD_SE_CD)
|
|
|
|
|
.addObject("Info", json ? rcvmtInfo : toJson(rcvmtInfo)) // 수납 정보
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장 정보를 등록한다.
|
|
|
|
|
* @param rcvmt 수납 대장 정보
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 대장 등록", value=METHOD_URL.createReceivingMoney)
|
|
|
|
|
public ModelAndView createReceivingMoney(Rcvmt rcvmt) {
|
|
|
|
|
boolean saved = false;
|
|
|
|
|
String rtnMsg = rcvmtService.createRcvmt(rcvmt);
|
|
|
|
|
|
|
|
|
|
if (rtnMsg.contains("[S]")) {
|
|
|
|
|
saved = true;
|
|
|
|
|
} else {
|
|
|
|
|
saved = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장에 수납취소 정보를 등록한다.
|
|
|
|
|
* @param rcvmt 수납 대장 정보
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 대장에 수납취소 수정", value=METHOD_URL.updateReceivingMoneyRetraction)
|
|
|
|
|
public ModelAndView updateReceivingMoneyRetraction(Rcvmt rcvmt) {
|
|
|
|
|
boolean saved = false;
|
|
|
|
|
String rtnMsg = rcvmtService.updateRcvmtRtrcn(rcvmt);
|
|
|
|
|
|
|
|
|
|
if (rtnMsg.contains("[S]")) {
|
|
|
|
|
saved = true;
|
|
|
|
|
} else {
|
|
|
|
|
saved = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**수납 대장 정보를 삭제한다.
|
|
|
|
|
* @param rcvmt 수납 대장 정보
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
@Task
|
|
|
|
|
@RequestMapping(name="수납 대장 삭제", value=METHOD_URL.removeReceivingMoney)
|
|
|
|
|
public ModelAndView removeReceivingMoney(Rcvmt rcvmt) {
|
|
|
|
|
boolean saved = false;
|
|
|
|
|
String rtnMsg = rcvmtService.removeRcvmt(rcvmt);
|
|
|
|
|
|
|
|
|
|
if (rtnMsg.contains("[S]")) {
|
|
|
|
|
saved = true;
|
|
|
|
|
} else {
|
|
|
|
|
saved = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
|
|
|
.addObject("saved", saved)
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|