package cokr.xit.fims.crdn.web; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.springframework.web.servlet.ModelAndView; import cokr.xit.base.code.CommonCode; import cokr.xit.base.web.ApplicationController; import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.CrdnQuery; import cokr.xit.fims.crdn.dao.GlobalStngMapper; import cokr.xit.fims.crdn.service.CrdnService; import cokr.xit.fims.crdn.service.CrdnStngService; import cokr.xit.foundation.data.DataObject; /**단속 관리 서비스 웹 컨트롤러.
* {웹 컨텍스트}/crdn/crdn06 로 접근할 수 있다. * @author leebj */ public class Crdn06Controller extends ApplicationController { public static final String CLASS_URL = "/crdn/crdn06"; public class METHOD_URL { public static final String crackdownManagementMain = "/010/main.do", getCrackdownList = "/010/list.do", getCrackdownInfo = "/020/info.do", updateCrackdown = "/020/update.do", removeCrackdown = "/010/remove.do" ; } @Resource(name="crdnService") private CrdnService crdnService; @Resource(name="crdnStngService") private CrdnStngService crdnStngService; @Resource(name="globalStngMapper") protected GlobalStngMapper globalStngMapper; /** 단속 관리 메인화면을 연다. * @return fims/crdn/crdn06010-main */ public ModelAndView crackdownManagementMain() { ModelAndView mav = new ModelAndView(); mav.setViewName("fims/crdn/crdn06010-main"); mav.addObject("pageName", "crdn06010-main"); Map> commonCodes = getCodesOf("FIM002", "FIM003", "FIM005", "FIM010", "FIM022", "FIM026", "FIM034", "FIM054"); mav.addObject("FIM003List", commonCodes.get("FIM003")); mav.addObject("FIM005List", commonCodes.get("FIM005")); mav.addObject("FIM010List", commonCodes.get("FIM010")); mav.addObject("FIM054List", commonCodes.get("FIM054")); addCodes(commonCodes, mav, "FIM002", "FIM003", "FIM010", "FIM022", "FIM026", "FIM034"); return mav; } /**단속자료 목록을 조회한다.
* {@link CrdnService#getCrackdownList(CrdnQuery)} 참고 * @param query 단속자료 목록 조회 조건 * @return jsonView */ public ModelAndView getCrackdownList(CrdnQuery query) { setFetchSize(query); return setCollectionInfo(new ModelAndView("jsonView"), crdnService.getCrackdownList(query),""); } /**지정한 ID의 단속 정보(info)를 반환한다. * @param query 단속 대장 조회 조건 * @return fims/crdn/crdn06020-info 또는 jsonView *
{
	 *     "crdnInfo": 단속 정보
	 * }
*/ public ModelAndView getCrackdownInfo(CrdnQuery query) { DataObject crdnInfo = crdnService.getCrackdownInfo(query); boolean json = jsonResponse(); ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/crdn/crdn06020-info"); // 법정동 mav.addObject("stdgNmList", globalStngMapper.selectStdgNmListForCurrentUser()); // 공통코드 - 위반 내역 코드 String vltnByTask = ""; switch(query.getTaskSeCd()) { case "PVS" -> { vltnByTask = "WEB002"; } case "BPV" -> { vltnByTask = "FIM005"; } case "DPV" -> { vltnByTask = "FIM006"; } case "ECA" -> { vltnByTask = "FIM061"; } } Map> 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)); // 단속조 List teamList = crdnStngService.getTeamList(query); // 단속부가정보(TB_CRDN_ADI) 공통코드 switch(query.getTaskSeCd()) { 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 .addObject("pageName", "crdn06020") // .addObject("crdnInfo", json ? crdnInfo : toJson(crdnInfo)) ; } /**지정한 단속 ID에 해당하는 단속 대장를 수정한다. * @param crdnID 단속 ID * @return jsonView *
 {
	 *     "affected": 저장된 정보수
	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
	 * }
*/ public ModelAndView updateCrackdown(Crdn crdn) { boolean saved = false; String retMessage = crdnService.updateCrackdown(crdn); if (retMessage.contains("[S]")) { saved = true; } else { saved = false; } return new ModelAndView("jsonView") .addObject("saved", saved) .addObject("retMessage", retMessage); } /**지정한 단속 ID에 해당하는 단속 대장를 제거한다. * @param crdnID 단속 ID * @return jsonView *
 {
	 *     "affected": 저장된 정보수
	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
	 * }
*/ public ModelAndView removeCrackdown(Crdn crdn) { boolean saved = false; String retMessage = crdnService.removeCrackdown(crdn); if (retMessage.contains("[S]")) { saved = true; } else { saved = false; } return new ModelAndView("jsonView") .addObject("saved", saved) .addObject("retMessage", retMessage); } }