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 664e9a33..b265aa9c 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java @@ -1,5 +1,6 @@ package cokr.xit.fims.excl.web; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -93,10 +94,14 @@ public class Excl01Controller extends ApplicationController { List result = levyExclService.getLevyExclList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "levyExcl"); } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); XLSWriter xlsx = new XLSWriter() - .setFilename("부과제외 목록.xlsx") + .setFilename("부과제외" + "_목록_" + dateTime + ".xlsx") .worksheet(0); // CellStyle 지정은 여기에서.. diff --git a/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java b/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java index f0fa807e..41d06868 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java @@ -1,5 +1,6 @@ package cokr.xit.fims.excl.web; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -104,10 +105,14 @@ public class Excl02Controller extends ApplicationController { List result = opnnSbmsnService.getOpnnSbmsnList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "opnnSbmsn"); } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); XLSWriter xlsx = new XLSWriter() - .setFilename("의견제출 목록.xlsx") + .setFilename("의견제출" + "_목록_" + dateTime + ".xlsx") .worksheet(0); // CellStyle 지정은 여기에서.. diff --git a/src/main/java/cokr/xit/fims/excl/web/Excl03Controller.java b/src/main/java/cokr/xit/fims/excl/web/Excl03Controller.java index e2f7fa1a..5f22223e 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl03Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl03Controller.java @@ -1,5 +1,6 @@ package cokr.xit.fims.excl.web; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -90,10 +91,14 @@ public class Excl03Controller extends ApplicationController { List result = crdnReRegService.getCrdnReRegList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "crdnReReg"); } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); XLSWriter xlsx = new XLSWriter() - .setFilename("단속 재등록 목록.xlsx") + .setFilename("단속재등록" + "_목록_" + dateTime + ".xlsx") .worksheet(0); // CellStyle 지정은 여기에서.. diff --git a/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java b/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java index 31774780..f7b5432f 100644 --- a/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java +++ b/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java @@ -1,5 +1,6 @@ package cokr.xit.fims.levy.web; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -96,10 +97,14 @@ public class Levy01Controller extends ApplicationController { List result = levyService.getRductLevyTrgtList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "rductLevyTrgt"); } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); XLSWriter xlsx = new XLSWriter() - .setFilename("사전 감경부과 대상 목록.xlsx") + .setFilename("사전감경부과대상" + "_목록_" + dateTime + ".xlsx") .worksheet(0); CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬 @@ -236,10 +241,14 @@ public class Levy01Controller extends ApplicationController { List result = levyService.getLevyList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "levy"); } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); XLSWriter xlsx = new XLSWriter() - .setFilename("부과 목록.xlsx") + .setFilename("부과" + "_목록_" + dateTime + ".xlsx") .worksheet(0); CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬 diff --git a/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java index f4448087..bbfb7a72 100644 --- a/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java +++ b/src/main/java/cokr/xit/fims/rcvm/web/Rcvm01Controller.java @@ -1,5 +1,6 @@ package cokr.xit.fims.rcvm.web; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -91,10 +92,14 @@ public class Rcvm01Controller extends ApplicationController { List result = rcvmtService.getRcvmtList(setFetchSize(req)); return setCollectionInfo(new ModelAndView("jsonView"), result, "rcvmt"); } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + ArrayList cellDefs = fromJson(req.getCellDefs(), new TypeReference>() {}); XLSWriter xlsx = new XLSWriter() - .setFilename("수납 목록.xlsx") + .setFilename("수납" + "_목록_" + dateTime + ".xlsx") .worksheet(0); CellStyle center = xlsx.cellStyle(Styler.CENTER); // 가운데 정렬 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 6825f28e..3db0c61f 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -179,9 +179,10 @@ public class Sndb01Controller extends ApplicationController { , Map.entry("민원처리결과", xlsx.style("CVLCPT_PRCS_NM", center)) , Map.entry("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT)) , Map.entry("차량번호", "VHRNO") + , Map.entry("위반항목", "VLTN_ARTCL") , Map.entry("단속법정동", "CRDN_STDG_NM") , Map.entry("단속장소", "CRDN_PLC") - , Map.entry("위반항목", "VLTN_ARTCL") + , Map.entry("상세단속장소", "DTL_CRDN_PLC") , Map.entry("최초단속금액", xlsx.style("FFNLG_CRDN_AMT", numeric)) , Map.entry("처리상태", "CRDN_STTS_NM") , Map.entry("납부자명", "RTPYR_NM") @@ -377,7 +378,8 @@ public class Sndb01Controller extends ApplicationController { addCodes(commonCodes, mav, "FIM004", "FIM005", "FIM006", "FIM061", "FIM064"); - return mav.addObject("pageName", "sndb01050") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + return mav + .addObject("pageName", "sndb01050") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("infoPrefix", "advntceTrgt") // prefix .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) @@ -401,9 +403,70 @@ public class Sndb01Controller extends ApplicationController { * } */ public ModelAndView getAdvanceNoticeTargetList(SndbQuery req) { - List result = sndngService.getAdvntceTrgtList(setFetchSize(req)); + if (!"xls".equals(req.getDownload())) { + List result = sndngService.getAdvntceTrgtList(setFetchSize(req)); + return setCollectionInfo(new ModelAndView("jsonView"), result, "advntceTrgt"); + } else { + // 현재 날짜 구하기 + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String dateTime = dateFormat.format(System.currentTimeMillis()); + + 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.getAdvntceTrgtList(req.setFetchSize(0)); + + CellDef.setValues(cellDefs, Map.ofEntries( + Map.entry("업무구분", xlsx.style("TASK_SE_NM", center)) + , 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.style("CVLCPT_PRCS_PIC_NM", center)) + , Map.entry("민원처리결과", xlsx.style("CVLCPT_PRCS_NM", center)) + , Map.entry("단속일시", xlsx.format(o -> xlsx.str2datetime(o.get("CRDN_YMD_TM"))).style(dateDT)) + , Map.entry("차량번호", "VHRNO") + , Map.entry("위반항목", "VLTN_ARTCL") + , Map.entry("단속법정동", "CRDN_STDG_NM") + , Map.entry("단속장소", "CRDN_PLC") + , Map.entry("상세단속장소", "DTL_CRDN_PLC") + , Map.entry("과태료금액", xlsx.style("FFNLG_AMT", numeric)) + , Map.entry("사전통지금액", xlsx.style("ADVNTCE_AMT", numeric)) + , Map.entry("처리상태", "CRDN_STTS_NM") + , Map.entry("납부자명", "RTPYR_NM") + , Map.entry("납부자생일", xlsx.style("RTPYR_BRDT_MASK", center)) + , Map.entry("우편번호", xlsx.style("ZIP", center)) + , Map.entry("주소", "ADDR") + , Map.entry("상세주소", "DTL_ADDR") + , Map.entry("단속특별구역", xlsx.style("CRDN_SPAREA_NM", center)) + , Map.entry("사용연료", xlsx.style("USE_FUEL_NM", center)) + , Map.entry("주차가능여부", xlsx.style("PARKNG_PSBLTY_RSLT_NM", 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("사전통지 발송 대상", 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 setCollectionInfo(new ModelAndView("jsonView"), result, "advntceTrgt"); + return new ModelAndView("xlsView") + .addObject("xls", xlsx); + } } /**사전통지 발송 대상 정보 화면(sndb/sndb01/060-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 4122da47..b78e20ba 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -173,12 +173,12 @@ - AND LE.RGTR = #{schRgtrCd} /* 등록자 코드 */ + AND LE.RGTR = #{schRgtrCd} /* 등록자 코드 */ - AND LE.MDFR = #{schRgtrCd} /* 수정자 코드 */ + AND LE.MDFR = #{schRgtrCd} /* 수정자 코드 */ @@ -189,13 +189,17 @@ + C.CRDN_REG_SE_CD + C.CRDN_INPT_SE_CD C.CRDN_YMD C.VHRNO C.CRDN_STDG_NM + C.CRDN_ROAD_NM C.CRDN_PLC C.FFNLG_CRDN_AMT C.FFNLG_AMT C.ADVNTCE_AMT + C.OPNN_SBMSN_YN C.CRDN_STTS_CD CA.CRDN_SE_CD CA.DTL_CRDN_PLC @@ -212,13 +216,18 @@ P.RTPYR_NM P.RTPYR_NO P.RTPYR_BRDT + P.ZIP + P.ADDR + P.DTL_ADDR CC.CVLCPT_APLY_NO CC.CVLCPT_RCPT_NO CC.CVLCPT_RCPT_YMD CC.CVLCPT_PRCS_PIC_NM CC.CVLCPT_PRCS_CD + CC.CVLCPT_TRSM_CD LE.LEVY_EXCL_YMD LE.LEVY_EXCL_RSN_CD + LE.ETC_CN #{term} @@ -230,7 +239,7 @@ - - SELECT C.CRDN_ID /* 단속 ID */ - , C.SGG_CD /* 시군구 코드 */ - , C.TASK_SE_CD /* 업무 구분 코드 */ - , C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */ - , C.CRDN_YMD /* 단속 일자 */ - , C.CRDN_TM /* 단속 시각 */ - , C.VHRNO /* 차량번호 */ - , C.CRDN_STDG_NM /* 단속 법정동 명 */ - , C.CRDN_ROAD_NM /* 단속 도로 명 */ - , C.CRDN_PLC /* 단속 장소 */ - , C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */ - , C.ADVNTCE_AMT /* 사전통지 금액 */ - , C.CRDN_STTS_CD /* 단속 상태 코드 */ - , C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */ - , (SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL) AS CRDN_YMD_TM_MASK /* 단속 일시 마스크 */ - , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ - , CA.CRDN_SE_CD /* 단속 구분 코드 */ - , CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */ - , CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */ - , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ - , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */ - , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */ - , V.VLTN_ID /* 위반 ID */ - , V.VLTN_CD /* 위반 코드 */ - , V.VLTN_ARTCL /* 위반 항목 */ - , V.ACNTG_SE_NM /* 회계 구분 명 */ - , V.TXITM_NM /* 세목 명 */ - , V.OPER_ITEM_NM /* 운영 항목 명 */ - , CC.CVLCPT_LINK_ID /* 민원 연계 ID */ - , CC.CVLCPT_RCPT_YMD /* 민원 접수 일자 */ - , CC.CVLCPT_APLY_NO /* 민원 신청 번호 */ - , CC.CVLCPT_RCPT_NO /* 민원 접수 번호 */ - , CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */ - , CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */ - , CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ - , CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */ - , CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */ - , P.RTPYR_ID /* 납부자 ID */ - , P.RTPYR_NO /* 납부자 번호 */ - , P.RTPYR_NM /* 납부자 명 */ - , P.RTPYR_BRDT /* 납부자 생년월일 */ - , P.ZIP /* 우편번호 */ - , P.ADDR /* 주소 */ - , P.DTL_ADDR /* 상세 주소 */ - , L.LEVY_ID /* 부과 ID */ - , L.INST_CD /* 기관 코드 */ - , L.DEPT_CD /* 부서 코드 */ - , L.FYR /* 회계연도 */ - , L.ACNTG_SE_CD /* 회계 구분 코드*/ - , L.TXITM_CD /* 세목 코드 */ - , L.OPER_ITEM_CD /* 운영 항목 코드 */ - , L.SPCL_BIZ_CD /* 특별회계 사업 코드 */ - , L.LEVY_NO /* 부과 번호 */ - , L.INSPY_SN /* 분납 순번 */ - , L.LEVY_SE_CD /* 부과 구분 코드 */ - , L.LEVY_YMD /* 부과 일자 */ - , L.FRST_DUDT_YMD /* 최초 납기 일자 */ - , L.DUDT_YMD /* 납기 일자 */ - , L.DUDT_AFTR_YMD /* 납기 후 일자 */ - , L.LEVY_PCPTAX /* 부과 본세 */ - , L.LEVY_ADAMT /* 부과 가산금 */ - , L.INSPY_INT /* 분납 이자 */ - , L.RCVMT_PCPTAX /* 수납 본세 */ - , L.RCVMT_ADAMT /* 수납 가산금 */ - , L.RDCAMT_PCPTAX /* 감액 본세 */ - , L.RDCAMT_ADAMT /* 감액 가산금 */ - , L.SUM_AMT /* 합계 금액 */ - , L.DUDT_AFTR_AMT /* 납기 후 금액 */ - , L.TXTN_THING /* 과세 물건 */ - , L.MNG_ITEM1 /* 관리 아이템1 */ - , L.MNG_ITEM2 /* 관리 아이템2 */ - , L.MNG_ITEM3 /* 관리 아이템3 */ - , L.MNG_ITEM4 /* 관리 아이템4 */ - , L.MNG_ITEM5 /* 관리 아이템5 */ - , L.MNG_ITEM6 /* 관리 아이템6 */ - , L.EPAYNO /* 전자납부번호 */ - , L.BANK_NM /* 은행 명 */ - , L.VR_ACTNO /* 가상 계좌번호 */ - , L.BANK_NM2 /* 은행 명2 */ - , L.VR_ACTNO2 /* 가상 계좌번호2 */ - , L.BANK_NM3 /* 은행 명3 */ - , L.VR_ACTNO3 /* 가상 계좌번호3 */ - , L.BANK_NM4 /* 은행 명4 */ - , L.VR_ACTNO4 /* 가상 계좌번호4 */ - , L.BANK_NM5 /* 은행 명5 */ - , L.VR_ACTNO5 /* 가상 계좌번호5 */ - , L.BANK_NM6 /* 은행 명6 */ - , L.VR_ACTNO6 /* 가상 계좌번호6 */ - , L.BANK_NM7 /* 은행 명7 */ - , L.VR_ACTNO7 /* 가상 계좌번호7 */ - , L.BANK_NM8 /* 은행 명8 */ - , L.VR_ACTNO8 /* 가상 계좌번호8 */ - , L.BANK_NM9 /* 은행 명9 */ - , L.VR_ACTNO9 /* 가상 계좌번호9 */ - , L.BANK_NM10 /* 은행 명10 */ - , L.VR_ACTNO10 /* 가상 계좌번호10 */ - , L.BANK_NM11 /* 은행 명11 */ - , L.VR_ACTNO11 /* 가상 계좌번호11 */ - , (CASE WHEN L.FFNLG_AMT IS NOT NULL THEN L.FFNLG_AMT - ELSE C.FFNLG_AMT - END) AS FFNLG_AMT /* 과태료 금액 */ - , L.LEVY_PCPTAX - L.RCVMT_PCPTAX - L.RDCAMT_PCPTAX AS PCPTAX /* 본세 */ - , L.LEVY_ADAMT - L.RCVMT_ADAMT - L.RDCAMT_ADAMT AS ADAMT /* 가산금 */ - FROM TB_CRDN C - INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) - INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) - LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') - LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) - LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') - - - @@ -398,6 +279,12 @@ , C.RGTR /* 등록자 */ , C.MDFCN_DT /* 수정 일시 */ , C.MDFR /* 수정자 */ + , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ + , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ + , (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ + , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM /* 등록자 명 */ + , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM /* 수정자 명 */ , CA.CRDN_SE_CD /* 단속 구분 코드 */ , CA.DTL_CRDN_PLC /* 상세 단속 장소 */ , CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */ @@ -409,6 +296,11 @@ , CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */ , CA.VLTN_NMTM /* 위반 횟수 */ , CA.OVTIME_YN /* 시간외 여부 */ + , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ + , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */ + , (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM /* 사용 연료 명 */ + , (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM /* 과태료 차종 명 */ + , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */ , V.VLTN_ID /* 위반 ID */ , V.VLTN_CD /* 위반 코드 */ , V.VLTN_ARTCL /* 위반 항목 */ @@ -421,6 +313,7 @@ , CC.CVLCPT_PRCS_PIC_NM /* 민원 처리 담당자 명 */ , CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */ , CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ + , (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */ , P.RTPYR_ID /* 납부자 ID */ , P.RTPYR_NO /* 납부자 번호 */ , P.RTPYR_NM /* 납부자 명 */ @@ -428,40 +321,33 @@ , P.ZIP /* 우편번호 */ , P.ADDR /* 주소 */ , P.DTL_ADDR /* 상세 주소 */ - , (CONCAT(C.CRDN_YMD, C.CRDN_TM)) AS CRDN_YMD_TM /* 단속 일시 */ - , (SELECT GET_CODE_NM('FIM054', C.TASK_SE_CD) FROM DUAL) AS TASK_SE_NM /* 업무 구분 명 */ - , (SELECT GET_CODE_NM('FIM003', C.CRDN_INPT_SE_CD) FROM DUAL) AS CRDN_INPT_SE_NM /* 단속 입력 구분 명 */ - , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ - , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ - , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */ - , (SELECT GET_CODE_NM('LVS005', CA.USE_FUEL_CD) FROM DUAL) AS USE_FUEL_NM /* 사용 연료 명 */ - , (SELECT GET_CODE_NM('FIM009', CA.FFNLG_CARMDL_CD) FROM DUAL) AS FFNLG_CARMDL_NM /* 과태료 차종 명 */ - , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */ - , (SELECT GET_CODE_NM('FIM017', CC.CVLCPT_PRCS_CD) FROM DUAL) AS CVLCPT_PRCS_NM /* 민원 처리 명 */ - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.RGTR) AS RGTR_NM /* 등록자 명 */ - , (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = C.MDFR) AS MDFR_NM /* 수정자 명 */ + , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM /* 납부자 구분 명 */ + , (SELECT GET_BRDT_FORMAT(P.RTPYR_BRDT, '.') FROM DUAL) AS RTPYR_BRDT_MASK /* 납부자 생년월일 마스크 */ + + + FROM TB_CRDN C INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID AND C.SGG_CD = V.SGG_CD AND C.TASK_SE_CD = V.TASK_SE_CD) LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) - WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */ - AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */ + WHERE C.SGG_CD = #{sggCd} /* 시군구 코드 */ + AND C.TASK_SE_CD = #{taskSeCd} /* 업무 구분 코드 */ AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD ]]> '00') /* 민원 처리 코드 */ - AND C.CRDN_ID IN ( /* 단속 IDs */ + AND C.CRDN_ID IN ( /* 단속 IDs */ #{crdnId} ) - AND C.CRDN_ID = #{crdnId} /* 단속 ID */ + AND C.CRDN_ID = #{crdnId} /* 단속 ID */ - AND C.CRDN_STTS_CD = '23' /* 단속 상태 코드 */ + AND C.CRDN_STTS_CD = '23' /* 단속 상태 코드 */ - AND C.CRDN_STTS_CD BETWEEN '21' AND '23' /* 단속 상태 코드 */ + AND C.CRDN_STTS_CD BETWEEN '21' AND '23' /* 단속 상태 코드 */ @@ -471,61 +357,65 @@ AND C.CRDN_YMD #{schCrdnYmdTo} /* 단속 일자 종료 */ - AND V.VLTN_CD = #{schVltnCd} /* 위반 코드 */ + AND V.VLTN_CD = #{schVltnCd} /* 위반 코드 */ - AND C.VHRNO = #{schVhrno} /* 차량번호 */ + AND C.VHRNO = #{schVhrno} /* 차량번호 */ - AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */ + AND P.RTPYR_NM = #{schRtpyrNm} /* 납부자 명 */ + AND C.DEL_YN = 'N' /* 삭제 여부 */ - - - AND SUBSTR(C.REG_DT,1,8) =]]> #{schDetailCrdnRegDtFrom} /* 등록 일자 시작 */ + + + AND C.REG_DT =]]> CONCAT(#{schRegDateFrom},'000000') /* 등록 일자 시작 */ - - AND SUBSTR(C.REG_DT,1,8) #{schDetailCrdnRegDtTo} /* 등록 일자 종료 */ + + AND C.REG_DT CONCAT(#{schRegDateTo},'235959') /* 등록 일자 종료 */ - - - AND SUBSTR(C.MDFCN_DT,1,8) =]]> #{schDetailCrdnRegDtFrom} /* 수정 일자 시작 */ + + + AND C.MDFCN_DT =]]> CONCAT(#{schRegDateFrom},'000000') /* 수정 일자 시작 */ - - AND SUBSTR(C.MDFCN_DT,1,8) #{schDetailCrdnRegDtTo} /* 수정 일자 종료 */ + + AND C.MDFCN_DT CONCAT(#{schRegDateTo},'235959') /* 수정 일자 종료 */ - - - AND C.RGTR = #{schDetailCrdnRgtrCd} /* 등록자 코드 */ + + + AND C.RGTR = #{schRgtrCd} /* 등록자 코드 */ - - - AND C.MDFR = #{schDetailCrdnRgtrCd} /* 수정자 코드 */ + + + AND C.MDFR = #{schRgtrCd} /* 수정자 코드 */ - AND C.DEL_YN = 'N' /* 삭제 여부 */ + C.CRDN_REG_SE_CD + C.CRDN_INPT_SE_CD C.CRDN_YMD C.VHRNO C.CRDN_STDG_NM + C.CRDN_ROAD_NM C.CRDN_PLC C.FFNLG_CRDN_AMT C.FFNLG_AMT C.ADVNTCE_AMT + C.OPNN_SBMSN_YN C.CRDN_STTS_CD CA.CRDN_SE_CD CA.DTL_CRDN_PLC @@ -542,13 +432,15 @@ P.RTPYR_NM P.RTPYR_NO P.RTPYR_BRDT + P.ZIP + P.ADDR + P.DTL_ADDR CC.CVLCPT_APLY_NO CC.CVLCPT_RCPT_NO CC.CVLCPT_RCPT_YMD CC.CVLCPT_PRCS_PIC_NM CC.CVLCPT_PRCS_CD - LE.LEVY_EXCL_YMD - LE.LEVY_EXCL_RSN_CD + CC.CVLCPT_TRSM_CD #{term} @@ -560,8 +452,9 @@ @@ -571,9 +464,150 @@ , SUM(C.FFNLG_AMT) OVER() AS GRAMT /* 총금액 */ , C.CRDN_ID /* 단속 ID */ + + + + + SELECT C.CRDN_ID /* 단속 ID */ + , C.SGG_CD /* 시군구 코드 */ + , C.TASK_SE_CD /* 업무 구분 코드 */ + , C.CRDN_INPT_SE_CD /* 단속 입력 구분 코드 */ + , C.CRDN_YMD /* 단속 일자 */ + , C.CRDN_TM /* 단속 시각 */ + , C.VHRNO /* 차량번호 */ + , C.CRDN_STDG_NM /* 단속 법정동 명 */ + , C.CRDN_ROAD_NM /* 단속 도로 명 */ + , C.CRDN_PLC /* 단속 장소 */ + , C.FFNLG_CRDN_AMT /* 과태료 단속 금액 */ + , C.ADVNTCE_AMT /* 사전통지 금액 */ + , C.CRDN_STTS_CD /* 단속 상태 코드 */ + , C.CRDN_STTS_CHG_DT /* 단속 상태 변경 일시 */ + , (SELECT GET_MASK_DATETIME(C.CRDN_YMD, '-', C.CRDN_TM, ':') FROM DUAL) AS CRDN_YMD_TM_MASK /* 단속 일시 마스크 */ + , (SELECT GET_CODE_NM('FIM010', C.CRDN_STTS_CD) FROM DUAL) AS CRDN_STTS_NM /* 단속 상태 명 */ + , CA.CRDN_SE_CD /* 단속 구분 코드 */ + , CA.CRDN_SPAREA_CD /* 단속 특별구역 코드 */ + , CA.PARKNG_PSBLTY_RSLT_CD /* 주차 가능 결과 코드 */ + , (SELECT GET_CODE_NM('FIM002', CA.CRDN_SE_CD) FROM DUAL) AS CRDN_SE_NM /* 단속 구분 명 */ + , (SELECT GET_CODE_NM('FIM007', CA.CRDN_SPAREA_CD) FROM DUAL) AS CRDN_SPAREA_NM /* 단속 특별구역 명 */ + , (SELECT GET_CODE_NM('FIM034', CA.PARKNG_PSBLTY_RSLT_CD) FROM DUAL) AS PARKNG_PSBLTY_RSLT_NM /* 주차 가능 결과 명 */ + , V.VLTN_ID /* 위반 ID */ + , V.VLTN_CD /* 위반 코드 */ + , V.VLTN_ARTCL /* 위반 항목 */ + , V.ACNTG_SE_NM /* 회계 구분 명 */ + , V.TXITM_NM /* 세목 명 */ + , V.OPER_ITEM_NM /* 운영 항목 명 */ + , CC.CVLCPT_LINK_ID /* 민원 연계 ID */ + , CC.CVLCPT_RCPT_YMD /* 민원 접수 일자 */ + , CC.CVLCPT_APLY_NO /* 민원 신청 번호 */ + , CC.CVLCPT_RCPT_NO /* 민원 접수 번호 */ + , CC.CVLCPT_PRCS_SUMRY /* 민원 처리 요약 */ + , CC.CVLCPT_PRCS_CD /* 민원 처리 코드 */ + , CC.CVLCPT_PRCS_CMPTN_DT /* 민원 처리 완료 일시 */ + , CC.CVLCPT_TRSM_CD /* 민원 전송 코드 */ + , CC.CVLCPT_TRSM_DT /* 민원 전송 일시 */ + , P.RTPYR_ID /* 납부자 ID */ + , P.RTPYR_NO /* 납부자 번호 */ + , P.RTPYR_NM /* 납부자 명 */ + , P.RTPYR_BRDT /* 납부자 생년월일 */ + , P.ZIP /* 우편번호 */ + , P.ADDR /* 주소 */ + , P.DTL_ADDR /* 상세 주소 */ + , L.LEVY_ID /* 부과 ID */ + , L.INST_CD /* 기관 코드 */ + , L.DEPT_CD /* 부서 코드 */ + , L.FYR /* 회계연도 */ + , L.ACNTG_SE_CD /* 회계 구분 코드*/ + , L.TXITM_CD /* 세목 코드 */ + , L.OPER_ITEM_CD /* 운영 항목 코드 */ + , L.SPCL_BIZ_CD /* 특별회계 사업 코드 */ + , L.LEVY_NO /* 부과 번호 */ + , L.INSPY_SN /* 분납 순번 */ + , L.LEVY_SE_CD /* 부과 구분 코드 */ + , L.LEVY_YMD /* 부과 일자 */ + , L.FRST_DUDT_YMD /* 최초 납기 일자 */ + , L.DUDT_YMD /* 납기 일자 */ + , L.DUDT_AFTR_YMD /* 납기 후 일자 */ + , L.LEVY_PCPTAX /* 부과 본세 */ + , L.LEVY_ADAMT /* 부과 가산금 */ + , L.INSPY_INT /* 분납 이자 */ + , L.RCVMT_PCPTAX /* 수납 본세 */ + , L.RCVMT_ADAMT /* 수납 가산금 */ + , L.RDCAMT_PCPTAX /* 감액 본세 */ + , L.RDCAMT_ADAMT /* 감액 가산금 */ + , L.SUM_AMT /* 합계 금액 */ + , L.DUDT_AFTR_AMT /* 납기 후 금액 */ + , L.TXTN_THING /* 과세 물건 */ + , L.MNG_ITEM1 /* 관리 아이템1 */ + , L.MNG_ITEM2 /* 관리 아이템2 */ + , L.MNG_ITEM3 /* 관리 아이템3 */ + , L.MNG_ITEM4 /* 관리 아이템4 */ + , L.MNG_ITEM5 /* 관리 아이템5 */ + , L.MNG_ITEM6 /* 관리 아이템6 */ + , L.EPAYNO /* 전자납부번호 */ + , L.BANK_NM /* 은행 명 */ + , L.VR_ACTNO /* 가상 계좌번호 */ + , L.BANK_NM2 /* 은행 명2 */ + , L.VR_ACTNO2 /* 가상 계좌번호2 */ + , L.BANK_NM3 /* 은행 명3 */ + , L.VR_ACTNO3 /* 가상 계좌번호3 */ + , L.BANK_NM4 /* 은행 명4 */ + , L.VR_ACTNO4 /* 가상 계좌번호4 */ + , L.BANK_NM5 /* 은행 명5 */ + , L.VR_ACTNO5 /* 가상 계좌번호5 */ + , L.BANK_NM6 /* 은행 명6 */ + , L.VR_ACTNO6 /* 가상 계좌번호6 */ + , L.BANK_NM7 /* 은행 명7 */ + , L.VR_ACTNO7 /* 가상 계좌번호7 */ + , L.BANK_NM8 /* 은행 명8 */ + , L.VR_ACTNO8 /* 가상 계좌번호8 */ + , L.BANK_NM9 /* 은행 명9 */ + , L.VR_ACTNO9 /* 가상 계좌번호9 */ + , L.BANK_NM10 /* 은행 명10 */ + , L.VR_ACTNO10 /* 가상 계좌번호10 */ + , L.BANK_NM11 /* 은행 명11 */ + , L.VR_ACTNO11 /* 가상 계좌번호11 */ + , (CASE WHEN L.FFNLG_AMT IS NOT NULL THEN L.FFNLG_AMT + ELSE C.FFNLG_AMT + END) AS FFNLG_AMT /* 과태료 금액 */ + , L.LEVY_PCPTAX - L.RCVMT_PCPTAX - L.RDCAMT_PCPTAX AS PCPTAX /* 본세 */ + , L.LEVY_ADAMT - L.RCVMT_ADAMT - L.RDCAMT_ADAMT AS ADAMT /* 가산금 */ + FROM TB_CRDN C + INNER JOIN TB_CRDN_ADI CA ON (C.CRDN_ID = CA.CRDN_ID) + INNER JOIN TB_VLTN V ON (C.VLTN_ID = V.VLTN_ID) + LEFT OUTER JOIN TB_CRDN_CVLCPT CC ON (C.LINK_ID = CC.CVLCPT_LINK_ID AND C.CVLCPT_LINK_YN = 'Y' AND CC.DEL_YN = 'N') + LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) + LEFT OUTER JOIN TB_LEVY L ON (C.CRDN_ID = L.CRDN_ID AND L.DEL_YN = 'N') + + + + + + + + + + SELECT S.SNDNG_ID /* 발송 ID */ , S.SGG_CD /* 시군구 코드 */ 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 4c078ef1..a3b192f9 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 @@ -13,7 +13,7 @@
- @@ -197,7 +197,6 @@ 위반항목 단속법정동 단속장소 - 위반항목 상세단속장소 최초단속금액 처리상태 @@ -232,7 +231,6 @@ {VLTN_ARTCL} {CRDN_STDG_NM} {CRDN_PLC} - {VLTN_ARTCL} {DTL_CRDN_PLC} {FFNLG_CRDN_AMT} {CRDN_STTS_NM} @@ -253,19 +251,19 @@ @@ -293,11 +291,11 @@ // FormFields var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); // 공통 코드 - var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 - var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 - var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 - var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 - var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 + var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 + var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 + var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 + var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 + var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 /************************************************************************** * DatasetControl @@ -309,7 +307,7 @@ , keymapper : info => info ? info.CRDN_ID : "" , dataGetter : obj => obj.wrngTrgtList , appendData : true - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 + , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { CVLCPT_RCPT_YMD : dateFormat , LEVY_EXCL_YMD : dateFormat @@ -348,7 +346,6 @@ $("#tbody--${pageName}").setCurrentRow(key); }; - // 계고장 발송 등록 dialog -> callback 추가 ${pageName}Control.getInfo = (params) => { if (!params) return; @@ -717,7 +714,7 @@ // URL 설정 setURL${pageName} = (taskSeCd) => { ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 - ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 계고장 발송대상 정보 + ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 발송대상 정보 } /************************************************************************** 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 52e1a827..a2f8a15f 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 @@ -13,7 +13,7 @@
- @@ -101,36 +101,40 @@
+ - +
@@ -171,12 +175,12 @@ 민원신청번호 민원접수번호 민원접수일자 - 민원처리담당자 + 민원처리담당자 민원처리결과 단속일시 차량번호 위반항목 - 법정동 + 단속법정동 단속장소 상세단속장소 과태료금액 @@ -185,6 +189,8 @@ 납부자명 납부자생일 우편번호 + 주소 + 상세주소 단속특별구역 사용연료 주차가능여부 @@ -211,10 +217,12 @@ {DTL_CRDN_PLC} {FFNLG_AMT} {ADVNTCE_AMT} - {CRDN_STTS_NM} + {CRDN_STTS_NM} {RTPYR_NM} - {RTPYR_BRDT} + {RTPYR_BRDT_MASK} {ZIP} + {ADDR} + {DTL_ADDR} {CRDN_SPAREA_NM} {USE_FUEL_NM} {PARKNG_PSBLTY_RSLT_NM} @@ -227,19 +235,19 @@ @@ -267,11 +275,11 @@ // FormFields var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); // 공통 코드 - var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 - var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 - var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 - var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 - var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 + var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 + var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 + var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 + var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 + var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 /************************************************************************** * DatasetControl @@ -283,10 +291,7 @@ , keymapper : info => info ? info.CRDN_ID : "" , dataGetter : obj => obj.advntceTrgtList , appendData : true - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , urls : { - getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 - } + , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { CVLCPT_RCPT_YMD : dateFormat , CRDN_YMD_TM : datetimeFormat @@ -302,7 +307,7 @@ **************************************************************************/ // Dataset 변경 이벤트 ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(); + renderList${pageName}(obj.${infoPrefix}Total); $("#paging--${pageName}").setPagingInfo({ list : ${pageName}Control.dataset @@ -313,7 +318,7 @@ , func : "${pageName}Control.load({index})" }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 }; // 현재 선택 자료 변경 이벤트 @@ -325,34 +330,40 @@ $("#tbody--${pageName}").setCurrentRow(key); }; - // 개별총정보 dialog - ${pageName}Control.getInfo = (crdnId) => { - if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + // 사전통지 발송 등록 dialog -> callback 추가 + ${pageName}Control.getInfo = (params) => { + if (!params) return; - let params = { - callControlName : "${pageName}Control" - , crdnId : crdnId + let dialogTitle = ""; + + if (params.callPurpose == "create") { + dialogTitle = ${pageName}Control.prefixName + " 등록"; + } else if (params.callPurpose == "update") { + dialogTitle = ${pageName}Control.prefixName + " 수정"; + } else { + dialogTitle = ${pageName}Control.prefixName + " 정보"; } ajax.get({ url : ${pageName}Control.urls.getInfo - , data : params + , data : params || {} , success : resp => { dialog.open({ - id : "totalInfoMainDialog" - , title : "개별총정보" + id : "advntceTrgtDialog" + , title : dialogTitle , content : resp - , size : "xxl" + , size : "xl" + , onClose : () => { refreshList${pageName}(); } // callback }); } }); } /************************************************************************** - * + * DataTables 이벤트 **************************************************************************/ // DataTables에 click, dbclick 이벤트 - renderList${pageName} = () => { + renderList${pageName} = (totalSize) => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val(); @@ -373,53 +384,178 @@ }); let trs = empty ? - [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] - : ${infoPrefix}List.inStrings(foundTr.outerHTML - , (str, dataItem) => str - .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") - .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") - ); - - $("#tbody--${pageName}").html(trs.join()); + [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] : + ${infoPrefix}List.inStrings( + foundTr.outerHTML, + (str, dataItem) => str + .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") + .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") + ); + + 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; + } + + // checkbox 체크 해제 $("th input[type='checkbox']").prop("checked", false); //보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); } - // 사전통지 발송 등록 dialog -> callback 추가 - getAdvntceTrgtInfo${pageName} = (params) => { - if (!params) return; + // 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("/" + params.taskSeCd + ${pageName}PrefixUrl + "/060/info.do") + url : wctx.url("/user/user02/010/main.do") , data : params || {} , success : resp => { dialog.open({ - id : "advntceTrgtDtlDialog" - , title : ${pageName}Control.prefixName + " 정보" + id : "userDialog" + , title : "사용자 검색" , content : resp - , size : "xl" - , onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback + , 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" + }); + } + }); + } + + // 검색 자료 재조회 + 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); + + // URL 설정 + setURL${pageName}(taskSeCd); + } + + // 검색 버튼 이벤트 + fnSearchList${pageName} = () => { + // 검색조건 + ${pageName}Control.query = ${pageName}Fields.get(); + + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 + ${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}(); + } + + // 사전통지 발송 대상 등록 버튼 이벤트 + fnAdvntceTrgtInfo${pageName} = () => { + let params = ${pageName}Control.query; + + params.callPurpose = "create"; + params.sndngSeCd = "02"; // 발송 구분 코드 - 02 사전통지서 + + ${pageName}Control.getInfo(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() { @@ -436,41 +572,41 @@ // DataTables width 변경 조정 $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - // DataTables 스크롤 이벤트 - $("#table-responsive--${pageName}").scroll(function() { - let el = $(this); + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); + } - if (el.scrollTop() == 0) { - return; - } - if (!${pageName}Control.tableRenderComplete) { - return; - } + // 화면 초기 설정 + initForm${pageName} = () => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); - 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; + // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { + $(this).prop("disabled", "true"); + }); - if (itemsCnt >= totCnt) { - return; - } + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); - if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) { - ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 + $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); + $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date()); - ${pageName}Control.load(${pageName}Control.query.pageNum + 1); - } - }); + // 사용자 이름 + $("#schRgtrNm--${pageName}").prop("readonly", true); + + // dataset 초기화 + ${pageName}Control.dataset.clear(); } - // 화면 초기값 셋팅 - setForm${pageName} = (taskSeCd) => { - // 업무 구분 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + // 기본 데이터 설정 + setFormData${pageName} = (taskSeCd) => { + // ${pageName}Control 설정 + ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 - // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. - $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { - $(this).prop("disabled", "true"); - }); + // 화면 데이터 설정 + $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 // 업무에 따른 위반 내용 let vltnCode = []; @@ -524,77 +660,22 @@ // URL 설정 setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/050/list.do"); // 조회 - } - - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 업무 구분 변경 - fnResetAndChangeBiz${pageName} = (taskSeCd) => { - // 초기화 - initForm${pageName}(); - - // 업무 구분 코드 - if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { - taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); - } - - // 화면 초기값 설정 - setForm${pageName}(taskSeCd); - - // 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.load(); - } - - // 엑셀 버튼 이벤트 - fnExcel${pageName} = () => { - - } - - // 사전통지 발송 대상 등록 버튼 이벤트 - fnAdvntceTrgtInfo${pageName} = () => { - let params = ${pageName}Fields.get(); - - params.callPurpose = "create"; - params.sndngSeCd = "02"; // 발송 구분 코드 - 02 사전통지서 - - getAdvntceTrgtInfo${pageName}(params); + ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/050/list.do"); // 조회 + ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/060/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()); });