1. 테이블데이터 스크롤링 처리 방식 수정.

2. 기타 수정.
main
jjh 11 months ago
parent ce9fabf400
commit 6e18fe80df

@ -41,9 +41,13 @@ public interface OpnnSbmsnMapper extends AbstractMapper {
* @return * @return
*/ */
default DataObject selectOpnnSbmsnInfo(LevyExclQuery req) { default DataObject selectOpnnSbmsnInfo(LevyExclQuery req) {
// 삭제 여부 확인
if (req.getDelYn() == null) {
req.setDelYn("N");
}
// 기본 정렬 // 기본 정렬
if (req.getOrderBy() == null) { if (req.getOrderBy() == null) {
req.setOrderBy("OS.OPNN_ID DESC"); req.setOrderBy("C.CRDN_ID, OS.OPNN_ID DESC");
} }
List<DataObject> opnnSbmsns = selectOpnnSbmsns(req); List<DataObject> opnnSbmsns = selectOpnnSbmsns(req);

@ -1,8 +1,7 @@
package cokr.xit.fims.excl.service.bean; package cokr.xit.fims.excl.service.bean;
import java.io.File; import java.io.File;
import java.time.LocalDate; import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -83,8 +82,8 @@ public class CrdnReRegBean extends AbstractComponent {
*/ */
public String createCrdnReReg(CrdnReReg crdnReReg) { public String createCrdnReReg(CrdnReReg crdnReReg) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean rtnScs = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지 String rtnMsg = "[F] "; // 처리 결과 메시지
// 단속 ID로 단속(TB_CRDN) 정보 조회 // 단속 ID로 단속(TB_CRDN) 정보 조회
DataObject crdnInfo = crdnReRegMapper.selectCrdn(new LevyExclQuery().setCrdnId(crdnReReg.getBfrCrdnId())); DataObject crdnInfo = crdnReRegMapper.selectCrdn(new LevyExclQuery().setCrdnId(crdnReReg.getBfrCrdnId()));
@ -115,8 +114,7 @@ public class CrdnReRegBean extends AbstractComponent {
Crdn newCrdn = new Crdn(); Crdn newCrdn = new Crdn();
// 현재 날짜 구하기 // 현재 날짜 구하기
LocalDate now = LocalDate.now(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String formatedNow = now.format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
newCrdn.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드 newCrdn.setSggCd(crdnInfo.string("SGG_CD")); // 시군구 코드
newCrdn.setTaskSeCd(crdnInfo.string("TASK_SE_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.setCvlcptLinkYn(crdnInfo.string("CVLCPT_LINK_YN")); // 민원 연계 여부
newCrdn.setLinkTblNm(crdnInfo.string("LINK_TBL_NM")); // 연계 테이블 명 newCrdn.setLinkTblNm(crdnInfo.string("LINK_TBL_NM")); // 연계 테이블 명
newCrdn.setLinkId(crdnInfo.string("LINK_ID")); // 연계 ID 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.setCrdnYmd(crdnInfo.string("CRDN_YMD")); // 단속 일자
newCrdn.setCrdnTm(crdnInfo.string("CRDN_TM")); // 단속 시각 newCrdn.setCrdnTm(crdnInfo.string("CRDN_TM")); // 단속 시각
newCrdn.setVhrno(crdnInfo.string("VHRNO")); // 차량번호 newCrdn.setVhrno(crdnInfo.string("VHRNO")); // 차량번호
@ -146,7 +144,7 @@ public class CrdnReRegBean extends AbstractComponent {
newCrdn.setOpnnSbmsnYn("N"); // 의견 제출 여부 newCrdn.setOpnnSbmsnYn("N"); // 의견 제출 여부
newCrdn.setEtcCn(crdnInfo.string("ETC_CN")); // 기타 내용 newCrdn.setEtcCn(crdnInfo.string("ETC_CN")); // 기타 내용
newCrdn.setCrdnSttsCd("01"); // 단속 상태 코드 newCrdn.setCrdnSttsCd("01"); // 단속 상태 코드
newCrdn.setCrdnSttsChgDt(formatedNow); // 단속 상태 변경 일시 newCrdn.setCrdnSttsChgDt(dateFormat.format(System.currentTimeMillis())); // 단속 상태 변경 일시
newCrdn.setAdtnAmt(0); // 가산 금액 newCrdn.setAdtnAmt(0); // 가산 금액
newCrdn.setMinusAmt(0); // 감경 금액 newCrdn.setMinusAmt(0); // 감경 금액
newCrdn.setRcvmtAmt(0); // 수납 금액 newCrdn.setRcvmtAmt(0); // 수납 금액
@ -165,8 +163,8 @@ public class CrdnReRegBean extends AbstractComponent {
newCrdn.setTowngYn(crdnInfo.string("TOWNG_YN")); // 견인 여부 newCrdn.setTowngYn(crdnInfo.string("TOWNG_YN")); // 견인 여부
// 단속 대장 입력 // 단속 대장 입력
retSuccess = crdnBean.create(null, newCrdn, fileInfoList); rtnScs = crdnBean.create(null, newCrdn, fileInfoList);
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("재부과 등록 중 단속대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("재부과 등록 중 단속대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -174,14 +172,14 @@ public class CrdnReRegBean extends AbstractComponent {
crdnReReg.setCrdnId(newCrdn.getCrdnId()); crdnReReg.setCrdnId(newCrdn.getCrdnId());
crdnReReg.setCrdnRegSeCd("03"); crdnReReg.setCrdnRegSeCd("03");
retSuccess = crdnReRegMapper.insert(crdnReReg); rtnScs = crdnReRegMapper.insert(crdnReReg);
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("재부과 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("재부과 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
retMessage = "[S] 작업이 정상 처리 되었습니다."; rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return retMessage; return rtnMsg;
} }
/** . /** .

@ -106,8 +106,8 @@ public class OpnnSbmsnBean extends AbstractComponent {
*/ */
public String createOpnnSbmsn(OpnnSbmsn opnnSbmsn, List<FileInfo> fileInfoList) { public String createOpnnSbmsn(OpnnSbmsn opnnSbmsn, List<FileInfo> fileInfoList) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean rtnScs = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지 String rtnMsg = "[F] "; // 처리 결과 메시지
// 단속 ID로 단속, 의견제출 정보 조회 // 단속 ID로 단속, 의견제출 정보 조회
DataObject infoCrdnOpnnSbmsn = opnnSbmsnMapper.selectOpnnSbmsnInfo(new LevyExclQuery().setCrdnId(opnnSbmsn.getCrdnId()) DataObject infoCrdnOpnnSbmsn = opnnSbmsnMapper.selectOpnnSbmsnInfo(new LevyExclQuery().setCrdnId(opnnSbmsn.getCrdnId())
@ -115,21 +115,21 @@ public class OpnnSbmsnBean extends AbstractComponent {
// 의견제출ID가 있다면 이미 자료가 존재하므로 종료.. // 의견제출ID가 있다면 이미 자료가 존재하므로 종료..
if (!infoCrdnOpnnSbmsn.string("OPNN_ID").equals("")) { if (!infoCrdnOpnnSbmsn.string("OPNN_ID").equals("")) {
retMessage = "[F] 작업 중 이미 등록된 자료가 존재합니다."; rtnMsg = "[F] 작업 중 이미 등록된 자료가 존재합니다.";
return retMessage; return rtnMsg;
} }
// 단속 상태 코드가 부과(51) 보다 크다면, 의견제출 등록을 할 수 없다. 종료.. // 단속 상태 코드가 부과(51) 보다 크다면, 의견제출 등록을 할 수 없다. 종료..
if (infoCrdnOpnnSbmsn.number("CRDN_STTS_CD").intValue() >= 51) { if (infoCrdnOpnnSbmsn.number("CRDN_STTS_CD").intValue() >= 51) {
retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnOpnnSbmsn.string("CRDN_STTS_NM") + " 상태 입니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료의 단속 상태가 " + infoCrdnOpnnSbmsn.string("CRDN_STTS_NM") + " 상태 입니다.";
return retMessage; return rtnMsg;
} }
// 의견제출 대장 필수값 입력 // 의견제출 대장 필수값 입력
opnnSbmsn.setOpnnSbmsnSttsCd("00"); // 의견 제출 상태 코드 00:접수 opnnSbmsn.setOpnnSbmsnSttsCd("00"); // 의견 제출 상태 코드 00:접수
// 의견제출 대장을 등록 한다. // 의견제출 대장을 등록 한다.
retSuccess = opnnSbmsnMapper.insert(opnnSbmsn); rtnScs = opnnSbmsnMapper.insert(opnnSbmsn);
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("의견제출 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -152,8 +152,8 @@ public class OpnnSbmsnBean extends AbstractComponent {
crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId()); crdnSttsHstry.setTaskDtlId(opnnSbmsn.getOpnnId());
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("의견제출 등록 중 단속대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 등록 중 단속대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} }
@ -164,14 +164,14 @@ public class OpnnSbmsnBean extends AbstractComponent {
crdn.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); crdn.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID"));
crdn.setOpnnSbmsnYn("Y"); crdn.setOpnnSbmsnYn("Y");
retSuccess = opnnSbmsnMapper.updateCrdn(crdn); // 단속 대장 수정 rtnScs = opnnSbmsnMapper.updateCrdn(crdn); // 단속 대장 수정
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("의견제출 등록 중 단속대장의 의견제출여부 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback 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<FileInfo> fileInfoList) { public String updateOpnnSbmsn(OpnnSbmsn opnnSbmsn, List<FileInfo> fileInfoList) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean rtnScs = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지 String rtnMsg = "[F] "; // 처리 결과 메시지
// 의견제출 첨부파일 등록 // 의견제출 첨부파일 등록
if (fileInfoList != null && !fileInfoList.isEmpty()) { if (fileInfoList != null && !fileInfoList.isEmpty()) {
@ -210,14 +210,14 @@ public class OpnnSbmsnBean extends AbstractComponent {
} }
// 의견제출 대장을 수정 한다. // 의견제출 대장을 수정 한다.
retSuccess = opnnSbmsnMapper.update(opnnSbmsn); rtnScs = opnnSbmsnMapper.update(opnnSbmsn);
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("의견제출 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback 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) { public String updateOpnnSbmsnAnswer(OpnnSbmsn opnnSbmsn) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean rtnScs = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지 String rtnMsg = "[F] "; // 처리 결과 메시지
String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD) String newCrdnSttsCd = ""; // 신규 단속 상태 코드(CRDN_STTS_CD)
// 의견제출(TB_OPNN_SBMSN) 자료 조회 // 의견제출(TB_OPNN_SBMSN) 자료 조회
@ -240,23 +240,23 @@ public class OpnnSbmsnBean extends AbstractComponent {
// 의견제출 ID가 조회되지 않았다면 종료.. // 의견제출 ID가 조회되지 않았다면 종료..
if (opnnSbmsnInfo.string("OPNN_ID").equals("")) { if (opnnSbmsnInfo.string("OPNN_ID").equals("")) {
retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>의견제출 자료가 존재하지 않습니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>의견제출 자료가 존재하지 않습니다.";
return retMessage; return rtnMsg;
} }
// 단속 상태가 수납 또는 취소된 자료를 의견제출 수용할 수 없다. // 단속 상태가 수납 또는 취소된 자료를 의견제출 수용할 수 없다.
if (opnnSbmsnInfo.number("CRDN_STTS_CD").intValue() >= 51) { if (opnnSbmsnInfo.number("CRDN_STTS_CD").intValue() >= 51) {
retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>단속 상태가 " + opnnSbmsnInfo.string("CRDN_STTS_NM") + " 입니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>단속 상태가 " + opnnSbmsnInfo.string("CRDN_STTS_NM") + " 입니다.";
return retMessage; return rtnMsg;
} }
// 과태료 감경 대장에 이미 감경이 등록 되었다면 의견제출 과태료감경(04)을 처리할 수 없다. // 과태료 감경 대장에 이미 감경이 등록 되었다면 의견제출 과태료감경(04)을 처리할 수 없다.
if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("04") && !crdnRductInfo.string("RDUCT_ID").equals("")) { if (opnnSbmsn.getOpnnSbmsnSttsCd().equals("04") && !crdnRductInfo.string("RDUCT_ID").equals("")) {
retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료는 과태료 감경이 이미 등록 되었습니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>현재 자료는 과태료 감경이 이미 등록 되었습니다.";
return retMessage; return rtnMsg;
} }
// 의견제출 답변을 수정 한다. // 의견제출 답변을 수정 한다.
retSuccess = opnnSbmsnMapper.updateOpnnSbmsnAnswer(opnnSbmsn); rtnScs = opnnSbmsnMapper.updateOpnnSbmsnAnswer(opnnSbmsn);
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("의견제출 심의 처리에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 심의 처리에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -289,8 +289,8 @@ public class OpnnSbmsnBean extends AbstractComponent {
rduct.setRductAmt(opnnSbmsn.getRductAmt()); rduct.setRductAmt(opnnSbmsn.getRductAmt());
rduct.setEtcCn("의견제출 심의 처리에 의한 감경 등록"); rduct.setEtcCn("의견제출 심의 처리에 의한 감경 등록");
retMessage = rductBean.createRduct(rduct); rtnMsg = rductBean.createRduct(rduct);
if (retMessage.contains("[F]")) { if (rtnMsg.contains("[F]")) {
throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} else { } else {
@ -301,8 +301,8 @@ public class OpnnSbmsnBean extends AbstractComponent {
rduct.setRductId(opnnSbmsnInfo.string("RDUCT_ID")); rduct.setRductId(opnnSbmsnInfo.string("RDUCT_ID"));
rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제"); rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제");
retMessage = rductBean.removeRduct(rduct); rtnMsg = rductBean.removeRduct(rduct);
if (retMessage.contains("[F]")) { if (rtnMsg.contains("[F]")) {
throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} }
@ -319,15 +319,15 @@ public class OpnnSbmsnBean extends AbstractComponent {
crdnSttsHstry.setEtcCn("의견제출 심의 처리로 인한 단속상태 변경"); crdnSttsHstry.setEtcCn("의견제출 심의 처리로 인한 단속상태 변경");
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다. // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다.
retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("의견제출 심의(답변) 처리 중 단속대장의 단속상태 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback 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) { public String removeOpnnSbmsn(OpnnSbmsn opnnSbmsn) {
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean rtnScs = false; // DB 처리 결과
String retMessage = "[F] "; // 처리 결과 메시지 String rtnMsg = "[F] "; // 처리 결과 메시지
// 의견제출(TB_OPNN_SBMSN) 정보 조회 // 의견제출(TB_OPNN_SBMSN) 정보 조회
DataObject opnnSbmsnInfo = opnnSbmsnMapper.selectOpnnSbmsnInfo(new LevyExclQuery().setOpnnId(opnnSbmsn.getOpnnId()) DataObject opnnSbmsnInfo = opnnSbmsnMapper.selectOpnnSbmsnInfo(new LevyExclQuery().setOpnnId(opnnSbmsn.getOpnnId())
@ -348,13 +348,13 @@ public class OpnnSbmsnBean extends AbstractComponent {
// 의견제출 ID가 조회되지 않았다면 종료.. // 의견제출 ID가 조회되지 않았다면 종료..
if (opnnSbmsnInfo.string("OPNN_ID").equals("")) { if (opnnSbmsnInfo.string("OPNN_ID").equals("")) {
retMessage = "[F] 작업 중 오류가 발생하였습니다.<br>의견제출 자료가 존재하지 않습니다."; rtnMsg = "[F] 작업 중 오류가 발생하였습니다.<br>의견제출 자료가 존재하지 않습니다.";
return retMessage; return rtnMsg;
} }
// 의견제출(TB_OPNN_SBMSN) 대장을 삭제 한다. // 의견제출(TB_OPNN_SBMSN) 대장을 삭제 한다.
retSuccess = opnnSbmsnMapper.delete(opnnSbmsn); rtnScs = opnnSbmsnMapper.delete(opnnSbmsn);
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("의견제출 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -385,8 +385,8 @@ public class OpnnSbmsnBean extends AbstractComponent {
deleteCrdnSttsCd = "92"; deleteCrdnSttsCd = "92";
} }
retSuccess = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deleteCrdnSttsCd, insertBfrSttsYN); rtnScs = crdnSttsHstryBean.removeHstryUpdateCrdnSttsCd(opnnSbmsnInfo.string("CRDN_ID"), crdnSttsCd, deleteCrdnSttsCd, insertBfrSttsYN);
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("단속상태이력 삭제 및 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
@ -401,8 +401,8 @@ public class OpnnSbmsnBean extends AbstractComponent {
rduct.setRductId(opnnSbmsnInfo.string("RDUCT_ID")); rduct.setRductId(opnnSbmsnInfo.string("RDUCT_ID"));
rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제"); rduct.setDelRsn("의견제출 심의 처리에 의한 감경 삭제");
retMessage = rductBean.removeRduct(rduct); // 과태료 감경(TB_RDUCT) 대장 삭제 rtnMsg = rductBean.removeRduct(rduct); // 과태료 감경(TB_RDUCT) 대장 삭제
if (retMessage.contains("[F]")) { if (rtnMsg.contains("[F]")) {
throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 심의 처리 중 과태료 감경 등록(수정)에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
} }
@ -414,14 +414,14 @@ public class OpnnSbmsnBean extends AbstractComponent {
crdn.setCrdnId(opnnSbmsnInfo.string("CRDN_ID")); crdn.setCrdnId(opnnSbmsnInfo.string("CRDN_ID"));
crdn.setOpnnSbmsnYn("N"); crdn.setOpnnSbmsnYn("N");
retSuccess = opnnSbmsnMapper.updateCrdn(crdn); // 단속(TB_CRDN) 대장 수정 rtnScs = opnnSbmsnMapper.updateCrdn(crdn); // 단속(TB_CRDN) 대장 수정
if (!retSuccess) { if (!rtnScs) {
throw new RuntimeException("의견제출 삭제 중 단속대장의 의견제출여부 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback throw new RuntimeException("의견제출 삭제 중 단속대장의 의견제출여부 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
retMessage = "[S] 작업이 정상 처리 되었습니다."; rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return retMessage; return rtnMsg;
} }
} }

@ -59,10 +59,6 @@ public class OpnnSbmsnServiceBean extends AbstractServiceBean implements OpnnSbm
@Override @Override
public DataObject getOpnnSbmsnInfo(LevyExclQuery req) { public DataObject getOpnnSbmsnInfo(LevyExclQuery req) {
if (req.getCallPurpose() == null) {
req.setCallPurpose("view");
}
return opnnSbmsnBean.getOpnnSbmsnInfo(req); return opnnSbmsnBean.getOpnnSbmsnInfo(req);
} }

@ -60,7 +60,8 @@ public class Excl01Controller extends ApplicationController {
addCodes(commonCodes, mav, "FIM021", "FIM022"); 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("infoPrefix", "levyExcl") // prefix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_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("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo)) .addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo)) // 부과제외 정보
; ;
} }
} }

@ -73,7 +73,8 @@ public class Excl02Controller extends ApplicationController {
addCodes(commonCodes, mav, "FIM021", "FIM022"); 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("infoPrefix", "opnnSbmsn") // prefix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("FIM031List", commonCodes.get("FIM031")) // 의견 제출 답변 결과(OPNN_SBMSN_STTS_CD) .addObject("FIM031List", commonCodes.get("FIM031")) // 의견 제출 답변 결과(OPNN_SBMSN_STTS_CD)
@ -114,7 +115,7 @@ public class Excl02Controller extends ApplicationController {
ModelAndView mav = new ModelAndView("jsonView"); ModelAndView mav = new ModelAndView("jsonView");
return mav return mav
.addObject("retMessage", "이미 등록된 의견제출 정보가 있습니다.") .addObject("rtnMsg", "이미 등록된 의견제출 정보가 있습니다.")
; ;
} else { } else {
boolean json = jsonResponse(); boolean json = jsonResponse();
@ -153,9 +154,9 @@ public class Excl02Controller extends ApplicationController {
} }
boolean saved = false; 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; saved = true;
} else { } else {
saved = false; saved = false;
@ -163,7 +164,7 @@ public class Excl02Controller extends ApplicationController {
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved) .addObject("saved", saved)
.addObject("retMessage", retMessage); .addObject("rtnMsg", rtnMsg);
} }
/** . /** .
@ -182,9 +183,9 @@ public class Excl02Controller extends ApplicationController {
} }
boolean saved = false; 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; saved = true;
} else { } else {
saved = false; saved = false;
@ -192,7 +193,7 @@ public class Excl02Controller extends ApplicationController {
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved) .addObject("saved", saved)
.addObject("retMessage", retMessage); .addObject("rtnMsg", rtnMsg);
} }
/** ID . /** ID .
@ -233,9 +234,9 @@ public class Excl02Controller extends ApplicationController {
*/ */
public ModelAndView updateOpinionSubmissionAnswer(OpnnSbmsn opnnSbmsn) { public ModelAndView updateOpinionSubmissionAnswer(OpnnSbmsn opnnSbmsn) {
boolean saved = false; boolean saved = false;
String retMessage = opnnSbmsnService.updateOpnnSbmsnAnswer(opnnSbmsn); String rtnMsg = opnnSbmsnService.updateOpnnSbmsnAnswer(opnnSbmsn);
if (retMessage.contains("[S]")) { if (rtnMsg.contains("[S]")) {
saved = true; saved = true;
} else { } else {
saved = false; saved = false;
@ -243,7 +244,7 @@ public class Excl02Controller extends ApplicationController {
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved) .addObject("saved", saved)
.addObject("retMessage", retMessage); .addObject("rtnMsg", rtnMsg);
} }
/** . /** .
@ -256,9 +257,9 @@ public class Excl02Controller extends ApplicationController {
*/ */
public ModelAndView removeOpinionSubmission(OpnnSbmsn opnnSbmsn) { public ModelAndView removeOpinionSubmission(OpnnSbmsn opnnSbmsn) {
boolean saved = false; boolean saved = false;
String retMessage = opnnSbmsnService.removeOpnnSbmsn(opnnSbmsn); String rtnMsg = opnnSbmsnService.removeOpnnSbmsn(opnnSbmsn);
if (retMessage.contains("[S]")) { if (rtnMsg.contains("[S]")) {
saved = true; saved = true;
} else { } else {
saved = false; saved = false;
@ -266,7 +267,7 @@ public class Excl02Controller extends ApplicationController {
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved) .addObject("saved", saved)
.addObject("retMessage", retMessage); .addObject("rtnMsg", rtnMsg);
} }
/** . /** .
@ -279,9 +280,9 @@ public class Excl02Controller extends ApplicationController {
*/ */
public ModelAndView removeOpinionSubmissionList(LevyExclQuery req) { public ModelAndView removeOpinionSubmissionList(LevyExclQuery req) {
boolean saved = false; boolean saved = false;
String retMessage = opnnSbmsnService.removeOpnnSbmsnList(req); String rtnMsg = opnnSbmsnService.removeOpnnSbmsnList(req);
if (retMessage.contains("[S]")) { if (rtnMsg.contains("[S]")) {
saved = true; saved = true;
} else { } else {
saved = false; saved = false;
@ -289,7 +290,7 @@ public class Excl02Controller extends ApplicationController {
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved) .addObject("saved", saved)
.addObject("retMessage", retMessage); .addObject("rtnMsg", rtnMsg);
} }
/** . /** .

@ -56,10 +56,11 @@ public class Excl03Controller extends ApplicationController {
// View(jsp)에서 사용할 공통코드를 조회 // View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM054");
return mav.addObject("pageName", "excl03010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix return mav
.addObject("infoPrefix", "crdnReReg") // prefix .addObject("pageName", "excl03010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("infoPrefix", "crdnReReg") // prefix
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) .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") @PostMapping(name = "단속 재등록 등록", value = "/010/create.do")
public ModelAndView createCrackdownReRegistration(CrdnReReg crdnReReg) { public ModelAndView createCrackdownReRegistration(CrdnReReg crdnReReg) {
boolean saved = false; boolean saved = false;
String retMessage = crdnReRegService.createCrdnReReg(crdnReReg); String rtnMsg = crdnReRegService.createCrdnReReg(crdnReReg);
if (retMessage.contains("[S]")) { if (rtnMsg.contains("[S]")) {
saved = true; saved = true;
} else { } else {
saved = false; saved = false;
@ -101,7 +102,7 @@ public class Excl03Controller extends ApplicationController {
return new ModelAndView("jsonView") return new ModelAndView("jsonView")
.addObject("saved", saved) .addObject("saved", saved)
.addObject("retMessage", retMessage); .addObject("rtnMsg", rtnMsg);
} }
/** . /** .

@ -308,20 +308,17 @@
<include refid="select" /> <include refid="select" />
<where> <where>
<if test="crdnId != null"> <if test="crdnId != null">
AND C.CRDN_ID = #{crdnId} <!-- 단속 ID --> AND C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
AND C.DEL_YN = 'N' <!-- 단속 삭제 여부 -->
</if> </if>
<if test="opnnIDs != null"> <if test="opnnIDs != null">
AND OS.OPNN_ID IN ( AND OS.OPNN_ID IN (
<foreach collection="opnnIDs" item="opnnId" separator=","> #{opnnId} </foreach> <foreach collection="opnnIDs" item="opnnId" separator=","> #{opnnId} </foreach>
) )
</if> </if>
<if test="opnnId != null"> <if test="opnnId != null">
AND OS.OPNN_ID = #{opnnId} <!-- 의견제출 ID --> AND OS.OPNN_ID = #{opnnId} <!-- 의견제출 ID -->
</if>
<if test="delYn != null">
AND OS.DEL_YN = #{delYn} <!-- 삭제 여부 -->
</if> </if>
AND C.DEL_YN = 'N' <!-- 단속 삭제 여부 -->
</where> </where>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>

@ -330,7 +330,7 @@
, func : "${pageName}Control.load({index})" , func : "${pageName}Control.load({index})"
}); });
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 true ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 true
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
@ -399,8 +399,8 @@
dialog.alert(showMessage); dialog.alert(showMessage);
// 자료 재조회
if (resp.saved) { if (resp.saved) {
// 자료 재조회
${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum;
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum;
@ -416,7 +416,7 @@
if (!params) { if (!params) {
params = {}; params = {};
params["GdccIDs"] = selected.join(","); // params[${pageName}Control.prefixed("IDs")] = selected.join(","); params["GdccIDs"] = selected.join(","); // IDs
} }
ajax.post({ ajax.post({
@ -443,7 +443,6 @@
.replace(/{ondblclick}/gi, "${pageName}Control.getInfo('update', '" + dataItem.getValue("CON_KEY") + "');") .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('update', '" + dataItem.getValue("CON_KEY") + "');")
); );
// $("#tbody--${pageName}").html(trs.join());
let noMore = (totalSize == ${infoPrefix}List.length); let noMore = (totalSize == ${infoPrefix}List.length);
let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0);
@ -455,9 +454,10 @@
${pageName}Control.untilPageNum = 0; ${pageName}Control.untilPageNum = 0;
} }
// checkbox 체크 해제
$("th input[type='checkbox']").prop("checked", false); $("th input[type='checkbox']").prop("checked", false);
//보안모드 // 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
} }
@ -468,6 +468,11 @@
${pageName}Control.load(${pageName}Control.query.pageNum + 1); ${pageName}Control.load(${pageName}Control.query.pageNum + 1);
} }
/**************************************************************************
* 사용자 함수
**************************************************************************/
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
@ -485,7 +490,7 @@
setURL${pageName}(taskSeCd); setURL${pageName}(taskSeCd);
// 기본 데이터 설정 // 기본 데이터 설정
setForm${pageName}(); setFormData${pageName}();
} }
// 검색 버튼 이벤트 // 검색 버튼 이벤트
@ -525,6 +530,7 @@
// //
} }
// 검색
${pageName}Control.load(1); ${pageName}Control.load(1);
} }
@ -533,8 +539,8 @@
} }
// 사용자 조회 버튼 이벤트 // 사용자 검색 버튼 이벤트
fnUser${pageName} = () => { fnFindUser${pageName} = () => {
} }
@ -608,17 +614,13 @@
// 발송 취소 버튼 이벤트 // 발송 취소 버튼 이벤트
fnUpdate${pageName} = () => { 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} = () => { fnRemove${pageName} = () => {
dialog.alert({ dialog.alert({
content : "선택한 전자우편 안내문 정보를 삭제하시겠습니까?" content : "선택한 발송 정보를 삭제하시겠습니까?"
, onOK : () => { , onOK : () => {
${pageName}Control.remove(); ${pageName}Control.remove();
} }
@ -630,6 +632,13 @@
**************************************************************************/ **************************************************************************/
// 이벤트 // 이벤트
setEvent${pageName} = () => { setEvent${pageName} = () => {
// 동적검색에서 엔터(Enter) 키를 누르면 검색한다.
// $("#term--${pageName}").keypress(function(e) {
// if (e.keyCode == 13) {
// fnSearchList${pageName}();   
// }
// });
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmSearch--${pageName}").find(".form-date").each(function() { $("#frmSearch--${pageName}").find(".form-date").each(function() {
$(this).on("input", function() { $(this).on("input", function() {
@ -650,7 +659,7 @@
fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName});
} }
// 초기 기본 설정 // 화면 초기 설정
initForm${pageName} = (taskSeCd) => { initForm${pageName} = (taskSeCd) => {
// 화면 초기화 // 화면 초기화
$("#frmSearch--${pageName}")[0].reset(); $("#frmSearch--${pageName}")[0].reset();
@ -679,7 +688,7 @@
} }
// 기본 데이터 설정 // 기본 데이터 설정
setForm${pageName} = () => { setFormData${pageName} = () => {
// ${pageName}Control 설정 // ${pageName}Control 설정
${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30

@ -125,7 +125,7 @@
} }
// 초기 기본 설정 // 화면 초기 설정
initForm${pageName} = () => { initForm${pageName} = () => {
if (${pageName}CallPurpose == "view") { if (${pageName}CallPurpose == "view") {
$("#sndngSeCd--${pageName}").attr("disabled", true); $("#sndngSeCd--${pageName}").attr("disabled", true);
@ -141,7 +141,7 @@
} }
// 기본 데이터 설정 // 기본 데이터 설정
setForm${pageName} = () => { setFormData${pageName} = () => {
} }
@ -168,14 +168,14 @@
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();
// 화면 초기 // 화면 초기 설정
initForm${pageName}(); initForm${pageName}();
// Dataset 셋팅 - 단건일 경우 setData // Dataset 셋팅 - 단건일 경우 setData
${pageName}Control.setData([${epostGdccInfo}]); ${pageName}Control.setData([${epostGdccInfo}]);
// 화면 데이터 셋팅 // 기본 데이터 설정
setForm${pageName}(); setFormData${pageName}();
}); });
</script> </script>

@ -197,8 +197,6 @@
var ${pageName}PrefixUrl = "/epst/epst02"; var ${pageName}PrefixUrl = "/epst/epst02";
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
// 시군구 코드(SGG_CD)
var ${pageName}sggCd = "${sggCd}";
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -210,7 +208,8 @@
, keymapper : info => info ? info.GDCC_ID : "" , keymapper : info => info ? info.GDCC_ID : ""
, dataGetter : obj => obj.epostGdccList , dataGetter : obj => obj.epostGdccList
, appendData : true , appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , untilPageNum : 0 // 현재 페이지 번호
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, formats : { , formats : {
LAST_USE_DT : datetimeFormat LAST_USE_DT : datetimeFormat
, REG_DT : datetimeFormat , REG_DT : datetimeFormat
@ -223,7 +222,7 @@
**************************************************************************/ **************************************************************************/
// Dataset 변경 이벤트 // Dataset 변경 이벤트
${pageName}Control.onDatasetChange = obj => { ${pageName}Control.onDatasetChange = obj => {
renderList${pageName}(); renderList${pageName}(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : ${pageName}Control.dataset list : ${pageName}Control.dataset
@ -234,7 +233,7 @@
, func : "${pageName}Control.load({index})" , func : "${pageName}Control.load({index})"
}); });
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
@ -268,9 +267,9 @@
} }
let params = { let params = {
callPurpose : callPurpose callPurpose : callPurpose
, sggCd : $("#sggCd--${pageName}").val() // 시군구 코드 , sggCd : $("#sggCd--${pageName}").val() // 시군구 코드
, taskSeCd : $("input[name=taskSeCd]:checked").val() // 업무 구분 코드 , taskSeCd : $("input[name=taskSeCd]:checked").val() // 업무 구분 코드
}; };
if (callPurpose == "view" || callPurpose == "update") { if (callPurpose == "view" || callPurpose == "update") {
@ -327,10 +326,10 @@
} }
/************************************************************************** /**************************************************************************
* * DataTables 이벤트
**************************************************************************/ **************************************************************************/
// DataTables에 click, dbclick 이벤트 // DataTables에 click, dbclick 이벤트
renderList${pageName} = () => { renderList${pageName} = (totalSize) => {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty; let empty = ${infoPrefix}List.empty;
@ -343,93 +342,35 @@
.replace(/{ondblclick}/gi, "${pageName}Control.getInfo('update', '" + dataItem.getValue("GDCC_ID") + "');") .replace(/{ondblclick}/gi, "${pageName}Control.getInfo('update', '" + dataItem.getValue("GDCC_ID") + "');")
); );
$("#tbody--${pageName}").html(trs.join()); let noMore = (totalSize == ${infoPrefix}List.length);
$("th input[type='checkbox']").prop("checked", false); let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0);
//보안모드
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 itemsCnt = ${pageName}Control.dataset._items.length; $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore);
let totCnt = ${pageName}Control.dataset.getValue("TOT_CNT"); // let totCnt = ${pageName}Control.dataset.getCurrent("item").data.TOT_CNT;
if (itemsCnt >= totCnt) { if (${pageName}Control.untilPageNum != 0) {
return; ${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()) { // checkbox 체크 해제
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 $("th input[type='checkbox']").prop("checked", false);
${pageName}Control.load(${pageName}Control.query.pageNum + 1); //보안모드
} fn_securityModeToggle($("#securityMode--top").is(":checked"));
});
} }
// 초기 기본 설정 // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
initForm${pageName} = (taskSeCd) => { scrollDataList${pageName} = () => {
// 화면 초기화 ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false
$("#frmSearch--${pageName}")[0].reset();
// 시군구 코드
$("#sggCd--${pageName}").val(${pageName}sggCd);
// 업무 구분 코드 ${pageName}Control.load(${pageName}Control.query.pageNum + 1);
$("#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"); // 정보
} }
// 기본 데이터 설정 /**************************************************************************
setForm${pageName} = () => { * 사용자 함수(function)
**************************************************************************/
}
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
@ -448,7 +389,7 @@
setURL${pageName}(taskSeCd); setURL${pageName}(taskSeCd);
// 기본 데이터 설정 // 기본 데이터 설정
setForm${pageName}(); setFormData${pageName}();
} }
// 검색 버튼 이벤트 // 검색 버튼 이벤트
@ -456,10 +397,10 @@
// 검색조건 // 검색조건
${pageName}Control.query = ${pageName}Fields.get(); ${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 1 페이지당 조회되는 자료 건수
${pageName}Control.query.useYN = "Y"; // 사용 여부 - Y ${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 진입 * script 진입
**************************************************************************/ **************************************************************************/
@ -507,6 +512,9 @@
// 보안모드 // 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 설정 // 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);

@ -281,8 +281,6 @@
var ${pageName}PrefixUrl = "/excl/excl01"; var ${pageName}PrefixUrl = "/excl/excl01";
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}");
// 시군구 코드(SGG_CD)
var ${pageName}sggCd = "${sggCd}";
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -294,7 +292,8 @@
, keymapper : info => info ? info.LEVY_EXCL_ID : "" , keymapper : info => info ? info.LEVY_EXCL_ID : ""
, dataGetter : obj => obj.levyExclList , dataGetter : obj => obj.levyExclList
, appendData : true , appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , untilPageNum : 0 // 현재 페이지 번호
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : { , urls : {
load : wctx.url(${pageName}PrefixUrl + "/010/list.do") // 조회 load : wctx.url(${pageName}PrefixUrl + "/010/list.do") // 조회
, getInfo : wctx.url(${pageName}PrefixUrl + "/020/info.do") // 수정 , getInfo : wctx.url(${pageName}PrefixUrl + "/020/info.do") // 수정
@ -316,7 +315,7 @@
**************************************************************************/ **************************************************************************/
// Dataset 변경 이벤트 // Dataset 변경 이벤트
${pageName}Control.onDatasetChange = obj => { ${pageName}Control.onDatasetChange = obj => {
renderList${pageName}(); renderList${pageName}(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : ${pageName}Control.dataset list : ${pageName}Control.dataset
@ -327,7 +326,7 @@
, func : "${pageName}Control.load({index})" , func : "${pageName}Control.load({index})"
}); });
${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
@ -376,8 +375,8 @@
, title : dialogTitle , title : dialogTitle
, content : resp , content : resp
, size : ${pageName}Control.infoSize , size : ${pageName}Control.infoSize
, init : () => { } , init : () => { }
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback , onClose : () => { refreshList${pageName}(); } // 자료 재조회
}); });
} }
}); });
@ -390,8 +389,9 @@
dialog.alert(showMessage); // 메시지 출력 dialog.alert(showMessage); // 메시지 출력
// 자료 재조회
if (resp.saved) { if (resp.saved) {
${pageName}Control._load(); // 자료 재조회 refreshList${pageName}();
} }
} }
@ -407,10 +407,10 @@
} }
/************************************************************************** /**************************************************************************
* * DataTables 이벤트
**************************************************************************/ **************************************************************************/
// DataTables에 click, dbclick 이벤트 // DataTables에 click, dbclick 이벤트
renderList${pageName} = () => { renderList${pageName} = (totalSize) => {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty; let empty = ${infoPrefix}List.empty;
@ -423,26 +423,47 @@
.replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');")
); );
$("#tbody--${pageName}").html(trs.join()); let noMore = (totalSize == ${infoPrefix}List.length);
$("th input[type='checkbox']").prop("checked", false); 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")); 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 // 개별총정보 dialog
getTotalInfo${pageName} = (crdnId) => { getTotalInfo${pageName} = (crdnId) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let taskSeCd = $("input[name=taskSeCd]:checked").val();
let params = { let params = {
callControlName : "${pageName}Control" callControlName : "${pageName}Control"
, sggCd : $("#sggCd--${pageName}").val()
, taskSeCd : $("input[name=taskSeCd]:checked").val()
, crdnId : crdnId , crdnId : crdnId
} }
ajax.get({ ajax.get({
url : wctx.url(taskSeCd + "/sprt/sprt02/010/main.do") url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do")
, data : params , data : params
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
@ -465,103 +486,20 @@
// 서버에 전송할 data(파라미터) 생성 // 서버에 전송할 data(파라미터) 생성
let params = { let params = {
callPurpose : "remove" // 호출 용도 callPurpose : "remove" // 호출 용도
, delRsn : obj.reason // 삭제 사유 , delRsn : obj.reason // 삭제 사유
}; };
params[${pageName}Control.prefixed("IDs")] = selected.join(","); // IDs
params[${pageName}Control.prefixed("IDs")] = selected.join(",");
${pageName}Control.remove(params); ${pageName}Control.remove(params);
} }
/************************************************************************** // 검색 자료 재조회
* 초기 셋팅 refreshList${pageName} = () => {
**************************************************************************/ ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum;
// 이벤트 ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum;
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} = () => {
${pageName}Control.load(1);
} }
/************************************************************************** /**************************************************************************
@ -581,7 +519,7 @@
setURL${pageName}(taskSeCd); setURL${pageName}(taskSeCd);
// 기본 데이터 설정 // 기본 데이터 설정
setForm${pageName}(); setFormData${pageName}();
} }
// 검색 버튼 이벤트 // 검색 버튼 이벤트
@ -589,11 +527,10 @@
// 검색조건 // 검색조건
${pageName}Control.query = ${pageName}Fields.get(); ${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.pageNum = 1; // 페이지 번호 ${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.load(); ${pageName}Control.load(1);
} }
// 엑셀 버튼 이벤트 // 엑셀 버튼 이벤트
@ -606,7 +543,7 @@
} }
// 부과제외 수정 버튼 이벤트 // 수정 버튼 이벤트
fnUpdate${pageName} = () => { fnUpdate${pageName} = () => {
let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID"); let levyExclId = ${pageName}Control.dataset.getValue("LEVY_EXCL_ID");
let levyExclSeCd = ${pageName}Control.dataset.getValue("LEVY_EXCL_SE_CD"); let levyExclSeCd = ${pageName}Control.dataset.getValue("LEVY_EXCL_SE_CD");
@ -618,7 +555,7 @@
callPurpose : "update" callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, levyExclId : levyExclId , levyExclId : levyExclId // 부과제외 ID
, levyExclSeCd : levyExclSeCd , 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 진입 * script 진입
**************************************************************************/ **************************************************************************/
@ -660,6 +663,9 @@
// 보안모드 // 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 설정 // 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);

@ -77,13 +77,13 @@
**************************************************************************/ **************************************************************************/
// URL // URL
var ${pageName}PrefixUrl = "/excl/excl01"; var ${pageName}PrefixUrl = "/excl/excl01";
// 호출 용도
var ${pageName}CallPurpose = "${callPurpose}";
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}");
// 공통 코드 // 공통 코드
var FIM021 = new CommonCodes(${FIM021}, true); var FIM021 = new CommonCodes(${FIM021}, true);
var FIM022 = new CommonCodes(${FIM022}, true); var FIM022 = new CommonCodes(${FIM022}, true);
// 호출 용도
var ${pageName}CallPurpose = "${callPurpose}";
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
@ -151,7 +151,7 @@
} }
/************************************************************************** /**************************************************************************
* * 사용자 함수
**************************************************************************/ **************************************************************************/
// 부과제외 구분에 따른 부과제외 사유 코드 설정 // 부과제외 구분에 따른 부과제외 사유 코드 설정
setFim021 = (seCode, rsnCode) => { 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}"); initDatepicker("frmEdit--${pageName}");
$("#levyExclYmd--${pageName}").datepicker("setDate", new Date()); $("#levyExclYmd--${pageName}").datepicker("setDate", new Date());
// 등록 // view 로 호출됐을 경우..
if (${pageName}CallPurpose == "view") { if (${pageName}CallPurpose == "view") {
$("btnSave--${pageName}").attr("disabled", true); $("btnSave--${pageName}").attr("disabled", true);
} else { } else {
@ -201,30 +217,14 @@
} }
} }
// 화면 데이터 셋팅 // 기본 데이터 설정
setForm${pageName} = () => { setFormData${pageName} = () => {
// 등록 // create 로 호출됐을 경우..
if (${pageName}CallPurpose == "create") { if (${pageName}CallPurpose == "create") {
$("#levyExclYmd--${pageName}").datepicker("setDate", new Date()); $("#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 진입 * script 진입
**************************************************************************/ **************************************************************************/
@ -235,11 +235,11 @@
// 화면 초기화 // 화면 초기화
initForm${pageName}(); initForm${pageName}();
// Dataset 셋팅 - 단건일 경우 setData // Dataset 설정
${pageName}Control.setData([${levyExclInfo}]); ${pageName}Control.setData([${levyExclInfo}]);
// 화면 데이터 셋팅 // 기본 데이터 설정
setForm${pageName}(); setFormData${pageName}();
}); });
</script> </script>

@ -13,7 +13,7 @@
<div> <div>
<!-- 상단 버튼 --> <!-- 상단 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnResetAndChangeBiz${pageName}();">
초기화 초기화
</button> </button>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
@ -157,6 +157,9 @@
<option value="mdfr">수정자</option> <option value="mdfr">수정자</option>
</select> </select>
<input type="text" class="form-control" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" /> <input type="text" class="form-control" id="schDetailRgtrNm--${pageName}" name="schDetailRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색" onclick="fnFindUser${pageName}();">
검색
</button>
</div> </div>
</div> </div>
</div> </div>
@ -175,14 +178,14 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnOpnnInfo--${pageName}" title="의견제출 정보" onclick="fnOpnnInfo${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnUpdateOpnn--${pageName}" title="수정" onclick="fnUpdateOpnn${pageName}();">
의견제출 정보 수정
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnOpnnDlbrInfo--${pageName}" title="심의 정보" onclick="fnOpnnDlbrInfo${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnUpdateDlbr--${pageName}" title="심의" onclick="fnUpdateDlbr${pageName}();">
심의 정보 심의
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnOpnnRemove--${pageName}" title="의견제출 삭제" onclick="fnOpnnRemove${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="삭제" onclick="fnRemove${pageName}();">
의견제출 삭제 삭제
</button> </button>
</span> </span>
</span> </span>
@ -302,10 +305,8 @@
, keymapper : info => info ? info.OPNN_ID : "" , keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsnList , dataGetter : obj => obj.opnnSbmsnList
, appendData : true , appendData : true
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , untilPageNum : 0 // 현재 페이지 번호
, urls : { , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
}
, formats : { , formats : {
RCPT_YMD : dateFormat RCPT_YMD : dateFormat
, ANS_YMD : dateFormat , ANS_YMD : dateFormat
@ -323,7 +324,7 @@
**************************************************************************/ **************************************************************************/
// Dataset 변경 // Dataset 변경
${pageName}Control.onDatasetChange = obj => { ${pageName}Control.onDatasetChange = obj => {
renderList${pageName}(); renderList${pageName}(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : ${pageName}Control.dataset list : ${pageName}Control.dataset
@ -334,7 +335,7 @@
, func : "${pageName}Control.load({index})" , 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())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
$("#btnOpnnRemove--${pageName}").prop("disabled", keys.length < 1); $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
}; };
// 개별총정보 dialog // 수정 dialog
${pageName}Control.getInfo = (crdnId) => { ${pageName}Control.getInfo = (params) => {
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (!params) return;
let params = { let dialogTitle = "";
callControlName : "${pageName}Control"
, crdnId : crdnId if (params.callPurpose == "create") {
dialogTitle = ${pageName}Control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = ${pageName}Control.prefixName + " 수정";
} else {
dialogTitle = ${pageName}Control.prefixName + " 정보";
} }
ajax.get({ ajax.get({
url : ${pageName}Control.urls.getInfo url : ${pageName}Control.urls.getInfo
, data : params , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : "totalInfoMainDialog" id : ${pageName}Control.prefixed("Dialog")
, title : "개별총정보" , title : dialogTitle
, content : resp , content : resp
, size : "xxl" , size : ${pageName}Control.infoSize
, onClose : () => { refreshList${pageName}(); } // 자료 재조회
}); });
} }
}); });
} }
// 삭제 callback // 삭제 callback
${pageName}Control.onRemove = (selected, resp) => { ${pageName}Control.onRemove = (resp) => {
let btnTitle = $("#btnOpnnRemove--${pageName}").attr("title"); let btnTitle = $("#btnRemove--${pageName}").attr("title");
let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); dialog.alert(showMessage);
// 자료 재조회
if (resp.saved) { 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 이벤트 // DataTables에 click, dbclick 이벤트
renderList${pageName} = () => { renderList${pageName} = (totalSize) => {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty; let empty = ${infoPrefix}List.empty;
@ -409,30 +428,57 @@
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str (str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("OPNN_ID") + "');") .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); $("th input[type='checkbox']").prop("checked", false);
//보안모드 //보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
} }
// 의견제출 정보 Dialog -> callback 추가 // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
getOpnnInfo${pageName} = (params) => { scrollDataList${pageName} = () => {
if (!params) return; ${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({ ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/020/info.do") url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do")
, data : params || {} , data : params
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : ${pageName}Control.prefixed("Dialog") id : "totalInfoMainDialog"
, title : ${pageName}Control.prefixName + " 정보" , title : "개별총정보"
, content : resp , content : resp
, size : ${pageName}Control.infoSize , size : "xxl"
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback
}); });
} }
}); });
@ -443,97 +489,42 @@
if (!params) return; if (!params) return;
ajax.get({ ajax.get({
url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/030/info.do") url : ${pageName}Control.urls.getDlbrInfo
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : ${pageName}Control.prefixed("SbmsnDialog") id : ${pageName}Control.prefixed("SbmsnDialog")
, title : ${pageName}Control.prefixName + " 심의 처리" , title : "의견제출 심의"
, content : resp , content : resp
, size : "lg" , size : "lg"
, onClose : () => { ${pageName}Control.load(${pageName}Control.query.pageNum); } // callback , onClose : () => { refreshList${pageName}(); } // 자료 재조회
}); });
} }
}); });
} }
/************************************************************************** // 삭제
* 초기 셋팅 callbackRemove${pageName} = (obj) => {
**************************************************************************/ let selected = ${pageName}Control.dataset.getKeys("selected");
// 초기화
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);
}
});
});
// DataTables width 변경 조정 if (selected.length < 1) return;
$("#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()) { // 서버에 전송할 data(파라미터) 생성
${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 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) => { refreshList${pageName} = () => {
// 업무 구분 코드 ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum;
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum;
// 최고 관리자 경우 업무구분을 선택할 수 있도록 하자.
$("#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());
}
// URL 설정 ${pageName}Control.load(1);
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"); // 삭제
} }
/************************************************************************** /**************************************************************************
@ -541,24 +532,19 @@
**************************************************************************/ **************************************************************************/
// 업무 구분 변경 // 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => { fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 초기화
initForm${pageName}();
// 업무 구분 코드 // 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
} }
// 화면 초기값 설정 // 초기 기본 설정
setForm${pageName}(taskSeCd); initForm${pageName}(taskSeCd);
// URL 설정 // URL 설정
setURL${pageName}(taskSeCd); setURL${pageName}(taskSeCd);
}
// 초기화 버튼 이벤트 // 기본 데이터 설정
fnReset${pageName} = () => { setFormData${pageName}();
fnResetAndChangeBiz${pageName}();
} }
// 검색 버튼 이벤트 // 검색 버튼 이벤트
@ -566,11 +552,10 @@
// 검색조건 // 검색조건
${pageName}Control.query = ${pageName}Fields.get(); ${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.delYn = "N"; // 삭제 여부 ${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.query.crdnDelYn = "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"); let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return // 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return; if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return;
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId : opnnId , opnnId : opnnId // 의견제출 ID
}; };
getOpnnInfo${pageName}(params); ${pageName}Control.getInfo(params);
} }
// 심의 버튼 이벤트 // 심의 버튼 클릭 이벤트
fnOpnnDlbrInfo${pageName} = () => { fnUpdateDlbr${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID"); let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
// 의견제출 ID 가 없다면.. return // 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return; if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return;
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId : opnnId , opnnId : opnnId // 의견제출 ID
}; };
getDlbrInfo${pageName}(params); getDlbrInfo${pageName}(params);
} }
// 삭제 버튼 이벤트 // 삭제 버튼 클릭 이벤트
fnOpnnRemove${pageName} = () => { fnRemove${pageName} = () => {
// 삭제 메세지 확인
dialog.alert({ dialog.alert({
content : "선택한 의견제출 정보를 삭제하시겠습니까?" content : "선택하신 " + ${pageName}Control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK : () => { , 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 진입 * script 진입
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// 기본 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();
// 보안모드 // 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
// 업무 구분 설정 // 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 설정
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val(); let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked", true);

@ -183,7 +183,7 @@
var ${pageName}CallPurpose = "${callPurpose}"; var ${pageName}CallPurpose = "${callPurpose}";
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}");
// 파일 리스트 // 파일 리스트
var $fileListArr = new Array(); 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.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"); ${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/update.do");
if (${pageName}CallPurpose == "create") { fnSearchFileList${pageName}(item.data.OPNN_ID); // 첨부파일 조회
$("#rcptNo--${pageName}").prop("readonly", true);
setForm${pageName}(); // 화면 초기화
} else {
fnSearchFileList${pageName}(item.data.OPNN_ID); // 첨부파일 조회
}
} }
/************************************************************************** /**************************************************************************
@ -221,7 +215,7 @@
// 저장 callback // 저장 callback
${pageName}Control.onSave = (resp) => { ${pageName}Control.onSave = (resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); 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); dialog.alert(showMessage);
@ -247,7 +241,6 @@
for (let key in info) { for (let key in info) {
let value = info[key]; let value = info[key];
formData.append(key, value); formData.append(key, value);
} }
@ -261,37 +254,13 @@
} }
/************************************************************************** /**************************************************************************
* 초기 셋팅 * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// 이벤트 설정 // callback 우편번호 검색 결과
setEvent${pageName} = () => { callbackZip${pageName} = (obj) => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 $("#sttrAddr--${pageName}").val(obj.ADDR); // 주소
$("#frmEdit--${pageName}").find(".form-date").each(function() { $("#sttrZip--${pageName}").val(obj.ZIP); // 우편번호
$(this).on("input",function() { $("#sttrDaddr--${pageName}").val(obj.DTL_ADDR); // 상세 주소
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} = () => {
} }
/************************************************************************** /**************************************************************************
@ -321,11 +290,10 @@
// 우편번호 검색 // 우편번호 검색
fnZip${pageName} = () => { fnZip${pageName} = () => {
let callbackFuncName = "fnZipReturn${pageName}"; let callbackFuncName = "callbackZip${pageName}";
let popupWidth = 900; let popupWidth = 900;
let popupHeight = 700; let popupHeight = 700;
let popupX = (window.screen.width / 2) - (popupWidth / 2); let popupX = (window.screen.width / 2) - (popupWidth / 2);
let popupY= (window.screen.height / 2) - (popupHeight / 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} = () => { fnSave${pageName} = () => {
// validate 확인 // 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) => { fnFileRemove${pageName} = (obj) => {
dialog.alert({ dialog.alert({
content : "선택한 파일을 삭제하시겠습니까?" content : "선택한 파일을 삭제하시겠습니까?"
, onOK : () => { , 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) => { fnFileDownload${pageName} = (fileID) => {
top.location.href = "/file/download.do?fileID=" + 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 진입 * script 진입
**************************************************************************/ **************************************************************************/
@ -482,13 +482,14 @@
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();
// 화면 초기값 셋팅 // 화면 초기 설정
initForm${pageName}(); initForm${pageName}();
${pageName}Control.setData([${opnnSbmsnInfo}]); // Dataset 셋팅 - 단건일 경우 setData // Dataset 설정
${pageName}Control.setData([${opnnSbmsnInfo}]);
// 화면 데이터 셋팅 // 화면 데이터 셋팅
setForm${pageName}(); setFormData${pageName}();
}); });
</script> </script>

