diff --git a/src/main/java/cokr/xit/fims/excl/service/LevyExclService.java b/src/main/java/cokr/xit/fims/excl/service/LevyExclService.java index cd16e707..c5e1575a 100644 --- a/src/main/java/cokr/xit/fims/excl/service/LevyExclService.java +++ b/src/main/java/cokr/xit/fims/excl/service/LevyExclService.java @@ -63,31 +63,4 @@ public interface LevyExclService { */ String removeLevyExcl(LevyExcl levyExcl); - /**부과제외 대장 정보를 등록한다. - * @param levyExcl 부과제외 대장 - * @return 저장 여부 - * - */ - boolean create(LevyExcl levyExcl); - - /**부과제외 대장 정보를 수정한다. - * @param levyExcl 부과제외 대장 - * @return 저장 여부 - * - */ - boolean update(LevyExcl levyExcl); - - /**부과제외 대장 정보를 삭제한다. - * @param levyExcl 부과제외 대장 - * @return 저장 여부 - * - */ - boolean remove(LevyExcl levyExcl); - } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java index 6553ec34..9385ad46 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclBean.java @@ -278,39 +278,6 @@ public class LevyExclBean extends AbstractComponent { return rtnMsg; } - /**부과제외 대장 정보를 등록한다. - * @param levyExcl 부과제외 대장 - * @return 저장 여부 - * - */ - public boolean create(LevyExcl levyExcl) { - return levyExclMapper.insert(levyExcl); - } - - /**부과제외 대장 정보를 수정한다. - * @param levyExcl 부과제외 대장 - * @return 저장 여부 - * - */ - public boolean update(LevyExcl levyExcl) { - return levyExclMapper.update(levyExcl); - } - - /**부과제외 대장 정보를 삭제한다. - * @param levyExcl 부과제외 대장 - * @return 저장 여부 - * - */ - public boolean remove(LevyExcl levyExcl) { - return levyExclMapper.delete(levyExcl); - } - } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclServiceBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclServiceBean.java index 913abb9e..64abde7e 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclServiceBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/LevyExclServiceBean.java @@ -92,19 +92,4 @@ public class LevyExclServiceBean extends AbstractServiceBean implements LevyExcl return rtnMsg; } - @Override - public boolean create(LevyExcl levyExcl) { - return levyExclBean.create(levyExcl); - } - - @Override - public boolean update(LevyExcl levyExcl) { - return levyExclBean.update(levyExcl); - } - - @Override - public boolean remove(LevyExcl levyExcl) { - return levyExclBean.remove(levyExcl); - } - } diff --git a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java index 4c63c8dc..1ed1d511 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java @@ -3,15 +3,17 @@ package cokr.xit.fims.excl.web; import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.function.BiFunction; import javax.annotation.Resource; import org.apache.poi.ss.usermodel.CellStyle; import org.springframework.web.servlet.ModelAndView; +import com.fasterxml.jackson.core.type.TypeReference; + import cokr.xit.base.code.CommonCode; import cokr.xit.base.file.xls.XLSWriter; +import cokr.xit.base.file.xls.XLSWriter.CellDef; import cokr.xit.base.file.xls.XLSWriter.Styler; import cokr.xit.base.user.ManagedUser; import cokr.xit.base.web.ApplicationController; @@ -91,69 +93,51 @@ public class Excl01Controller extends ApplicationController { List result = levyExclService.getLevyExclList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "levyExcl"); } else { + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); + XLSWriter xlsx = new XLSWriter() .setFilename("부과제외 목록.xlsx") .worksheet(0); - CellStyle center = xlsx.cellStyle(Styler.CENTER) // 가운데 정렬 - , numeric = xlsx.n_nn0() // 숫자 3자리 콤마(,) - , dateYMD = xlsx.yyyy_mm_dd() // 연월일 - , dateDT = xlsx.yyyy_mm_dd_hh_mm_ss(); // 연월일+시간 - - String[] excelTitle = req.getExcelTitle(); - List titles = new ArrayList(); - for (int iLoop = 0; iLoop < excelTitle.length; iLoop++) { - String item = excelTitle[iLoop]; - titles.add(item); - } + 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(); // 연월일+시간 - int[] excelTitleWidth = req.getExcelTitleWidth(); - List widths = new ArrayList<>(); - for (int jLoop = 0; jLoop < excelTitleWidth.length; jLoop++) { - int item = excelTitleWidth[jLoop]; - widths.add(item); - } + List list = levyExclService.getLevyExclList(req.setFetchSize(0)); - List headerStylers = CmmnUtil.makeHeadersByDiffrentWidths(widths, xlsx); + CellDef.setValues(cellDefs, Map.ofEntries( + Map.entry("업무구분", xlsx.style("TASK_SE_NM", center)) + , Map.entry("부과제외일자", xlsx.format(o -> xlsx.str2date(o.get("LEVY_EXCL_YMD"))).style(dateYMD)) + , Map.entry("부과제외구분", xlsx.style("LEVY_EXCL_SE_NM", center)) + , Map.entry("부과제외사유", "LEVY_EXCL_RSN_NM") + , Map.entry("기타내용", "ETC_CN") + , Map.entry("민원신청번호", xlsx.style("CVLCPT_APLY_NO", center)) + , Map.entry("민원접수번호", xlsx.style("CVLCPT_RCPT_NO", center)) + , Map.entry("민원접수일자", xlsx.format(o -> xlsx.str2date(o.get("CVLCPT_RCPT_YMD"))).style(dateYMD)) + , Map.entry("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT)) + , Map.entry("차량번호", "VHRNO") + , Map.entry("단속법정동", "CRDN_STDG_NM") + , Map.entry("단속장소", "CRDN_PLC") + , Map.entry("위반항목", "VLTN_ARTCL") + , Map.entry("최초단속금액", xlsx.style("FFNLG_CRDN_AMT", numeric)) + , Map.entry("처리상태", "CRDN_STTS_NM") + , Map.entry("납부자명", "RTPYR_NM") + , Map.entry("납부자생일", xlsx.style("RTPYR_BRDT_MASK", center)) + , 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("부과제외", XLSWriter.Styler.CENTER) - .merge(0, 11) - .cell(3, 0) - .rowValues(CmmnUtil.mergeListByIndex(titles, headerStylers)); - - List list = levyExclService.getLevyExclList(req.setFetchSize(0)); - - BiFunction getValue = (titleNm, nothing) -> { - switch (titleNm) { - case "업무구분" : return xlsx.style("TASK_SE_NM", center); - case "부과제외일자" : return xlsx.format(o -> xlsx.str2date(o.get("LEVY_EXCL_YMD"))).style(dateYMD); - case "부과제외구분" : return xlsx.style("LEVY_EXCL_SE_NM", center); - case "부과제외사유" : return xlsx.style("LEVY_EXCL_RSN_NM", center); - case "기타내용" : return "ETC_CN"; - case "민원신청번호" : return xlsx.style("CVLCPT_APLY_NO", center); - case "민원접수번호" : return xlsx.style("CVLCPT_RCPT_NO", center); - case "민원접수일자" : return xlsx.format(o -> xlsx.str2date(o.get("CVLCPT_RCPT_YMD"))).style(dateYMD); - case "단속일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT); - case "차량번호" : return "VHRNO"; - case "단속법정동" : return "CRDN_STDG_NM"; - case "단속장소" : return "CRDN_PLC"; - case "위반항목" : return "VLTN_ARTCL"; - case "최초단속금액" : return xlsx.style("FFNLG_CRDN_AMT", numeric); - case "처리상태" : return "CRDN_STTS_NM"; - case "납부자명" : return "RTPYR_NM"; - case "납부자생일" : return xlsx.style("RTPYR_BRDT_MASK", center); - case "등록일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("REG_DT"))).style(dateDT); - case "등록사용자" : return xlsx.style("RGTR_NM", center); - case "수정일시" : return xlsx.format(o -> xlsx.str2datetime(o.get("MDFCN_DT"))).style(dateDT); - case "수정사용자" : return xlsx.style("MDFR_NM", center); - } - - return ""; - }; - - xlsx.cell(4, 0) - .values(list, titles.stream().map((item) -> { return getValue.apply(item, null); }).toArray()); + .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); @@ -269,47 +253,4 @@ public class Excl01Controller extends ApplicationController { .addObject("rtnMsg", rtnMsg); } - /**부과제외 대장를 등록한다. - * @param levyExcl 부과제외 대장 정보 - * @return jsonView - *
 {
-	 *     "saved": 등록되었으면 true, 그렇지 않으면 false
-	 * }
- */ -// @PostMapping(name = "부과제외 대장 등록", value = "/create.do") - public ModelAndView create(LevyExcl levyExcl) { - boolean saved = levyExclService.create(levyExcl); - return new ModelAndView("jsonView") - .addObject("saved", saved); - } - - /**부과제외 대장 정보를 수정한다. - * @param levyExcl 부과제외 대장 정보 - * @return jsonView - *
 {
-	 *     "saved": 수정되었으면 true, 그렇지 않으면 false
-	 * }
- */ -// @PostMapping(name = "부과제외 대장 수정", value = "/update.do") - public ModelAndView update(LevyExcl levyExcl) { - boolean saved = levyExclService.update(levyExcl); - return new ModelAndView("jsonView") - .addObject("saved", saved); - } - - /**지정한 부과제외 대장를 제거한다. - * @param levyExclIDs 부과제외 대장 아이디 - * @return jsonView - *
 {
-	 *     "affected": 저장된 정보수
-	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
-	 * }
- */ -// @PostMapping(name = "부과제외 대장 제거", value = "/remove.do") - public ModelAndView remove(LevyExcl levyExcl) { - boolean saved = levyExclService.remove(levyExcl); - return new ModelAndView("jsonView") - .addObject("saved", saved); - } - } diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp index fa7f3ecb..3c3b4c29 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp @@ -213,7 +213,6 @@ 위반항목 최초단속금액 처리상태 - 납부자번호 납부자명 납부자생일 등록일시 @@ -244,7 +243,6 @@ {VLTN_ARTCL} {FFNLG_CRDN_AMT} {CRDN_STTS_NM} - {RTPYR_NO} {RTPYR_NM} {RTPYR_BRDT_MASK} {REG_DT} @@ -559,26 +557,21 @@ // 엑셀 버튼 이벤트 fnExcel${pageName} = () => { - if (${pageName}Control.dataset.empty) { + if (${pageName}Control.dataset.empty) { dialog.alert({ content : "검색된 자료가 없습니다." , onOK : () => { } }); return; - } - - // DataTables(그리드) 타이틀 - let headerInfo = $("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)").getHeaderInfo(); - ${pageName}Control.query.excelTitle = headerInfo.excelTitle; - ${pageName}Control.query.excelTitleWidth = headerInfo.excelTitleWidth; + } - // 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; + // 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(); + ${pageName}Control.download(); } // 사용자 조회 버튼 이벤트