|
|
|
@ -1036,36 +1036,145 @@ public class Sndb01Controller extends ApplicationController {
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**반송등록 (sndb/sndb01/220-info)을 연다.
|
|
|
|
|
/**반송 현황 메인화면(sndb/sndb01/220-main)을 연다.
|
|
|
|
|
*
|
|
|
|
|
* @return /sndb/sndb01/220-main
|
|
|
|
|
*/
|
|
|
|
|
public ModelAndView sendBackMain() {
|
|
|
|
|
ModelAndView mav = new ModelAndView("fims/sndb/sndb01220-main");
|
|
|
|
|
|
|
|
|
|
// 사용자 정보
|
|
|
|
|
ManagedUser managedUser = (ManagedUser)currentUser().getUser();
|
|
|
|
|
|
|
|
|
|
// View(jsp)에서 사용할 공통코드를 조회
|
|
|
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM004", "FIM005", "FIM006", "FIM047", "FIM054", "FIM061", "FIM064", "FIM081");
|
|
|
|
|
|
|
|
|
|
addCodes(commonCodes, mav, "FIM004", "FIM005", "FIM006", "FIM061", "FIM064");
|
|
|
|
|
|
|
|
|
|
return mav.addObject("pageName", "sndb01220") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
|
|
|
|
|
.addObject("infoPrefix", "sndbk") // prefix
|
|
|
|
|
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
|
|
|
|
|
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 시군구에서 사용하는 업무 목록
|
|
|
|
|
.addObject("FIM004List", commonCodes.get("FIM004")) // 주정차위반 내역 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM005List", commonCodes.get("FIM005")) // 전용차로위반 내역 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM006List", commonCodes.get("FIM006")) // 장애인주차위반 내역 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD)
|
|
|
|
|
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
|
|
|
|
|
.addObject("FIM061List", commonCodes.get("FIM061")) // 전기차 충전구역 및 충전방해 위반 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM064List", commonCodes.get("FIM064")) // 화물자동차 밤샘주차 위반 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD)
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**반송 현황 목록을 조회하여 반환한다.
|
|
|
|
|
* {@link SndngService#getSndngList(SndngQuery)} 참고
|
|
|
|
|
* @param req 발송 대장 조회 조건
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "sndngList": [반송 현황 목록]
|
|
|
|
|
* "sndngStart": 반송 현황 목록 시작 인덱스
|
|
|
|
|
* "sndngFetch": 한 번에 가져오는 반송 현황 목록 수
|
|
|
|
|
* "sndngTotal": 조회 결과 찾은 전체 반송 현황 수
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
public ModelAndView getSendBackList(SndbQuery req) {
|
|
|
|
|
if (!"xls".equals(req.getDownload())) {
|
|
|
|
|
List<?> result = sndngDtlService.getSndbkList(setFetchSize(req));
|
|
|
|
|
return setCollectionInfo(new ModelAndView("jsonView"), result, "sndbk");
|
|
|
|
|
} else {
|
|
|
|
|
// 현재 날짜 구하기
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
|
|
String dateTime = dateFormat.format(System.currentTimeMillis());
|
|
|
|
|
|
|
|
|
|
List<CellDef> cellDefs = fromJson(req.getCellDefs(), CellDef.listType());
|
|
|
|
|
|
|
|
|
|
XLSWriter xlsx = new XLSWriter()
|
|
|
|
|
.setFilename("반송현황" + "_목록_" + dateTime + ".xlsx")
|
|
|
|
|
.worksheet(0);
|
|
|
|
|
|
|
|
|
|
// CellStyle 지정은 여기에서..
|
|
|
|
|
CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬
|
|
|
|
|
CellStyle numeric = xlsx.n_nn0(); // 숫자 3자리 콤마(,)
|
|
|
|
|
CellStyle dateYMD = xlsx.yyyy_mm_dd(); // 연월일
|
|
|
|
|
CellStyle dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간
|
|
|
|
|
|
|
|
|
|
List<DataObject> list = sndngDtlService.getSndbkList(req.setFetchSize(0));
|
|
|
|
|
|
|
|
|
|
Map<String,Object> valueMap = new HashMap<String,Object>();
|
|
|
|
|
valueMap.put("업무구분", xlsx.style("TASK_SE_NM", center));
|
|
|
|
|
valueMap.put("고지번호", xlsx.style("GOJI_NO", center));
|
|
|
|
|
valueMap.put("등기번호", xlsx.style("RG_NO", center));
|
|
|
|
|
valueMap.put("배달일자", xlsx.format(o -> xlsx.str2date(o.get("DLVR_YMD"))).style(dateYMD));
|
|
|
|
|
valueMap.put("배달시간", "DLVR_TM");
|
|
|
|
|
valueMap.put("미배달사유", "UNDLVR_RSN_NM");
|
|
|
|
|
valueMap.put("수령인", "ACTL_RCPN_NM");
|
|
|
|
|
valueMap.put("수령인관계", "RCPN_REL_NM");
|
|
|
|
|
valueMap.put("발송구분", xlsx.style("SNDNG_SE_NM", center));
|
|
|
|
|
valueMap.put("발송일자", xlsx.format(o -> xlsx.str2date(o.get("SNDNG_YMD"))).style(dateYMD));
|
|
|
|
|
valueMap.put("과태료금액", xlsx.style("FFNLG_AMT", numeric));
|
|
|
|
|
valueMap.put("성명", "RCPN_NM");
|
|
|
|
|
valueMap.put("우편번호", xlsx.style("RCPN_ZIP", center));
|
|
|
|
|
valueMap.put("주소", "RCPN_ADDR");
|
|
|
|
|
valueMap.put("상세주소", "RCPN_DTL_ADDR");
|
|
|
|
|
valueMap.put("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT));
|
|
|
|
|
valueMap.put("차량번호", "VHRNO");
|
|
|
|
|
valueMap.put("납부자구분", xlsx.style("RTPYR_SE_NM", center));
|
|
|
|
|
valueMap.put("납부자번호", xlsx.style("RTPYR_NO", center));
|
|
|
|
|
valueMap.put("납부자명", "RTPYR_NM");
|
|
|
|
|
valueMap.put("단속법정동", xlsx.style("CRDN_STDG_NM", center));
|
|
|
|
|
valueMap.put("단속장소", "CRDN_PLC");
|
|
|
|
|
valueMap.put("처리상태", "CRDN_STTS_NM");
|
|
|
|
|
valueMap.put("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT));
|
|
|
|
|
valueMap.put("등록사용자", xlsx.style("RGTR_NM", center));
|
|
|
|
|
valueMap.put("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT));
|
|
|
|
|
valueMap.put("수정사용자", xlsx.style("MDFR_NM", center));
|
|
|
|
|
|
|
|
|
|
CellDef.setValues(cellDefs, valueMap);
|
|
|
|
|
|
|
|
|
|
xlsx.cell(0, 0)
|
|
|
|
|
.value("반송현황", center)
|
|
|
|
|
.merge(0, cellDefs.size() - 1)
|
|
|
|
|
.cell(3, 0)
|
|
|
|
|
.rowValues(CellDef.header(cellDefs, () -> CmmnUtil.headerStyle(xlsx)))
|
|
|
|
|
.cell(4, 0)
|
|
|
|
|
.values(list, CellDef.values(cellDefs));
|
|
|
|
|
|
|
|
|
|
return new ModelAndView("xlsView")
|
|
|
|
|
.addObject("xls", xlsx);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**반송등록 (sndb/sndb01/230-info)을 연다.
|
|
|
|
|
* @param sndngId 발송 ID
|
|
|
|
|
* @return fims/sndb/sndb01220-info 또는 jsonView
|
|
|
|
|
* @return fims/sndb/sndb01230-info 또는 jsonView
|
|
|
|
|
* <pre>{
|
|
|
|
|
* "sndngDtls":
|
|
|
|
|
* }</pre>
|
|
|
|
|
*/
|
|
|
|
|
public ModelAndView getSendBackInfo(SndbQuery req) {
|
|
|
|
|
DataObject sndbkInfo = sndngDtlService.getSndbkInfo(req);
|
|
|
|
|
//
|
|
|
|
|
DataObject info = sndngDtlService.getSndbkInfo(req);
|
|
|
|
|
|
|
|
|
|
// 등록을 호출하였지만 등록된 미배달 사유가 있는지 확인.
|
|
|
|
|
if (req.getCallPurpose().equals("create") && !sndbkInfo.string("UNDLVR_RSN_NM").equals("")) {
|
|
|
|
|
if (req.getCallPurpose().equals("create") && !info.string("UNDLVR_RSN_NM").equals("")) {
|
|
|
|
|
ModelAndView mav = new ModelAndView("jsonView");
|
|
|
|
|
|
|
|
|
|
return mav.addObject("pageName", "sndb01220")
|
|
|
|
|
return mav.addObject("pageName", "sndb01230")
|
|
|
|
|
.addObject("rtnMsg", "이미 등록된 미배달 사유가 있습니다.")
|
|
|
|
|
;
|
|
|
|
|
} else {
|
|
|
|
|
boolean json = jsonResponse();
|
|
|
|
|
|
|
|
|
|
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01220-info");
|
|
|
|
|
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01230-info");
|
|
|
|
|
|
|
|
|
|
// View(jsp)에서 사용할 공통코드를 조회
|
|
|
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054", "FIM081");
|
|
|
|
|
|
|
|
|
|
return mav.addObject("pageName", "sndb01220")
|
|
|
|
|
return mav.addObject("pageName", "sndb01230")
|
|
|
|
|
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
|
|
|
|
|
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
|
|
|
|
|
.addObject("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD)
|
|
|
|
|
.addObject("sndbkInfo", json ? sndbkInfo : toJson(sndbkInfo)) // 반송 정보
|
|
|
|
|
.addObject("sndbkInfo", json ? info : toJson(info)) // 반송 정보
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -1158,114 +1267,6 @@ public class Sndb01Controller extends ApplicationController {
|
|
|
|
|
.addObject("rtnMsg", rtnMsg);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**반송 현황 메인화면(sndb/sndb01/220-main)을 연다.
|
|
|
|
|
*
|
|
|
|
|
* @return /sndb/sndb01/220-main
|
|
|
|
|
*/
|
|
|
|
|
public ModelAndView sendBackMain() {
|
|
|
|
|
ModelAndView mav = new ModelAndView("fims/sndb/sndb01220-main");
|
|
|
|
|
|
|
|
|
|
// 사용자 정보
|
|
|
|
|
ManagedUser managedUser = (ManagedUser)currentUser().getUser();
|
|
|
|
|
|
|
|
|
|
// View(jsp)에서 사용할 공통코드를 조회
|
|
|
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM004", "FIM005", "FIM006", "FIM047", "FIM054", "FIM061", "FIM064", "FIM081");
|
|
|
|
|
|
|
|
|
|
addCodes(commonCodes, mav, "FIM004", "FIM005", "FIM006", "FIM061", "FIM064");
|
|
|
|
|
|
|
|
|
|
return mav.addObject("pageName", "sndb01220") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
|
|
|
|
|
.addObject("infoPrefix", "sndbk") // prefix
|
|
|
|
|
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
|
|
|
|
|
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 시군구에서 사용하는 업무 목록
|
|
|
|
|
.addObject("FIM004List", commonCodes.get("FIM004")) // 주정차위반 내역 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM005List", commonCodes.get("FIM005")) // 전용차로위반 내역 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM006List", commonCodes.get("FIM006")) // 장애인주차위반 내역 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD)
|
|
|
|
|
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
|
|
|
|
|
.addObject("FIM061List", commonCodes.get("FIM061")) // 전기차 충전구역 및 충전방해 위반 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM064List", commonCodes.get("FIM064")) // 화물자동차 밤샘주차 위반 코드(VLTN_ID)
|
|
|
|
|
.addObject("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD)
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**반송 현황 목록을 조회하여 반환한다.
|
|
|
|
|
* {@link SndngService#getSndngList(SndngQuery)} 참고
|
|
|
|
|
* @param req 발송 대장 조회 조건
|
|
|
|
|
* @return jsonView
|
|
|
|
|
* <pre><code> {
|
|
|
|
|
* "sndngList": [반송 현황 목록]
|
|
|
|
|
* "sndngStart": 반송 현황 목록 시작 인덱스
|
|
|
|
|
* "sndngFetch": 한 번에 가져오는 반송 현황 목록 수
|
|
|
|
|
* "sndngTotal": 조회 결과 찾은 전체 반송 현황 수
|
|
|
|
|
* }</code></pre>
|
|
|
|
|
*/
|
|
|
|
|
public ModelAndView getSendBackList(SndbQuery req) {
|
|
|
|
|
if (!"xls".equals(req.getDownload())) {
|
|
|
|
|
List<?> result = sndngDtlService.getSndbkList(setFetchSize(req));
|
|
|
|
|
return setCollectionInfo(new ModelAndView("jsonView"), result, "sndbk");
|
|
|
|
|
} else {
|
|
|
|
|
// 현재 날짜 구하기
|
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
|
|
String dateTime = dateFormat.format(System.currentTimeMillis());
|
|
|
|
|
|
|
|
|
|
List<CellDef> cellDefs = fromJson(req.getCellDefs(), CellDef.listType());
|
|
|
|
|
|
|
|
|
|
XLSWriter xlsx = new XLSWriter()
|
|
|
|
|
.setFilename("반송현황" + "_목록_" + dateTime + ".xlsx")
|
|
|
|
|
.worksheet(0);
|
|
|
|
|
|
|
|
|
|
// CellStyle 지정은 여기에서..
|
|
|
|
|
CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬
|
|
|
|
|
CellStyle numeric = xlsx.n_nn0(); // 숫자 3자리 콤마(,)
|
|
|
|
|
CellStyle dateYMD = xlsx.yyyy_mm_dd(); // 연월일
|
|
|
|
|
CellStyle dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간
|
|
|
|
|
|
|
|
|
|
List<DataObject> list = sndngDtlService.getSndbkList(req.setFetchSize(0));
|
|
|
|
|
|
|
|
|
|
Map<String,Object> valueMap = new HashMap<String,Object>();
|
|
|
|
|
valueMap.put("업무구분", xlsx.style("TASK_SE_NM", center));
|
|
|
|
|
valueMap.put("고지번호", xlsx.style("GOJI_NO", center));
|
|
|
|
|
valueMap.put("등기번호", xlsx.style("RG_NO", center));
|
|
|
|
|
valueMap.put("배달일자", xlsx.format(o -> xlsx.str2date(o.get("DLVR_YMD"))).style(dateYMD));
|
|
|
|
|
valueMap.put("배달시간", "DLVR_TM");
|
|
|
|
|
valueMap.put("미배달사유", "UNDLVR_RSN_NM");
|
|
|
|
|
valueMap.put("수령인", "ACTL_RCPN_NM");
|
|
|
|
|
valueMap.put("수령인관계", "RCPN_REL_NM");
|
|
|
|
|
valueMap.put("발송구분", xlsx.style("SNDNG_SE_NM", center));
|
|
|
|
|
valueMap.put("발송일자", xlsx.format(o -> xlsx.str2date(o.get("SNDNG_YMD"))).style(dateYMD));
|
|
|
|
|
valueMap.put("과태료금액", xlsx.style("FFNLG_AMT", numeric));
|
|
|
|
|
valueMap.put("성명", "RCPN_NM");
|
|
|
|
|
valueMap.put("우편번호", xlsx.style("RCPN_ZIP", center));
|
|
|
|
|
valueMap.put("주소", "RCPN_ADDR");
|
|
|
|
|
valueMap.put("상세주소", "RCPN_DTL_ADDR");
|
|
|
|
|
valueMap.put("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT));
|
|
|
|
|
valueMap.put("차량번호", "VHRNO");
|
|
|
|
|
valueMap.put("납부자구분", xlsx.style("RTPYR_SE_NM", center));
|
|
|
|
|
valueMap.put("납부자번호", xlsx.style("RTPYR_NO", center));
|
|
|
|
|
valueMap.put("납부자명", "RTPYR_NM");
|
|
|
|
|
valueMap.put("단속법정동", xlsx.style("CRDN_STDG_NM", center));
|
|
|
|
|
valueMap.put("단속장소", "CRDN_PLC");
|
|
|
|
|
valueMap.put("처리상태", "CRDN_STTS_NM");
|
|
|
|
|
valueMap.put("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT));
|
|
|
|
|
valueMap.put("등록사용자", xlsx.style("RGTR_NM", center));
|
|
|
|
|
valueMap.put("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT));
|
|
|
|
|
valueMap.put("수정사용자", xlsx.style("MDFR_NM", center));
|
|
|
|
|
|
|
|
|
|
CellDef.setValues(cellDefs, valueMap);
|
|
|
|
|
|
|
|
|
|
xlsx.cell(0, 0)
|
|
|
|
|
.value("반송현황", center)
|
|
|
|
|
.merge(0, cellDefs.size() - 1)
|
|
|
|
|
.cell(3, 0)
|
|
|
|
|
.rowValues(CellDef.header(cellDefs, () -> CmmnUtil.headerStyle(xlsx)))
|
|
|
|
|
.cell(4, 0)
|
|
|
|
|
.values(list, CellDef.values(cellDefs));
|
|
|
|
|
|
|
|
|
|
return new ModelAndView("xlsView")
|
|
|
|
|
.addObject("xls", xlsx);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**공시송달 현황 메인화면(sndb/sndb01/240-main)을 연다.
|
|
|
|
|
*
|
|
|
|
|
* @return /sndb/sndb01/240-main
|
|
|
|
|