@ -21,37 +21,37 @@
<!-- 접수 번호 --> <!-- 접수 번호 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수번호</label> <label for="rcptNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수번호</label>
<input type="text" class="form-control w-45" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" readonly /> <input type="text" class="form-control w-35" id="rcptNo--${pageName}" name="rcptNo" data-map="RCPT_NO" readonly />
</div> </div>
<!-- 접수 일자 --> <!-- 접수 일자 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수일자</label> <label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수일자</label>
<input type="text" class="form-control w-35" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD" readonly /> <input type="text" class="form-control w-25" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD" data-fmt-type="day" readonly />
</div> </div>
<!-- 진술자 이름 --> <!-- 진술자 이름 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="sttrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">성명</label> <label for="sttrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-45" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" readonly /> <input type="text" class="form-control w-35" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" readonly />
</div> </div>
<!-- 의견 제출 구분 코드 --> <!-- 의견 제출 구분 코드 -->
<div class="col-md-6"> <div class="col-md-6">
<label for="opnnSbmsnSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출구분</label> <label for="opnnSbmsnSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출구분</label>
<input type="text" class="form-control w-60" id="opnnSbmsnSeNm--${pageName}" name="opnnSbmsnSeNm" data-map="OPNN_SBMSN_SE_NM" readonly /> <input type="text" class="form-control w-50" id="opnnSbmsnSeNm--${pageName}" name="opnnSbmsnSeNm" data-map="OPNN_SBMSN_SE_NM" readonly />
</div> </div>
<!-- 의견 제출 요지 --> <!-- 의견 제출 요지 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="opnnSbmsnGist--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출요지</label> <label for="opnnSbmsnGist--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출요지</label>
<textarea class="form-control w-80" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" rows="2" data-maxlengthb="300" readonly></textarea> <textarea class="form-control w-85" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" rows="2" data-maxlengthb="300" readonly></textarea>
</div> </div>
<!-- 담당자 검토 의견 --> <!-- 담당자 검토 의견 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="picRvwOpnn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">검토의견</label> <label for="picRvwOpnn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">검토의견</label>
<textarea class="form-control w-80" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="5" data-maxlengthb="1000"></textarea> <textarea class="form-control w-85" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="5" data-maxlengthb="1000"></textarea>
</div> </div>
<!-- 문서 번호 --> <!-- 문서 번호 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="docNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">문서번호</label> <label for="docNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">문서번호</label>
<input type="text" class="form-control w-30" id="docNo--${pageName}" name="docNo" data-map="DOC_NO" /> <input type="text" class="form-control w-25" id="docNo--${pageName}" name="docNo" data-map="DOC_NO" />
</div> </div>
<!-- 통보 구분 코드 --> <!-- 통보 구분 코드 -->
<div class="col-md-6"> <div class="col-md-6">
@ -103,7 +103,7 @@
<!-- 답변 내용 --> <!-- 답변 내용 -->
<div class="col-md-12"> <div class="col-md-12">
<label for="ansCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">답변내용</label> <label for="ansCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">답변내용</label>
<textarea class="form-control w-80" id="ansCn--${pageName}" name="ansCn" data-map="ANS_CN" rows="5" data-maxlengthb="4000"></textarea> <textarea class="form-control w-85" id="ansCn--${pageName}" name="ansCn" data-map="ANS_CN" rows="5" data-maxlengthb="4000"></textarea>
</div> </div>
</div> </div>
</form> <!-- /입력 영역 --> </form> <!-- /입력 영역 -->
@ -129,6 +129,8 @@
**************************************************************************/ **************************************************************************/
// URL // URL
var ${pageName}PrefixUrl = "/excl/excl02"; var ${pageName}PrefixUrl = "/excl/excl02";
// 호출 용도
var ${pageName}CallPurpose = "${callPurpose}";
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}");
@ -158,7 +160,7 @@
// 저장 callback // 저장 callback
${pageName}Control.onSave = (resp) => { ${pageName}Control.onSave = (resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); 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); 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} = () => { initForm${pageName} = () => {
// 달력 초기화 // 달력 초기화
initDatepicker("frmEdit--${pageName}"); initDatepicker("frmEdit--${pageName}");
$("#ansYmd--${pageName}").datepicker("setDate", new Date()); $("#ansYmd--${pageName}").datepicker("setDate", new Date());
$("#ansTm--${pageName}").val(new Date().toTimeString().split(" ")[0]); $("#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() == "") { if ($("#ansYmd--${pageName}").val() == "") {
$("#ansYmd--${pageName}").datepicker("setDate", new Date()); $("#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 진입 * script 진입
**************************************************************************/ **************************************************************************/
@ -286,8 +296,8 @@
// Dataset 셋팅 - 단건일 경우 setData // Dataset 셋팅 - 단건일 경우 setData
${pageName}Control.setData([${opnnSbmsnInfo}]); ${pageName}Control.setData([${opnnSbmsnInfo}]);
// 화면 초기 설정 // 화면 데이터 셋팅
setForm${pageName}(); setFormData${pageName}();
fnChangeOpnnSbmsnSttsCd($("#opnnSbmsnSttsCd--${pageName}").val()); fnChangeOpnnSbmsnSttsCd($("#opnnSbmsnSttsCd--${pageName}").val());
}); });

