업무지원 - 민원상담 수정.

main
jjh 5 months ago
parent f51182404d
commit 00fc87b978

@ -82,9 +82,15 @@ public class CvlcptDscsn extends AbstractEntity {
*/ */
private String delRsn; private String delRsn;
/**
* Ids
*/
private String[] cvlcptDscsnIds;
/** /**
* ID * ID
*/ */
private String rtpyrId; private String rtpyrId;
} }

@ -17,28 +17,28 @@ public class CvlcptDscsnQuery extends CmmnQuery {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
// ID // ID
private String cvlcptDscsnId; // 민원 상담 ID private String[] cvlcptDscsnIds; // 민원 상담 Ids
private String[] cvlcptDscsnIDs; // 민원 상담 IDs private String cvlcptDscsnId; // 민원 상담 ID
private String crdnId; // 단속 ID private String crdnId; // 단속 ID
// 검색 조건 // 검색 조건
private String schDscsnYmdFrom; // 상담 일자 시작 private String schDscsnYmdFrom; // 상담 일자 시작
private String schDscsnYmdTo; // 상담 일자 종료 private String schDscsnYmdTo; // 상담 일자 종료
private String schVhrno; // 차량번호 private String schVhrno; // 차량번호
private String schCvlprNm; // 민원인 명 private String schCvlprNm; // 민원인 명
private String schRtpyrNo; // 납부자 번호 private String schRtpyrNo; // 납부자 번호
// 상세 검색 조건 // 상세 검색 조건
// 동적 검색 조건 // 동적 검색 조건
private String inquiryCondition; private String inquiryCondition;
private String cvlcptRcptSeCd; // 민원 접수 구분 코드 private String cvlcptRcptSeCd; // 민원 접수 구분 코드
private String vhrno; // 차량번호 private String vhrno; // 차량번호
private String rtpyrNo; // 납부자 번호 private String rtpyrNo; // 납부자 번호
private String dscsnYmd; // 상담 일자 private String dscsnYmd; // 상담 일자
private String weekNm; // 요일 명 private String weekNm; // 요일 명
private String cvlprNm; // 민원인 명 private String cvlprNm; // 민원인 명
private String cvlprCttpc; // 민원인 연락처 private String cvlprCttpc; // 민원인 연락처
private String dscsnCn; // 상담 내용 private String dscsnCn; // 상담 내용
// ETC // ETC
private String callPurpose; // 자료 조회시 호출용도. (view 조회, create 등록, update 수정, refresh 재조회) private String callPurpose; // 자료 조회시 호출용도. (view 조회, create 등록, update 수정, refresh 재조회)
@ -53,12 +53,12 @@ public class CvlcptDscsnQuery extends CmmnQuery {
return self(); return self();
} }
public String[] getCvlcptDscsnIDs() { public String[] getCvlcptDscsnIds() {
return ifEmpty(cvlcptDscsnIDs, () -> null); return ifEmpty(cvlcptDscsnIds, () -> null);
} }
public <T extends CvlcptDscsnQuery> T setCvlcptDscsnIDs(String... cvlcptDscsnIDs) { public <T extends CvlcptDscsnQuery> T setCvlcptDscsnIds(String... cvlcptDscsnIds) {
this.cvlcptDscsnIDs = cvlcptDscsnIDs; this.cvlcptDscsnIds = cvlcptDscsnIds;
return self(); return self();
} }

@ -1,14 +1,13 @@
package cokr.xit.fims.sprt.dao; package cokr.xit.fims.sprt.dao;
import java.util.List; import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper; import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.sprt.CvlcptDscsn; import cokr.xit.fims.sprt.CvlcptDscsn;
import cokr.xit.fims.sprt.CvlcptDscsnQuery; import cokr.xit.fims.sprt.CvlcptDscsnQuery;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
/** - DAO /** - DAO
* *
@ -62,18 +61,7 @@ public interface CvlcptDscsnMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int insertCvlcptDscsn(Map<String, Object> params); int insertCvlcptDscsn(CvlcptDscsn cvlcptDscsn);
/** .
* @param cvlcptDscsn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(CvlcptDscsn cvlcptDscsn) {
return cvlcptDscsn != null && insertCvlcptDscsn(params().set("cvlcptDscsn", cvlcptDscsn)) == 1;
}
/** . /** .
* @param params * @param params
@ -82,18 +70,7 @@ public interface CvlcptDscsnMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int updateCvlcptDscsn(Map<String, Object> params); int updateCvlcptDscsn(CvlcptDscsn cvlcptDscsn);
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(CvlcptDscsn cvlcptDscsn) {
return cvlcptDscsn != null && updateCvlcptDscsn(params().set("cvlcptDscsn", cvlcptDscsn)) == 1;
}
/** . /** .
* @param params * @param params
@ -102,18 +79,7 @@ public interface CvlcptDscsnMapper extends AbstractMapper {
* </ul> * </ul>
* @return * @return
*/ */
int deleteCvlcptDscsn(Map<String, ?> params); int deleteCvlcptDscsn(CvlcptDscsn cvlcptDscsn);
/** .
* @param cvlcptDscsnCn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(CvlcptDscsn cvlcptDscsn) {
return cvlcptDscsn != null && deleteCvlcptDscsn(params().set("cvlcptDscsn", cvlcptDscsn)) == 1;
}
/** ID . /** ID .
* @param crdnId ID * @param crdnId ID
@ -121,5 +87,4 @@ public interface CvlcptDscsnMapper extends AbstractMapper {
*/ */
DataObject selectCrdn(CvlcptDscsnQuery req); DataObject selectCrdn(CvlcptDscsnQuery req);
} }

