From 6e18fe80df957be68a1deb497e818a0bfdc626d0 Mon Sep 17 00:00:00 2001 From: jjh Date: Thu, 7 Dec 2023 16:48:54 +0900 Subject: [PATCH] =?UTF-8?q?1.=20=ED=85=8C=EC=9D=B4=EB=B8=94=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=8A=A4=ED=81=AC=EB=A1=A4=EB=A7=81=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EB=B0=A9=EC=8B=9D=20=EC=88=98=EC=A0=95.?= =?UTF-8?q?=202.=20=EA=B8=B0=ED=83=80=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/excl/dao/OpnnSbmsnMapper.java | 6 +- .../fims/excl/service/bean/CrdnReRegBean.java | 26 +- .../fims/excl/service/bean/OpnnSbmsnBean.java | 104 ++--- .../service/bean/OpnnSbmsnServiceBean.java | 4 - .../xit/fims/excl/web/Excl01Controller.java | 5 +- .../xit/fims/excl/web/Excl02Controller.java | 35 +- .../xit/fims/excl/web/Excl03Controller.java | 15 +- .../sql/mapper/fims/excl/opnnSbmsn-mapper.xml | 11 +- .../WEB-INF/jsp/fims/epst/epst01010-main.jsp | 39 +- .../WEB-INF/jsp/fims/epst/epst01020-info.jsp | 10 +- .../WEB-INF/jsp/fims/epst/epst02010-main.jsp | 190 ++++----- .../WEB-INF/jsp/fims/excl/excl01010-main.jsp | 234 +++++------ .../WEB-INF/jsp/fims/excl/excl01020-info.jsp | 52 +-- .../WEB-INF/jsp/fims/excl/excl02010-main.jsp | 369 +++++++++++------- .../WEB-INF/jsp/fims/excl/excl02020-info.jsp | 159 ++++---- .../WEB-INF/jsp/fims/excl/excl02030-info.jsp | 122 +++--- .../WEB-INF/jsp/fims/excl/excl03010-main.jsp | 205 +++++----- .../WEB-INF/jsp/fims/sprt/sprt02020-info.jsp | 310 ++++++++------- .../WEB-INF/jsp/fims/sprt/sprt02030-info.jsp | 135 +++---- 19 files changed, 1076 insertions(+), 955 deletions(-) diff --git a/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java b/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java index 11ca8b39..ceaf65ac 100644 --- a/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java +++ b/src/main/java/cokr/xit/fims/excl/dao/OpnnSbmsnMapper.java @@ -41,9 +41,13 @@ public interface OpnnSbmsnMapper extends AbstractMapper { * @return 의견제출 대장 객체 */ default DataObject selectOpnnSbmsnInfo(LevyExclQuery req) { + // 삭제 여부 확인 + if (req.getDelYn() == null) { + req.setDelYn("N"); + } // 기본 정렬 if (req.getOrderBy() == null) { - req.setOrderBy("OS.OPNN_ID DESC"); + req.setOrderBy("C.CRDN_ID, OS.OPNN_ID DESC"); } List opnnSbmsns = selectOpnnSbmsns(req); diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/CrdnReRegBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/CrdnReRegBean.java index a90c1b7d..dc58ab14 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/CrdnReRegBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/CrdnReRegBean.java @@ -1,8 +1,7 @@ package cokr.xit.fims.excl.service.bean; import java.io.File; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; @@ -83,8 +82,8 @@ public class CrdnReRegBean extends AbstractComponent { */ public String createCrdnReReg(CrdnReReg crdnReReg) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 단속 ID로 단속(TB_CRDN) 정보 조회 DataObject crdnInfo = crdnReRegMapper.selectCrdn(new LevyExclQuery().setCrdnId(crdnReReg.getBfrCrdnId())); @@ -115,8 +114,7 @@ public class CrdnReRegBean extends AbstractComponent { Crdn newCrdn = new Crdn(); // 현재 날짜 구하기 - LocalDate now = LocalDate.now(); - String formatedNow = now.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); newCrdn.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드 newCrdn.setTaskSeCd(crdnInfo.string("TASK_SE_CD")); // 업무 구분 코드 @@ -125,7 +123,7 @@ public class CrdnReRegBean extends AbstractComponent { newCrdn.setCvlcptLinkYn(crdnInfo.string("CVLCPT_LINK_YN")); // 민원 연계 여부 newCrdn.setLinkTblNm(crdnInfo.string("LINK_TBL_NM")); // 연계 테이블 명 newCrdn.setLinkId(crdnInfo.string("LINK_ID")); // 연계 ID - newCrdn.setRtpyrId(crdnInfo.string("RTPYR_ID")); // 납부자 ID +// newCrdn.setRtpyrId(crdnInfo.string("RTPYR_ID")); // 납부자 ID newCrdn.setCrdnYmd(crdnInfo.string("CRDN_YMD")); // 단속 일자 newCrdn.setCrdnTm(crdnInfo.string("CRDN_TM")); // 단속 시각 newCrdn.setVhrno(crdnInfo.string("VHRNO")); // 차량번호 @@ -146,7 +144,7 @@ public class CrdnReRegBean extends AbstractComponent { newCrdn.setOpnnSbmsnYn("N"); // 의견 제출 여부 newCrdn.setEtcCn(crdnInfo.string("ETC_CN")); // 기타 내용 newCrdn.setCrdnSttsCd("01"); // 단속 상태 코드 - newCrdn.setCrdnSttsChgDt(formatedNow); // 단속 상태 변경 일시 + newCrdn.setCrdnSttsChgDt(dateFormat.format(System.currentTimeMillis())); // 단속 상태 변경 일시 newCrdn.setAdtnAmt(0); // 가산 금액 newCrdn.setMinusAmt(0); // 감경 금액 newCrdn.setRcvmtAmt(0); // 수납 금액 @@ -165,8 +163,8 @@ public class CrdnReRegBean extends AbstractComponent { newCrdn.setTowngYn(crdnInfo.string("TOWNG_YN")); // 견인 여부 // 단속 대장 입력 - retSuccess = crdnBean.create(null, newCrdn, fileInfoList); - if (!retSuccess) { + rtnScs = crdnBean.create(null, newCrdn, fileInfoList); + if (!rtnScs) { throw new RuntimeException("재부과 등록 중 단속대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -174,14 +172,14 @@ public class CrdnReRegBean extends AbstractComponent { crdnReReg.setCrdnId(newCrdn.getCrdnId()); crdnReReg.setCrdnRegSeCd("03"); - retSuccess = crdnReRegMapper.insert(crdnReReg); - if (!retSuccess) { + rtnScs = crdnReRegMapper.insert(crdnReReg); + if (!rtnScs) { throw new RuntimeException("재부과 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**단속 재등록 정보를 삭제한다. diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java index 2b6b009c..e473ae46 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnBean.java @@ -106,8 +106,8 @@ public class OpnnSbmsnBean extends AbstractComponent { */ public String createOpnnSbmsn(OpnnSbmsn opnnSbmsn, List fileInfoList) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 단속 ID로 단속, 의견제출 정보 조회 DataObject infoCrdnOpnnSbmsn = opnnSbmsnMapper.selectOpnnSbmsnInfo(new LevyExclQuery().setCrdnId(opnnSbmsn.getCrdnId()) @@ -115,21 +115,21 @@ public class OpnnSbmsnBean extends AbstractComponent { // 의견제출ID가 있다면 이미 자료가 존재하므로 종료.. if (!infoCrdnOpnnSbmsn.string("OPNN_ID").equals("")) { - retMessage = "[F] 작업 중 이미 등록된 자료가 존재합니다."; - return retMessage; + rtnMsg = "[F] 작업 중 이미 등록된 자료가 존재합니다."; + return rtnMsg; } // 단속 상태 코드가 부과(51) 보다 크다면, 의견제출 등록을 할 수 없다. 종료.. if (infoCrdnOpnnSbmsn.number("CRDN_STTS_CD").intValue() >= 51) { - retMessage = "[F] 작업 중 오류가 발생하였습니다.
현재 자료의 단속 상태가 " + infoCrdnOpnnSbmsn.string("CRDN_STTS_NM") + " 상태 입니다."; - return retMessage; + rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
현재 자료의 단속 상태가 " + infoCrdnOpnnSbmsn.string("CRDN_STTS_NM") + " 상태 입니다."; + return rtnMsg; } // 의견제출 대장 필수값 입력 opnnSbmsn.setOpnnSbmsnSttsCd("00"); // 의견 제출 상태 코드 00:접수 // 의견제출 대장을 등록 한다. - retSuccess = opnnSbmsnMapper.insert(opnnSbmsn); - if (!retSuccess) { + rtnScs = opnnSbmsnMapper.insert(opnnSbmsn); + if (!rtnScs) { throw new RuntimeException("의견제출 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -152,8 +152,8 @@ public class OpnnSbmsnBean extends AbstractComponent { crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId()); // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. - retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); - if (!retSuccess) { + rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!rtnScs) { throw new RuntimeException("의견제출 등록 중 단속대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } @@ -164,14 +164,14 @@ public class OpnnSbmsnBean extends AbstractComponent { crdn.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); crdn.setOpnnSbmsnYn("Y"); - retSuccess = opnnSbmsnMapper.updateCrdn(crdn); // 단속 대장 수정 - if (!retSuccess) { + rtnScs = opnnSbmsnMapper.updateCrdn(crdn); // 단속 대장 수정 + if (!rtnScs) { throw new RuntimeException("의견제출 등록 중 단속대장의 의견제출여부 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**의견제출 대장 정보를 수정한다. @@ -183,8 +183,8 @@ public class OpnnSbmsnBean extends AbstractComponent { */ public String updateOpnnSbmsn(OpnnSbmsn opnnSbmsn, List fileInfoList) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 의견제출 첨부파일 등록 if (fileInfoList != null && !fileInfoList.isEmpty()) { @@ -210,14 +210,14 @@ public class OpnnSbmsnBean extends AbstractComponent { } // 의견제출 대장을 수정 한다. - retSuccess = opnnSbmsnMapper.update(opnnSbmsn); - if (!retSuccess) { + rtnScs = opnnSbmsnMapper.update(opnnSbmsn); + if (!rtnScs) { throw new RuntimeException("의견제출 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**의견제출 대장 심의(답변) 정보를 수정한다. @@ -229,8 +229,8 @@ public class OpnnSbmsnBean extends AbstractComponent { */ public String updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) // 의견제출(TB_OPNN_SBMSN) 자료 조회 @@ -240,23 +240,23 @@ public class OpnnSbmsnBean extends AbstractComponent { // 의견제출 ID가 조회되지 않았다면 종료.. if (opnnSbmsnInfo.string("OPNN_ID").equals("")) { - retMessage = "[F] 작업 중 오류가 발생하였습니다.
의견제출 자료가 존재하지 않습니다."; - return retMessage; + rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
의견제출 자료가 존재하지 않습니다."; + return rtnMsg; } // 단속 상태가 수납 또는 취소된 자료를 의견제출 수용할 수 없다. if (opnnSbmsnInfo.number("CRDN_STTS_CD").intValue() >= 51) { - retMessage = "[F] 작업 중 오류가 발생하였습니다.
단속 상태가 " + opnnSbmsnInfo.string("CRDN_STTS_NM") + " 입니다."; - return retMessage; + rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
단속 상태가 " + opnnSbmsnInfo.string("CRDN_STTS_NM") + " 입니다."; + return rtnMsg; } // 과태료 감경 대장에 이미 감경이 등록 되었다면 의견제출 과태료감경(04)을 처리할 수 없다. if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("04") && !crdnRductInfo.string("RDUCT_ID").equals("")) { - retMessage = "[F] 작업 중 오류가 발생하였습니다.
현재 자료는 과태료 감경이 이미 등록 되었습니다."; - return retMessage; + rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
현재 자료는 과태료 감경이 이미 등록 되었습니다."; + return rtnMsg; } // 의견제출 답변을 수정 한다. - retSuccess = opnnSbmsnMapper.updateOpnnSbmsnAnswer(opnnSbmsn); - if (!retSuccess) { + rtnScs = opnnSbmsnMapper.updateOpnnSbmsnAnswer(opnnSbmsn); + if (!rtnScs) { throw new RuntimeException("의견제출 심의 처리에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -289,8 +289,8 @@ public class OpnnSbmsnBean extends AbstractComponent { rduct.setRductAmt(opnnSbmsn.getRductAmt()); rduct.setEtcCn("의견제출 심의 처리에 의한 감경 등록"); - retMessage = rductBean.createRduct(rduct); - if (retMessage.contains("[F]")) { + rtnMsg = rductBean.createRduct(rduct); + if (rtnMsg.contains("[F]")) { throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } else { @@ -301,8 +301,8 @@ public class OpnnSbmsnBean extends AbstractComponent { rduct.setRductId(opnnSbmsnInfo.string("RDUCT_ID")); rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제"); - retMessage = rductBean.removeRduct(rduct); - if (retMessage.contains("[F]")) { + rtnMsg = rductBean.removeRduct(rduct); + if (rtnMsg.contains("[F]")) { throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } @@ -319,15 +319,15 @@ public class OpnnSbmsnBean extends AbstractComponent { crdnSttsHstry.setEtcCn("의견제출 심의 처리로 인한 단속상태 변경"); // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. - retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); - if (!retSuccess) { + rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + if (!rtnScs) { throw new RuntimeException("의견제출 심의(답변) 처리 중 단속대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } /**의견제출 대장 정보를 삭제한다. @@ -339,8 +339,8 @@ public class OpnnSbmsnBean extends AbstractComponent { */ public String removeOpnnSbmsn(OpnnSbmsn opnnSbmsn) { // 변수 선언 - boolean retSuccess = false; // DB 처리 결과 - String retMessage = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 의견제출(TB_OPNN_SBMSN) 정보 조회 DataObject opnnSbmsnInfo = opnnSbmsnMapper.selectOpnnSbmsnInfo(new LevyExclQuery().setOpnnId(opnnSbmsn.getOpnnId()) @@ -348,13 +348,13 @@ public class OpnnSbmsnBean extends AbstractComponent { // 의견제출 ID가 조회되지 않았다면 종료.. if (opnnSbmsnInfo.string("OPNN_ID").equals("")) { - retMessage = "[F] 작업 중 오류가 발생하였습니다.
의견제출 자료가 존재하지 않습니다."; - return retMessage; + rtnMsg = "[F] 작업 중 오류가 발생하였습니다.
의견제출 자료가 존재하지 않습니다."; + return rtnMsg; } // 의견제출(TB_OPNN_SBMSN) 대장을 삭제 한다. - retSuccess = opnnSbmsnMapper.delete(opnnSbmsn); - if (!retSuccess) { + rtnScs = opnnSbmsnMapper.delete(opnnSbmsn); + if (!rtnScs) { throw new RuntimeException("의견제출 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -385,8 +385,8 @@ public class OpnnSbmsnBean extends AbstractComponent { deleteCrdnSttsCd = "92"; } - retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deleteCrdnSttsCd, insertBfrSttsYN); - if (!retSuccess) { + rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deleteCrdnSttsCd, insertBfrSttsYN); + if (!rtnScs) { throw new RuntimeException("단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } @@ -401,8 +401,8 @@ public class OpnnSbmsnBean extends AbstractComponent { rduct.setRductId(opnnSbmsnInfo.string("RDUCT_ID")); rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제"); - retMessage = rductBean.removeRduct(rduct); // 과태료 감경(TB_RDUCT) 대장 삭제 - if (retMessage.contains("[F]")) { + rtnMsg = rductBean.removeRduct(rduct); // 과태료 감경(TB_RDUCT) 대장 삭제 + if (rtnMsg.contains("[F]")) { throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } } @@ -414,14 +414,14 @@ public class OpnnSbmsnBean extends AbstractComponent { crdn.setCrdnId(opnnSbmsnInfo.string("CRDN_ID")); crdn.setOpnnSbmsnYn("N"); - retSuccess = opnnSbmsnMapper.updateCrdn(crdn); // 단속(TB_CRDN) 대장 수정 - if (!retSuccess) { + rtnScs = opnnSbmsnMapper.updateCrdn(crdn); // 단속(TB_CRDN) 대장 수정 + if (!rtnScs) { throw new RuntimeException("의견제출 삭제 중 단속대장의 의견제출여부 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - retMessage = "[S] 작업이 정상 처리 되었습니다."; + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - return retMessage; + return rtnMsg; } } diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnServiceBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnServiceBean.java index c421b7f6..2ee7e924 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnServiceBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/OpnnSbmsnServiceBean.java @@ -59,10 +59,6 @@ public class OpnnSbmsnServiceBean extends AbstractServiceBean implements OpnnSbm @Override public DataObject getOpnnSbmsnInfo(LevyExclQuery req) { - if (req.getCallPurpose() == null) { - req.setCallPurpose("view"); - } - return opnnSbmsnBean.getOpnnSbmsnInfo(req); } 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 8bb6357a..ab80eb28 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java @@ -60,7 +60,8 @@ public class Excl01Controller extends ApplicationController { addCodes(commonCodes, mav, "FIM021", "FIM022"); - return mav.addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + return mav + .addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("infoPrefix", "levyExcl") // prefix .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) @@ -123,7 +124,7 @@ public class Excl01Controller extends ApplicationController { .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 - .addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo)) + .addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo)) // 부과제외 정보 ; } } 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 b87a7c52..154201a7 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl02Controller.java @@ -73,7 +73,8 @@ public class Excl02Controller extends ApplicationController { addCodes(commonCodes, mav, "FIM021", "FIM022"); - return mav.addObject("pageName", "excl02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + return mav + .addObject("pageName", "excl02010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("infoPrefix", "opnnSbmsn") // prefix .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("FIM031List", commonCodes.get("FIM031")) // 의견 제출 답변 결과(OPNN_SBMSN_STTS_CD) @@ -114,7 +115,7 @@ public class Excl02Controller extends ApplicationController { ModelAndView mav = new ModelAndView("jsonView"); return mav - .addObject("retMessage", "이미 등록된 의견제출 정보가 있습니다.") + .addObject("rtnMsg", "이미 등록된 의견제출 정보가 있습니다.") ; } else { boolean json = jsonResponse(); @@ -153,9 +154,9 @@ public class Excl02Controller extends ApplicationController { } boolean saved = false; - String retMessage = opnnSbmsnService.createOpnnSbmsn(opnnSbmsn, fileInfoList); + String rtnMsg = opnnSbmsnService.createOpnnSbmsn(opnnSbmsn, fileInfoList); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -163,7 +164,7 @@ public class Excl02Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**의견제출 대장 정보를 수정한다. @@ -182,9 +183,9 @@ public class Excl02Controller extends ApplicationController { } boolean saved = false; - String retMessage = opnnSbmsnService.updateOpnnSbmsn(opnnSbmsn, fileInfoList); + String rtnMsg = opnnSbmsnService.updateOpnnSbmsn(opnnSbmsn, fileInfoList); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -192,7 +193,7 @@ public class Excl02Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**지정한 ID의 의견제출 심의 결과 정보를 반환한다. @@ -233,9 +234,9 @@ public class Excl02Controller extends ApplicationController { */ public ModelAndView updateOpinionSubmissionAnswer(OpnnSbmsn opnnSbmsn) { boolean saved = false; - String retMessage = opnnSbmsnService.updateOpnnSbmsnAnswer(opnnSbmsn); + String rtnMsg = opnnSbmsnService.updateOpnnSbmsnAnswer(opnnSbmsn); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -243,7 +244,7 @@ public class Excl02Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**지정한 의견제출 대장를 제거한다. @@ -256,9 +257,9 @@ public class Excl02Controller extends ApplicationController { */ public ModelAndView removeOpinionSubmission(OpnnSbmsn opnnSbmsn) { boolean saved = false; - String retMessage = opnnSbmsnService.removeOpnnSbmsn(opnnSbmsn); + String rtnMsg = opnnSbmsnService.removeOpnnSbmsn(opnnSbmsn); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -266,7 +267,7 @@ public class Excl02Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**여러 건의 의견제출 대장를 제거한다. @@ -279,9 +280,9 @@ public class Excl02Controller extends ApplicationController { */ public ModelAndView removeOpinionSubmissionList(LevyExclQuery req) { boolean saved = false; - String retMessage = opnnSbmsnService.removeOpnnSbmsnList(req); + String rtnMsg = opnnSbmsnService.removeOpnnSbmsnList(req); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -289,7 +290,7 @@ public class Excl02Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**의견제출 심의 의결서를 저장한다. 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 fd5fc089..99a5df3d 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl03Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl03Controller.java @@ -56,10 +56,11 @@ public class Excl03Controller extends ApplicationController { // View(jsp)에서 사용할 공통코드를 조회 Map> commonCodes = getCodesOf("FIM054"); - return mav.addObject("pageName", "excl03010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix - .addObject("infoPrefix", "crdnReReg") // prefix - .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) - .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) + return mav + .addObject("pageName", "excl03010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "crdnReReg") // prefix + .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) + .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) ; } @@ -91,9 +92,9 @@ public class Excl03Controller extends ApplicationController { @PostMapping(name = "단속 재등록 등록", value = "/010/create.do") public ModelAndView createCrackdownReRegistration(CrdnReReg crdnReReg) { boolean saved = false; - String retMessage = crdnReRegService.createCrdnReReg(crdnReReg); + String rtnMsg = crdnReRegService.createCrdnReReg(crdnReReg); - if (retMessage.contains("[S]")) { + if (rtnMsg.contains("[S]")) { saved = true; } else { saved = false; @@ -101,7 +102,7 @@ public class Excl03Controller extends ApplicationController { return new ModelAndView("jsonView") .addObject("saved", saved) - .addObject("retMessage", retMessage); + .addObject("rtnMsg", rtnMsg); } /**지정한 단속 재등록를 제거한다. diff --git a/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml b/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml index 30ae5be6..cdf982f4 100644 --- a/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/opnnSbmsn-mapper.xml @@ -308,20 +308,17 @@ - AND C.CRDN_ID = #{crdnId} - AND C.DEL_YN = 'N' + AND C.CRDN_ID = #{crdnId} - AND OS.OPNN_ID IN ( + AND OS.OPNN_ID IN ( #{opnnId} ) - AND OS.OPNN_ID = #{opnnId} - - - AND OS.DEL_YN = #{delYn} + AND OS.OPNN_ID = #{opnnId} + AND C.DEL_YN = 'N' diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst01010-main.jsp index eee992e2..cc0eef63 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst01010-main.jsp @@ -330,7 +330,7 @@ , func : "${pageName}Control.load({index})" }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 true + ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 true }; // 현재 선택 자료 변경 이벤트 @@ -399,8 +399,8 @@ dialog.alert(showMessage); + // 자료 재조회 if (resp.saved) { - // 자료 재조회 ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; @@ -416,7 +416,7 @@ if (!params) { params = {}; - params["GdccIDs"] = selected.join(","); // params[${pageName}Control.prefixed("IDs")] = selected.join(","); + params["GdccIDs"] = selected.join(","); // IDs } ajax.post({ @@ -443,7 +443,6 @@ .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('update', '" + dataItem.getValue("CON_KEY") + "');") ); -// $("#tbody--${pageName}").html(trs.join()); let noMore = (totalSize == ${infoPrefix}List.length); let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); @@ -455,9 +454,10 @@ ${pageName}Control.untilPageNum = 0; } + // checkbox 체크 해제 $("th input[type='checkbox']").prop("checked", false); - //보안모드 + // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); } @@ -468,6 +468,11 @@ ${pageName}Control.load(${pageName}Control.query.pageNum + 1); } + /************************************************************************** + * 사용자 함수 + **************************************************************************/ + + /************************************************************************** * 버튼 clickEvent **************************************************************************/ @@ -485,7 +490,7 @@ setURL${pageName}(taskSeCd); // 기본 데이터 설정 - setForm${pageName}(); + setFormData${pageName}(); } // 검색 버튼 이벤트 @@ -525,6 +530,7 @@ // } + // 검색 ${pageName}Control.load(1); } @@ -533,8 +539,8 @@ } - // 사용자 조회 버튼 이벤트 - fnUser${pageName} = () => { + // 사용자 검색 버튼 이벤트 + fnFindUser${pageName} = () => { } @@ -608,17 +614,13 @@ // 발송 취소 버튼 이벤트 fnUpdate${pageName} = () => { - // 자료 재조회 - ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; - ${pageName}Control.load(1); } // 발송 삭제 버튼 이벤트 fnRemove${pageName} = () => { dialog.alert({ - content : "선택한 전자우편 안내문 정보를 삭제하시겠습니까?" + content : "선택한 발송 정보를 삭제하시겠습니까?" , onOK : () => { ${pageName}Control.remove(); } @@ -630,6 +632,13 @@ **************************************************************************/ // 이벤트 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() { @@ -650,7 +659,7 @@ fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); } - // 초기 기본 설정 + // 화면 초기 설정 initForm${pageName} = (taskSeCd) => { // 화면 초기화 $("#frmSearch--${pageName}")[0].reset(); @@ -679,7 +688,7 @@ } // 기본 데이터 설정 - setForm${pageName} = () => { + setFormData${pageName} = () => { // ${pageName}Control 설정 ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst01020-info.jsp index 795fb350..691869ac 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst01020-info.jsp @@ -125,7 +125,7 @@ } - // 초기 기본 설정 + // 화면 초기 설정 initForm${pageName} = () => { if (${pageName}CallPurpose == "view") { $("#sndngSeCd--${pageName}").attr("disabled", true); @@ -141,7 +141,7 @@ } // 기본 데이터 설정 - setForm${pageName} = () => { + setFormData${pageName} = () => { } @@ -168,14 +168,14 @@ // 이벤트 설정 setEvent${pageName}(); - // 화면 초기화 + // 화면 초기 설정 initForm${pageName}(); // Dataset 셋팅 - 단건일 경우 setData ${pageName}Control.setData([${epostGdccInfo}]); - // 화면 데이터 셋팅 - setForm${pageName}(); + // 기본 데이터 설정 + setFormData${pageName}(); }); 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 b4b654dd..b81101a9 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 @@ -197,8 +197,6 @@ var ${pageName}PrefixUrl = "/epst/epst02"; // FormFields var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); - // 시군구 코드(SGG_CD) - var ${pageName}sggCd = "${sggCd}"; /************************************************************************** * DatasetControl @@ -210,7 +208,8 @@ , keymapper : info => info ? info.GDCC_ID : "" , dataGetter : obj => obj.epostGdccList , appendData : true - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 + , untilPageNum : 0 // 현재 페이지 번호 + , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { LAST_USE_DT : datetimeFormat , REG_DT : datetimeFormat @@ -223,7 +222,7 @@ **************************************************************************/ // Dataset 변경 이벤트 ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(); + renderList${pageName}(obj.${infoPrefix}Total); $("#paging--${pageName}").setPagingInfo({ list : ${pageName}Control.dataset @@ -234,7 +233,7 @@ , func : "${pageName}Control.load({index})" }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 }; // 현재 선택 자료 변경 이벤트 @@ -268,9 +267,9 @@ } let params = { - callPurpose : callPurpose - , sggCd : $("#sggCd--${pageName}").val() // 시군구 코드 - , taskSeCd : $("input[name=taskSeCd]:checked").val() // 업무 구분 코드 + callPurpose : callPurpose + , sggCd : $("#sggCd--${pageName}").val() // 시군구 코드 + , taskSeCd : $("input[name=taskSeCd]:checked").val() // 업무 구분 코드 }; if (callPurpose == "view" || callPurpose == "update") { @@ -327,10 +326,10 @@ } /************************************************************************** - * + * DataTables 이벤트 **************************************************************************/ // DataTables에 click, dbclick 이벤트 - renderList${pageName} = () => { + renderList${pageName} = (totalSize) => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; @@ -343,93 +342,35 @@ .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('update', '" + dataItem.getValue("GDCC_ID") + "');") ); - $("#tbody--${pageName}").html(trs.join()); - $("th input[type='checkbox']").prop("checked", false); - - //보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - } - - /************************************************************************** - * 초기 셋팅 - **************************************************************************/ - // 이벤트 - setEvent${pageName} = () => { - // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmSearch--${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); - } - }); - }); - - // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 - $("#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 noMore = (totalSize == ${infoPrefix}List.length); + let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); - 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; + $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); - if (itemsCnt >= totCnt) { - return; - } + if (${pageName}Control.untilPageNum != 0) { + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; + ${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum; + ${pageName}Control.untilPageNum = 0; + } - if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) { - ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 + // checkbox 체크 해제 + $("th input[type='checkbox']").prop("checked", false); - ${pageName}Control.load(${pageName}Control.query.pageNum + 1); - } - }); + //보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); } - // 초기 기본 설정 - initForm${pageName} = (taskSeCd) => { - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); - - // 시군구 코드 - $("#sggCd--${pageName}").val(${pageName}sggCd); + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + scrollDataList${pageName} = () => { + ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false - // 업무 구분 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); - // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. - $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { - $(this).prop("disabled", "true"); - }); - - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - - // dataset 초기화 - ${pageName}Control.dataset.clear(); - } - - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 - ${pageName}Control.urls.remove = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/remove.do"); // 삭제 - ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 정보 + ${pageName}Control.load(${pageName}Control.query.pageNum + 1); } - // 기본 데이터 설정 - setForm${pageName} = () => { + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ - } /************************************************************************** * 버튼 clickEvent @@ -448,7 +389,7 @@ setURL${pageName}(taskSeCd); // 기본 데이터 설정 - setForm${pageName}(); + setFormData${pageName}(); } // 검색 버튼 이벤트 @@ -456,10 +397,10 @@ // 검색조건 ${pageName}Control.query = ${pageName}Fields.get(); - ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 - ${pageName}Control.query.useYN = "Y"; // 사용 여부 - Y + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 1 페이지당 조회되는 자료 건수 + ${pageName}Control.query.useYN = "Y"; // 사용 여부 - Y - ${pageName}Control.load(); + ${pageName}Control.load(1); } // 엑셀 버튼 이벤트 @@ -497,6 +438,70 @@ }); } + /************************************************************************** + * 초기 셋팅 + **************************************************************************/ + // 이벤트 + 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() { + 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); + } + }); + }); + + // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); + } + + // 화면 초기 설정 + initForm${pageName} = (taskSeCd) => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); + + // 업무 구분 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { + $(this).prop("disabled", "true"); + }); + + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); + + // dataset 초기화 + ${pageName}Control.dataset.clear(); + } + + // URL 설정 + setURL${pageName} = (taskSeCd) => { + ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 + ${pageName}Control.urls.remove = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/remove.do"); // 삭제 + ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 정보 + } + + // 기본 데이터 설정 + setFormData${pageName} = () => { + // ${pageName}Control 설정 + ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + } + /************************************************************************** * script 진입 **************************************************************************/ @@ -507,6 +512,9 @@ // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 시군구 코드 + $("#sggCd--${pageName}").val("${sggCd}"); + // 업무 구분 설정 let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); 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 ff849475..30a175a9 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 @@ -281,8 +281,6 @@ var ${pageName}PrefixUrl = "/excl/excl01"; // FormFields var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); - // 시군구 코드(SGG_CD) - var ${pageName}sggCd = "${sggCd}"; /************************************************************************** * DatasetControl @@ -294,7 +292,8 @@ , keymapper : info => info ? info.LEVY_EXCL_ID : "" , dataGetter : obj => obj.levyExclList , appendData : true - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 + , untilPageNum : 0 // 현재 페이지 번호 + , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , urls : { load : wctx.url(${pageName}PrefixUrl + "/010/list.do") // 조회 , getInfo : wctx.url(${pageName}PrefixUrl + "/020/info.do") // 수정 @@ -316,7 +315,7 @@ **************************************************************************/ // Dataset 변경 이벤트 ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(); + renderList${pageName}(obj.${infoPrefix}Total); $("#paging--${pageName}").setPagingInfo({ list : ${pageName}Control.dataset @@ -327,7 +326,7 @@ , func : "${pageName}Control.load({index})" }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 }; // 현재 선택 자료 변경 이벤트 @@ -376,8 +375,8 @@ , title : dialogTitle , content : resp , size : ${pageName}Control.infoSize - , init : () => { } - , onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback + , init : () => { } + , onClose : () => { refreshList${pageName}(); } // 자료 재조회 }); } }); @@ -390,8 +389,9 @@ dialog.alert(showMessage); // 메시지 출력 + // 자료 재조회 if (resp.saved) { - ${pageName}Control._load(); // 자료 재조회 + refreshList${pageName}(); } } @@ -407,10 +407,10 @@ } /************************************************************************** - * + * DataTables 이벤트 **************************************************************************/ // DataTables에 click, dbclick 이벤트 - renderList${pageName} = () => { + renderList${pageName} = (totalSize) => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; @@ -423,26 +423,47 @@ .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_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; + } + + // checkbox 체크 해제 + $("th input[type='checkbox']").prop("checked", false); - //보안모드 + // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); } + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + scrollDataList${pageName} = () => { + ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false + + ${pageName}Control.load(${pageName}Control.query.pageNum + 1); + } + + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ // 개별총정보 dialog getTotalInfo${pageName} = (crdnId) => { if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; - let taskSeCd = $("input[name=taskSeCd]:checked").val(); - let params = { callControlName : "${pageName}Control" + , sggCd : $("#sggCd--${pageName}").val() + , taskSeCd : $("input[name=taskSeCd]:checked").val() , crdnId : crdnId } ajax.get({ - url : wctx.url(taskSeCd + "/sprt/sprt02/010/main.do") + url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do") , data : params , success : resp => { dialog.open({ @@ -465,103 +486,20 @@ // 서버에 전송할 data(파라미터) 생성 let params = { - callPurpose : "remove" // 호출 용도 - , delRsn : obj.reason // 삭제 사유 + callPurpose : "remove" // 호출 용도 + , delRsn : obj.reason // 삭제 사유 }; - - params[${pageName}Control.prefixed("IDs")] = selected.join(","); + params[${pageName}Control.prefixed("IDs")] = selected.join(","); // IDs ${pageName}Control.remove(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() { - 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); - } - }); - }); - - // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 - $("#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); - } - }); - } - - // 초기 기본 설정 - initForm${pageName} = (taskSeCd) => { - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); - - // 시군구 코드 - $("#sggCd--${pageName}").val(${pageName}sggCd); - - // 업무 구분 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); - // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. - $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { - $(this).prop("disabled", "true"); - }); - - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); - $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); - - // dataset 초기화 - ${pageName}Control.dataset.clear(); - } - - // 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.remove = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/removes.do"); // 삭제 - } - - // 기본 데이터 설정 - setForm${pageName} = () => { + // 검색 자료 재조회 + refreshList${pageName} = () => { + ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; + ${pageName}Control.load(1); } /************************************************************************** @@ -581,7 +519,7 @@ setURL${pageName}(taskSeCd); // 기본 데이터 설정 - setForm${pageName}(); + setFormData${pageName}(); } // 검색 버튼 이벤트 @@ -589,11 +527,10 @@ // 검색조건 ${pageName}Control.query = ${pageName}Fields.get(); - ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 - ${pageName}Control.query.pageNum = 1; // 페이지 번호 - ${pageName}Control.query.delYn = "N"; // 삭제 여부 + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30 + ${pageName}Control.query.delYn = "N"; // 삭제 여부 - ${pageName}Control.load(); + ${pageName}Control.load(1); } // 엑셀 버튼 이벤트 @@ -606,7 +543,7 @@ } - // 부과제외 수정 버튼 이벤트 + // 수정 버튼 이벤트 fnUpdate${pageName} = () => { let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID"); let levyExclSeCd = ${pageName}Control.dataset.getValue("LEVY_EXCL_SE_CD"); @@ -618,7 +555,7 @@ callPurpose : "update" , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , levyExclId : levyExclId + , levyExclId : levyExclId // 부과제외 ID , levyExclSeCd : levyExclSeCd }; @@ -650,6 +587,72 @@ }); } + /************************************************************************** + * 초기 설정 + **************************************************************************/ + // 이벤트 + 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() { + 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); + } + }); + }); + + // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); + } + + // 화면 초기 설정 + initForm${pageName} = (taskSeCd) => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); + + // 업무 구분 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { + $(this).prop("disabled", "true"); + }); + + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); + $("#schLevyExclYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); + $("#schLevyExclYmdTo--${pageName}").datepicker("setDate", new Date()); + + // dataset 초기화 + ${pageName}Control.dataset.clear(); + } + + // URL 설정 + setURL${pageName} = (taskSeCd) => { + ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 + ${pageName}Control.urls.remove = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/removes.do"); // 삭제 + ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 수정 + } + + // 기본 데이터 설정 + setFormData${pageName} = () => { + // ${pageName}Control 설정 + ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + } + /************************************************************************** * script 진입 **************************************************************************/ @@ -660,6 +663,9 @@ // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 시군구 코드 + $("#sggCd--${pageName}").val("${sggCd}"); + // 업무 구분 설정 let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp index a0528530..19d4872b 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp @@ -77,13 +77,13 @@ **************************************************************************/ // URL var ${pageName}PrefixUrl = "/excl/excl01"; + // 호출 용도 + var ${pageName}CallPurpose = "${callPurpose}"; // FormFields var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); // 공통 코드 var FIM021 = new CommonCodes(${FIM021}, true); var FIM022 = new CommonCodes(${FIM022}, true); - // 호출 용도 - var ${pageName}CallPurpose = "${callPurpose}"; /************************************************************************** * DatasetControl @@ -151,7 +151,7 @@ } /************************************************************************** - * + * 사용자 함수 **************************************************************************/ // 부과제외 구분에 따른 부과제외 사유 코드 설정 setFim021 = (seCode, rsnCode) => { @@ -168,6 +168,22 @@ } } + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 저장 버튼 클릭 이벤트 + fnSave${pageName} = () => { + // validate 확인 + if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; + + dialog.alert({ + content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?" + , onOK : () => { + ${pageName}Control.save(${pageName}Fields.get()); + } + }); + } + /************************************************************************** * 초기 셋팅 **************************************************************************/ @@ -193,7 +209,7 @@ initDatepicker("frmEdit--${pageName}"); $("#levyExclYmd--${pageName}").datepicker("setDate", new Date()); - // 등록 + // view 로 호출됐을 경우.. if (${pageName}CallPurpose == "view") { $("btnSave--${pageName}").attr("disabled", true); } else { @@ -201,30 +217,14 @@ } } - // 화면 데이터 셋팅 - setForm${pageName} = () => { - // 등록 + // 기본 데이터 설정 + setFormData${pageName} = () => { + // create 로 호출됐을 경우.. if (${pageName}CallPurpose == "create") { $("#levyExclYmd--${pageName}").datepicker("setDate", new Date()); } } - /************************************************************************** - * function - **************************************************************************/ - // 저장 - fnSave${pageName} = () => { - // validate 확인 - if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; - - dialog.alert({ - content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?" - , onOK : () => { - ${pageName}Control.save(${pageName}Fields.get()); - } - }); - } - /************************************************************************** * script 진입 **************************************************************************/ @@ -235,11 +235,11 @@ // 화면 초기화 initForm${pageName}(); - // Dataset 셋팅 - 단건일 경우 setData + // Dataset 설정 ${pageName}Control.setData([${levyExclInfo}]); - // 화면 데이터 셋팅 - setForm${pageName}(); + // 기본 데이터 설정 + setFormData${pageName}(); }); 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 071981a4..c3e4ff34 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 @@ -13,7 +13,7 @@
- @@ -157,6 +157,9 @@ +
@@ -175,14 +178,14 @@ - - - @@ -302,10 +305,8 @@ , keymapper : info => info ? info.OPNN_ID : "" , dataGetter : obj => obj.opnnSbmsnList , appendData : true - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , urls : { - getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 - } + , untilPageNum : 0 // 현재 페이지 번호 + , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , formats : { RCPT_YMD : dateFormat , ANS_YMD : dateFormat @@ -323,7 +324,7 @@ **************************************************************************/ // Dataset 변경 ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(); + renderList${pageName}(obj.${infoPrefix}Total); $("#paging--${pageName}").setPagingInfo({ list : ${pageName}Control.dataset @@ -334,7 +335,7 @@ , func : "${pageName}Control.load({index})" }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 }; // 현재 선택 자료 변경 이벤트 @@ -357,49 +358,67 @@ checkbox.prop("checked", keys.includes(checkbox.val())); }); - $("#btnOpnnRemove--${pageName}").prop("disabled", keys.length < 1); + $("#btnRemove--${pageName}").prop("disabled", keys.length < 1); }; - // 개별총정보 dialog - ${pageName}Control.getInfo = (crdnId) => { - if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + // 수정 dialog + ${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 : ${pageName}Control.prefixed("Dialog") + , title : dialogTitle , content : resp - , size : "xxl" + , size : ${pageName}Control.infoSize + , onClose : () => { refreshList${pageName}(); } // 자료 재조회 }); } }); } // 삭제 callback - ${pageName}Control.onRemove = (selected, resp) => { - let btnTitle = $("#btnOpnnRemove--${pageName}").attr("title"); - let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); + ${pageName}Control.onRemove = (resp) => { + let btnTitle = $("#btnRemove--${pageName}").attr("title"); + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); dialog.alert(showMessage); + // 자료 재조회 if (resp.saved) { - ${pageName}Control._load(); + refreshList${pageName}(); } } + // 삭제 + ${pageName}Control.remove = (params) => { + if (!params) return; + + ajax.post({ + url : ${pageName}Control.urls.remove + , data : params + , success : resp => ${pageName}Control.onRemove(resp) + }); + } + /************************************************************************** - * + * DataTables 이벤트 **************************************************************************/ // DataTables에 click, dbclick 이벤트 - renderList${pageName} = () => { + renderList${pageName} = (totalSize) => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; @@ -409,30 +428,57 @@ document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> (str, dataItem) => str .replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("OPNN_ID") + "');") - .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") + .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") ); - $("#tbody--${pageName}").html(trs.join()); + 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 추가 - getOpnnInfo${pageName} = (params) => { - if (!params) return; + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + scrollDataList${pageName} = () => { + ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false + + ${pageName}Control.load(${pageName}Control.query.pageNum + 1); + } + + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ + // 개별총정보 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 + ${pageName}PrefixUrl + "/020/info.do") - , data : params || {} + url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do") + , data : params , success : resp => { dialog.open({ - id : ${pageName}Control.prefixed("Dialog") - , title : ${pageName}Control.prefixName + " 정보" + id : "totalInfoMainDialog" + , title : "개별총정보" , content : resp - , size : ${pageName}Control.infoSize - , onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback + , size : "xxl" }); } }); @@ -443,97 +489,42 @@ if (!params) return; ajax.get({ - url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/030/info.do") + url : ${pageName}Control.urls.getDlbrInfo , data : params || {} , success : resp => { dialog.open({ id : ${pageName}Control.prefixed("SbmsnDialog") - , title : ${pageName}Control.prefixName + " 심의 처리" + , title : "의견제출 심의" , content : resp , size : "lg" - , onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback + , onClose : () => { refreshList${pageName}(); } // 자료 재조회 }); } }); } - /************************************************************************** - * 초기 셋팅 - **************************************************************************/ - // 초기화 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); - - // dataset 초기화 - ${pageName}Control.dataset.clear(); - } - - // 이벤트 - setEvent${pageName} = () => { - // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmSearch--${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); - } - }); - }); + // 삭제 + callbackRemove${pageName} = (obj) => { + let selected = ${pageName}Control.dataset.getKeys("selected"); - // 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"); - - if (itemsCnt >= totCnt) { - return; - } + if (selected.length < 1) return; - if ((el[0].scrollHeight - el.scrollTop() + VERTICAL_SCROLL_HEIGHT) <= el.outerHeight()) { - ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 + // 서버에 전송할 data(파라미터) 생성 + let params = { + callPurpose : "remove" // 호출 용도 + , delRsn : obj.reason // 삭제 사유 + }; + params[${pageName}Control.prefixed("IDs")] = selected.join(","); // IDs - ${pageName}Control.load(${pageName}Control.query.pageNum + 1); - } - }); + ${pageName}Control.remove(params); } - // 화면 초기값 셋팅 - setForm${pageName} = (taskSeCd) => { - // 업무 구분 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); - - // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. - $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { - $(this).prop("disabled", "true"); - }); - - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - - $("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); - $("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date()); - } + // 검색 자료 재조회 + refreshList${pageName} = () => { + ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 - ${pageName}Control.urls.remove = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/removes.do"); // 삭제 + ${pageName}Control.load(1); } /************************************************************************** @@ -541,24 +532,19 @@ **************************************************************************/ // 업무 구분 변경 fnResetAndChangeBiz${pageName} = (taskSeCd) => { - // 초기화 - initForm${pageName}(); - // 업무 구분 코드 if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); } - // 화면 초기값 설정 - setForm${pageName}(taskSeCd); + // 초기 기본 설정 + initForm${pageName}(taskSeCd); // URL 설정 setURL${pageName}(taskSeCd); - } - // 초기화 버튼 이벤트 - fnReset${pageName} = () => { - fnResetAndChangeBiz${pageName}(); + // 기본 데이터 설정 + setFormData${pageName}(); } // 검색 버튼 이벤트 @@ -566,11 +552,10 @@ // 검색조건 ${pageName}Control.query = ${pageName}Fields.get(); - ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 - ${pageName}Control.query.delYn = "N"; // 삭제 여부 - ${pageName}Control.query.crdnDelYn = "N"; // 단속 대장 삭제 여부 + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30 + ${pageName}Control.query.delYn = "N"; // 삭제 여부 - ${pageName}Control.load(); + ${pageName}Control.load(1); } // 엑셀 버튼 이벤트 @@ -578,64 +563,150 @@ } - // 수정 버튼 이벤트 - fnOpnnInfo${pageName} = () => { + // 사용자 조회 버튼 이벤트 + fnFindUser${pageName} = () => { + + } + + // 수정 버튼 클릭 이벤트 + fnUpdateOpnn${pageName} = () => { let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID"); // 의견제출 ID 가 없다면.. return if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return; let params = { - callPurpose : "update" - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , opnnId : opnnId + callPurpose : "update" + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , opnnId : opnnId // 의견제출 ID }; - getOpnnInfo${pageName}(params); + ${pageName}Control.getInfo(params); } - // 심의 버튼 이벤트 - fnOpnnDlbrInfo${pageName} = () => { + // 심의 버튼 클릭 이벤트 + fnUpdateDlbr${pageName} = () => { let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID"); // 의견제출 ID 가 없다면.. return if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return; let params = { - callPurpose : "update" - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , opnnId : opnnId + callPurpose : "update" + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , opnnId : opnnId // 의견제출 ID }; getDlbrInfo${pageName}(params); } - // 삭제 버튼 이벤트 - fnOpnnRemove${pageName} = () => { + // 삭제 버튼 클릭 이벤트 + fnRemove${pageName} = () => { + // 삭제 메세지 확인 dialog.alert({ - content : "선택한 의견제출 정보를 삭제하시겠습니까?" + content : "선택하신 " + ${pageName}Control.prefixName + " 정보를 삭제하시겠습니까?" , onOK : () => { - ${pageName}Control.remove(); + // 삭제 사유 입력 + let callbackFuncName = "callbackRemove${pageName}"; + let popupWidth = 640; + let popupHeight = 360; + let popupX = (window.screen.width / 2) - (popupWidth / 2); + let popupY= (window.screen.height / 2) - (popupHeight / 2); + + window.open( + wctx.url("/resources/html/inputRsnDialog.html" + + "?callbackFuncName=" + callbackFuncName + + "&USE_PURPOSE=" + "삭제" + ) + , "inputDelRsnDialog" + , 'status=no, height=' + popupHeight + ', width=' + popupWidth + ', left='+ popupX + ', top='+ popupY + ); } }); } + /************************************************************************** + * 초기 설정 + **************************************************************************/ + // 이벤트 + 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() { + 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); + } + }); + }); + + // DataTables width 변경 조정 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); + } + + // 화면 초기 설정 + initForm${pageName} = (taskSeCd) => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); + + // 업무 구분 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { + $(this).prop("disabled", "true"); + }); + + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); + $("#schRcptYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date); + $("#schRcptYmdTo--${pageName}").datepicker("setDate", new Date()); + + // dataset 초기화 + ${pageName}Control.dataset.clear(); + } + // URL 설정 + setURL${pageName} = (taskSeCd) => { + ${pageName}Control.urls.load = wctx.url( taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 + ${pageName}Control.urls.remove = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/removes.do"); // 삭제 + ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 수정 + ${pageName}Control.urls.getDlbrInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/030/info.do"); // 심의 + } + + // 기본 데이터 설정 + setFormData${pageName} = () => { + // ${pageName}Control 설정 + ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + } + /************************************************************************** * script 진입 **************************************************************************/ $(document).ready(function() { - // 기본 데이터 설정 - $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - // 이벤트 설정 setEvent${pageName}(); // 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked")); - // 업무 구분 설정 + // 시군구 코드 + $("#sggCd--${pageName}").val("${sggCd}"); + + // 업무 구분 설정 let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02020-info.jsp index e329bfa4..b353855b 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02020-info.jsp @@ -183,7 +183,7 @@ var ${pageName}CallPurpose = "${callPurpose}"; // FormFields var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); - // 파일 리스트 + // 파일 리스트 var $fileListArr = new Array(); /************************************************************************** @@ -206,13 +206,7 @@ ${pageName}Control.urls.create = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/create.do"); ${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/update.do"); - if (${pageName}CallPurpose == "create") { - $("#rcptNo--${pageName}").prop("readonly", true); - - setForm${pageName}(); // 화면 초기화 - } else { - fnSearchFileList${pageName}(item.data.OPNN_ID); // 첨부파일 조회 - } + fnSearchFileList${pageName}(item.data.OPNN_ID); // 첨부파일 조회 } /************************************************************************** @@ -221,7 +215,7 @@ // 저장 callback ${pageName}Control.onSave = (resp) => { let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); - let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle); + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); dialog.alert(showMessage); @@ -247,7 +241,6 @@ for (let key in info) { let value = info[key]; - formData.append(key, value); } @@ -261,37 +254,13 @@ } /************************************************************************** - * 초기 셋팅 + * 사용자 함수(function) **************************************************************************/ - // 이벤트 설정 - 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); - } - }); - }); - - $("#btnAddFile--${pageName}").on('click', () => { $("#uploadFiles--${pageName}").trigger("click"); }); - } - - // 화면 초기값 셋팅 - initForm${pageName} = () => { - // 달력 초기화 - initDatepicker("frmEdit--${pageName}"); - - $("#rcptYmd--${pageName}").datepicker("setDate", new Date()); - } - - // 화면 데이터 셋팅 - setForm${pageName} = () => { - + // callback 우편번호 검색 결과 + callbackZip${pageName} = (obj) => { + $("#sttrAddr--${pageName}").val(obj.ADDR); // 주소 + $("#sttrZip--${pageName}").val(obj.ZIP); // 우편번호 + $("#sttrDaddr--${pageName}").val(obj.DTL_ADDR); // 상세 주소 } /************************************************************************** @@ -321,11 +290,10 @@ // 우편번호 검색 fnZip${pageName} = () => { - let callbackFuncName = "fnZipReturn${pageName}"; + let callbackFuncName = "callbackZip${pageName}"; let popupWidth = 900; let popupHeight = 700; - let popupX = (window.screen.width / 2) - (popupWidth / 2); let popupY= (window.screen.height / 2) - (popupHeight / 2); @@ -336,13 +304,6 @@ ); } - // 우편번호 검색 결과 - fnZipReturn${pageName} = (obj) => { - $("#sttrAddr--${pageName}").val(obj.ADDR); // 주소 - $("#sttrZip--${pageName}").val(obj.ZIP); // 우편번호 - $("#sttrDaddr--${pageName}").val(obj.DTL_ADDR); // 상세 주소 - } - // 저장 fnSave${pageName} = () => { // validate 확인 @@ -436,45 +397,84 @@ } } - // 파일 삭제 - fnFileRemove${pageName} = (obj) => { - let tr = $(obj).parent().parent(); // 클릭한 버튼이 속한 tr 요소 - let td = tr.children(); - - let fileNo = td.eq(0).text(); // 삭제할 파일 번호 - let fileId = td.eq(1).text(); - - if (fileId != null && fileId != "") { - ajax.post({ - url : "file/remove.do" - , data : { fileIDs : fileId } - , success : resp => { - // 성공 - } - }); - } else { - // 배열에서 삭제한다. 배열은 0부터 시작하기 때문에 -1 해준다. - $fileListArr.splice(fileNo - 1); - } - - $(obj).closest("tr").remove(); // table 에서 제거 - } - - // 첨부파일 삭제 버튼 클릭 + // 첨부파일 삭제 아이콘 클릭 이벤트 fnFileRemove${pageName} = (obj) => { dialog.alert({ content : "선택한 파일을 삭제하시겠습니까?" , onOK : () => { - fnFileRemove${pageName}(obj); + let tr = $(obj).parent().parent(); // 클릭한 버튼이 속한 tr 요소 + let td = tr.children(); + let fileNo = td.eq(0).text(); // 삭제할 파일 번호 + let fileId = td.eq(1).text(); + + if (fileId != null && fileId != "") { + ajax.post({ + url : "file/remove.do" + , data : { fileIDs : fileId } + , success : resp => { + // 성공 + } + }); + } else { + // 배열에서 삭제한다. 배열은 0부터 시작하기 때문에 -1 해준다. + $fileListArr.splice(fileNo - 1); + } + + $(obj).closest("tr").remove(); // table 에서 제거 } }); } - // 첨부파일 다운로드 + // 첨부파일 다운로드 아이콘 클릭 이벤트 fnFileDownload${pageName} = (fileID) => { top.location.href = "/file/download.do?fileID=" + fileID; } + /************************************************************************** + * 초기 셋팅 + **************************************************************************/ + // 이벤트 설정 + 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); + } + }); + }); + + // 파일 등록 버튼 이벤트 + $("#btnAddFile--${pageName}").on('click', () => { $("#uploadFiles--${pageName}").trigger("click"); }); + } + + // 화면 초기 설정 + initForm${pageName} = () => { + // 달력 초기화 + initDatepicker("frmEdit--${pageName}"); + $("#rcptYmd--${pageName}").datepicker("setDate", new Date()); + + // view 로 호출됐을 경우.. + if (${pageName}CallPurpose == "view") { + $("btnSave--${pageName}").attr("disabled", true); + } else { + $("btnSave--${pageName}").attr("disabled", false); + } + } + + // 기본 데이터 설정 + setFormData${pageName} = () => { + // create 로 호출됐을 경우.. + if (${pageName}CallPurpose == "create") { + $("#rcptNo--${pageName}").prop("readonly", true); + $("#rcptYmd--${pageName}").datepicker("setDate", new Date()); + } + } + /************************************************************************** * script 진입 **************************************************************************/ @@ -482,13 +482,14 @@ // 이벤트 설정 setEvent${pageName}(); - // 화면 초기값 셋팅 + // 화면 초기 설정 initForm${pageName}(); - ${pageName}Control.setData([${opnnSbmsnInfo}]); // Dataset 셋팅 - 단건일 경우 setData + // Dataset 설정 + ${pageName}Control.setData([${opnnSbmsnInfo}]); // 화면 데이터 셋팅 - setForm${pageName}(); + setFormData${pageName}(); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp index a7b7e09d..72182554 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp @@ -21,37 +21,37 @@
- +
- +
- +
- +
- +
- +
- +
@@ -103,7 +103,7 @@
- +
@@ -129,6 +129,8 @@ **************************************************************************/ // URL var ${pageName}PrefixUrl = "/excl/excl02"; + // 호출 용도 + var ${pageName}CallPurpose = "${callPurpose}"; // FormFields var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); @@ -158,7 +160,7 @@ // 저장 callback ${pageName}Control.onSave = (resp) => { let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); - let showMessage = resp.retMessage.replace(/[S]|[F]/g, dialogTitle); + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); dialog.alert(showMessage); @@ -178,6 +180,50 @@ }); } + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ + fnChangeOpnnSbmsnSttsCd = (obj) => { + // javascript를 이용한 visibility 변경 (이 방법을 사용하는 경우, 안에 있는 요소들이 보이지않지만 그 요소들이 할당 하고 있는 공간은 그대로 유지(공백처리)) +// document.getElementById("divRductRsnCd--${pageName}").style.visibility = "hidden"; +// document.getElementById("divRductRsnCd--${pageName}").style.visibility = "visible"; + + $("#divRductRsnCd--${pageName}").hide(); + $("#divRductAmt--${pageName}").hide(); + + if (obj == "04") { + // 필수 선택 추가 필요 + $("#divRductRsnCd--${pageName}").show(); + $("#divRductAmt--${pageName}").show(); + } + } + + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 저장 + fnSave${pageName} = () => { + // validate 확인 + if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; + + // 감경 사유 확인 + let opnnSbmsnSttsCd = $("#opnnSbmsnSttsCd--${pageName}").val(); + let rductRsn = $("#rductRsnCd--${pageName}").val(); + + if (opnnSbmsnSttsCd == "04" && rductRsn == "00") { + dialog.alert("감경 사유를 다시 선택하여 주시기 바랍니다."); + + return; + } + + dialog.alert({ + content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?" + , onOK : () => { + ${pageName}Control.save(${pageName}Fields.get()); + } + }); + } + /************************************************************************** * 초기 셋팅 **************************************************************************/ @@ -208,21 +254,26 @@ }); }); - - $("#btnAddFile--${pageName}").on('click', () => { $("#uploadFileList--${pageName}").trigger("click"); }); } - // 화면 초기화 + // 화면 초기 설정 initForm${pageName} = () => { // 달력 초기화 initDatepicker("frmEdit--${pageName}"); $("#ansYmd--${pageName}").datepicker("setDate", new Date()); $("#ansTm--${pageName}").val(new Date().toTimeString().split(" ")[0]); + + // view 로 호출됐을 경우.. + if (${pageName}CallPurpose == "view") { + $("btnSave--${pageName}").attr("disabled", true); + } else { + $("btnSave--${pageName}").attr("disabled", false); + } } // 화면 데이터 셋팅 - setForm${pageName} = () => { + setFormData${pageName} = () => { // 날짜, 시간 if ($("#ansYmd--${pageName}").val() == "") { $("#ansYmd--${pageName}").datepicker("setDate", new Date()); @@ -232,47 +283,6 @@ } } - /************************************************************************** - * function - **************************************************************************/ - fnChangeOpnnSbmsnSttsCd = (obj) => { - // javascript를 이용한 visibility 변경 (이 방법을 사용하는 경우, 안에 있는 요소들이 보이지않지만 그 요소들이 할당 하고 있는 공간은 그대로 유지(공백처리)) -// document.getElementById("divRductRsnCd--${pageName}").style.visibility = "hidden"; -// document.getElementById("divRductRsnCd--${pageName}").style.visibility = "visible"; - - $("#divRductRsnCd--${pageName}").hide(); - $("#divRductAmt--${pageName}").hide(); - - if (obj == "04") { - // 필수 선택 추가 필요 - $("#divRductRsnCd--${pageName}").show(); - $("#divRductAmt--${pageName}").show(); - } - } - - // 저장 - fnSave${pageName} = () => { - // validate 확인 - if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; - - // 감경 사유 확인 - let opnnSbmsnSttsCd = $("#opnnSbmsnSttsCd--${pageName}").val(); - let rductRsn = $("#rductRsnCd--${pageName}").val(); - - if (opnnSbmsnSttsCd == "04" && rductRsn == "00") { - dialog.alert("감경 사유를 다시 선택하여 주시기 바랍니다."); - - return; - } - - dialog.alert({ - content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?" - , onOK : () => { - ${pageName}Control.save(${pageName}Fields.get()); - } - }); - } - /************************************************************************** * script 진입 **************************************************************************/ @@ -286,8 +296,8 @@ // Dataset 셋팅 - 단건일 경우 setData ${pageName}Control.setData([${opnnSbmsnInfo}]); - // 화면 초기 설정 - setForm${pageName}(); + // 화면 데이터 셋팅 + setFormData${pageName}(); fnChangeOpnnSbmsnSttsCd($("#opnnSbmsnSttsCd--${pageName}").val()); }); 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 a2b17004..bfd5523a 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 @@ -13,7 +13,7 @@
- @@ -142,8 +142,8 @@
- @@ -235,6 +235,7 @@ , keymapper : info => info ? info.RE_REG_ID : "" , dataGetter : obj => obj.crdnReRegList , appendData : true + , untilPageNum : 0 // 현재 페이지 번호 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , urls : { getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 @@ -253,7 +254,7 @@ **************************************************************************/ // Dataset 변경 이벤트 ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(); + renderList${pageName}(obj.${infoPrefix}Total); $("#paging--${pageName}").setPagingInfo({ list : ${pageName}Control.dataset @@ -308,10 +309,10 @@ } /************************************************************************** - * + * DataTables 이벤트 **************************************************************************/ // DataTables에 click, dbclick 이벤트 - renderList${pageName} = () => { + renderList${pageName} = (totalSize) => { let ${infoPrefix}List = ${pageName}Control.dataset; let empty = ${infoPrefix}List.empty; @@ -324,90 +325,40 @@ .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") ); - $("#tbody--${pageName}").html(trs.join()); + 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")); } - /************************************************************************** - * 초기 셋팅 - **************************************************************************/ - // 초기화 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + scrollDataList${pageName} = () => { + ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false - // dataset 초기화 - ${pageName}Control.dataset.clear(); + ${pageName}Control.load(${pageName}Control.query.pageNum + 1); } - // 이벤트 - setEvent${pageName} = () => { - // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmSearch--${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); - } - }); - }); - - // 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"); - - 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); - } - }); - } - - // 화면 초기값 셋팅 - setForm${pageName} = (taskSeCd) => { - // 업무 구분 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); - - // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. - $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { - $(this).prop("disabled", "true"); - }); - - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - - $("#schReRegYmdFrom--${pageName}").datepicker("setDate", new Date()); - $("#schReRegYmdTo--${pageName}").datepicker("setDate", new Date()); - } + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ + // 검색 자료 재조회 + refreshList${pageName} = () => { + ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 - ${pageName}Control.urls.create = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/010/create.do"); // 등록 + ${pageName}Control.load(1); } /************************************************************************** @@ -415,24 +366,19 @@ **************************************************************************/ // 업무 구분 변경 fnResetAndChangeBiz${pageName} = (taskSeCd) => { - // 초기화 - initForm${pageName}(); - // 업무 구분 코드 if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); } - // 초기값 설정 - setForm${pageName}(taskSeCd); + // 초기 기본 설정 + initForm${pageName}(taskSeCd); // URL 설정 setURL${pageName}(taskSeCd); - } - // 초기화 버튼 이벤트 - fnReset${pageName} = () => { - fnResetAndChangeBiz${pageName}(); + // 기본 데이터 설정 + setFormData${pageName}(); } // 검색 버튼 이벤트 @@ -440,11 +386,10 @@ // 검색조건 ${pageName}Control.query = ${pageName}Fields.get(); - ${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 - ${pageName}Control.query.delYn = "N"; // 삭제 여부 - ${pageName}Control.query.crdnDelYn = "N"; // 단속 대장 삭제 여부 + ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30 + ${pageName}Control.query.delYn = "N"; // 삭제 여부 - ${pageName}Control.load(); + ${pageName}Control.load(1); } // 엑셀 버튼 이벤트 @@ -452,8 +397,13 @@ } + // 사용자 조회 버튼 이벤트 + fnFindUser${pageName} = () => { + + } + // 이전 단속정보 보기 버튼 이벤트 - nBfrCrdnTotalInfo${pageName} = () => { + fnBfrCrdnTotalInfo${pageName} = () => { let bfrCrdnId = ${pageName}Control.dataset.getValue("BFR_CRDN_ID"); // 이전 단속 ID 가 없다면.. return @@ -463,6 +413,73 @@ ${pageName}Control.getInfo(bfrCrdnId, "noControlName"); } + /************************************************************************** + * 초기 설정 + **************************************************************************/ + // 이벤트 + 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() { + 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); + } + }); + }); + + // DataTables width 변경 조정 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); + } + + // 화면 초기 설정 + initForm${pageName} = (taskSeCd) => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); + + // 업무 구분 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { + $(this).prop("disabled", "true"); + }); + + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); + + $("#schReRegYmdFrom--${pageName}").datepicker("setDate", new Date()); + $("#schReRegYmdTo--${pageName}").datepicker("setDate", new Date()); + + // dataset 초기화 + ${pageName}Control.dataset.clear(); + } + + // URL 설정 + setURL${pageName} = (taskSeCd) => { + ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 + ${pageName}Control.urls.create = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/create.do"); // 등록 + ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + "/sprt/sprt02/010/main.do"); // 개별총정보 + } + + // 기본 데이터 설정 + setFormData${pageName} = () => { + // ${pageName}Control 설정 + ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + } + /************************************************************************** * script 진입 **************************************************************************/ diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp index feaa8b26..4422ca7a 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02020-info.jsp @@ -596,7 +596,7 @@ } /************************************************************************** - * function + * 사용자 함수(function) **************************************************************************/ // 민원 원본 보기 viewCvlcptOrgnl${pageName} = (params) => { @@ -714,15 +714,15 @@ if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; let params = { - callPurpose : "refresh" - , crdnId : crdnId - , sggCd : $("#sggCd--${pageNameMain}").val() - , taskSeCd : $("#taskSeCd--${pageNameMain}").val() - , delYn : "N" + callPurpose : "refresh" + , crdnId : crdnId + , sggCd : $("#sggCd--${pageNameMain}").val() + , taskSeCd : $("#taskSeCd--${pageNameMain}").val() + , delYn : "N" }; ajax.get({ - url : wctx.url(taskSeCd + "/sprt/sprt02/020/info.do") + url : wctx.url(params.taskSeCd + "/sprt/sprt02/020/info.do") , headers: { Accept: "application/json; charset=utf-8" } // json , data : params || {} , success : resp => { @@ -740,126 +740,6 @@ }); } - /************************************************************************** - * 초기 셋팅 - **************************************************************************/ - // 화면 초기화 - initForm${pageName} = () => { - $("#frmEdit--${pageName}")[0].reset(); // 화면 초기화 - } - - // 이벤트 설정 - setEvent${pageName} = () => { - // 선택 사진 편집 - $("#btnEditPhoto--${pageName}").on("click", () => { - let checked = $("#displayForExist--${pageName}").find("[name='existPhoto']:checked"); - if (checked.length < 1) { - dialog.alert("선택된 사진이 없습니다."); - return; - } - - let fileId = checked.val(); - - window.open(wctx.url("/sprt/sprt03/020/main.do?openerPageName=${pageName}&fileId=" + fileId) - ,"editPhoto" - ,"width=1400,height=750" - ); - }); - - // 사진 추가 - $("#btnAddFile--${pageName}").on("click", () => { - $("#inputUploadSet--${pageName}").trigger("click"); - }); - - // 선택 사진 삭제 - $("#btnDeleteFile--${pageName}").on('click', () => { - let checked = $("#displayForExist--${pageName}").find("[name='existPhoto']:checked"); - - if (checked.length < 1) { - dialog.alert("선택된 사진이 없습니다."); - return; - } - - let target = checked[0].value; - - dialog.alert({ - content : "선택한 파일을 삭제하시겠습니까?" - , onOK : () => { - removeFile${pageName}(target); - } - }); - }); - } - - // 화면 초기값 셋팅 - setForm${pageName} = () => { - // 화면 호출(callPurpose)이 view 라면 버튼 비활성화 - if (${pageNameMain}CallPurpose == "view") { - $("#btnViewCvlcptOrgnl--${pageName}").prop("disabled", true); - $("#btnViewAnswerPreview--${pageName}").prop("disabled", true); - $("#btnUpdateCrdn--${pageName}").prop("disabled", true); - $("#btnRemoveCrdn--${pageName}").prop("disabled", true); - $("#btnCreateCrdnReReg--${pageName}").prop("disabled", true); - $("#btnPrintNotice--${pageName}").prop("disabled", true); - $("#btnUpdateCrdnSttsCd--${pageName}").prop("disabled", true); - $("#btnUpdatePayer--${pageName}").prop("disabled", true); - $("#btnEditPhoto--${pageName}").prop("disabled", true); - $("#btnAddFile--${pageName}").prop("disabled", true); - $("#btnDeleteFile--${pageName}").prop("disabled", true); - } else { - $("#btnViewCvlcptOrgnl--${pageName}").prop("disabled", false); - $("#btnViewAnswerPreview--${pageName}").prop("disabled", false); - $("#btnUpdateCrdn--${pageName}").prop("disabled", false); - $("#btnRemoveCrdn--${pageName}").prop("disabled", false); - $("#btnCreateCrdnReReg--${pageName}").prop("disabled", false); - $("#btnPrintNotice--${pageName}").prop("disabled", false); - $("#btnUpdateCrdnSttsCd--${pageName}").prop("disabled", false); - $("#btnUpdatePayer--${pageName}").prop("disabled", false); - $("#btnEditPhoto--${pageName}").prop("disabled", false); - $("#btnAddFile--${pageName}").prop("disabled", false); - $("#btnDeleteFile--${pageName}").prop("disabled", false); - } - - // jquery를 이용한 show/hide (style이 유지) - $("#divBlank1--${pageName}").hide(); // 빈 칸1 - $("#divBlank2--${pageName}").hide(); // 빈 칸2 - $("#divCrdnSn--${pageName}").hide(); // 단속 일련번호 - $("#divDtlCrdnPlc--${pageName}").hide(); // 상세 단속 장소 - $("#lbDstrbncYn--${pageName}").hide(); // 1면 방해 - $("#divCrdnSpareaNm--${pageName}").hide(); // 단속 특별구역 코드 - $("#divTowngYnNm--${pageName}").hide(); // 견인 여부 - $("#divFfnlgCarmdlNm--${pageName}").hide(); // 과태료 차종 - $("#divOvtimeYnNm--${pageName}").hide(); // 시간외 여부 - $("#divParkngPsbltyRsltNm--${pageName}").hide(); // 주차 가능 결과 코드 - $("#divUseFuelNm--${pageName}").hide(); // 사용 연료 구분 - $("#divCrdnBgngTm--${pageName}").hide(); // 단속 시작 시각 ~ 단속 종료 시각 - - // 업무에 따른 요소들 visible - if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "BPV") { // 전용차로위반 - $("#divBlank1--${pageName}").show(); // 빈 칸1 - $("#divDtlCrdnPlc--${pageName}").show(); // 상세 단속 장소 - } else if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "DPV") { // 장애인전용 - $("#divBlank1--${pageName}").show(); // 빈 칸1 - $("#divBlank2--${pageName}").show(); // 빈 칸2 - $("#lbDstrbncYn--${pageName}").show(); // 1면 방해 - $("#divParkngPsbltyRsltNm--${pageName}").show(); // 주차 가능 결과 코드 - } else if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "ECA") { // 전기차주차 - $("#divBlank1--${pageName}").show(); // 빈 칸1 - $("#divBlank2--${pageName}").show(); // 빈 칸2 - $("#divUseFuelNm--${pageName}").show(); // 사용 연료 구분 - } else if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "PVS") { // 주정차위반 - $("#divCrdnBgngTm--${pageName}").show(); // 단속 시작 시각 ~ 단속 종료 시각 - $("#divCrdnSn--${pageName}").show(); // 단속 일련번호 - $("#divCrdnSpareaNm--${pageName}").show(); // 단속 특별구역 코드 - $("#divTowngYnNm--${pageName}").show(); // 견인 여부 - $("#divFfnlgCarmdlNm--${pageName}").show(); // 과태료 차종 - $("#divOvtimeYnNm--${pageName}").show(); // 시간외 여부 - } else if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "TPV") { // 밤샘주차위반 - $("#divBlank2--${pageName}").show(); // 빈칸 - $("#divCrdnBgngTm--${pageName}").show(); // 단속 시작 시각 ~ 단속 종료 시각 - } - } - /************************************************************************** * 버튼 clickEvent **************************************************************************/ @@ -958,10 +838,10 @@ if (typeof bfrCrdnId == "undefined" || bfrCrdnId == null || bfrCrdnId == "") return; let params = { - callPurpose : "create" - , bfrCrdnId : bfrCrdnId // 단속 ID - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + callPurpose : "create" + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , bfrCrdnId : bfrCrdnId // 단속 ID }; dialog.alert({ @@ -985,10 +865,10 @@ if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; let params = { - callPurpose : "update" - , crdnId : crdnId // 단속 ID - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + callPurpose : "update" + , crdnId : crdnId // 단속 ID + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 }; getInfoCrdnSttsCd${pageName}(params); @@ -1002,12 +882,12 @@ if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; let params = { - callPurpose : "update" - , crdnId : crdnId // 단속 ID - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID - , delYn : "N" + callPurpose : "update" + , crdnId : crdnId // 단속 ID + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID + , delYn : "N" }; dialog.alert({ @@ -1026,36 +906,154 @@ if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; let params = { - callPurpose : "update" - , crdnId : crdnId // 단속 ID - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID - , vhrno : ${pageName}Control.dataset.getValue("VHRNO") // 차량번호 - , rtpyrInptSeCd : "01" // 납부자 입력 구분 코드 - , delYn : "N" + callPurpose : "update" + , crdnId : crdnId // 단속 ID + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID + , vhrno : ${pageName}Control.dataset.getValue("VHRNO") // 차량번호 + , rtpyrInptSeCd : "01" // 납부자 입력 구분 코드 + , delYn : "N" }; updatePayer${pageName}(params); } + /************************************************************************** + * 초기 셋팅 + **************************************************************************/ + // 이벤트 설정 + setEvent${pageName} = () => { + // 선택 사진 편집 + $("#btnEditPhoto--${pageName}").on("click", () => { + let checked = $("#displayForExist--${pageName}").find("[name='existPhoto']:checked"); + if (checked.length < 1) { + dialog.alert("선택된 사진이 없습니다."); + return; + } + + let fileId = checked.val(); + + window.open(wctx.url("/sprt/sprt03/020/main.do?openerPageName=${pageName}&fileId=" + fileId) + ,"editPhoto" + ,"width=1400,height=750" + ); + }); + + // 사진 추가 + $("#btnAddFile--${pageName}").on("click", () => { + $("#inputUploadSet--${pageName}").trigger("click"); + }); + + // 선택 사진 삭제 + $("#btnDeleteFile--${pageName}").on('click', () => { + let checked = $("#displayForExist--${pageName}").find("[name='existPhoto']:checked"); + + if (checked.length < 1) { + dialog.alert("선택된 사진이 없습니다."); + return; + } + + let target = checked[0].value; + + dialog.alert({ + content : "선택한 파일을 삭제하시겠습니까?" + , onOK : () => { + removeFile${pageName}(target); + } + }); + }); + } + + // 화면 초기화 + initForm${pageName} = () => { + $("#frmEdit--${pageName}")[0].reset(); // 화면 초기화 + } + + // 화면 데이터 셋팅 + setFormData${pageName} = () => { + // 화면 호출(callPurpose)이 view 라면 버튼 비활성화 + if (${pageNameMain}CallPurpose == "view") { + $("#btnViewCvlcptOrgnl--${pageName}").prop("disabled", true); + $("#btnViewAnswerPreview--${pageName}").prop("disabled", true); + $("#btnUpdateCrdn--${pageName}").prop("disabled", true); + $("#btnRemoveCrdn--${pageName}").prop("disabled", true); + $("#btnCreateCrdnReReg--${pageName}").prop("disabled", true); + $("#btnPrintNotice--${pageName}").prop("disabled", true); + $("#btnUpdateCrdnSttsCd--${pageName}").prop("disabled", true); + $("#btnUpdatePayer--${pageName}").prop("disabled", true); + $("#btnEditPhoto--${pageName}").prop("disabled", true); + $("#btnAddFile--${pageName}").prop("disabled", true); + $("#btnDeleteFile--${pageName}").prop("disabled", true); + } else { + $("#btnViewCvlcptOrgnl--${pageName}").prop("disabled", false); + $("#btnViewAnswerPreview--${pageName}").prop("disabled", false); + $("#btnUpdateCrdn--${pageName}").prop("disabled", false); + $("#btnRemoveCrdn--${pageName}").prop("disabled", false); + $("#btnCreateCrdnReReg--${pageName}").prop("disabled", false); + $("#btnPrintNotice--${pageName}").prop("disabled", false); + $("#btnUpdateCrdnSttsCd--${pageName}").prop("disabled", false); + $("#btnUpdatePayer--${pageName}").prop("disabled", false); + $("#btnEditPhoto--${pageName}").prop("disabled", false); + $("#btnAddFile--${pageName}").prop("disabled", false); + $("#btnDeleteFile--${pageName}").prop("disabled", false); + } + + // jquery를 이용한 show/hide (style이 유지) + $("#divBlank1--${pageName}").hide(); // 빈 칸1 + $("#divBlank2--${pageName}").hide(); // 빈 칸2 + $("#divCrdnSn--${pageName}").hide(); // 단속 일련번호 + $("#divDtlCrdnPlc--${pageName}").hide(); // 상세 단속 장소 + $("#lbDstrbncYn--${pageName}").hide(); // 1면 방해 + $("#divCrdnSpareaNm--${pageName}").hide(); // 단속 특별구역 코드 + $("#divTowngYnNm--${pageName}").hide(); // 견인 여부 + $("#divFfnlgCarmdlNm--${pageName}").hide(); // 과태료 차종 + $("#divOvtimeYnNm--${pageName}").hide(); // 시간외 여부 + $("#divParkngPsbltyRsltNm--${pageName}").hide(); // 주차 가능 결과 코드 + $("#divUseFuelNm--${pageName}").hide(); // 사용 연료 구분 + $("#divCrdnBgngTm--${pageName}").hide(); // 단속 시작 시각 ~ 단속 종료 시각 + + // 업무에 따른 요소들 visible + if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "BPV") { // 전용차로위반 + $("#divBlank1--${pageName}").show(); // 빈 칸1 + $("#divDtlCrdnPlc--${pageName}").show(); // 상세 단속 장소 + } else if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "DPV") { // 장애인전용 + $("#divBlank1--${pageName}").show(); // 빈 칸1 + $("#divBlank2--${pageName}").show(); // 빈 칸2 + $("#lbDstrbncYn--${pageName}").show(); // 1면 방해 + $("#divParkngPsbltyRsltNm--${pageName}").show(); // 주차 가능 결과 코드 + } else if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "ECA") { // 전기차주차 + $("#divBlank1--${pageName}").show(); // 빈 칸1 + $("#divBlank2--${pageName}").show(); // 빈 칸2 + $("#divUseFuelNm--${pageName}").show(); // 사용 연료 구분 + } else if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "PVS") { // 주정차위반 + $("#divCrdnBgngTm--${pageName}").show(); // 단속 시작 시각 ~ 단속 종료 시각 + $("#divCrdnSn--${pageName}").show(); // 단속 일련번호 + $("#divCrdnSpareaNm--${pageName}").show(); // 단속 특별구역 코드 + $("#divTowngYnNm--${pageName}").show(); // 견인 여부 + $("#divFfnlgCarmdlNm--${pageName}").show(); // 과태료 차종 + $("#divOvtimeYnNm--${pageName}").show(); // 시간외 여부 + } else if (sprt02010Control.dataset.getValue("TASK_SE_CD") == "TPV") { // 밤샘주차위반 + $("#divBlank2--${pageName}").show(); // 빈칸 + $("#divCrdnBgngTm--${pageName}").show(); // 단속 시작 시각 ~ 단속 종료 시각 + } + } + /************************************************************************** * script 진입 **************************************************************************/ $(document).ready(function() { - // 화면 초기 설정 - initForm${pageName}(); - // 이벤트 설정 setEvent${pageName}(); // 화면 초기 설정 - setForm${pageName}(); + initForm${pageName}(); - let crdnPayerInfo = ${crdnPayer}; + // 단속, 납부자 정보 Dataset 설정 + ${pageName}Control.setData([${crdnPayer}]); - // Dataset 셋팅 - ${pageName}Control.setData([crdnPayerInfo]); + // 화면 데이터 셋팅 + setFormData${pageName}(); // 이미지 정보를 파일 배열에 셋팅 existFileArr${pageName} = []; // 파일 배열 초기화 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp index e52d7437..59adb86b 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sprt/sprt02030-info.jsp @@ -217,6 +217,8 @@ **************************************************************************/ // 의견제출 dialog ${pageName}Control.getInfo = (params) => { + if (!params) return; + let dialogTitle = ""; if (params.callPurpose == "create") { @@ -224,7 +226,7 @@ } else if (params.callPurpose == "update") { dialogTitle = ${pageName}Control.prefixName + " 수정"; } else { - return; + dialogTitle = ${pageName}Control.prefixName + " 정보"; } ajax.get({ @@ -232,8 +234,8 @@ , data : params || {} , success : resp => { if ((typeof resp) != "string") { - if (resp.retMessage != "") { - dialog.alert(resp.retMessage); + if (resp.rtnMsg != "") { + dialog.alert(resp.rtnMsg); return; } } @@ -266,7 +268,7 @@ } /************************************************************************** - * function + * 사용자 함수(function) **************************************************************************/ // 심의의결서 출력 getOpnnDlbrDecsnForm${pageName} = (params) => { @@ -300,7 +302,7 @@ , success : resp => { dialog.open({ id : ${pageName}Control.prefixed("SbmsnDialog") - , title : ${pageName}Control.prefixName + " 심의 처리" + , title : "의견제출 심의" , content : resp , size : "lg" , onClose : () => { refreshDataInfo${pageName}(); } // callback 자료 조회 @@ -312,24 +314,20 @@ // 자료 재조회 refreshDataInfo${pageName} = () => { let crdnId = $("#crdnId--${pageNameMain}").val(); - let sggCd = $("#sggCd--${pageNameMain}").val(); - let taskSeCd = $("#taskSeCd--${pageNameMain}").val(); // 단속 ID 가 없다면.. return - if (crdnId == null || crdnId == "") { - return; - } + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; let params = { - callPurpose : "refresh" - , crdnId : crdnId - , sggCd : sggCd - , taskSeCd : taskSeCd - , delYn : "N" + callPurpose : "refresh" + , crdnId : crdnId + , sggCd : $("#sggCd--${pageNameMain}").val() + , taskSeCd : $("#taskSeCd--${pageNameMain}").val() + , delYn : "N" }; ajax.get({ - url : wctx.url(taskSeCd + "/sprt/sprt02/030/info.do") + url : wctx.url(params.taskSeCd + "/sprt/sprt02/030/info.do") , headers: { Accept: "application/json; charset=utf-8" } // json , data : params || {} , success : resp => { @@ -348,37 +346,6 @@ }); } - /************************************************************************** - * 초기 셋팅 - **************************************************************************/ - // 화면 초기화 - initForm${pageName} = () => { - $("#frmEdit--${pageName}")[0].reset(); // 화면 초기화 - } - - // 이벤트 설정 - setEvent${pageName} = () => { - - } - - // 화면 초기값 셋팅 - setForm${pageName} = () => { - // 화면 호출(callPurpose)이 view 라면 버튼 비활성화 - if (${pageNameMain}CallPurpose == "view") { - $("#btnCreateOpnnSbmsn--${pageName}").prop("disabled", true); - $("#btnUpdateOpnnSbmsn--${pageName}").prop("disabled", true); - $("#btnRemoveOpnnSbmsn--${pageName}").prop("disabled", true); - $("#btnPrintDlbrtLtfr--${pageName}").prop("disabled", true); - $("#btnUpdateOpnnSbmsnDlbrt--${pageName}").prop("disabled", true); - } else { - $("#btnCreateOpnnSbmsn--${pageName}").prop("disabled", false); - $("#btnUpdateOpnnSbmsn--${pageName}").prop("disabled", false); - $("#btnRemoveOpnnSbmsn--${pageName}").prop("disabled", false); - $("#btnPrintDlbrtLtfr--${pageName}").prop("disabled", false); - $("#btnUpdateOpnnSbmsnDlbrt--${pageName}").prop("disabled", false); - } - } - /************************************************************************** * 버튼 clickEvent **************************************************************************/ @@ -408,7 +375,6 @@ let params = { callPurpose : "update" - , crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") // 단속 ID , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , opnnId : opnnId @@ -429,7 +395,6 @@ let params = { callPurpose : "remove" - , crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") // 단속 ID , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , opnnId : opnnId // 의견제출 ID @@ -443,7 +408,7 @@ }); } - // 심의의결서출력 버튼 이벤트 + // 심의의결서 출력 버튼 이벤트 fnPrintDlbrtLtfr${pageName} = () => { let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID"); @@ -451,16 +416,16 @@ if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return; let params = { - callPurpose : "update" - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , opnnIDs : opnnId // 의견제출 ID + callPurpose : "update" + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , opnnIDs : opnnId // 의견제출 ID }; getOpnnDlbrDecsnForm${pageName}(params); } - // 의견제출심의 버튼 이벤트 + // 의견제출 심의 버튼 이벤트 fnUpdateOpnnSbmsnDlbrt${pageName} = () => { let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID"); @@ -468,11 +433,10 @@ if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return; let params = { - callPurpose : "update" - , crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") // 단속 ID - , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 - , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 - , opnnId : opnnId // 의견제출 ID + callPurpose : "update" + , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 + , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 + , opnnId : opnnId // 의견제출 ID }; getOpnnSbmsnDlbrtInfo${pageName}(params); @@ -534,24 +498,63 @@ top.location.href = "/file/download.do?fileID=" + fileID; } + /************************************************************************** + * 초기 셋팅 + **************************************************************************/ + // 이벤트 설정 + setEvent${pageName} = () => { + + } + + // 화면 초기 설정 + initForm${pageName} = () => { + $("#frmEdit--${pageName}")[0].reset(); // 화면 초기화 + } + + // 화면 데이터 셋팅 + setFormData${pageName} = () => { + // 날짜, 시간 + if ($("#ansYmd--${pageName}").val() == "") { + $("#ansYmd--${pageName}").datepicker("setDate", new Date()); + } + if ($("#ansTm--${pageName}").val() == "" || $("#ansTm--${pageName}").val() == "::") { + $("#ansTm--${pageName}").val(new Date().toTimeString().split(" ")[0]); // "09:51:35 GMT+0900 (한국 표준시)"의 형식에서 공백을 기준으로 잘라 시간 부분만 가져와줍니다. + } + + // 화면 호출(callPurpose)이 view 라면 버튼 비활성화 + if (${pageNameMain}CallPurpose == "view") { + $("#btnCreateOpnnSbmsn--${pageName}").prop("disabled", true); + $("#btnUpdateOpnnSbmsn--${pageName}").prop("disabled", true); + $("#btnRemoveOpnnSbmsn--${pageName}").prop("disabled", true); + $("#btnPrintDlbrtLtfr--${pageName}").prop("disabled", true); + $("#btnUpdateOpnnSbmsnDlbrt--${pageName}").prop("disabled", true); + } else { + $("#btnCreateOpnnSbmsn--${pageName}").prop("disabled", false); + $("#btnUpdateOpnnSbmsn--${pageName}").prop("disabled", false); + $("#btnRemoveOpnnSbmsn--${pageName}").prop("disabled", false); + $("#btnPrintDlbrtLtfr--${pageName}").prop("disabled", false); + $("#btnUpdateOpnnSbmsnDlbrt--${pageName}").prop("disabled", false); + } + } + /************************************************************************** * script 진입 **************************************************************************/ $(document).ready(function() { - // 화면 초기화 - initForm${pageName}(); - // 이벤트 설정 setEvent${pageName}(); - // 화면 초기값 설정 - setForm${pageName}(); + // 화면 초기 설정 + initForm${pageName}(); - // 의견제출 정보 Data 셋팅 + // 의견제출 정보 Dataset 설정 let opnnSbmsn = ${opnnSbmsn}; if (opnnSbmsn) { ${pageName}Control.setData([opnnSbmsn]); } + + // 화면 데이터 셋팅 + setFormData${pageName}(); });