list = crdnService.getCrackdownList(new CrdnQuery().setCrdnIds(crdnIds)).stream()
.map(row -> {
Object vhrno = row.remove("VHRNO");
Object crdnYmd = row.remove("CRDN_YMD");
row.clear();
row.set("VHRNO", vhrno)
.set("CRDN_YMD", crdnYmd);
return row;
})
.toList();
XLSWriter xlsx = new XLSWriter().worksheet(0).cell(0, 0).values(list);
return new ModelAndView("jsonView")
.addObject("download", xlsx.getDownloadable().setFilename("차적조회조건-" + dateFormats.format("yyyyMMdd-HHmmss", System.currentTimeMillis()) + ".xlsx"));
}
/**지정한 단속 ID에 해당하는 단속 대장를 제거한다.
* @param crdnID 단속 ID
* @return jsonView
* {
* "affected": 저장된 정보수
* "saved": 저장되었으면 true, 그렇지 않으면 false
* }
*/
@Task
@RequestMapping(name="단속자료 삭제", value=METHOD_URL.removeCrackdown)
public ModelAndView removeCrackdown(Crdn crdn) {
String rtnMsg = crdnService.removeCrackdown(crdn);
return new ModelAndView("jsonView")
.addObject("saved", rtnMsg.contains("[S]"))
.addObject("rtnMsg", rtnMsg);
}
/**지정한 단속 ID에 해당하는 납부자 ID를 제거한다.
* @param crdnID 단속 ID
* @return jsonView
* {
* "affected": 저장된 정보수
* "saved": 저장되었으면 true, 그렇지 않으면 false
* }
*/
@Task
@RequestMapping(name="단속자료 납부자 삭제", value=METHOD_URL.removeCrackdownPayer)
public ModelAndView removeCrackdownPayer(Crdn crdn) {
String rtnMsg = crdnService.removeCrackdownPayer(crdn);
return new ModelAndView("jsonView")
.addObject("saved", rtnMsg.contains("[S]"))
.addObject("rtnMsg", rtnMsg);
}
/**지정한 조회조건으로 단속 건수를 반환한다.
* @param CrdnQuery 조회조건
* @return jsonView
*/
@Task
@RequestMapping(name="단속 건수 조회", value=METHOD_URL.countCrdn)
public ModelAndView countCrdn(CrdnQuery crdnQuery) {
int crdnCount = crdnService.countCrdn(crdnQuery);
return new ModelAndView("jsonView")
.addObject("crdnCount", crdnCount);
}
/**지정한 ID의 단속 정보(info)를 반환한다.
* @param query 단속 대장 조회 조건
* @return fims/crdn/crdn06020-info 또는 jsonView
* {
* "crdnInfo": 단속 정보
* }
*/
@Task
@RequestMapping(name="단속자료 상세 조회", value=METHOD_URL.getCrackdownInfo)
public ModelAndView getCrackdownInfo(HttpServletRequest hReq, CrdnQuery query) {
// 법정동
List stdgNmList = crdnStngMapper.selectStdgNmList(currentUser().getOrgID());
boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/crdn/crdn06020-info")
.addObject("stdgNmList", stdgNmList);
// 공통코드 - 위반 내역 코드
TaskProcessor taskProcessor = TaskProcessor.get();
String taskSeCd = query.getTaskSeCd();
String vltnByTask = taskProcessor.getVltnCdGrp(taskSeCd);
Map> commonCodes = getCodesOf("CMN006", "FIM011","FIM053","LVS005",vltnByTask);
mav.addObject("CMN006List", commonCodes.get("CMN006"))
.addObject("FIM011List", commonCodes.get("FIM011"))
.addObject("FIM053List", commonCodes.get("FIM053"))
.addObject("LVS005List", commonCodes.get("LVS005"))
.addObject("VLTNList", commonCodes.get(vltnByTask));
// 단속조
List teamList = crdnStngService.getTeamList(query);
// 단속부가정보(TB_CRDN_ADI) 공통코드
String[] extraCodeGroups = taskProcessor.getExtraCdGrps(taskSeCd);
if (!isEmpty(extraCodeGroups)) {
commonCodes = getCodesOf(extraCodeGroups);
commonCodes.forEach((codeGroup, codes) -> {
mav.addObject(codeGroup + "List", codes);
});
}
mav.addObject("TeamList", teamList);
DataObject crdnInfo = crdnService.getCrackdownInfo(query);
return mav
.addObject("pageName", "crdn06020") // jsp pageName
.addObject("prefixUrl", CLASS_URL) // prefixUrl
.addObject("Info", json ? crdnInfo : toJson(crdnInfo))
;
}
/**지정한 단속 ID에 해당하는 단속 대장를 수정한다.
* @param crdnID 단속 ID
* @return jsonView
* {
* "affected": 저장된 정보수
* "saved": 저장되었으면 true, 그렇지 않으면 false
* }
*/
@Task
@RequestMapping(name="단속자료 수정", value=METHOD_URL.updateCrackdown)
public ModelAndView updateCrackdown(Crdn crdn) {
String rtnMsg = crdnService.updateCrackdown(crdn);
return new ModelAndView("jsonView")
.addObject("saved", rtnMsg.contains("[S]"))
.addObject("rtnMsg", rtnMsg);
}
/**지정한 ID의 단속 처리 상태 정보(info)를 반환한다.
* @param query 단속 대장 조회 조건
* @return fims/crdn/crdn06030-info 또는 jsonView
* {
* "crdnInfo": 단속 정보
* }
*/
@Task
@RequestMapping(name="단속자료 상태 조회", value=METHOD_URL.getCrackdownStatusInfo)
public ModelAndView getCrackdownStatusInfo(HttpServletRequest hReq, CrdnQuery query) {
DataObject crdnInfo = crdnService.getCrackdownInfo(query);
Map> commonCodes = getCodesOf("FIM010");
boolean json = jsonResponse();
return new ModelAndView(json ? "jsonView" : "fims/crdn/crdn06030-info")
.addObject("pageName", "crdn06030") // jsp pageName
.addObject("prefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM010List", commonCodes.get("FIM010")) // 단속 처리 상태 코드(CRDN_STTS_CD)
.addObject("Info", json ? crdnInfo : toJson(crdnInfo))
;
}
/**지정한 단속 ID에 해당하는 단속 처리 상태를 수정한다.
* @param crdnID 단속 ID
* @return jsonView
* {
* "affected": 저장된 정보수
* "saved": 저장되었으면 true, 그렇지 않으면 false
* }
*/
@Task
@RequestMapping(name="단속처리상태 수정", value=METHOD_URL.updateCrackdownStatus)
public ModelAndView updateCrackdownStatus(Crdn crdn) {
String rtnMsg = crdnService.updateCrackdownStatus(crdn);
return new ModelAndView("jsonView")
.addObject("saved", rtnMsg.contains("[S]"))
.addObject("rtnMsg", rtnMsg);
}
@PostMapping(name= "단속 사진 추가", value = "/insertCrdnImageFile.do")
public ModelAndView insertCrdnImageFile(String crdnId, int atchFileCnt, MultipartFile[] newFileList) {
String retMessage = "[F] ";
if(newFileList == null || newFileList.length == 0 || newFileList[0] == null || newFileList[0].isEmpty())
throw new RuntimeException("파일 업로드 오류");
Relation relation = new Relation().setInfoType(Crdn.INF_TYPE).setInfoKey(crdnId);
List newFileInfoList = new FileInfoFactory().makeFileInfos(relation, newFileList);
List