From 5a3eccd19528cfde45f6e98718cbf5e951a64b9b Mon Sep 17 00:00:00 2001 From: jjh Date: Thu, 4 Jan 2024 18:06:40 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=A0=EC=A7=80=EC=84=9C=20=EB=B0=9C?= =?UTF-8?q?=EC=86=A1=ED=98=84=ED=99=A9=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/sndb/web/Sndb01Controller.java | 60 +++- .../sql/mapper/fims/sndb/sndng-mapper.xml | 311 +++++++++--------- .../WEB-INF/jsp/fims/epst/epst02010-main.jsp | 6 +- .../WEB-INF/jsp/fims/epst/epst02030-main.jsp | 6 +- .../WEB-INF/jsp/fims/epst/epst02050-main.jsp | 6 +- .../WEB-INF/jsp/fims/excl/excl02010-main.jsp | 6 +- .../WEB-INF/jsp/fims/excl/excl03010-main.jsp | 6 +- .../WEB-INF/jsp/fims/levy/levy01010-main.jsp | 6 +- .../WEB-INF/jsp/fims/levy/levy01050-main.jsp | 6 +- .../WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp | 6 +- .../WEB-INF/jsp/fims/sndb/sndb01010-main.jsp | 6 +- .../WEB-INF/jsp/fims/sndb/sndb01020-info.jsp | 14 +- .../WEB-INF/jsp/fims/sndb/sndb01030-main.jsp | 7 +- .../WEB-INF/jsp/fims/sndb/sndb01050-main.jsp | 18 +- .../WEB-INF/jsp/fims/sndb/sndb01060-info.jsp | 14 +- .../WEB-INF/jsp/fims/sndb/sndb01070-main.jsp | 10 +- .../WEB-INF/jsp/fims/sndb/sndb01090-main.jsp | 304 ++++++++++------- 17 files changed, 453 insertions(+), 339 deletions(-) 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 bf36dda4..58473a2e 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -61,9 +61,6 @@ public class Sndb01Controller extends ApplicationController { , getAdvanceNoticeSendingList = "/070/list.do" // 사전통지 발송 대상 목록 조회 , getAdvanceNoticeSendingInfo = "/080/info.do" // 사전통지 발송 상세 화면 , getAdvanceNoticeSendingDetailsList= "/080/list.do" // 사전통지 발송 현황 상세 목록 조회 - - - , noticeSheetSendingMain = "/090/main.do" // 고지서 발송 현황 메인 화면 , getNoticeSheetSendingList = "/090/list.do" // 고지서 발송 대상 목록 조회 , getNoticeSheetSendingInfo = "/100/info.do" // 고지서 발송 상세 대장 조회 @@ -769,12 +766,6 @@ public class Sndb01Controller extends ApplicationController { } } - - - - - - /**고지서 발송 현황 메인화면(sndb/sndb01/090-main)을 연다. * * @return /sndb/sndb01/090-main @@ -807,9 +798,56 @@ public class Sndb01Controller extends ApplicationController { * } */ public ModelAndView getNoticeSheetSendingList(SndbQuery req) { - List result = sndngService.getSndngList(setFetchSize(req)); + if (!"xls".equals(req.getDownload())) { + List result = sndngService.getSndngList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "nhtSndng"); + } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); - return setCollectionInfo(new ModelAndView("jsonView"), result, "nhtSndng"); + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); + + 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 list = sndngService.getSndngList(req.setFetchSize(0)); + + CellDef.setValues(cellDefs, Map.ofEntries( + Map.entry("업무구분", xlsx.style("TASK_SE_NM", center)) + , Map.entry("등록구분", xlsx.style("SNDNG_REG_SE_NM", center)) + , Map.entry("위반항목", "VLTN_ARTCL") + , Map.entry("발송일자", xlsx.format(o -> xlsx.str2date(o.get("SNDNG_YMD"))).style(dateYMD)) + , Map.entry("납기일자", xlsx.format(o -> xlsx.str2date(o.get("SNDNG_END_YMD"))).style(dateYMD)) + , Map.entry("총건수", xlsx.style("TNOCS", numeric)) + , Map.entry("총금액", xlsx.style("GRAMT", numeric)) + , Map.entry("문서번호", "DOC_NO") + , Map.entry("제목", "TTL_NM") + , Map.entry("등록일시", xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT)) + , Map.entry("등록사용자", xlsx.style("RGTR_NM", center)) + , Map.entry("수정일시", xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT)) + , Map.entry("수정사용자", xlsx.style("MDFR_NM", center)) + ) + ); + + 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/100-info)을 연다. 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 617a443a..91431aaa 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -39,6 +39,161 @@ + + SELECT S.SNDNG_ID /* 발송 ID */ + , S.SGG_CD /* 시군구 코드 */ + , S.DEPT_CD /* 부서 코드 */ + , S.TASK_SE_CD /* 업무 구분 코드 */ + , S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ + , S.SNDNG_SE_CD /* 발송 구분 코드 */ + , V.VLTN_ID /* 위반 ID */ + , V.VLTN_CD /* 위반 코드 */ + , V.VLTN_ARTCL /* 위반 항목 */ + , S.LEVY_BGNG_YMD /* 부과 시작 일자 */ + , S.LEVY_END_YMD /* 부과 종료 일자 */ + , S.SNDNG_YMD /* 발송 일자 */ + , S.SNDNG_END_YMD /* 발송 종료 일자 */ + , S.TTL_NM /* 제목 명 */ + , S.DOC_NO /* 문서 번호 */ + , S.ETC_CN /* 기타 내용 */ + , S.TNOCS /* 총건수 */ + , S.GRAMT /* 총금액 */ + , S.CON_KEY /* 외부연계식별키 */ + , S.DIV_KB /* 취급 구분 */ + , S.EPOST_NOTICE_ID /* 전자우편 안내문 ID */ + , S.SNDNG_STTS_CD /* 발송 상태 코드 */ + , S.RESND_YN /* 재발송 여부 */ + , S.REG_DT /* 등록 일시 */ + , S.RGTR /* 등록자 */ + , S.MDFCN_DT /* 수정 일시 */ + , S.MDFR /* 수정자 */ + , AS TODAY /* 오늘 일자 */ + , GET_MASK_DATE(, 'K') AS TODAY_MASK /* 오늘 일자 한글 마스크 */ + , AS NOW /* 현재 일시 */ + , (SELECT GET_CODE_NM('FIM054', S.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ + , (SELECT GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM /* 발송 등록 구분 명 */ + , (SELECT GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */ + , (SELECT GET_CODE_NM('FIM049', S.SNDNG_STTS_CD) FROM DUAL) AS SNDNG_STTS_NM /* 발송 상태 명 */ + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.RGTR) AS RGTR_NM /* 등록자 명 */ + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.MDFR) AS MDFR_NM /* 수정자 명 */ + FROM TB_SNDNG S + LEFT OUTER JOIN TB_VLTN V ON (S.VLTN_ID = V.VLTN_ID AND S.SGG_CD = V.SGG_CD AND S.TASK_SE_CD = V.TASK_SE_CD) + + + + + + , C.SGG_CD /* 시군구 코드 */ , C.TASK_SE_CD /* 업무 구분 코드 */ @@ -608,162 +763,6 @@ - - SELECT S.SNDNG_ID /* 발송 ID */ - , S.SGG_CD /* 시군구 코드 */ - , S.DEPT_CD /* 부서 코드 */ - , S.TASK_SE_CD /* 업무 구분 코드 */ - , S.SNDNG_REG_SE_CD /* 발송 등록 구분 코드 */ - , S.SNDNG_SE_CD /* 발송 구분 코드 */ - , V.VLTN_ID /* 위반 ID */ - , V.VLTN_CD /* 위반 코드 */ - , V.VLTN_ARTCL /* 위반 항목 */ - , S.LEVY_BGNG_YMD /* 부과 시작 일자 */ - , S.LEVY_END_YMD /* 부과 종료 일자 */ - , S.SNDNG_YMD /* 발송 일자 */ - , S.SNDNG_END_YMD /* 발송 종료 일자 */ - , S.TTL_NM /* 제목 명 */ - , S.DOC_NO /* 문서 번호 */ - , S.ETC_CN /* 기타 내용 */ - , S.TNOCS /* 총건수 */ - , S.GRAMT /* 총금액 */ - , S.CON_KEY /* 외부연계식별키 */ - , S.DIV_KB /* 취급 구분 */ - , S.EPOST_NOTICE_ID /* 전자우편 안내문 ID */ - , S.SNDNG_STTS_CD /* 발송 상태 코드 */ - , S.RESND_YN /* 재발송 여부 */ - , S.REG_DT /* 등록 일시 */ - , S.RGTR /* 등록자 */ - , S.MDFCN_DT /* 수정 일시 */ - , S.MDFR /* 수정자 */ - , AS TODAY /* 오늘 일자 */ - , GET_MASK_DATE(, 'K') AS TODAY_MASK /* 오늘 일자 한글 마스크 */ - , AS NOW /* 현재 일시 */ - , (SELECT GET_CODE_NM('FIM054', S.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ - , (SELECT GET_CODE_NM('FIM067', S.SNDNG_REG_SE_CD) FROM DUAL) AS SNDNG_REG_SE_NM /* 발송 등록 구분 명 */ - , (SELECT GET_CODE_NM('FIM047', S.SNDNG_SE_CD) FROM DUAL) AS SNDNG_SE_NM /* 발송 구분 명 */ - , (SELECT GET_CODE_NM('FIM049', S.SNDNG_STTS_CD) FROM DUAL) AS SNDNG_STTS_NM /* 발송 상태 명 */ - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.RGTR) AS RGTR_NM /* 등록자 명 */ - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = S.MDFR) AS MDFR_NM /* 수정자 명 */ - FROM TB_SNDNG S - LEFT OUTER JOIN TB_VLTN V ON (S.VLTN_ID = V.VLTN_ID AND S.SGG_CD = V.SGG_CD AND S.TASK_SE_CD = V.TASK_SE_CD) - - - - - - - /* 발송 대장 등록(sndngMapper.insertSndng) */ diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp index bc57ecc6..52eefe6a 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp @@ -435,9 +435,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -558,6 +555,9 @@ // 화면 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp index 53922e68..1f8aa358 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02030-main.jsp @@ -548,9 +548,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -810,6 +807,9 @@ // 첫번째 "전체" 탭에 datatable 설정 $("#tabEpostRcpt0").html($("#datatable--${pageName}")); + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02050-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02050-main.jsp index d2cb27e6..ccd53b36 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02050-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02050-main.jsp @@ -444,9 +444,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -558,6 +555,9 @@ $("#deptCd--${pageName}").val("${deptCd}"); // 부서 코드 $("#conOrg--${pageName}").val("${conOrg}"); // E그린 외부기관구분코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp index a33e1f4c..acb792eb 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp @@ -583,9 +583,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -744,6 +741,9 @@ // 화면 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp index 0904ccbc..f4638118 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp @@ -407,9 +407,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -520,6 +517,9 @@ // 화면 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp index 0bddc3ae..8abef221 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp @@ -490,9 +490,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -626,6 +623,9 @@ $(vltnCd).each(function(index, item) { $("#schVltnCd--${pageName}").append(""); }); + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp index 482a3253..084afa3f 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp @@ -553,9 +553,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -657,6 +654,9 @@ // 화면 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp index 9c42c6d8..32748e93 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/rcvm/rcvm01010-main.jsp @@ -495,9 +495,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -598,6 +595,9 @@ // 화면 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp index 0b3bcb3c..cf3bd99e 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01010-main.jsp @@ -529,9 +529,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -718,6 +715,9 @@ $("#theadTr--${pageName}").html(colsOuterHTML); $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp index 119c5958..3e684d66 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp @@ -168,6 +168,7 @@ , keymapper : info => info ? info.CRDN_ID : "" , dataGetter : obj => obj.wrngTrgtList , appendData : true + , untilPageNum : 0 // 현재 페이지 번호 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { TNOCS : numberFormat @@ -347,12 +348,20 @@ setFormData${pageName} = () => { $("#tnocs--${pageName}").val(${pageName}Control.dataset.getValue("TNOCS")); // 총건수 $("#gramt--${pageName}").val(${pageName}Control.dataset.getValue("GRAMT")); // 총금액 - $("#ttlNm--${pageName}").val("계고장 발송"); // 제목 // 발송 종료 일자 $("#sndngEndYmd--${pageName}").val(""); $("#sndngEndYmd--${pageName}").prop("disabled", true); $("#divSndngEndYmd--${pageName}").hide(); + + // 제목 + let ttlNm = ${pageName}Control.dataset.getValue("TASK_SE_NM"); + ttlNm = ttlNm + " " + ${pageName}Control.dataset.getValue("VLTN_ARTCL"); + ttlNm = ttlNm + " " + "계고장"; + $("#ttlNm--${pageName}").val(ttlNm); + + // URL 설정 + setURL${pageName}(${pageName}Query.taskSeCd); } // 업무구분에 따른 url 설정 @@ -376,9 +385,6 @@ // 기본 데이터 설정 setFormData${pageName}(); - // URL 설정 - setURL${pageName}(${pageName}Query.taskSeCd); - // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01030-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01030-main.jsp index b190ae5b..2c3d9c93 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01030-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01030-main.jsp @@ -228,6 +228,7 @@ , keymapper : info => info ? info.SNDNG_ID : "" , dataGetter : obj => obj.wrngSndngList , appendData : true + , untilPageNum : 0 // 현재 페이지 번호 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { SNDNG_YMD : dateFormat @@ -425,9 +426,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -530,6 +528,9 @@ // 화면 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01050-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01050-main.jsp index afd18514..47e053f0 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01050-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01050-main.jsp @@ -291,6 +291,7 @@ , keymapper : info => info ? info.CRDN_ID : "" , dataGetter : obj => obj.advntceTrgtList , appendData : true + , untilPageNum : 0 // 현재 페이지 번호 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { CVLCPT_RCPT_YMD : dateFormat @@ -403,9 +404,6 @@ ${pageName}Control.untilPageNum = 0; } - // checkbox 체크 해제 - $("th input[type='checkbox']").prop("checked", false); - //보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); } @@ -494,9 +492,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -598,7 +593,7 @@ // 달력 초기화 initDatepicker("frmSearch--${pageName}"); - $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); + $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date()); // 사용자 이름 @@ -641,12 +636,6 @@ $("#schVltnCd--${pageName}").append(""); }) - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - - $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); - $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date()); - // 업무별 조회조건 let clsForTask = taskSeCd.toLowerCase(); @@ -665,6 +654,9 @@ $("#theadTr--${pageName}").html(colsOuterHTML); $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp index acf5b7d4..b310aa9e 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp @@ -168,6 +168,7 @@ , keymapper : info => info ? info.CRDN_ID : "" , dataGetter : obj => obj.advntceTrgtList , appendData : true + , untilPageNum : 0 // 현재 페이지 번호 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { TNOCS : numberFormat @@ -350,7 +351,15 @@ $("#gramt--${pageName}").val(${pageName}Control.dataset.getValue("GRAMT")); // 총금액 $("#sndngYmd--${pageName}").val(${pageName}AdvntceYmdInfo.LEVY_YMD_MASK); // 발송일자 $("#sndngEndYmd--${pageName}").val(${pageName}AdvntceYmdInfo.DUDT_YMD_MASK); // 납기일자 - $("#ttlNm--${pageName}").val("사전통지 발송"); // 제목 + + // 제목 + let ttlNm = ${pageName}Control.dataset.getValue("TASK_SE_NM"); + ttlNm = ttlNm + " " + ${pageName}Control.dataset.getValue("VLTN_ARTCL"); + ttlNm = ttlNm + " " + "사전통지"; + $("#ttlNm--${pageName}").val(ttlNm); + + // URL 설정 + setURL${pageName}(${pageName}Query.taskSeCd); } // 업무구분에 따른 url 설정 @@ -374,9 +383,6 @@ // 기본 데이터 설정 setFormData${pageName}(); - // URL 설정 - setURL${pageName}(${pageName}Query.taskSeCd); - // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01070-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01070-main.jsp index feb1ea54..9ca0985e 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01070-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01070-main.jsp @@ -229,6 +229,7 @@ , keymapper : info => info ? info.SNDNG_ID : "" , dataGetter : obj => obj.advntceSndngList , appendData : true + , untilPageNum : 0 // 현재 페이지 번호 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { SNDNG_YMD : dateFormat @@ -335,9 +336,6 @@ ${pageName}Control.untilPageNum = 0; } - // checkbox 체크 해제 - $("th input[type='checkbox']").prop("checked", false); - //보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); } @@ -426,9 +424,6 @@ // 기본 데이터 설정 setFormData${pageName}(taskSeCd); - - // URL 설정 - setURL${pageName}(taskSeCd); } // 검색 버튼 이벤트 @@ -530,6 +525,9 @@ // 화면 데이터 설정 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 + + // URL 설정 + setURL${pageName}(taskSeCd); } // URL 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01090-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01090-main.jsp index 4c747787..abbc2030 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01090-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01090-main.jsp @@ -13,7 +13,7 @@
- @@ -111,8 +111,7 @@
- - + @@ -151,8 +150,8 @@ 납기일자 총건수 총금액 - 제목 문서번호 + 제목 등록일시 등록사용자 수정일시 @@ -172,8 +171,8 @@ {SNDNG_END_YMD} {TNOCS} {GRAMT} - {TTL_NM} {DOC_NO} + {TTL_NM} {REG_DT} {RGTR_NM} {MDFCN_DT} @@ -221,7 +220,8 @@ , keymapper : info => info ? info.SNDNG_ID : "" , dataGetter : obj => obj.nhtSndngList , appendData : true - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 + , untilPageNum : 0 // 현재 페이지 번호 + , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { SNDNG_YMD : dateFormat , SNDNG_END_YMD : dateFormat @@ -237,7 +237,7 @@ **************************************************************************/ // Dataset 변경 이벤트 ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(); + renderList${pageName}(obj.${infoPrefix}Total); $("#paging--${pageName}").setPagingInfo({ list : ${pageName}Control.dataset @@ -248,7 +248,7 @@ , func : "${pageName}Control.load({index})" }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 }; // 현재 선택 자료 변경 이벤트 @@ -262,14 +262,12 @@ // 발송 상세 ${pageName}Control.getInfo = (sndngId) => { - if (!sndngId) return; + if (typeof sndngId == "undefined" || sndngId == null || sndngId == "") return; - let params = { - callPurpose : "view" - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , sndngId : sndngId // 발송 ID - }; + let params = ${pageName}Control.query; + params.callPurpose = "view"; // 호출 용도 + params.pageNum = 1; // 페이지 번호 + params.sndngId = sndngId; // 발송 ID ajax.get({ url : ${pageName}Control.urls.getInfo @@ -280,17 +278,16 @@ , title : "고지서 세부 내용" , content : resp , size : ${pageName}Control.infoSize - , onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback }); } }); } /************************************************************************** - * + * DataTables 이벤트 **************************************************************************/ // DataTables에 click, dbclick 이벤트 - renderList${pageName} = () => { + renderList${pageName} = (totalSize) => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; @@ -303,13 +300,82 @@ .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("SNDNG_ID") + "');") ); - $("#tbody--${pageName}").html(trs.join()); - $("th input[type='checkbox']").prop("checked", false); + let noMore = (totalSize == ${infoPrefix}List.length); + let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); + + $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); + + if (${pageName}Control.untilPageNum != 0) { + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; + ${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum; + ${pageName}Control.untilPageNum = 0; + } //보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); } + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + scrollDataList${pageName} = () => { + ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false + + ${pageName}Control.load(${pageName}Control.query.pageNum + 1); + } + + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ + // callback 사용자 검색 + callbackFindUser${pageName} = (userId, userNm) => { + $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID + $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 + } + + // 사용자 검색 + getFindUser${pageName} = () => { + let params = { + callbackFuncName : "callbackFindUser${pageName}" + } + + ajax.get({ + url : wctx.url("/user/user02/010/main.do") + , data : params || {} + , success : resp => { + dialog.open({ + id : "userDialog" + , title : "사용자 검색" + , content : resp + , size : "lg" + }); + } + }); + } + + // 개별총정보 dialog + getTotalInfo${pageName} = (crdnId) => { + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + + let params = { + callControlName : "${pageName}Control" + , sggCd : $("#sggCd--${pageName}").val() + , taskSeCd : $("input[name=taskSeCd]:checked").val() + , crdnId : crdnId + } + + ajax.get({ + url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do") + , data : params + , success : resp => { + dialog.open({ + id : "totalInfoMainDialog" + , title : "개별총정보" + , content : resp + , size : "xxl" + }); + } + }); + } + // 신규 등록 dialog -> callback 추가 getNhtSndngInfo${pageName} = (params) => { if (!params) return; @@ -329,20 +395,91 @@ }); } + // 검색 자료 재조회 + refreshList${pageName} = () => { + ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; + + ${pageName}Control.load(1); + } + /************************************************************************** - * 초기 셋팅 + * 버튼 clickEvent **************************************************************************/ - // 초기화 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); + // 업무 구분 변경 + fnResetAndChangeBiz${pageName} = (taskSeCd) => { + // 업무 구분 코드 + if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { + taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + } - // dataset 초기화 - ${pageName}Control.dataset.clear(); + // 초기 기본 설정 + initForm${pageName}(); + + // 기본 데이터 설정 + setFormData${pageName}(taskSeCd); + } + + // 검색 버튼 이벤트 + fnSearchList${pageName} = () => { + // 검색조건 + ${pageName}Control.query = ${pageName}Fields.get(); + + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 + ${pageName}Control.query.sndngSeCdFrom = "03"; // 발송 구분 코드 - 03 부과고지서 + ${pageName}Control.query.sndngSeCdTo = "08"; // 발송 구분 코드 - 08 체납고지서 + ${pageName}Control.query.delYN = "N"; // 삭제 여부 + + ${pageName}Control.load(1); + } + + // 엑셀 버튼 이벤트 + fnExcel${pageName} = () => { + if (${pageName}Control.dataset.empty) { + dialog.alert({ + content : "검색된 자료가 없습니다." + , onOK : () => { } + }); + + return; + } + + // DataTables(그리드) + 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)")); + ${pageName}Control.query.cellDefs = cellDefs; + + ${pageName}Control.download(); + } + + // 사용자 조회 버튼 이벤트 + fnFindUser${pageName} = () => { + getFindUser${pageName}(); } + // 신규 등록 + fnNhtSndngInfo${pageName} = () => { + let params = { + callPurpose : "create" + , sggCd : $("#sggCd--${pageName}").val() // 시군구 코드 + , taskSeCd : $(":input:radio[name='taskSeCd']:checked").val() // 업무 구분 코드 + }; + + getNhtSndngInfo${pageName}(params); + } + + /************************************************************************** + * 초기 셋팅 + **************************************************************************/ // 이벤트 setEvent${pageName} = () => { + // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. + $("#term--${pageName}").keypress(function(e) { + if (e.keyCode == 13) { + fnSearchList${pageName}();    + }     + }); + // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 $("#frmSearch--${pageName}").find(".form-date").each(function() { $(this).on("input", function() { @@ -359,36 +496,14 @@ // DataTables width 변경 조정 $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - // DataTables 스크롤 이벤트 - $("#table-responsive--${pageName}").scroll(function() { - let el = $(this); - - if (el.scrollTop() == 0) { - return; - } - if (!${pageName}Control.tableRenderComplete) { - return; - } - - let itemsCnt = ${pageName}Control.dataset._items.length; - let totCnt = ${pageName}Control.dataset.getValue("TOT_CNT"); // let totCnt = ${pageName}Control.dataset.getCurrent("item").data.TOT_CNT; - - if (itemsCnt >= totCnt) { - return; - } - - if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) { - ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 - - ${pageName}Control.load(${pageName}Control.query.pageNum + 1); - } - }); + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); } - // 화면 초기값 셋팅 - setForm${pageName} = (taskSeCd) => { - // 업무 구분 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + // 화면 초기 설정 + initForm${pageName} = () => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { @@ -398,89 +513,48 @@ // 달력 초기화 initDatepicker("frmSearch--${pageName}"); - $("#schSndngYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); + $("#schSndngYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); $("#schSndngYmdTo--${pageName}").datepicker("setDate", new Date()); - } - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/090/list.do"); // 조회 - ${pageName}Control.urls.getInfo = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/100/info.do"); // 고지서 세부 내용 - } + // 사용자 이름 + $("#schRgtrNm--${pageName}").prop("readonly", true); - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 업무 구분 변경 - fnResetAndChangeBiz${pageName} = (taskSeCd) => { - // 초기화 - initForm${pageName}(); + // dataset 초기화 + ${pageName}Control.dataset.clear(); + } - // 업무 구분 코드 - if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { - taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); - } + // 기본 데이터 설정 + setFormData${pageName} = (taskSeCd) => { + // ${pageName}Control 설정 + ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 - // 화면 초기값 설정 - setForm${pageName}(taskSeCd); + // 화면 데이터 설정 + $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 // URL 설정 setURL${pageName}(taskSeCd); } - // 초기화 버튼 이벤트 - fnReset${pageName} = () => { - fnResetAndChangeBiz${pageName}(); - } - - // 검색 버튼 이벤트 - fnSearchList${pageName} = () => { - // 검색조건 - ${pageName}Control.query = ${pageName}Fields.get(); - - ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 - ${pageName}Control.query.sndngSeCdFrom = "03"; // 발송 구분 코드 - 03 부과고지서 - ${pageName}Control.query.sndngSeCdTo = "08"; // 발송 구분 코드 - 08 체납고지서 - ${pageName}Control.query.delYn = "N"; // 삭제 여부 - - ${pageName}Control.load(); - } - - // 엑셀 버튼 이벤트 - fnExcel${pageName} = () => { - - } - - // 신규 등록 - fnNhtSndngInfo${pageName} = () => { - let params = { - callPurpose : "create" - , sggCd : $("#sggCd--${pageName}").val() // 시군구 코드 - , taskSeCd : $(":input:radio[name='taskSeCd']:checked").val() // 업무 구분 코드 - }; - - getNhtSndngInfo${pageName}(params); + // URL 설정 + setURL${pageName} = (taskSeCd) => { + ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/090/list.do"); // 조회 + ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/100/info.do"); // 고지서 세부 내용 } /************************************************************************** * script 진입 **************************************************************************/ $(document).ready(function() { - // 기본 데이터 설정 - $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - // 이벤트 설정 setEvent${pageName}(); // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 업무 구분 설정 - let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); - // 화면 초기 설정 및 업무 구분 변경 - fnResetAndChangeBiz${pageName}(defaultBizValue); + fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val()); + });