@ -13,7 +13,7 @@
<div> <div>
<!-- 상단 버튼 --> <!-- 상단 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnReset${pageName}();"> <button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화" onclick="fnResetAndChangeBiz${pageName}();">
초기화 초기화
</button> </button>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
@ -142,8 +142,8 @@
</div> </div>
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnBfrCrdnTotalInfo--${pageName}" title="이전 단속정보" onclick="fnBfrCrdnTotalInfo${pageName}();"> <button type="button" class="btn btn-primary w-px-120" id="btnBfrCrdnTotalInfo--${pageName}" title="이전 단속 정보" onclick="fnBfrCrdnTotalInfo${pageName}();">
이전 단속정보 이전 단속 정보
</button> </button>
</span> </span>
</span> </span>
@ -235,6 +235,7 @@
, keymapper : info => info ? info.RE_REG_ID : "" , keymapper : info => info ? info.RE_REG_ID : ""
, dataGetter : obj => obj.crdnReRegList , dataGetter : obj => obj.crdnReRegList
, appendData : true , appendData : true
, untilPageNum : 0 // 현재 페이지 번호
, tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부
, urls : { , urls : {
getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보 getInfo : wctx.url("/sprt/sprt02/010/main.do") // 개별총정보
@ -253,7 +254,7 @@
**************************************************************************/ **************************************************************************/
// Dataset 변경 이벤트 // Dataset 변경 이벤트
${pageName}Control.onDatasetChange = obj => { ${pageName}Control.onDatasetChange = obj => {
renderList${pageName}(); renderList${pageName}(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : ${pageName}Control.dataset list : ${pageName}Control.dataset
@ -308,10 +309,10 @@
} }
/************************************************************************** /**************************************************************************
* * DataTables 이벤트
**************************************************************************/ **************************************************************************/
// DataTables에 click, dbclick 이벤트 // DataTables에 click, dbclick 이벤트
renderList${pageName} = () => { renderList${pageName} = (totalSize) => {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty; let empty = ${infoPrefix}List.empty;
@ -324,90 +325,40 @@
.replace(/{ondblclick}/gi, "${pageName}Control.getInfo('" + dataItem.getValue("CRDN_ID") + "');") .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); $("th input[type='checkbox']").prop("checked", false);
//보안모드 //보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));
} }
/************************************************************************** // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
* 초기 셋팅 scrollDataList${pageName} = () => {
**************************************************************************/ ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false
// 초기화
initForm${pageName} = () => {
// 화면 초기화
$("#frmSearch--${pageName}")[0].reset();
// dataset 초기화 ${pageName}Control.load(${pageName}Control.query.pageNum + 1);
${pageName}Control.dataset.clear();
} }
// 이벤트 /**************************************************************************
setEvent${pageName} = () => { * 사용자 함수(function)
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 **************************************************************************/
$("#frmSearch--${pageName}").find(".form-date").each(function() { // 검색 자료 재조회
$(this).on("input", function() { refreshList${pageName} = () => {
let value = this.value.replaceAll("-", ""); ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum;
${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum;
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());
}
// URL 설정 ${pageName}Control.load(1);
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"); // 등록
} }
/************************************************************************** /**************************************************************************
@ -415,24 +366,19 @@
**************************************************************************/ **************************************************************************/
// 업무 구분 변경 // 업무 구분 변경
fnResetAndChangeBiz${pageName} = (taskSeCd) => { fnResetAndChangeBiz${pageName} = (taskSeCd) => {
// 초기화
initForm${pageName}();
// 업무 구분 코드 // 업무 구분 코드
if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") {
taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val();
} }
// 초기 설정 // 초기 기본 설정
setForm${pageName}(taskSeCd); initForm${pageName}(taskSeCd);
// URL 설정 // URL 설정
setURL${pageName}(taskSeCd); setURL${pageName}(taskSeCd);
}
// 초기화 버튼 이벤트 // 기본 데이터 설정
fnReset${pageName} = () => { setFormData${pageName}();
fnResetAndChangeBiz${pageName}();
} }
// 검색 버튼 이벤트 // 검색 버튼 이벤트
@ -440,11 +386,10 @@
// 검색조건 // 검색조건
${pageName}Control.query = ${pageName}Fields.get(); ${pageName}Control.query = ${pageName}Fields.get();
${pageName}Control.query.fetchSize = FETCH_XS; // 한번에 조회되는 자료 건수 FETCH_XS = 30 ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 한번에 조회되는 자료 건수 FETCH_XS = 30
${pageName}Control.query.delYn = "N"; // 삭제 여부 ${pageName}Control.query.delYn = "N"; // 삭제 여부
${pageName}Control.query.crdnDelYn = "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"); let bfrCrdnId = ${pageName}Control.dataset.getValue("BFR_CRDN_ID");
// 이전 단속 ID 가 없다면.. return // 이전 단속 ID 가 없다면.. return
@ -463,6 +413,73 @@
${pageName}Control.getInfo(bfrCrdnId, "noControlName"); ${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 진입 * script 진입
**************************************************************************/ **************************************************************************/

@ -596,7 +596,7 @@
} }
/************************************************************************** /**************************************************************************
* function * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// 민원 원본 보기 // 민원 원본 보기
viewCvlcptOrgnl${pageName} = (params) => { viewCvlcptOrgnl${pageName} = (params) => {
@ -714,15 +714,15 @@
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = { let params = {
callPurpose : "refresh" callPurpose : "refresh"
, crdnId : crdnId , crdnId : crdnId
, sggCd : $("#sggCd--${pageNameMain}").val() , sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : $("#taskSeCd--${pageNameMain}").val() , taskSeCd : $("#taskSeCd--${pageNameMain}").val()
, delYn : "N" , delYn : "N"
}; };
ajax.get({ 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 , headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {} , data : params || {}
, success : resp => { , 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 * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
@ -958,10 +838,10 @@
if (typeof bfrCrdnId == "undefined" || bfrCrdnId == null || bfrCrdnId == "") return; if (typeof bfrCrdnId == "undefined" || bfrCrdnId == null || bfrCrdnId == "") return;
let params = { let params = {
callPurpose : "create" callPurpose : "create"
, bfrCrdnId : bfrCrdnId // 단속 ID , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , bfrCrdnId : bfrCrdnId // 단속 ID
}; };
dialog.alert({ dialog.alert({
@ -985,10 +865,10 @@
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
}; };
getInfoCrdnSttsCd${pageName}(params); getInfoCrdnSttsCd${pageName}(params);
@ -1002,12 +882,12 @@
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID , rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID
, delYn : "N" , delYn : "N"
}; };
dialog.alert({ dialog.alert({
@ -1026,36 +906,154 @@
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, crdnId : crdnId // 단속 ID , crdnId : crdnId // 단속 ID
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID , rtpyrId : ${pageName}Control.dataset.getValue("RTPYR_ID") // 납부자 ID
, vhrno : ${pageName}Control.dataset.getValue("VHRNO") // 차량번호 , vhrno : ${pageName}Control.dataset.getValue("VHRNO") // 차량번호
, rtpyrInptSeCd : "01" // 납부자 입력 구분 코드 , rtpyrInptSeCd : "01" // 납부자 입력 구분 코드
, delYn : "N" , delYn : "N"
}; };
updatePayer${pageName}(params); 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 진입 * script 진입
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// 화면 초기 설정
initForm${pageName}();
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();
// 화면 초기 설정 // 화면 초기 설정
setForm${pageName}(); initForm${pageName}();
let crdnPayerInfo = ${crdnPayer}; // 단속, 납부자 정보 Dataset 설정
${pageName}Control.setData([${crdnPayer}]);
// Dataset 셋팅 // 화면 데이터 셋팅
${pageName}Control.setData([crdnPayerInfo]); setFormData${pageName}();
// 이미지 정보를 파일 배열에 셋팅 // 이미지 정보를 파일 배열에 셋팅
existFileArr${pageName} = []; // 파일 배열 초기화 existFileArr${pageName} = []; // 파일 배열 초기화

@ -217,6 +217,8 @@
**************************************************************************/ **************************************************************************/
// 의견제출 dialog // 의견제출 dialog
${pageName}Control.getInfo = (params) => { ${pageName}Control.getInfo = (params) => {
if (!params) return;
let dialogTitle = ""; let dialogTitle = "";
if (params.callPurpose == "create") { if (params.callPurpose == "create") {
@ -224,7 +226,7 @@
} else if (params.callPurpose == "update") { } else if (params.callPurpose == "update") {
dialogTitle = ${pageName}Control.prefixName + " 수정"; dialogTitle = ${pageName}Control.prefixName + " 수정";
} else { } else {
return; dialogTitle = ${pageName}Control.prefixName + " 정보";
} }
ajax.get({ ajax.get({
@ -232,8 +234,8 @@
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
if ((typeof resp) != "string") { if ((typeof resp) != "string") {
if (resp.retMessage != "") { if (resp.rtnMsg != "") {
dialog.alert(resp.retMessage); dialog.alert(resp.rtnMsg);
return; return;
} }
} }
@ -266,7 +268,7 @@
} }
/************************************************************************** /**************************************************************************
* function * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// 심의의결서 출력 // 심의의결서 출력
getOpnnDlbrDecsnForm${pageName} = (params) => { getOpnnDlbrDecsnForm${pageName} = (params) => {
@ -300,7 +302,7 @@
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : ${pageName}Control.prefixed("SbmsnDialog") id : ${pageName}Control.prefixed("SbmsnDialog")
, title : ${pageName}Control.prefixName + " 심의 처리" , title : "의견제출 심의"
, content : resp , content : resp
, size : "lg" , size : "lg"
, onClose : () => { refreshDataInfo${pageName}(); } // callback 자료 조회 , onClose : () => { refreshDataInfo${pageName}(); } // callback 자료 조회
@ -312,24 +314,20 @@
// 자료 재조회 // 자료 재조회
refreshDataInfo${pageName} = () => { refreshDataInfo${pageName} = () => {
let crdnId = $("#crdnId--${pageNameMain}").val(); let crdnId = $("#crdnId--${pageNameMain}").val();
let sggCd = $("#sggCd--${pageNameMain}").val();
let taskSeCd = $("#taskSeCd--${pageNameMain}").val();
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
if (crdnId == null || crdnId == "") { if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
return;
}
let params = { let params = {
callPurpose : "refresh" callPurpose : "refresh"
, crdnId : crdnId , crdnId : crdnId
, sggCd : sggCd , sggCd : $("#sggCd--${pageNameMain}").val()
, taskSeCd : taskSeCd , taskSeCd : $("#taskSeCd--${pageNameMain}").val()
, delYn : "N" , delYn : "N"
}; };
ajax.get({ 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 , headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {} , data : params || {}
, success : resp => { , 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 * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
@ -408,7 +375,6 @@
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") // 단속 ID
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId : opnnId , opnnId : opnnId
@ -429,7 +395,6 @@
let params = { let params = {
callPurpose : "remove" callPurpose : "remove"
, crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") // 단속 ID
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId : opnnId // 의견제출 ID , opnnId : opnnId // 의견제출 ID
@ -443,7 +408,7 @@
}); });
} }
// 심의의결서출력 버튼 이벤트 // 심의의결서 출력 버튼 이벤트
fnPrintDlbrtLtfr${pageName} = () => { fnPrintDlbrtLtfr${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID"); let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
@ -451,16 +416,16 @@
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return; if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return;
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnIDs : opnnId // 의견제출 ID , opnnIDs : opnnId // 의견제출 ID
}; };
getOpnnDlbrDecsnForm${pageName}(params); getOpnnDlbrDecsnForm${pageName}(params);
} }
// 의견제출심의 버튼 이벤트 // 의견제출 심의 버튼 이벤트
fnUpdateOpnnSbmsnDlbrt${pageName} = () => { fnUpdateOpnnSbmsnDlbrt${pageName} = () => {
let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID"); let opnnId = ${pageName}Control.dataset.getValue("OPNN_ID");
@ -468,11 +433,10 @@
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return; if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return;
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, crdnId : ${pageName}Control.dataset.getValue("CRDN_ID") // 단속 ID , sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , opnnId : opnnId // 의견제출 ID
, opnnId : opnnId // 의견제출 ID
}; };
getOpnnSbmsnDlbrtInfo${pageName}(params); getOpnnSbmsnDlbrtInfo${pageName}(params);
@ -534,24 +498,63 @@
top.location.href = "/file/download.do?fileID=" + fileID; 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 진입 * script 진입
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// 화면 초기화
initForm${pageName}();
// 이벤트 설정 // 이벤트 설정
setEvent${pageName}(); setEvent${pageName}();
// 화면 초기값 설정 // 화면 초기 설정
setForm${pageName}(); initForm${pageName}();
// 의견제출 정보 Data 셋팅 // 의견제출 정보 Dataset 설정
let opnnSbmsn = ${opnnSbmsn}; let opnnSbmsn = ${opnnSbmsn};
if (opnnSbmsn) { if (opnnSbmsn) {
${pageName}Control.setData([opnnSbmsn]); ${pageName}Control.setData([opnnSbmsn]);
} }
// 화면 데이터 셋팅
setFormData${pageName}();
}); });
</script> </script>

Loading…
Cancel
Save