@ -60,15 +60,6 @@ public interface CvlcptDscsnService {
*/ */
String updateCvlcptDscsn(CvlcptDscsn cvlcptDscsnCn); String updateCvlcptDscsn(CvlcptDscsn cvlcptDscsnCn);
/** .
* @param req
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String removeCvlcptDscsnList(CvlcptDscsnQuery req);
/** . /** .
* @param cvlcptDscsnCn * @param cvlcptDscsnCn
* @return * @return

@ -6,6 +6,7 @@ import javax.annotation.Resource;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import cokr.xit.fims.cmmn.CmmnUtil;
import cokr.xit.fims.sprt.CvlcptDscsn; import cokr.xit.fims.sprt.CvlcptDscsn;
import cokr.xit.fims.sprt.CvlcptDscsnQuery; import cokr.xit.fims.sprt.CvlcptDscsnQuery;
import cokr.xit.fims.sprt.dao.CvlcptDscsnMapper; import cokr.xit.fims.sprt.dao.CvlcptDscsnMapper;
@ -34,11 +35,17 @@ public class CvlcptDscsnBean extends AbstractBean {
* @return * @return
*/ */
public List<DataObject> getCvlcptDscsnList(CvlcptDscsnQuery req) { public List<DataObject> getCvlcptDscsnList(CvlcptDscsnQuery req) {
// 삭제 여부 확인
if (req.getDelYn() == null) { if (req.getDelYn() == null) {
req.setDelYn("N"); req.setDelYn("N");
} }
// 정렬 확인
if (req.getOrderBy() == null) { if (req.getOrderBy() == null) {
req.setOrderBy("REG_DT"); if (req.getBy() == null) {
req.setOrderBy("REG_DT");
} else {
req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
}
} }
return cvlcptDscsnMapper.selectCvlcptDscsnList(req); return cvlcptDscsnMapper.selectCvlcptDscsnList(req);
@ -49,6 +56,11 @@ public class CvlcptDscsnBean extends AbstractBean {
* @return * @return
*/ */
public List<DataObject> getCvlcptDscsns(CvlcptDscsnQuery req) { public List<DataObject> getCvlcptDscsns(CvlcptDscsnQuery req) {
// 삭제 여부 확인
if (req.getDelYn() == null) {
req.setDelYn("N");
}
// 정렬 확인
if (req.getOrderBy() == null) { if (req.getOrderBy() == null) {
req.setOrderBy("CD.CVLCPT_DSCSN_ID DESC"); req.setOrderBy("CD.CVLCPT_DSCSN_ID DESC");
} }
@ -61,10 +73,6 @@ public class CvlcptDscsnBean extends AbstractBean {
* @return * @return
*/ */
public DataObject getCvlcptDscsnNocs(CvlcptDscsnQuery req) { public DataObject getCvlcptDscsnNocs(CvlcptDscsnQuery req) {
if (req.getOrderBy() == null) {
req.setOrderBy("CD.CVLCPT_DSCSN_ID DESC");
}
return cvlcptDscsnMapper.selectCvlcptDscsnNocs(req); return cvlcptDscsnMapper.selectCvlcptDscsnNocs(req);
} }
@ -84,10 +92,7 @@ public class CvlcptDscsnBean extends AbstractBean {
* </ul> * </ul>
*/ */
public String createCvlcptDscsn(CvlcptDscsn cvlcptDscsn) { public String createCvlcptDscsn(CvlcptDscsn cvlcptDscsn) {
// 변수 선언 //
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
if (cvlcptDscsn.getCvlcptRcptSeCd().equals("01")) { if (cvlcptDscsn.getCvlcptRcptSeCd().equals("01")) {
cvlcptDscsn.setVhrno(null); cvlcptDscsn.setVhrno(null);
cvlcptDscsn.setRtpyrNo(null); cvlcptDscsn.setRtpyrNo(null);
@ -97,15 +102,13 @@ public class CvlcptDscsnBean extends AbstractBean {
cvlcptDscsn.setVhrno(null); cvlcptDscsn.setVhrno(null);
} }
rtnScs = cvlcptDscsnMapper.insert(cvlcptDscsn); // 민원상담(TB_CVLCPT_DSCSN) 대장을 등록 한다.
if (!rtnScs) { int rtnNocs = cvlcptDscsnMapper.insertCvlcptDscsn(cvlcptDscsn);
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback if (rtnNocs != 1) {
throw new RuntimeException("민원상담내용 대장 등록에 실패하였습니다."); throw new RuntimeException("민원상담내용 대장 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
/** . /** .
@ -116,19 +119,13 @@ public class CvlcptDscsnBean extends AbstractBean {
* </ul> * </ul>
*/ */
public String updateCvlcptDscsn(CvlcptDscsn cvlcptDscsn) { public String updateCvlcptDscsn(CvlcptDscsn cvlcptDscsn) {
// 변수 선언 // 민원상담(TB_CVLCPT_DSCSN) 대장을 수정 한다.
boolean rtnScs = false; // DB 처리 결과 int rtnNocs = cvlcptDscsnMapper.updateCvlcptDscsn(cvlcptDscsn);
String rtnMsg = "[F] "; // 처리 결과 메시지 if (rtnNocs != 1) {
throw new RuntimeException("민원상담내용 대장 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
rtnScs = cvlcptDscsnMapper.update(cvlcptDscsn);
if (!rtnScs) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("민원상담내용 대장 수정에 실패하였습니다.");
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
/** . /** .
@ -139,19 +136,13 @@ public class CvlcptDscsnBean extends AbstractBean {
* </ul> * </ul>
*/ */
public String removeCvlcptDscsn(CvlcptDscsn cvlcptDscsn) { public String removeCvlcptDscsn(CvlcptDscsn cvlcptDscsn) {
// 변수 선언 // 민원상담(TB_CVLCPT_DSCSN) 대장을 삭제 한다.
boolean rtnScs = false; // DB 처리 결과 int rtnNocs = cvlcptDscsnMapper.deleteCvlcptDscsn(cvlcptDscsn);
String rtnMsg = "[F] "; // 처리 결과 메시지 if (rtnNocs < 1) {
throw new RuntimeException("민원상담내용 대장 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
rtnScs = cvlcptDscsnMapper.delete(cvlcptDscsn);
if (!rtnScs) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("민원상담내용 대장 삭제에 실패하였습니다.");
} }
rtnMsg = "[S] 작업이 정상 처리 되었습니다."; return "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
} }
/** ID .<br /> /** ID .<br />

@ -63,35 +63,6 @@ public class CvlcptDscsnServiceBean extends AbstractServiceBean implements Cvlcp
return cvlcptDscsnBean.updateCvlcptDscsn(cvlcptDscsn); return cvlcptDscsnBean.updateCvlcptDscsn(cvlcptDscsn);
} }
@Override
public String removeCvlcptDscsnList(CvlcptDscsnQuery req) {
// 변수 선언
String rtnMsg = ""; // 처리 결과 메시지
// 민원 상담 IDs 건수를 확인하여 1건이하면.. 종료
if (req.getCvlcptDscsnIDs().length < 1) {
rtnMsg = "작업 중 선택 자료가 존재하지 않습니다.";
return rtnMsg;
}
// 민원 상담 IDs 만큼 반복..
for (int iLoop = 0; iLoop < req.getCvlcptDscsnIDs().length; iLoop++) {
CvlcptDscsn cvlcptDscsn = new CvlcptDscsn();
cvlcptDscsn.setCvlcptDscsnId(req.getCvlcptDscsnIDs()[iLoop]); // 민원 상담 ID
cvlcptDscsn.setDelRsn(req.getDelRsn()); // 삭제 사유
// 부과제외 삭제 호출
rtnMsg = cvlcptDscsnBean.removeCvlcptDscsn(cvlcptDscsn);
// 오류가 발생하였으면 종료..
if (rtnMsg.contains("[F]")) {
return rtnMsg;
}
}
return rtnMsg;
}
@Override @Override
public String removeCvlcptDscsn(CvlcptDscsn cvlcptDscsn) { public String removeCvlcptDscsn(CvlcptDscsn cvlcptDscsn) {
return cvlcptDscsnBean.removeCvlcptDscsn(cvlcptDscsn); return cvlcptDscsnBean.removeCvlcptDscsn(cvlcptDscsn);

@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -46,14 +47,13 @@ public class Sprt04Controller extends ApplicationController {
public class METHOD_URL { public class METHOD_URL {
public static final String public static final String
civilComplaintDiscussionMain = "/010/main.do" // 민원 상담 관리 메인 화면 civilComplaintDiscussionMain = "/010/main.do" // 민원 상담 관리 메인 화면
, getCvlcptDscsnList = "/010/list.do" // 민원 상담 내용 대장 목록 조회 , getCvlcptDscsnList = "/010/list.do" // 민원 상담 내용 대장 목록 조회
, getCvlcptDscsnNocs = "/010/nocs.do" // 민원 상담 내용 건수 조회 , getCvlcptDscsnNocs = "/010/nocs.do" // 민원 상담 내용 건수 조회
, getCvlcptDscsnInfo = "/020/info.do" // 민원 상담 내용 정보 조회 , getCvlcptDscsnInfo = "/020/info.do" // 민원 상담 내용 정보 조회
, createCvlcptDscsn = "/020/create.do" // 민원 상담 내용 대장 등럭 , createCvlcptDscsn = "/020/create.do" // 민원 상담 내용 대장 등럭
, updateCvlcptDscsn = "/020/update.do" // 민원 상담 내용 대장 수정 , updateCvlcptDscsn = "/020/update.do" // 민원 상담 내용 대장 수정
, removeCvlcptDscsnList = "/010/removes.do" // 민원 상담 내용 대장 목록 삭제 , removeCvlcptDscsn = "/010/remove.do" // 민원 상담 내용 대장 삭제
, removeCvlcptDscsn = "/010/remove.do" // 민원 상담 내용 대장 삭제
; ;
} }
@ -70,7 +70,6 @@ public class Sprt04Controller extends ApplicationController {
*/ */
@RequestMapping(name="민원 상담 내용 메인", value="/010/main.do") @RequestMapping(name="민원 상담 내용 메인", value="/010/main.do")
public ModelAndView civilComplaintDiscussionMain() { public ModelAndView civilComplaintDiscussionMain() {
// View(jsp)
ModelAndView mav = new ModelAndView("fims/sprt/sprt04010-main"); ModelAndView mav = new ModelAndView("fims/sprt/sprt04010-main");
// 사용자 정보 // 사용자 정보
@ -81,9 +80,9 @@ public class Sprt04Controller extends ApplicationController {
return mav.addObject("pageName", "sprt04010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix return mav.addObject("pageName", "sprt04010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "cvlcptDscsn") // prefix .addObject("infoPrefix", "cvlcptDscsn") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD) .addObject("sggCd", managedUser.getOrgID()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) .addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054")))
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
; ;
} }
@ -155,7 +154,6 @@ public class Sprt04Controller extends ApplicationController {
@Task @Task
@RequestMapping(name="민원 상담 대장 건수 조회", value=METHOD_URL.getCvlcptDscsnNocs) @RequestMapping(name="민원 상담 대장 건수 조회", value=METHOD_URL.getCvlcptDscsnNocs)
public ModelAndView getCvlcptDscsnNocs(CvlcptDscsnQuery req) { public ModelAndView getCvlcptDscsnNocs(CvlcptDscsnQuery req) {
//
DataObject result = cvlcptDscsnService.getCvlcptDscsnNocs(req); DataObject result = cvlcptDscsnService.getCvlcptDscsnNocs(req);
boolean json = jsonResponse(); boolean json = jsonResponse();
@ -173,20 +171,21 @@ public class Sprt04Controller extends ApplicationController {
*/ */
@Task @Task
@RequestMapping(name="민원 상담 정보 조회", value=METHOD_URL.getCvlcptDscsnInfo) @RequestMapping(name="민원 상담 정보 조회", value=METHOD_URL.getCvlcptDscsnInfo)
public ModelAndView getCvlcptDscsnInfo(CvlcptDscsnQuery req) { public ModelAndView getCvlcptDscsnInfo(HttpServletRequest hReq, CvlcptDscsnQuery req) {
DataObject cvlcptDscsnInfo = cvlcptDscsnService.getCvlcptDscsnInfo(req); DataObject cvlcptDscsnInfo = cvlcptDscsnService.getCvlcptDscsnInfo(req);
boolean json = jsonResponse(); boolean json = jsonResponse();
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sprt/sprt04020-info"); ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/sprt/sprt04020-info");
// View(jsp)에서 사용할 공통코드를 조회 // View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM065"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM065");
return mav return mav
.addObject("pageName", "sprt04020") // .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("FIM065List", commonCodes.get("FIM065")) // 민원 접수 구분 코드(CVLCPT_RCPT_SE_CD) .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("pageName", "sprt04020") //
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("FIM065List", commonCodes.get("FIM065")) // 민원 접수 구분 코드(CVLCPT_RCPT_SE_CD)
.addObject("cvlcptDscsnInfo", json ? cvlcptDscsnInfo : toJson(cvlcptDscsnInfo)) // 민원 상담 정보 .addObject("cvlcptDscsnInfo", json ? cvlcptDscsnInfo : toJson(cvlcptDscsnInfo)) // 민원 상담 정보
; ;
} }
@ -239,31 +238,6 @@ public class Sprt04Controller extends ApplicationController {
.addObject("rtnMsg", rtnMsg); .addObject("rtnMsg", rtnMsg);
} }
/** .
* @param cvlcptDscsnIDs s
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@Task
@RequestMapping(name="민원 상담 대장 목록 삭제", value=METHOD_URL.removeCvlcptDscsnList)
public ModelAndView removeCvlcptDscsnList(CvlcptDscsnQuery req) {
boolean saved = false;
String rtnMsg = cvlcptDscsnService.removeCvlcptDscsnList(req);
if (rtnMsg.contains("[S]")) {
saved = true;
} else {
saved = false;
}
return new ModelAndView("jsonView")
.addObject("saved", saved)
.addObject("rtnMsg", rtnMsg);
}
/** . /** .
* @param cvlcptDscsnId * @param cvlcptDscsnId
* @return jsonView * @return jsonView

@ -31,30 +31,30 @@
</resultMap> </resultMap>
<sql id="select"> <sql id="select">
SELECT CD.CVLCPT_DSCSN_ID <!-- 민원 상담 ID --> SELECT CD.CVLCPT_DSCSN_ID <!-- 민원 상담 ID -->
, CD.SGG_CD <!-- 시군구 코드 --> , CD.SGG_CD <!-- 시군구 코드 -->
, CD.TASK_SE_CD <!-- 업무 구분 코드 --> , CD.TASK_SE_CD <!-- 업무 구분 코드 -->
, CD.CVLCPT_RCPT_SE_CD <!-- 민원 접수 구분 코드 --> , CD.CVLCPT_RCPT_SE_CD <!-- 민원 접수 구분 코드 -->
, CD.CRDN_ID <!-- 단속 ID -->
, CD.VHRNO <!-- 차량번호 -->
, CD.RTPYR_NO <!-- 납부자 번호 -->
, CD.DSCSN_YMD <!-- 상담 일자 -->
, CD.WEEK_NM <!-- 요일 명 -->
, CD.CVLPR_NM <!-- 민원인 명 -->
, CD.CVLPR_CTTPC <!-- 민원인 연락처 -->
, CD.DSCSN_CN <!-- 상담 내용 -->
, CD.DEL_YN <!-- 삭제 여부 -->
, CD.REG_DT <!-- 등록 일시 -->
, CD.RGTR <!-- 등록자 -->
, CD.MDFCN_DT <!-- 수정 일시 -->
, CD.MDFR <!-- 수정자 -->
, CD.DEL_DT <!-- 삭제 일시 -->
, CD.DLTR <!-- 삭제자 -->
, CD.DEL_RSN <!-- 삭제 사유 -->
, (SELECT GET_CODE_NM('FIM065', CD.CVLCPT_RCPT_SE_CD) FROM DUAL) AS CVLCPT_RCPT_SE_NM <!-- 민원 접수 구분 명 --> , (SELECT GET_CODE_NM('FIM065', CD.CVLCPT_RCPT_SE_CD) FROM DUAL) AS CVLCPT_RCPT_SE_NM <!-- 민원 접수 구분 명 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CD.RGTR) AS RGTR_NM <!-- 등록자 명 --> , CD.CRDN_ID <!-- 단속 ID -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CD.MDFR) AS MDFR_NM <!-- 수정자 명 --> , CD.VHRNO <!-- 차량번호 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CD.DLTR) AS DLTR_NM <!-- 삭제자 명 --> , CD.RTPYR_NO <!-- 납부자 번호 -->
, CD.DSCSN_YMD <!-- 상담 일자 -->
, CD.WEEK_NM <!-- 요일 명 -->
, CD.CVLPR_NM <!-- 민원인 명 -->
, CD.CVLPR_CTTPC <!-- 민원인 연락처 -->
, CD.DSCSN_CN <!-- 상담 내용 -->
, CD.DEL_YN <!-- 삭제 여부 -->
, CD.REG_DT <!-- 등록 일시 -->
, CD.RGTR <!-- 등록자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CD.RGTR) AS RGTR_NM <!-- 등록자 명 -->
, CD.MDFCN_DT <!-- 수정 일시 -->
, CD.MDFR <!-- 수정자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CD.MDFR) AS MDFR_NM <!-- 수정자 명 -->
, CD.DEL_DT <!-- 삭제 일시 -->
, CD.DLTR <!-- 삭제자 -->
, (SELECT USER_NM FROM TB_USER X WHERE X.USER_ID = CD.DLTR) AS DLTR_NM <!-- 삭제자 명 -->
, CD.DEL_RSN <!-- 삭제 사유 -->
FROM TB_CVLCPT_DSCSN CD FROM TB_CVLCPT_DSCSN CD
</sql> </sql>
@ -89,7 +89,7 @@
<include refid="select" /> <include refid="select" />
<where> <where>
<if test="cvlcptDscsnId != null"> <if test="cvlcptDscsnId != null">
AND CD.CVLCPT_DSCSN_ID = #{cvlcptDscsnId} <!-- 민원 상담 ID --> AND CD.CVLCPT_DSCSN_ID = #{cvlcptDscsnId} <!-- 민원 상담 ID -->
</if> </if>
<choose> <choose>
<when test="inquiryCondition == 'crdnId_vhrno_rtpyrNo'"> <when test="inquiryCondition == 'crdnId_vhrno_rtpyrNo'">
@ -100,17 +100,17 @@
</when> </when>
<otherwise> <otherwise>
<if test="crdnId != null"> <if test="crdnId != null">
AND CD.CRDN_ID = #{crdnId} <!-- 단속 ID --> AND CD.CRDN_ID = #{crdnId} <!-- 단속 ID -->
</if> </if>
<if test="vhrno != null"> <if test="vhrno != null">
AND CD.VHRNO = #{vhrno} <!-- 차량번호 --> AND CD.VHRNO = #{vhrno} <!-- 차량번호 -->
</if> </if>
<if test="rtpyrNo != null"> <if test="rtpyrNo != null">
AND CD.RTPYR_NO = #{rtpyrNo} <!-- 납부자 번호 --> AND CD.RTPYR_NO = #{rtpyrNo} <!-- 납부자 번호 -->
</if> </if>
</otherwise> </otherwise>
</choose> </choose>
AND CD.DEL_YN = 'N' <!-- 삭제 여부 --> AND CD.DEL_YN = 'N' <!-- 삭제 여부 -->
</where> </where>
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
@ -132,50 +132,52 @@
AND DEL_YN = 'N' AND DEL_YN = 'N'
</select> </select>
<insert id="insertCvlcptDscsn" parameterType="map">/* 민원 상담 내용 등록(cvlcptDscsnMapper.insertCvlcptDscsn) */ <insert id="insertCvlcptDscsn" parameterType="cokr.xit.fims.sprt.CvlcptDscsn">/* 민원 상담 내용 등록(cvlcptDscsnMapper.insertCvlcptDscsn) */
<selectKey resultType="string" keyProperty="cvlcptDscsn.cvlcptDscsnId" keyColumn="NEW_ID" order="BEFORE"> <selectKey resultType="string" keyProperty="cvlcptDscsnId" keyColumn="NEW_ID" order="BEFORE">
SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(CVLCPT_DSCSN_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID <include refid="numbering.keyByYear">
FROM TB_CVLCPT_DSCSN <property name="TABLE_NAME" value="TB_CVLCPT_DSCSN" />
WHERE CVLCPT_DSCSN_ID LIKE CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), '%') <property name="TABLE_KEY" value="CVLCPT_DSCSN_ID" />
<property name="pad" value="20" />
</include>
</selectKey> </selectKey>
INSERT INSERT
INTO TB_CVLCPT_DSCSN ( INTO TB_CVLCPT_DSCSN (
CVLCPT_DSCSN_ID <!-- 민원 상담 ID --> CVLCPT_DSCSN_ID <!-- 민원 상담 ID -->
, SGG_CD <!-- 시군구 코드 --> , SGG_CD <!-- 시군구 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 --> , TASK_SE_CD <!-- 업무 구분 코드 -->
, CVLCPT_RCPT_SE_CD <!-- 민원 접수 구분 코드 --> , CVLCPT_RCPT_SE_CD <!-- 민원 접수 구분 코드 -->
, CRDN_ID <!-- 단속 ID --> , CRDN_ID <!-- 단속 ID -->
, VHRNO <!-- 차량번호 --> , VHRNO <!-- 차량번호 -->
, RTPYR_NO <!-- 납부자 번호 --> , RTPYR_NO <!-- 납부자 번호 -->
, DSCSN_YMD <!-- 상담 일자 --> , DSCSN_YMD <!-- 상담 일자 -->
, WEEK_NM <!-- 요일 명 --> , WEEK_NM <!-- 요일 명 -->
, CVLPR_NM <!-- 민원인 명 --> , CVLPR_NM <!-- 민원인 명 -->
, CVLPR_CTTPC <!-- 민원인 연락처 --> , CVLPR_CTTPC <!-- 민원인 연락처 -->
, DSCSN_CN <!-- 상담 내용 --> , DSCSN_CN <!-- 상담 내용 -->
, DEL_YN <!-- 삭제 여부 --> , DEL_YN <!-- 삭제 여부 -->
, REG_DT <!-- 등록 일시 --> , REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 --> , RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 --> , MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 --> , MDFR <!-- 수정자 -->
) )
VALUES ( VALUES (
#{cvlcptDscsn.cvlcptDscsnId} <!-- 민원 상담 ID --> #{cvlcptDscsnId} <!-- 민원 상담 ID -->
, #{cvlcptDscsn.sggCd} <!-- 시군구 코드 --> , #{sggCd} <!-- 시군구 코드 -->
, #{cvlcptDscsn.taskSeCd} <!-- 업무 구분 코드 --> , #{taskSeCd} <!-- 업무 구분 코드 -->
, #{cvlcptDscsn.cvlcptRcptSeCd} <!-- 민원 접수 구분 코드 --> , #{cvlcptRcptSeCd} <!-- 민원 접수 구분 코드 -->
, #{cvlcptDscsn.crdnId} <!-- 단속 ID --> , #{crdnId} <!-- 단속 ID -->
<choose> <choose>
<when test="cvlcptDscsn.cvlcptRcptSeCd == '02'"> <when test="cvlcptRcptSeCd == '02'">
, #{cvlcptDscsn.vhrno} <!-- 차량번호 --> , #{vhrno} <!-- 차량번호 -->
, NULL <!-- 납부자 번호 --> , NULL <!-- 납부자 번호 -->
</when> </when>
<when test="cvlcptDscsn.cvlcptRcptSeCd == '03'"> <when test="cvlcptRcptSeCd == '03'">
, NULL <!-- 차량번호 --> , NULL <!-- 차량번호 -->
, #{cvlcptDscsn.rtpyrNo} <!-- 납부자 번호 --> , #{rtpyrNo} <!-- 납부자 번호 -->
</when> </when>
<otherwise> <otherwise>
, NULL <!-- 차량번호 --> , NULL <!-- 차량번호 -->
, NULL <!-- 납부자 번호 --> , NULL <!-- 납부자 번호 -->
</otherwise> </otherwise>
</choose> </choose>
, <include refid="utility.today" /> <!-- 상담 일자 --> , <include refid="utility.today" /> <!-- 상담 일자 -->
@ -187,55 +189,64 @@
WHEN '5' THEN '목' WHEN '5' THEN '목'
WHEN '6' THEN '금' WHEN '6' THEN '금'
WHEN '7' THEN '토' WHEN '7' THEN '토'
END ) <!-- 요일 명 --> END ) <!-- 요일 명 -->
, #{cvlcptDscsn.cvlprNm} <!-- 민원인 명 --> , #{cvlprNm} <!-- 민원인 명 -->
, #{cvlcptDscsn.cvlprCttpc} <!-- 민원인 연락처 --> , #{cvlprCttpc} <!-- 민원인 연락처 -->
, #{cvlcptDscsn.dscsnCn} <!-- 상담 내용 --> , #{dscsnCn} <!-- 상담 내용 -->
, 'N' <!-- 삭제 여부 --> , 'N' <!-- 삭제 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 --> , <include refid="utility.now" /> <!-- 등록 일시 -->
, #{cvlcptDscsn.createdBy} <!-- 등록자 --> , #{createdBy} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 --> , <include refid="utility.now" /> <!-- 수정 일시 -->
, #{cvlcptDscsn.modifiedBy} <!-- 수정자 --> , #{modifiedBy} <!-- 수정자 -->
) )
</insert> </insert>
<update id="updateCvlcptDscsn" parameterType="map">/* 민원 상담 내용 수정(cvlcptDscsnMapper.updateCvlcptDscsn) */ <update id="updateCvlcptDscsn" parameterType="cokr.xit.fims.sprt.CvlcptDscsn">/* 민원 상담 내용 수정(cvlcptDscsnMapper.updateCvlcptDscsn) */
UPDATE TB_CVLCPT_DSCSN UPDATE TB_CVLCPT_DSCSN
SET CVLPR_NM = #{cvlcptDscsn.cvlprNm} <!-- 민원인 명 --> SET CVLPR_NM = #{cvlprNm} <!-- 민원인 명 -->
, CVLPR_CTTPC = #{cvlcptDscsn.cvlprCttpc} <!-- 민원인 연락처 --> , CVLPR_CTTPC = #{cvlprCttpc} <!-- 민원인 연락처 -->
, DSCSN_CN = #{cvlcptDscsn.dscsnCn} <!-- 상담 내용 --> , DSCSN_CN = #{dscsnCn} <!-- 상담 내용 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{cvlcptDscsn.modifiedBy} <!-- 수정자 --> , MDFR = #{modifiedBy} <!-- 수정자 -->
WHERE CVLCPT_DSCSN_ID = #{cvlcptDscsn.cvlcptDscsnId} <!-- 민원 상담 ID --> WHERE CVLCPT_DSCSN_ID = #{cvlcptDscsnId} <!-- 민원 상담 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
<update id="deleteCvlcptDscsn" parameterType="map">/* 민원 상담 내용 삭제(cvlcptDscsnMapper.deleteCvlcptDscsn) */ <update id="deleteCvlcptDscsn" parameterType="cokr.xit.fims.sprt.CvlcptDscsn">/* 민원 상담 내용 삭제(cvlcptDscsnMapper.deleteCvlcptDscsn) */
UPDATE TB_CVLCPT_DSCSN UPDATE TB_CVLCPT_DSCSN
SET DEL_YN = 'Y' <!-- 삭제 여부 --> SET DEL_YN = 'Y' <!-- 삭제 여부 -->
, DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 --> , DEL_DT = <include refid="utility.now" /> <!-- 삭제 일시 -->
, DLTR = #{cvlcptDscsn.modifiedBy} <!-- 삭제자 --> , DLTR = #{modifiedBy} <!-- 삭제자 -->
, DEL_RSN = #{cvlcptDscsn.delRsn} <!-- 삭제 사유 --> , DEL_RSN = #{delRsn} <!-- 삭제 사유 -->
WHERE CVLCPT_DSCSN_ID = #{cvlcptDscsn.cvlcptDscsnId} <!-- 민원 상담 ID --> <choose>
AND DEL_YN = 'N' <when test="cvlcptDscsnIds != null">
WHERE CVLCPT_DSCSN_ID IN ( <!-- 민원 상담 Ids -->
<foreach collection="cvlcptDscsnIds" item="cvlcptDscsnId" separator=","> #{cvlcptDscsnId} </foreach>
)
</when>
<otherwise>
WHERE CVLCPT_DSCSN_ID = #{cvlcptDscsnId} <!-- 민원 상담 ID -->
</otherwise>
</choose>
AND DEL_YN = 'N'
</update> </update>
<select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(cvlcptDscsnCnMapper.selectCrdn) */ <select id="selectCrdn" parameterType="map" resultType="dataobject">/* 단속 대장 객체 가져오기(cvlcptDscsnCnMapper.selectCrdn) */
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 --> , C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 --> , C.TASK_SE_CD <!-- 업무 구분 코드 -->
, C.VHRNO <!-- 차량번호 --> , C.VHRNO <!-- 차량번호 -->
, P.RTPYR_ID <!-- 납부자 ID --> , P.RTPYR_ID <!-- 납부자 ID -->
, P.RTPYR_NO <!-- 납부자 번호 --> , P.RTPYR_NO <!-- 납부자 번호 -->
FROM TB_CRDN C FROM TB_CRDN C
LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID)
WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID --> WHERE C.CRDN_ID = #{crdnId} <!-- 단속 ID -->
<choose> <choose>
<when test="delYn != null"> <when test="delYn != null">
AND C.DEL_YN = #{delYn} AND C.DEL_YN = #{delYn}
</when> </when>
<otherwise> <otherwise>
AND C.DEL_YN = 'N' AND C.DEL_YN = 'N'
</otherwise> </otherwise>
</choose> </choose>
</select> </select>

@ -122,13 +122,13 @@
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnCreate--${pageName}" title="안내문 등록"> <button type="button" class="btn btn-primary w-px-120" id="btnCreate--${pageName}" title="안내문 등록">
등록 안내문 등록
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="안내문 수정"> <button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="안내문 수정">
수정 안내문 수정
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="안내문 삭제"> <button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="안내문 삭제">
삭제 안내문 삭제
</button> </button>
</span> </span>
</span> </span>

@ -467,7 +467,7 @@
$P.control.load(1); $P.control.load(1);
// 합계금액 검색 - 검색시 log에 등록할때 MAX+1 오류 발생으로 인한 타이머 동작 // 합계금액 검색 - 검색시 log에 등록할때 MAX+1 오류 발생으로 인한 타이머 동작
setTimeout(() => $P.getSumAmtInfo($P.control.query), 250); setTimeout(() => $P.getSumAmtInfo($P.control.query), 500);
//$P.getSumAmtInfo($P.control.query); //$P.getSumAmtInfo($P.control.query);
} }

@ -1,14 +1,15 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">민원상담 관리</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-wrapper"> <div class="content-wrapper">
<!-- Content --> <!-- Content -->
<div class="container-xxl flex-grow-1 px-0"> <div class="container-xxl flex-grow-1 px-0">
<c:set var="prefixName" scope="request">민원상담 관리</c:set>
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card">
<div class="wrapper-list"> <div class="wrapper-list">
<!-- 상단 버튼 --> <!-- 상단 버튼 -->
<div class="container-page-btn"> <div class="container-page-btn">
@ -36,12 +37,12 @@
<div class="row g-1"> <div class="row g-1">
<!-- 업무구분 --> <!-- 업무구분 -->
<div class="col-12"> <div class="col-12">
<span class="form-label fw-bold form-search-title text-end">업무구분</span> <span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<span class="form-search-linebox"> <span class="form-search-linebox">
<c:forEach items="${taskListForSgg}" var="item"> <c:forEach items="${taskListForSgg}" var="item">
<label> <label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분" <input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
value="${item.code}" onchange="fnResetAndChangeBiz${pageName}(this.value);"> value="${item.code}" onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);">
${item.value} ${item.value}
</label> </label>
</c:forEach> </c:forEach>
@ -49,7 +50,7 @@
</div> </div>
<!-- 상담일자 --> <!-- 상담일자 -->
<div class="col-6"> <div class="col-6">
<span class="form-label fw-bold form-search-title text-end">상담일자</span> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schDscsnYmdFrom--${pageName}">상담일자</label>
<span class="form-search-linebox"> <span class="form-search-linebox">
<input type="text" class="form-control form-date" id="schDscsnYmdFrom--${pageName}" name="schDscsnYmdFrom" <input type="text" class="form-control form-date" id="schDscsnYmdFrom--${pageName}" name="schDscsnYmdFrom"
data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" /> data-fmt-type="day" autocomplete="off" title="시작 날짜 선택" />
@ -60,31 +61,23 @@
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span> </span>
</div> </div>
<!-- -->
<div class="col-6">
</div>
<!-- 차량번호 --> <!-- 차량번호 -->
<div class="col-6"> <div class="col-6">
<label class="form-label fw-bold form-search-title text-end" for="schVhrno--${pageName}">차량번호</label> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schVhrno--${pageName}">차량번호</label>
<input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" /> <input type="text" class="form-control w-px-160" id="schVhrno--${pageName}" name="schVhrno" autocomplete="off" />
</div> </div>
<!-- 납부자번호 -->
<div class="col-6">
<label class="form-label fw-bold form-search-title text-end" for="schRtpyrNo--${pageName}">납부자번호</label>
<input type="text" class="form-control w-px-160" id="schRtpyrNo--${pageName}" name="schRtpyrNo"autocomplete="off" />
</div>
<!-- 민원인명 --> <!-- 민원인명 -->
<div class="col-6"> <div class="col-6">
<label class="form-label fw-bold form-search-title text-end" for="schCvlprNm--${pageName}">민원인명</label> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schCvlprNm--${pageName}">민원인명</label>
<input type="text" class="form-control w-px-160" id="schCvlprNm--${pageName}" name="schCvlprNm"autocomplete="off" /> <input type="text" class="form-control w-px-160" id="schCvlprNm--${pageName}" name="schCvlprNm"autocomplete="off" />
</div> </div>
<!-- 동적검색 --> <!-- 동적검색 -->
<div class="col-6"> <div class="col-6">
<input type="hidden" id="by--${pageName}" name="by" /> <input type="hidden" id="by--${pageName}" name="by" />
<input type="text" class="form-control" id="byOutput--${pageName}" value="동적 검색" readonly /> <input type="text" class="form-control fw-bold w-px-120 text-end" id="byOutput--${pageName}" value="동적 검색" readonly />
<input type="hidden" id="mainOption--${pageName}" name="mainOption" /> <input type="hidden" id="mainOption--${pageName}" name="mainOption" />
<input type="hidden" id="subOption--${pageName}" name="subOption" /> <input type="hidden" id="subOption--${pageName}" name="subOption" />
<input type="text" class="form-control w-px-320" id="term--${pageName}" name="term" autocomplete="off" /> <input type="text" class="form-control w-px-400" id="term--${pageName}" name="term" autocomplete="off" />
<!-- 상세 검색조건 버튼 --> <!-- 상세 검색조건 버튼 -->
<span class="flr"> <span class="flr">
<button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}"> <button type="button" class="btn btn-open-detail" data-bs-toggle="collapse" data-bs-target="#searchDetail--${pageName}">
@ -101,7 +94,7 @@
<div class="row g-1"> <div class="row g-1">
<!-- 등록일자, 수정일자 --> <!-- 등록일자, 수정일자 -->
<div class="col-6"> <div class="col-6">
<select class="form-select text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt"> <select class="form-select w-px-120 text-center" id="schRegDateOpt--${pageName}" name="schRegDateOpt">
<option value="regDt">등록일자</option> <option value="regDt">등록일자</option>
<option value="mdfcnDt">수정일자</option> <option value="mdfcnDt">수정일자</option>
</select> </select>
@ -117,21 +110,17 @@
</div> </div>
<!-- 등록자명, 수정자명 --> <!-- 등록자명, 수정자명 -->
<div class="col-6"> <div class="col-6">
<select class="form-select text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt"> <select class="form-select w-px-120 text-center" id="schRgtrOpt--${pageName}" name="schRgtrOpt">
<option value="rgtr">등록자</option> <option value="rgtr">등록자</option>
<option value="mdfr">수정자</option> <option value="mdfr">수정자</option>
</select> </select>
<input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" /> <input type="hidden" id="schRgtrCd--${pageName}" name="schRgtrCd" />
<input type="text" class="form-control" id="schRgtrNm--${pageName}" name="schRgtrNm" /> <input type="text" class="form-control w-px-160" id="schRgtrNm--${pageName}" name="schRgtrNm" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색"> <button type="button" class="btn btn-sm btn-outline-dark" id="btnFindUser--${pageName}" title="사용자 검색">검색</button>
검색
</button>
</div> </div>
</div> </div>
</div> </div> <!-- / 상세 조건 -->
<!-- / 상세 조건 --> </form> <!-- / 검색 조건 영역 -->
</form>
<!-- / 검색 조건 영역 -->
<!-- 업무 버튼 및 건수 표시 --> <!-- 업무 버튼 및 건수 표시 -->
<div> <div>
@ -144,11 +133,11 @@
</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="btnUpdateCvlcptDscsn--${pageName}" title="민원상담 수정"> <button type="button" class="btn btn-primary w-px-120" id="btnUpdate--${pageName}" title="민원상담내용 수정">
수정 상담내용 수정
</button> </button>
<button type="button" class="btn btn-primary w-px-120" id="btnRemoveCvlcptDscsn--${pageName}" title="민원상담 삭제"> <button type="button" class="btn btn-primary w-px-120" id="btnRemove--${pageName}" title="민원상담내용 삭제">
삭제 상담내용 삭제
</button> </button>
</span> </span>
</span> </span>
@ -231,10 +220,8 @@
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/sprt/sprt04";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmSearch--${pageName}"); $P.formFields = new FimsFormFields("#frmSearch--${pageName}");
@ -242,45 +229,45 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix : "cvlcptDscsn" prefix: "cvlcptDscsn"
, prefixName : "민원상담" , prefixName: "민원상담"
, infoSize : "lg" , keymapper: info => info ? info.CVLCPT_DSCSN_ID : ""
, keymapper : info => info ? info.CVLCPT_DSCSN_ID : "" , dataGetter: obj => obj.${infoPrefix}List
, dataGetter : obj => obj.cvlcptDscsnList , appendData: true
, appendData : true , infoSize: "lg"
, formats : { , formats: {
DSCSN_YMD : dateFormat DSCSN_YMD: dateFormat
, REG_DT : datetimeFormat , REG_DT: datetimeFormat
, MDFCN_DT : datetimeFormat , MDFCN_DT: datetimeFormat
} }
}); });
// $P.control 설정 // $P.control 설정
$P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 $P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30
$P.control.untilPageNum = 0; // 현재 페이지 번호 $P.control.untilPageNum = 0; // 현재 페이지 번호
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
$P.control.beforeCurrent = null; $P.control.beforeCurrent = null;
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// Dataset 변경 이벤트 // Dataset 변경 이벤트
$P.control.onDatasetChange = obj => { $P.control.onDatasetChange = (obj) => {
$P.renderList(obj.${infoPrefix}Total); $P.renderList(obj.${infoPrefix}Total);
$("#paging--${pageName}").setPagingInfo({ $("#paging--${pageName}").setPagingInfo({
list : $P.control.dataset list: $P.control.dataset
, prefix : "paging--${pageName}" , prefix: "paging--${pageName}"
, start : obj.${infoPrefix}Start , start: obj.${infoPrefix}Start
, totalSize : obj.${infoPrefix}Total , totalSize: obj.${infoPrefix}Total
, fetchSize : obj.${infoPrefix}Fetch , fetchSize: obj.${infoPrefix}Fetch
, func : "$P.control.load({index})" , func: "pageObject['${pageName}'].control.load({index})"
}); });
$P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료
}; };
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => { $P.control.onCurrentChange = (item) => {
if (!item) return; if (!item) return;
let key = item.data.CVLCPT_DSCSN_ID; let key = item.data.CVLCPT_DSCSN_ID;
@ -295,19 +282,26 @@
$("#tbody--${pageName} input[type='checkbox']").each(function() { $("#tbody--${pageName} input[type='checkbox']").each(function() {
let checkbox = $(this); let checkbox = $(this);
checkbox.prop("checked", keys.includes(checkbox.val())); checkbox.prop("checked", keys.includes(checkbox.val()));
}); });
$("#btnRemove--${pageName}").prop("disabled", keys.length < 1); $("#btnRemove--${pageName}").prop("disabled", keys.length < 1);
// DataTables(그리드) 전체 선택(checkbox)
if (keys.length < 1) {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제
} else if (keys.length == ${infoPrefix}List.length) {
$("th input[type='checkbox']").prop("checked", true); // 체크 설정
} else {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제
}
}; };
// 민원상담 정보 dialog // 상세정보 dialog
$P.control.getInfo = (params) => { $P.control.getInfo = (params) => {
if (!params) return; if (!params) return;
let dialogTitle = ""; let dialogTitle = "";
if (params.callPurpose == "create") { if (params.callPurpose == "create") {
dialogTitle = $P.control.prefixName + " 등록"; dialogTitle = $P.control.prefixName + " 등록";
} else if (params.callPurpose == "update") { } else if (params.callPurpose == "update") {
@ -317,15 +311,15 @@
} }
ajax.get({ ajax.get({
url : $P.control.urls.getInfo url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/020/info.do") + "?openerPageName=${pageName}"
, data : params || {} , data: params || {}
, success : resp => { , success: resp => {
dialog.open({ dialog.open({
id : $P.control.prefixed("Dialog") id: $P.control.prefixed("Dialog--${pageName}")
, title : dialogTitle , title: dialogTitle
, content : resp , content: resp
, size : $P.control.infoSize , size: $P.control.infoSize
, onClose : () => { $P.refreshList(); } , onClose: () => { $P.fnRefreshList(); } // 자료 재조회
}); });
} }
}); });
@ -338,13 +332,11 @@
// 메시지 출력 // 메시지 출력
dialog.alert({ dialog.alert({
content : showMessage content: showMessage
, onOK : () => { } , onOK: () => { }
}); });
if (resp.saved) { if (resp.saved) { $P.fnRefreshList(); } // 자료 재조회
$P.refreshList(); // 자료 재조회
}
} }
// 삭제 // 삭제
@ -352,9 +344,9 @@
if (!params) return; if (!params) return;
ajax.post({ ajax.post({
url : $P.control.urls.remove url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/010/remove.do")
, data : params , data: params || {}
, success : resp => $P.control.onRemove(resp) , success: resp => $P.control.onRemove(resp)
}); });
} }
@ -372,7 +364,7 @@
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, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("CVLCPT_DSCSN_ID") + "');") .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("CVLCPT_DSCSN_ID") + "');")
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].fnUpdateCvlcptDscsn('민원상담 수정');") .replace(/{ondblclick}/gi, "pageObject['${pageName}'].fnUpdate('민원상담 수정');")
); );
let noMore = (totalSize == ${infoPrefix}List.length); let noMore = (totalSize == ${infoPrefix}List.length);
@ -395,7 +387,7 @@
// DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트
$P.scrollDataList = () => { $P.scrollDataList = () => {
$P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false
$P.control.load($P.control.query.pageNum + 1); $P.control.load($P.control.query.pageNum + 1);
} }
@ -403,47 +395,30 @@
/************************************************************************** /**************************************************************************
* 사용자 함수(function) * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// callback 사용자 검색
$P.callbackFindUser = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
// 사용자 검색
$P.getFindUser = () => {
let params = {
openerPageName : "${pageName}"
, callbackFuncName : "pageObject['${pageName}']['callbackFindUser']"
}
ajax.get({
url : wctx.url("/user/user02/010/main.do")
, data : params || {}
, success : resp => {
dialog.open({
id : "userDialog"
, title : "사용자 검색"
, content : resp
, size : "lg"
});
}
});
}
// 검색 자료 재조회 // 검색 자료 재조회
$P.refreshList = () => { $P.fnRefreshList = () => {
$P.control.untilPageNum = $P.control.query.pageNum; $P.control.untilPageNum = $P.control.query.pageNum;
$P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum; $P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum;
$P.control.load(1); $P.control.load(1);
} }
// 사유 callback // 사용자검색 callback
$P.callbackFindUser = (userId, userNm) => {
$("#schRgtrCd--${pageName}").val(userId); // 사용자 ID
$("#schRgtrNm--${pageName}").val(userNm); // 사용자 명
}
// 삭제사유 callback
$P.callbackRsn = (obj) => { $P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성 // 서버에 전송할 data(파라미터) 생성
let params = {}; let params = {};
params[$P.control.prefixed("Ids")] = selected.join(","); // Ids let selected = $P.control.dataset.getKeys("selected");
params.delRsn = obj.reason; // 삭제 사유
params[$P.control.prefixed("Ids")] = selected.join(","); // Ids
params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드
params.taskSeCd = $("input[name=taskSeCd]:checked").val(); // 업무 구분 코드
params.delRsn = obj.reason; // 삭제 사유
$P.control.remove(params); $P.control.remove(params);
} }
@ -459,9 +434,7 @@
} }
// 초기 기본 설정 // 초기 기본 설정
$P.initForm(); $P.initForm(taskSeCd);
// 기본 데이터 설정
$P.initData(taskSeCd);
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask(taskSeCd); $P.setTask(taskSeCd);
@ -469,12 +442,34 @@
$P.control.dataset.clear(); $P.control.dataset.clear();
} }
// 사용자검색 버튼 클릭 이벤트
$P.fnGetFindUser = () => {
let params = {
openerPageName: "${pageName}"
, callbackFuncName: "pageObject['${pageName}']['callbackFindUser']"
}
ajax.get({
url: wctx.url("/user/user02/010/main.do")
, data: params || {}
, success: resp => {
dialog.open({
id: "userDialog"
, title: "사용자 검색"
, content: resp
, size: "lg"
, init: () => { setDialogZindex(); }
});
}
});
}
// 검색 버튼 이벤트 // 검색 버튼 이벤트
$P.fnSearchList = () => { $P.fnSearchList = () => {
// 검색조건 // 검색조건
$P.control.query = $P.formFields.get(); $P.control.query = $P.formFields.get(); // 검색 조건
$P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수 $P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수
$P.control.query.delYn = "N"; // 삭제 여부 $P.control.query.delYn = "N"; // 삭제 여부
$P.control.load(1); $P.control.load(1);
} }
@ -483,10 +478,9 @@
$P.fnExcel = () => { $P.fnExcel = () => {
if ($P.control.dataset.empty) { if ($P.control.dataset.empty) {
dialog.alert({ dialog.alert({
content : "검색된 자료가 없습니다." content: "검색된 자료가 없습니다."
, onOK : () => { } , onOK: () => { }
}); });
return; return;
} }
@ -498,53 +492,52 @@
$P.control.download(); $P.control.download();
} }
// 사용자 조회 버튼 이벤트
$P.fnFindUser = () => {
$P.getFindUser();
}
// 수정 버튼 이벤트 // 수정 버튼 이벤트
$P.fnUpdateCvlcptDscsn = (title) => { $P.fnUpdate = (title) => {
// 민원상담 ID // 민원상담 ID
let cvlcptDscsnId = $P.control.dataset.getValue("CVLCPT_DSCSN_ID"); let cvlcptDscsnId = $P.control.dataset.getValue("CVLCPT_DSCSN_ID");
// 민원상담 ID 가 없다면.. 입력 // 민원상담 ID 가 없다면.. 입력
if (typeof cvlcptDscsnId == "undefined" || cvlcptDscsnId == null || cvlcptDscsnId == "") return; if (typeof cvlcptDscsnId == "undefined" || cvlcptDscsnId == null || cvlcptDscsnId == "") return;
let params = { let params = {
title : title title: title
, callPurpose : "update" , callPurpose: "update"
, cvlcptDscsnId : cvlcptDscsnId // 민원상담 ID , sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, sggCd : $P.control.dataset.getValue("SGG_CD") // 시군구 코드 , taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, taskSeCd : $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , cvlcptDscsnId: cvlcptDscsnId // 민원상담 ID
}; };
$P.control.getInfo(params); $P.control.getInfo(params);
} }
// 삭제 버튼 이벤트 // 삭제 버튼 이벤트
$P.fnRemoveCvlcptDscsn = (title) => { $P.fnRemove = (title) => {
// 선택 자료 // 선택 자료
let selected = $P.control.dataset.getKeys("selected"); let selected = $P.control.dataset.getKeys("selected");
if (selected.length < 1) return; if (selected.length < 1) {
dialog.alert({
content: "선택하신 " + $P.control.prefixName + " 정보가 없습니다."
, onOK: () => { }
});
return;
}
// 삭제 메세지 확인 // 삭제 메세지 확인
dialog.alert({ dialog.alert({
content : "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?" content : "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
, onOK : async() => { , onOK : async() => {
// 삭제 사유 입력 // 삭제 사유 입력
var resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html")); let resp = await fetch(wctx.url("/resources/html/inputRsnDialog.html"));
var template = await resp.text(); let template = await resp.text();
dialog.open({ dialog.open({
id : "inputDelRsnDialog", id: "inputDelRsnDialog"
title: title, , title: title
size : "lg", , size: "lg"
content: template, , content: template
init : () => { , init: () => { setDialogZindex(); }
setDialogZindex(); , onOK: () => {
},
onOK : () => {
$P.callbackRsn({ reason : $("#reason").val() }); $P.callbackRsn({ reason : $("#reason").val() });
} }
}); });
@ -561,7 +554,7 @@
$("#btnReset--${pageName}").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 $("#btnReset--${pageName}").on("click", () => $P.fnResetAndChangeBiz()); // 초기화
$("#btnSearch--${pageName}").on("click", () => $P.fnSearchList()); // 검색 $("#btnSearch--${pageName}").on("click", () => $P.fnSearchList()); // 검색
$("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀 $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀
$("#btnFindUser--${pageName}").on("click", () => $P.fnFindUser()); // 사용자 검색 $("#btnFindUser--${pageName}").on("click", () => $P.fnGetFindUser()); // 사용자 검색
// 동적검색에서 엔터(Enter) 키를 누르면 검색한다. // 동적검색에서 엔터(Enter) 키를 누르면 검색한다.
$("#term--${pageName}").keypress(function(e) { $("#term--${pageName}").keypress(function(e) {
@ -583,13 +576,12 @@
}); });
}); });
// 민원상담 수정 버튼 이벤트 // 버튼 이벤트
$("#btnUpdateCvlcptDscsn--${pageName}").on("click", function() { $("#btnUpdate--${pageName}").on("click", function() {
$P.fnUpdateCvlcptDscsn($(this).attr("title")); $P.fnUpdate($(this).attr("title")); // 민원상담 수정
}); });
// 민원상담 삭제 버튼 이벤트 $("#btnRemove--${pageName}").on("click", function() {
$("#btnRemoveCvlcptDscsn--${pageName}").on("click", function() { $P.fnRemove($(this).attr("title")); // 민원상담 삭제
$P.fnRemoveCvlcptDscsn($(this).attr("title"));
}); });
// DataTables width 변경 조정 // DataTables width 변경 조정
@ -600,7 +592,7 @@
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = (taskSeCd) => {
// 화면 초기화 // 화면 초기화
$("#frmSearch--${pageName}")[0].reset(); $("#frmSearch--${pageName}")[0].reset();
@ -617,41 +609,20 @@
$(this).prop("disabled", "true"); $(this).prop("disabled", "true");
}); });
// 달력 초기화 // 기본 데이터 설정
initDatepicker("frmSearch--${pageName}"); $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#schDscsnYmdFrom--${pageName}").datepicker("setDate", new Date()); $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드
$("#schDscsnYmdTo--${pageName}").datepicker("setDate", new Date()); initDatepicker("frmSearch--${pageName}"); // 달력 초기화
// 동적 검색
$("#byOutput--${pageName}").val("동적 검색");
// 사용자 이름
$("#schRgtrNm--${pageName}").prop("readonly", true);
}
// 기본 데이터 설정
$P.initData = (taskSeCd) => {
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}");
// 업무 구분 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true);
// 일자
$("#schDscsnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); $("#schDscsnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date);
$("#schDscsnYmdTo--${pageName}").datepicker("setDate", new Date()); $("#schDscsnYmdTo--${pageName}").datepicker("setDate", new Date());
$("#byOutput--${pageName}").val("동적 검색"); // 동적 검색
$("#schRgtrNm--${pageName}").prop("readonly", true); // 사용자 이름
} }
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask = (taskSeCd) => { $P.setTask = (taskSeCd) => {
// URL 설정 // 업무구분에 따른 URL 설정
$P.setURL(taskSeCd); $P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/010/list.do"); // 조회
}
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/list.do"); // 조회
$P.control.urls.remove = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/removes.do"); // 삭제
$P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/info.do"); // 정보
} }
/************************************************************************** /**************************************************************************

@ -1,20 +1,21 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<c:set var="prefixName" scope="request">민원 상담 내용 정보</c:set>
<!-- inner page html --> <!-- inner page html -->
<div class="content-wrapper"> <div class="content-wrapper">
<!-- Content --> <!-- Content -->
<div class="container flex-grow-1 px-0"> <div class="container flex-grow-1 px-0">
<c:set var="prefixName" scope="request">민원 상담 내용 정보</c:set>
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" /> <input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="cvlcptDscsnId--${pageName}" name="cvlcptDscsnId" data-map="CVLCPT_DSCSN_ID" /> <input type="hidden" id="cvlcptDscsnId--${pageName}" name="cvlcptDscsnId" data-map="CVLCPT_DSCSN_ID" />
<input type="hidden" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" /> <input type="hidden" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" />
<input type="hidden" id="rtpyrNo--${pageName}" name="rtpyrNo" data-map="RTPYR_NO" /> <input type="hidden" id="rtpyrNo--${pageName}" name="rtpyrNo" data-map="RTPYR_NO" />
@ -76,10 +77,8 @@
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/sprt/sprt04";
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}"; $P.callPurpose = "${callPurpose}";
// FormFields // FormFields
@ -89,10 +88,10 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix : "cvlcptDscsn" prefix: "cvlcptDscsn"
, prefixName : "민원상담" , prefixName: "민원상담"
, keymapper : info => info ? info.CVLCPT_DSCSN_ID : "" , keymapper: info => info ? info.CVLCPT_DSCSN_ID : ""
, dataGetter : obj => obj.cvlcptDscsnInfo , dataGetter: obj => obj.${infoPrefix}Info
}); });
/************************************************************************** /**************************************************************************
@ -106,22 +105,23 @@
$P.formFields.set($P.control,item); $P.formFields.set($P.control,item);
// 업무구분에 따른 URL 변경 // 업무구분에 따른 URL 변경
$P.setURL(item.data.TASK_SE_CD); $P.fnSetURL(item.data.TASK_SE_CD);
} }
// 저장 callback // 저장 callback
$P.control.onSave = (resp) => { $P.control.onSave = (resp) => {
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog--${openerPageName}").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력 // 메시지 출력
dialog.alert({ dialog.alert({
content : showMessage content: showMessage
, onOK : () => { } , init: () => { setDialogZindex(); }
, onOK: () => { }
}); });
if (resp.saved) { if (resp.saved) {
dialog.close($P.control.prefix + "Dialog"); dialog.close($P.control.prefix + "Dialog--${openerPageName}");
} }
} }
@ -132,16 +132,20 @@
let create = ($P.callPurpose == "create"); let create = ($P.callPurpose == "create");
ajax.post({ ajax.post({
url : !create ? $P.control.urls.update : $P.control.urls.create url: !create ? $P.control.urls.update : $P.control.urls.create
, data : info , data: info
, success : resp => $P.control.onSave(resp) , success: resp => $P.control.onSave(resp)
}); });
} }
/************************************************************************** /**************************************************************************
* 사용자 함수(function) * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/update.do"); // 수정
}
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
@ -153,12 +157,9 @@
dialog.alert({ dialog.alert({
content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, onOK : () => { , init: () => { setDialogZindex(); }
// 파리미터 설정 , onOK: () => {
let params = $P.formFields.get(); // formFields $P.control.save($P.formFields.get()); // formFields
params.title = title; // 타이틀
$P.control.save(params);
} }
}); });
} }
@ -181,38 +182,26 @@
}); });
}); });
// 저장 버튼 이벤트 // 버튼 이벤트
$("#btnSave--${pageName}").on("click", function() { $("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
$P.fnSave($(this).attr("title"));
});
} }
// 초기 화면 설정 // 초기 화면 설정
$P.initForm = () => { $P.initForm = () => {
// Dialog 마우스로 드래그 할 수 있도록 설정.
fnMakeDraggableDialog(document.getElementById($P.control.prefix + "Dialog"));
// 달력 초기화 // 달력 초기화
initDatepicker("frmEdit--${pageName}"); initDatepicker("frmEdit--${pageName}");
if ($P.callPurpose == "view") { // view // View로 호출
if ($P.callPurpose == "view") {
// input 요소들을 disabled // input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true);
// button 요소들을 disabled // button 요소들을 disabled
$("btnSave--${pageName}").prop("disabled", true); $("btnSave--${pageName}").prop("disabled", true);
} else if ($P.callPurpose == "create") { // create } else if ($P.callPurpose == "update") {
//
} else if ($P.callPurpose == "update") { // update
$("#cvlcptRcptSeCd--${pageName}").prop("disabled", true); $("#cvlcptRcptSeCd--${pageName}").prop("disabled", true);
} }
} }
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/create.do"); // 등록
$P.control.urls.update = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/update.do"); // 수정
}
/************************************************************************** /**************************************************************************
* 최초 실행 함수 * 최초 실행 함수
**************************************************************************/ **************************************************************************/

Loading…
Cancel
Save