You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
5.7 KiB
Java
168 lines
5.7 KiB
Java
package cokr.xit.fims.crdn.web;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
|
import cokr.xit.base.code.CommonCode;
|
|
import cokr.xit.base.file.FileInfo;
|
|
import cokr.xit.base.file.web.FileInfoFactory;
|
|
import cokr.xit.base.web.ApplicationController;
|
|
import cokr.xit.fims.crdn.Crdn;
|
|
import cokr.xit.fims.crdn.CrdnQuery;
|
|
import cokr.xit.fims.crdn.dao.Crdn05Mapper;
|
|
import cokr.xit.fims.crdn.service.CrdnService;
|
|
import cokr.xit.fims.crdn.service.CrdnStngService;
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
/**단속 자료 등록 서비스 웹 컨트롤러.<br />
|
|
* {웹 컨텍스트}/crdn/crdn05 로 접근할 수 있다.
|
|
* @author leebj
|
|
*/
|
|
public class Crdn05Controller extends ApplicationController {
|
|
|
|
@Resource(name="crdnService")
|
|
private CrdnService crdnService;
|
|
|
|
@Resource(name="crdnStngService")
|
|
private CrdnStngService crdnStngService;
|
|
|
|
@Resource(name="crdn05Mapper")
|
|
private Crdn05Mapper crdn05Mapper;
|
|
|
|
/** 단속 자료 등록 메인화면을 연다.
|
|
* @return fims/crdn/crdn05010-main
|
|
*/
|
|
public ModelAndView crackdownDataRegistrationMain() {
|
|
ModelAndView mav = new ModelAndView();
|
|
mav.setViewName("fims/crdn/crdn05010-main");
|
|
mav.addObject("pageName", "crdn05010-main");
|
|
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM003", "FIM026", "FIM054");
|
|
mav.addObject("FIM054List", commonCodes.get("FIM054"));
|
|
addCodes(commonCodes, mav, "FIM003", "FIM026");
|
|
return mav;
|
|
}
|
|
|
|
/**단속자료 파일 등록 팝업화면을 반환한다.
|
|
* @param
|
|
* @return fims/crdn/crdn05020-info
|
|
*/
|
|
@RequestMapping(name="단속자료 파일 등록 화면", value="/020/info.do")
|
|
public ModelAndView getFileRegistrationScreen() {
|
|
return new ModelAndView("fims/crdn/crdn05020-info");
|
|
}
|
|
|
|
/**당일 등록한 단속자료 목록을 조회한다.
|
|
* {@link CrdnService#getCrackdownList(CrdnQuery)} 참고
|
|
* @param query 단속자료 목록 조회 조건
|
|
* @return jsonView
|
|
* <pre><code> {
|
|
* "crdnList": [조회결과 목록],
|
|
* "crdnStart": 현재 페이지의 시작 자료 인덱스,
|
|
* "crdnFetchTotal": 한 페이지에 가져오는 자료 건 수,
|
|
* "crdnTotal": 조회 결과 찾은 전체 건 수
|
|
* }</code></pre>
|
|
*/
|
|
@RequestMapping(name="당일 입력 단속자료 목록 조회", value="/010/list.do")
|
|
public ModelAndView getTodayCrdnDataList(CrdnQuery query) {
|
|
setFetchSize(query);
|
|
query.setGridType("todayInsert");
|
|
return setCollectionInfo(new ModelAndView("jsonView"),crdnService.getCrackdownList(query),"");
|
|
}
|
|
|
|
/**단속자료 수기 등록 팝업화면을 반환한다.
|
|
* @param
|
|
* @return fims/crdn/crdn05030-info
|
|
*/
|
|
@RequestMapping(name="단속자료 수기 등록 화면", value="/030/info.do")
|
|
public ModelAndView getManualRegistrationScreen(HttpServletRequest hReq) {
|
|
|
|
ModelAndView mav = new ModelAndView("fims/crdn/crdn05030-info");
|
|
mav.addObject("pageName", "crdn05030-info");
|
|
String urlTaskSeCd = hReq.getServletPath().split("/")[1];
|
|
mav.addObject("taskSeCd", urlTaskSeCd);
|
|
|
|
String vltnByTask = "";
|
|
|
|
switch(urlTaskSeCd) {
|
|
case "PVS" -> { vltnByTask = "WEB002"; }
|
|
case "BPV" -> { vltnByTask = "FIM005"; }
|
|
case "DPV","ECA" -> { vltnByTask = "FIM006"; }
|
|
}
|
|
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM011","FIM053","LVS005",vltnByTask);
|
|
mav.addObject("FIM011List", commonCodes.get("FIM011"));
|
|
mav.addObject("FIM053List", commonCodes.get("FIM053"));
|
|
mav.addObject("LVS005List", commonCodes.get("LVS005"));
|
|
mav.addObject("VLTNList", commonCodes.get(vltnByTask));
|
|
|
|
CrdnQuery query = new CrdnQuery();
|
|
query.setSggCd(crdn05Mapper.selectSggCdForCurrentUser());
|
|
query.setTaskSeCd(urlTaskSeCd);
|
|
List<DataObject> teamList = crdnStngService.getTeamList(query);
|
|
|
|
switch(urlTaskSeCd) {
|
|
case "PVS" -> {
|
|
commonCodes = getCodesOf("FIM002","FIM007","FIM009");
|
|
mav.addObject("FIM002List", commonCodes.get("FIM002"));
|
|
mav.addObject("FIM007List", commonCodes.get("FIM007"));
|
|
mav.addObject("FIM009List", commonCodes.get("FIM009"));
|
|
mav.addObject("TeamList", teamList);
|
|
}
|
|
case "BPV" -> {
|
|
commonCodes = getCodesOf("FIM002","FIM009");
|
|
mav.addObject("FIM002List", commonCodes.get("FIM002"));
|
|
mav.addObject("FIM009List", commonCodes.get("FIM009"));
|
|
mav.addObject("TeamList", teamList);
|
|
}
|
|
case "DPV" -> {
|
|
commonCodes = getCodesOf("FIM034");
|
|
mav.addObject("FIM034List", commonCodes.get("FIM034"));
|
|
}
|
|
case "ECA" -> { }
|
|
}
|
|
|
|
return mav;
|
|
}
|
|
|
|
/**단속 대장을 수기 등록한다.
|
|
* @param Crdn 단속 대장 정보
|
|
* @return jsonView
|
|
* <pre><code> {
|
|
* "saved": 등록되었으면 true, 그렇지 않으면 false
|
|
* }</code></pre>
|
|
*/
|
|
@PostMapping(name="단속자료 수기 등록", value="/030/create.do")
|
|
public ModelAndView createCrdnDataByManual(HttpServletRequest hReq, Crdn crdn, MultipartFile[] newFileList) {
|
|
boolean saved = false;
|
|
|
|
crdn.setCrdnRegSeCd("01");
|
|
crdn.setCrdnInptSeCd("03");//TODO : 사용자 기관의 시청,구청 구분
|
|
|
|
List<FileInfo> fileInfoList = new ArrayList<FileInfo>();
|
|
if(newFileList != null && newFileList.length > 0) {
|
|
fileInfoList = new FileInfoFactory().makeFileInfos(null, newFileList);
|
|
}
|
|
|
|
String doGuidance = ifEmpty(hReq.getParameter("doGuidance"), () -> "");
|
|
if(doGuidance.equals("on")) {
|
|
crdn.setCrdnSttsCd("83");
|
|
}
|
|
Map<String, Object> nonQueryRequest = new HashMap<String, Object>();
|
|
saved = crdnService.create(nonQueryRequest , crdn, fileInfoList);
|
|
|
|
|
|
return new ModelAndView("jsonView")
|
|
.addObject("saved", saved);
|
|
}
|
|
}
|