diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index e52b028b..c1a8dc36 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -244,7 +244,7 @@ public class Sndb01Controller extends ApplicationController { .addObject("infoPrefix", "wrngTrgt") // prefix .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("mainQuery", toJson(req)) // 검색 조건 - .addObject("wrngTrgtList", toJson(mav.getModel().get("wrngTrgt"))) // + .addObject("wrngTrgtList", toJson(mav.getModel().get("wrngTrgtList"))) // 자료 ; } @@ -369,18 +369,16 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView getWarningSendingDetailInfo(SndbQuery req) { // - List list = sndngDtlService.getSndngDtlList(req); + ModelAndView mav = getWarningSendingDetailList(req); - boolean json = jsonResponse(); - - ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sndb/sndb01040-info"); + mav.setViewName("fims/sndb/sndb01040-info"); return mav - .addObject("pageName", "sndb01040") - .addObject("infoPrefix", "wrngSndng") // prefix - .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 - .addObject("mainQuery", json ? req : toJson(req)) // Query - .addObject("wrngSndngDtl", json ? list : toJson(list)) // 계고장 발송 대상 정보 + .addObject("pageName", "sndb01040") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "wrngSndngDtl") // prefix + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("mainQuery", toJson(req)) // 검색 조건 + .addObject("wrngSndngDtlList", toJson(mav.getModel().get("wrngSndngDtlList"))) // 자료 ; } diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml index ade32f3f..03877f86 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -394,7 +394,8 @@ - + @@ -25,10 +24,10 @@ - - @@ -43,6 +42,7 @@ + No. 발송상태 등기번호 발송일자 @@ -72,6 +72,7 @@ @@ -142,7 +143,7 @@ prefix : "wrngSndngDtl" , prefixName : "계고장 발송 상세 정보" , keymapper : info => info ? info.SNDNG_DTL_ID : "" - , dataGetter : obj => obj.wrngSndngDtlList + , dataGetter : obj => obj.${infoPrefix}List , appendData : true , formats : { SNDNG_YMD : dateFormat @@ -199,11 +200,10 @@ ${infoPrefix}List.inStrings( document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> (str, dataItem) => str - .replace(/{onclick}/gi, "$P.control.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');") - .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") + .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');") + .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');") ); - let noMore = (totalSize == ${infoPrefix}List.length); let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0); @@ -220,8 +220,8 @@ } // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 - scrollDataList${pageName} = () => { - $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false + $P.scrollDataList = () => { + $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false $P.control.load($P.control.query.pageNum + 1); } @@ -230,14 +230,14 @@ * 사용자 함수(function) **************************************************************************/ // 개별총정보 dialog - getTotalInfo${pageName} = (crdnId) => { + $P.getTotalInfo = (crdnId) => { if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; let params = { - callControlName : "$P.control" + callControlName : "pageObject['${pageName}'].control" , callPurpose : "view" , sggCd : $("#sggCd--${pageName}").val() - , taskSeCd : $("#taskSeCd--${pageName}").val() + , taskSeCd : $("input[name=taskSeCd]:checked").val() , crdnId : crdnId } @@ -256,23 +256,15 @@ } // 출력 - printWrng${pageName} = (params) => { + $P.print = (params) => { if (!params) return; } - // 검색 자료 재조회 - refreshList${pageName} = () => { - $P.control.untilPageNum = $P.control.query.pageNum; - $P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum; - - $P.control.load(1); - } - /************************************************************************** * 버튼 clickEvent **************************************************************************/ // 엑셀 버튼 이벤트 - fnExcel${pageName} = () => { + $P.fnExcel = () => { if ($P.control.dataset.empty) { dialog.alert({ content : "검색된 자료가 없습니다." @@ -283,22 +275,22 @@ } // DataTables(그리드) - let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th") - , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td")); + let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") + , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); $P.control.query.cellDefs = cellDefs; $P.control.download(); } // 계고장출력 버튼 이벤트 - fnPrint${pageName} = () => { + $P.fnPrint = () => { // validate 확인 if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; dialog.alert({ content : $P.control.prefixName + " 정보를 출력하시겠습니까?" , onOK : () => { - printWrng${pageName}(${pageName}Fields.get()); + $P.print($P.formFields.get()); } }); } @@ -306,84 +298,64 @@ /************************************************************************** * 초기 셋팅 **************************************************************************/ - // 이벤트 - setEvent${pageName} = () => { - // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmEdit--${pageName}").find(".form-date").each(function() { - $(this).on("input", function() { - let value = this.value.replaceAll("-", ""); - - if (value.length > 7) { - this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); - } else if(value.length > 5) { - this.value = value.substring(0, 4) + "-" + value.substring(4); - } - }); - }); + // 이벤트 설정 + $P.setEvent = () => { + // 기본 버튼 이벤트 + $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀 + + // 업무 버튼 이벤트 + $("#btnPrint--${pageName}").on("click", () => $P.fnPrint()); // 출력 // DataTables width 변경 조정 $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); // DataTables 스크롤 이벤트 생성 - fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); - - /* 출처: https://nowonbun.tistory.com/538 [명월 일지:티스토리] - show.bs.modal : 모달이 열릴 때 바로 실행되는 이벤트입니다. - shown.bs.modal : 모달의 열림이 끝나고 실행되는 이벤트입니다. - hide.bs.modal : 모달이 닫힐 때 바로 실행되는 이벤트입니다. - hidden.bs.modal : 모달의 닫힘이 끝나고 실행되는 이벤트입니다. - */ + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList); + // DataTables 스크롤을 위해서 다이얼로그 화면이 생성된 후 Dataset을 설정한다. $("#${infoPrefix}Dialog").on("shown.bs.modal", function (e) { $P.control.setData({ - ${infoPrefix}List : ${wrngSndngDtlList} + ${infoPrefix}List : ${wrngSndngDtlList} , ${infoPrefix}Start : ${wrngSndngDtlStart} , ${infoPrefix}Fetch : ${wrngSndngDtlFetch} , ${infoPrefix}Total : ${wrngSndngDtlTotal} }); + + // 초기 데이터 설정 + $P.initData(); }); } - // 화면 초기 설정 - initForm${pageName} = () => { + // 초기 화면 설정 + $P.initForm = () => { // 화면 초기화 $("#frmEdit--${pageName}")[0].reset(); - - // dataset 초기화 - $P.control.dataset.clear(); } - // 기본 데이터 설정 - setFormData${pageName} = () => { - let sggCd = ${pageName}Query.sggCd; - let taskSeCd = ${pageName}Query.taskSeCd; - - $("#sggCd--${pageName}").val(sggCd); // 시군구 코드 - $("#taskSeCd--${pageName}").val(taskSeCd); // 업무 구분 코드 - - // 검색 조건 설정 - $P.control.defaultFetchSize = ${pageName}Query.fetchSize; - $P.control.query = ${pageName}Query; + // 초기 데이터 설정 + $P.initData = () => { + // + $("#sndngId--${pageName}").val($P.control.dataset.getValue("SNDNG_ID")); - // URL 설정 - setURL${pageName}(taskSeCd); + // URL 설정 + $P.setURL($P.mainQuery.taskSeCd); } - // 업무구분에 따른 url 설정 - setURL${pageName} = (taskSeCd) => { - $P.control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/040/list.do"); // 조회 + // 업무구분에 따른 URL 설정 + $P.setURL = (taskSeCd) => { + $P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/040/list.do"); // 조회 } - // 이벤트 설정 - setEvent${pageName}(); - - // 화면 초기화 - initForm${pageName}(); + /************************************************************************** + * 최초 실행 함수 + **************************************************************************/ + // 1. 이벤트 설정 + $P.setEvent(); - // 기본 데이터 설정 - setFormData${pageName}(); + // 2. 초기 화면 설정 + $P.initForm(); - // 보안모드 + // 3. 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04010-main.jsp index fc3c11f6..c306bb97 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt04010-main.jsp @@ -659,7 +659,7 @@ // 1. 이벤트 설정 $P.setEvent(); - // 2. 화면 초기 설정 및 업무 구분 변경 + // 2. 초기 설정 및 업무 구분 변경 $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); // 3. 보안모드