고지서 발송 등록 수정.

main
jjh 5 months ago
parent 4ee0c9859d
commit c5c93f8d5e

@ -39,10 +39,10 @@ public class SndbQuery extends CmmnQuery {
private String schRtpyrNo; // 납부자 번호 private String schRtpyrNo; // 납부자 번호
private String schRtpyrNm; // 납부자 명 private String schRtpyrNm; // 납부자 명
private String schSndngRegSeCd; // 발송 등록 구분 코드 private String schSndngRegSeCd; // 발송 등록 구분 코드
private String schSndngSeCd; // 발송 구분 코드
private String schSndngYmd; // 발송 일자 private String schSndngYmd; // 발송 일자
private String schSndngYmdFrom; // 발송 일자 시작 private String schSndngYmdFrom; // 발송 일자 시작
private String schSndngYmdTo; // 발송 일자 종료 private String schSndngYmdTo; // 발송 일자 종료
private String schSndngSeCd; // 발송 구분 코드
private String schRcpnNm; // 수령인 명 private String schRcpnNm; // 수령인 명
private String schDlvrYmdFrom; // 배달 일자 시작 private String schDlvrYmdFrom; // 배달 일자 시작
private String schDlvrYmdTo; // 배달 일자 종료 private String schDlvrYmdTo; // 배달 일자 종료
@ -275,6 +275,15 @@ public class SndbQuery extends CmmnQuery {
return self(); return self();
} }
public String getSchSndngSeCd() {
return ifEmpty(schSndngSeCd, () -> null);
}
public <T extends SndbQuery> T setSchSndngSeCd(String schSndngSeCd) {
this.schSndngSeCd = schSndngSeCd;
return self();
}
public String getSchSndngYmd() { public String getSchSndngYmd() {
return ifEmpty(schSndngYmd, () -> null); return ifEmpty(schSndngYmd, () -> null);
} }
@ -302,15 +311,6 @@ public class SndbQuery extends CmmnQuery {
return self(); return self();
} }
public String getSchSndngSeCd() {
return ifEmpty(schSndngSeCd, () -> null);
}
public <T extends SndbQuery> T setSchSndngSeCd(String schSndngSeCd) {
this.schSndngSeCd = schSndngSeCd;
return self();
}
public String getSchRcpnNm() { public String getSchRcpnNm() {
return ifEmpty(schRcpnNm, () -> null); return ifEmpty(schRcpnNm, () -> null);
} }

@ -332,6 +332,12 @@ public class SndngBean extends AbstractBean {
if (sndng.getSndngRegSeCd() == null) { if (sndng.getSndngRegSeCd() == null) {
sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별 sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
} }
if (sndng.getTnocs() == null) {
sndng.setTnocs(advntceTrgtList.size()); // 총건수
}
if (sndng.getGramt() == null) {
sndng.setGramt(advntceTrgtList.get(0).number("GRAMT").longValue()); // 총금액
}
if (sndng.getResndYn() == null) { if (sndng.getResndYn() == null) {
sndng.setResndYn("N"); // 재발송 여부 sndng.setResndYn("N"); // 재발송 여부
} }
@ -631,21 +637,24 @@ public class SndngBean extends AbstractBean {
rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다."; rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다.";
return rtnMsg; return rtnMsg;
} }
if (sndng.getTnocs() != nhtTrgtList.size()) { // if (sndng.getTnocs() != nhtTrgtList.size()) {
rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다."; // rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다.";
return rtnMsg; // return rtnMsg;
} // }
// 사용자 정보를 조회한다. // 사용자 정보를 조회한다.
DataObject userInfo = userBean.getUserInfo(currentUser().getId()); DataObject userInfo = userBean.getUserInfo(currentUser().getId());
// 발송 대장에 등록한다. // 발송 대장에 등록한다.
sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드 sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
sndng.setVltnId(sndng.getVltnId()); // 위반 ID if (sndng.getSndngRegSeCd() == null) {
if (sndng.getTnocs() == 1) { sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드 - 개별 }
} else { if (sndng.getTnocs() == null) {
sndng.setSndngRegSeCd("01"); // 발송 등록 구분 코드 - 일괄 sndng.setTnocs(nhtTrgtList.size()); // 총건수
}
if (sndng.getGramt() == null) {
sndng.setGramt(nhtTrgtList.get(0).number("GRAMT").longValue()); // 총금액
} }
if (sndng.getResndYn() == null) { if (sndng.getResndYn() == null) {
sndng.setResndYn("N"); // 재발송 여부 sndng.setResndYn("N"); // 재발송 여부

@ -88,6 +88,7 @@ public class Sndb01Controller extends ApplicationController {
, createAdvanceNoticeSendingList = "/060/createList.do" // 사전통지 발송 대상 목록의 발송 등록 , createAdvanceNoticeSendingList = "/060/createList.do" // 사전통지 발송 대상 목록의 발송 등록
, advanceNoticeSendingMain = "/070/main.do" // 사전통지 발송 현황 메인 화면 , advanceNoticeSendingMain = "/070/main.do" // 사전통지 발송 현황 메인 화면
, getAdvanceNoticeSendingList = "/070/list.do" // 사전통지 발송 현황 목록 조회 , getAdvanceNoticeSendingList = "/070/list.do" // 사전통지 발송 현황 목록 조회
, removeAdvanceNoticeSending = "/070/remove.do" // 사전통지 발송 현황 삭제
, getAdvanceNoticeSendingDetailInfo = "/080/info.do" // 사전통지 발송 현황 상세 화면 , getAdvanceNoticeSendingDetailInfo = "/080/info.do" // 사전통지 발송 현황 상세 화면
, getAdvanceNoticeSendingDetailList = "/080/list.do" // 사전통지 발송 현황 상세 목록 조회 , getAdvanceNoticeSendingDetailList = "/080/list.do" // 사전통지 발송 현황 상세 목록 조회
, createSendingLink = "/080/createSndngLink.do" // 사전통지 발송 현황 상세 목록의 우편통합 발송 연계 등록 , createSendingLink = "/080/createSndngLink.do" // 사전통지 발송 현황 상세 목록의 우편통합 발송 연계 등록
@ -960,14 +961,20 @@ public class Sndb01Controller extends ApplicationController {
public ModelAndView getNoticeSheetTargetInfo(HttpServletRequest hReq, SndbQuery req) { public ModelAndView getNoticeSheetTargetInfo(HttpServletRequest hReq, SndbQuery req) {
ModelAndView mav = new ModelAndView("fims/sndb/sndb01100-info"); ModelAndView mav = new ModelAndView("fims/sndb/sndb01100-info");
// View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM004", "FIM005", "FIM006", "FIM047", "FIM061", "FIM064");
addCodes(commonCodes, mav, "FIM004", "FIM005", "FIM006", "FIM061", "FIM064", "FIM047");
return mav return mav
.addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도 .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "sndb01100") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "sndb01100") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "nhtTrgt") // prefix .addObject("infoPrefix", "nhtTrgt") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("mainQuery", toJson(req)) // 검색 조건 .addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD)
.addObject("nhtTrgtList", toJson(mav.getModel().get("nhtTrgtList"))) // 자료 .addObject("taskSeCd", req.getTaskSeCd()) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD)
; ;
} }
@ -1049,6 +1056,8 @@ public class Sndb01Controller extends ApplicationController {
// View(jsp)에서 사용할 공통코드를 조회 // View(jsp)에서 사용할 공통코드를 조회
Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM047", "FIM054", "FIM067"); Map<String, List<CommonCode>> commonCodes = getCodesOf("FIM047", "FIM054", "FIM067");
addCodes(commonCodes, mav, "FIM047");
return mav return mav
.addObject("pageName", "sndb01110") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("pageName", "sndb01110") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("infoPrefix", "nhtSndng") // prefix .addObject("infoPrefix", "nhtSndng") // prefix
@ -1262,7 +1271,7 @@ public class Sndb01Controller extends ApplicationController {
.addObject("infoPrefix", "sndbkTrgt") // prefix .addObject("infoPrefix", "sndbkTrgt") // prefix
.addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD) .addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD)
.addObject("taskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))) // 시군구에서 사용하는 업무 목록 .addObject("taskSeCd", req.getTaskSeCd()) // 업무 구분 코드(TASK_SE_CD)
.addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD) .addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD)
.addObject("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD) .addObject("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD)
; ;
@ -1464,9 +1473,9 @@ public class Sndb01Controller extends ApplicationController {
.addObject("FIM004List", commonCodes.get("FIM004")) // 주정차위반 내역 코드(VLTN_ID) .addObject("FIM004List", commonCodes.get("FIM004")) // 주정차위반 내역 코드(VLTN_ID)
.addObject("FIM005List", commonCodes.get("FIM005")) // 전용차로위반 내역 코드(VLTN_ID) .addObject("FIM005List", commonCodes.get("FIM005")) // 전용차로위반 내역 코드(VLTN_ID)
.addObject("FIM006List", commonCodes.get("FIM006")) // 장애인주차위반 내역 코드(VLTN_ID) .addObject("FIM006List", commonCodes.get("FIM006")) // 장애인주차위반 내역 코드(VLTN_ID)
.addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD)
.addObject("FIM061List", commonCodes.get("FIM061")) // 전기차 충전구역 및 충전방해 위반 코드(VLTN_ID) .addObject("FIM061List", commonCodes.get("FIM061")) // 전기차 충전구역 및 충전방해 위반 코드(VLTN_ID)
.addObject("FIM064List", commonCodes.get("FIM064")) // 화물자동차 밤샘주차 위반 코드(VLTN_ID) .addObject("FIM064List", commonCodes.get("FIM064")) // 화물자동차 밤샘주차 위반 코드(VLTN_ID)
.addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD)
.addObject("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD) .addObject("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD)
; ;
} }
@ -2403,6 +2412,7 @@ public class Sndb01Controller extends ApplicationController {
} }
} }
*/ */
saved = true;
rtnMsg = "[S]"; rtnMsg = "[S]";
return new ModelAndView("jsonView") return new ModelAndView("jsonView")

@ -94,6 +94,9 @@
<if test="schSndngRegSeCd != null"> <if test="schSndngRegSeCd != null">
AND S.SNDNG_REG_SE_CD = #{schSndngRegSeCd} <!-- 발송 등록 구분 코드 --> AND S.SNDNG_REG_SE_CD = #{schSndngRegSeCd} <!-- 발송 등록 구분 코드 -->
</if> </if>
<if test="schSndngSeCd != null">
AND S.SNDNG_SE_CD = #{schSndngSeCd} <!-- 발송 구분 코드 -->
</if>
<if test="sndngSeCd != null"> <if test="sndngSeCd != null">
AND S.SNDNG_SE_CD = #{sndngSeCd} <!-- 발송 구분 코드 --> AND S.SNDNG_SE_CD = #{sndngSeCd} <!-- 발송 구분 코드 -->
</if> </if>
@ -613,8 +616,8 @@
<select id="selectAdvntceTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */ <select id="selectAdvntceTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */
<include refid="utility.paging-prefix" /> <include refid="utility.paging-prefix" />
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
, SUM(C.FFNLG_AMT) OVER() AS GRAMT <!-- 총금액 --> , SUM(C.ADVNTCE_AMT) OVER() AS GRAMT <!-- 사전통지 총금액 -->
<include refid="selectAdvntceTrgt" /> <include refid="selectAdvntceTrgt" />
<include refid="fromAdvntceTrgt" /> <include refid="fromAdvntceTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
@ -622,14 +625,15 @@
</select> </select>
<select id="selectAdvntceTrgts" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 객체 가져오기(sndngMapper.selectAdvntceSndngTrgts) */ <select id="selectAdvntceTrgts" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 객체 가져오기(sndngMapper.selectAdvntceSndngTrgts) */
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
<include refid="selectAdvntceTrgt" /> <include refid="selectAdvntceTrgt" />
<include refid="fromAdvntceTrgt" /> <include refid="fromAdvntceTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<select id="selectAdvntceTrgtCrdnIds" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 단속ID 가져오기(sndngMapper.selectAdvntceTrgtCrdnIds) */ <select id="selectAdvntceTrgtCrdnIds" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 단속ID 가져오기(sndngMapper.selectAdvntceTrgtCrdnIds) */
SELECT C.CRDN_ID <!-- 단속 ID --> SELECT C.CRDN_ID <!-- 단속 ID -->
, SUM(C.ADVNTCE_AMT) OVER() AS GRAMT <!-- 사전통지 총금액 -->
<include refid="fromAdvntceTrgt" /> <include refid="fromAdvntceTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
@ -712,6 +716,7 @@
AND L.LEVY_NO <![CDATA[<=]]> #{schLevyNoTo} <!-- 부과 번호종료 --> AND L.LEVY_NO <![CDATA[<=]]> #{schLevyNoTo} <!-- 부과 번호종료 -->
</if> </if>
AND L.DEL_YN = 'N' <!-- 삭제 여부 --> AND L.DEL_YN = 'N' <!-- 삭제 여부 -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
</sql> </sql>
<select id="selectNhtTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */ <select id="selectNhtTrgtList" parameterType="map" resultType="dataobject">/* 사전통지 발송 대상 목록 조회(sndngMapper.selectAdvntceSndngTrgtList) */
@ -734,6 +739,7 @@
<select id="selectNhtTrgtCrdnIds" parameterType="map" resultType="dataobject">/* 고지서 발송 대상 단속ID 가져오기(sndngMapper.selectAdvntceTrgtCrdnIds) */ <select id="selectNhtTrgtCrdnIds" parameterType="map" resultType="dataobject">/* 고지서 발송 대상 단속ID 가져오기(sndngMapper.selectAdvntceTrgtCrdnIds) */
SELECT L.LEVY_ID <!-- 부과 ID --> SELECT L.LEVY_ID <!-- 부과 ID -->
, C.CRDN_ID <!-- 단속 ID --> , C.CRDN_ID <!-- 단속 ID -->
, SUM(L.SUM_AMT) OVER() AS GRAMT <!-- 총금액 -->
<include refid="fromNhtTrgt" /> <include refid="fromNhtTrgt" />
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>

@ -50,7 +50,7 @@
<!-- 발송 구분 코드 --> <!-- 발송 구분 코드 -->
<div class="col-6"> <div class="col-6">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label>
<select class="form-select w-px-150" id="schSndngSeCd--${pageName}" name="schSndngSeCd"> <select class="form-select w-px-160" id="schSndngSeCd--${pageName}" name="schSndngSeCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${FIM047List}" var="item"> <c:forEach items="${FIM047List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>

@ -323,9 +323,25 @@
/************************************************************************** /**************************************************************************
* 사용자 함수(function) * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// 업무구분에 따른 URL 설정 // 초기 데이터 설정
$P.fnSetURL = (taskSeCd) => { $P.initData = () => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/createList.do"); // 등록 // 총건수 / 총금액
$("#tnocs--${pageName}").val(${wrngTrgtTotal});
$("#gramt--${pageName}").val($P.control.dataset.getValue("GRAMT"));
// 발송 종료 일자
$("#sndngEndYmd--${pageName}").val("");
$("#sndngEndYmd--${pageName}").prop("disabled", true);
$("#divSndngEndYmd--${pageName}").hide();
// 제목
let ttlNm = $P.control.dataset.getValue("TASK_SE_NM");
if ($P.mainQuery.schVltnCd != null && $P.mainQuery.schVltnCd != "") { // 위반항목이 '전체'가 아니라면..
ttlNm = ttlNm + " " + $P.control.dataset.getValue("VLTN_ARTCL");
}
$("#ttlNm--${pageName}").val(ttlNm + " " + "계고장");
// 업무구분에 따른 URL 설정
$P.control.urls.create = wctx.url("/" + $P.mainQuery.taskSeCd + "${infoPrefixUrl}" + "/020/createList.do"); // 등록
} }
/************************************************************************** /**************************************************************************
@ -336,14 +352,16 @@
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 검색조건과 저장 파라미터 객체를 합친다.
let params = $.extend({}, $P.mainQuery, $P.formFields.get());
params.sndngRegSeCd = "01"; // 발송 등록 구분 코드(SNDNG_REG_SE_CD) - 01: 일괄
dialog.alert({ dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
// 검색조건과 저장 파라미터 객체를 합친다.
let params = $.extend({}, $P.mainQuery, $P.formFields.get());
params.sndngRegSeCd = "01"; // 발송 등록 구분 코드(SNDNG_REG_SE_CD) - 01: 일괄
params.resndYn = "N"; // 재발송 여부
params.delYn = "N"; // 삭제 여부
$P.control.save(params); $P.control.save(params);
} }
}); });
@ -407,27 +425,6 @@
$("#sndngEndYmd--${pageName}").datepicker("setDate", new Date()); $("#sndngEndYmd--${pageName}").datepicker("setDate", new Date());
} }
// 초기 데이터 설정
$P.initData = () => {
// 총건수 / 총금액
$("#tnocs--${pageName}").val(${wrngTrgtTotal});
$("#gramt--${pageName}").val($P.control.dataset.getValue("GRAMT"));
// 발송 종료 일자
$("#sndngEndYmd--${pageName}").val("");
$("#sndngEndYmd--${pageName}").prop("disabled", true);
$("#divSndngEndYmd--${pageName}").hide();
// 제목
let ttlNm = $P.control.dataset.getValue("TASK_SE_NM");
if ($P.mainQuery.schVltnCd != null && $P.mainQuery.schVltnCd != "") { // 위반항목이 '전체'가 아니라면..
ttlNm = ttlNm + " " + $P.control.dataset.getValue("VLTN_ARTCL");
}
$("#ttlNm--${pageName}").val(ttlNm + " " + "계고장");
// 업무구분에 따른 URL 설정
$P.fnSetURL($P.mainQuery.taskSeCd);
}
/************************************************************************** /**************************************************************************
* 최초 실행 함수 * 최초 실행 함수
**************************************************************************/ **************************************************************************/

@ -12,7 +12,8 @@
<div class="card"> <div class="card">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<input type="hidden" id="sndngId--${pageName}" name="sndngId" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" />
</form> </form>
<!-- 입력 영역 --> <!-- 입력 영역 -->
@ -324,9 +325,6 @@
, ${infoPrefix}Fetch: ${wrngSndngDtlFetch} , ${infoPrefix}Fetch: ${wrngSndngDtlFetch}
, ${infoPrefix}Total: ${wrngSndngDtlTotal} , ${infoPrefix}Total: ${wrngSndngDtlTotal}
}); });
// 초기 데이터 설정
$P.initData();
}); });
} }
@ -334,19 +332,23 @@
$P.initForm = () => { $P.initForm = () => {
// 화면 초기화 // 화면 초기화
$("#frmEdit--${pageName}")[0].reset(); $("#frmEdit--${pageName}")[0].reset();
}
// 초기 데이터 설정 // 기본 데이터 설정
$P.initData = () => { $("#sggCd--${pageName}").val($P.mainQuery.sggCd); // 시군구 코드
// SNDNG_ID $("#taskSeCd--${pageName}").val($P.mainQuery.taskSeCd); // 업무 구분 코드
$("#sndngId--${pageName}").val($P.control.dataset.getValue("SNDNG_ID"));
// 검색 조건 설정 (엑셀저장) // 검색 조건 설정
$P.control.defaultFetchSize = $P.mainQuery.fetchSize; $P.control.defaultFetchSize = $P.mainQuery.fetchSize;
$P.control.query = $P.mainQuery; $P.control.query = $P.mainQuery;
// 업무 구분별 설정
$P.setTask($P.mainQuery.taskSeCd);
}
// 업무 구분별 설정
$P.setTask = (taskSeCd) => {
// 업무구분에 따른 URL 설정 // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + $P.mainQuery.taskSeCd + "${infoPrefixUrl}" + "/040/list.do"); // 조회 $P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/040/list.do"); // 조회
} }
/************************************************************************** /**************************************************************************

@ -330,14 +330,16 @@
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 검색조건과 저장 파라미터 객체를 합친다.
let params = $.extend({}, $P.mainQuery, $P.formFields.get());
params.sndngRegSeCd = "01"; // 발송 등록 구분 코드(SNDNG_REG_SE_CD) - 01: 일괄
dialog.alert({ dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); } , init: () => { setDialogZindex(); }
, onOK: () => { , onOK: () => {
// 검색조건과 저장 파라미터 객체를 합친다.
let params = $.extend({}, $P.mainQuery, $P.formFields.get());
params.sndngRegSeCd = "01"; // 발송 등록 구분 코드(SNDNG_REG_SE_CD) - 01: 일괄
params.resndYn = "N"; // 재발송 여부
params.delYn = "N"; // 삭제 여부
$P.control.save(params); $P.control.save(params);
} }
}); });

@ -12,7 +12,8 @@
<div class="card"> <div class="card">
<!-- 입력 영역 --> <!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit"> <form id="frmEdit--${pageName}" name="frmEdit">
<input type="hidden" id="sndngId--${pageName}" name="sndngId" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" />
</form> </form>
<!-- 입력 영역 --> <!-- 입력 영역 -->
@ -620,9 +621,6 @@
, ${infoPrefix}Fetch: ${advntceSndngDtlFetch} , ${infoPrefix}Fetch: ${advntceSndngDtlFetch}
, ${infoPrefix}Total: ${advntceSndngDtlTotal} , ${infoPrefix}Total: ${advntceSndngDtlTotal}
}); });
// 초기 데이터 설정
$P.initData();
}); });
} }
@ -631,24 +629,28 @@
// 화면 초기화 // 화면 초기화
$("#frmEdit--${pageName}")[0].reset(); $("#frmEdit--${pageName}")[0].reset();
// 기본 데이터 설정
$("#sggCd--${pageName}").val($P.mainQuery.sggCd); // 시군구 코드
$("#taskSeCd--${pageName}").val($P.mainQuery.taskSeCd); // 업무 구분 코드
// 업무가 주정차위반(PVS) 또는 전용차로위반(BPV) 이라면.. // 업무가 주정차위반(PVS) 또는 전용차로위반(BPV) 이라면..
if ($P.mainQuery.taskSeCd == "PVS" || $P.mainQuery.taskSeCd == "BPV") { if ($P.mainQuery.taskSeCd == "PVS" || $P.mainQuery.taskSeCd == "BPV") {
$("#btnLinkNxrpIndivA01--${pageName}").prop("disabled", true); $("#btnLinkNxrpIndivA01--${pageName}").prop("disabled", true);
$("#btnLinkNxrpIndivA03--${pageName}").prop("disabled", true); $("#btnLinkNxrpIndivA03--${pageName}").prop("disabled", true);
} }
}
// 초기 데이터 설정
$P.initData = () => {
// SNDNG_ID
$("#sndngId--${pageName}").val($P.control.dataset.getValue("SNDNG_ID"));
// 검색 조건 설정 // 검색 조건 설정
$P.control.defaultFetchSize = $P.mainQuery.fetchSize; $P.control.defaultFetchSize = $P.mainQuery.fetchSize;
$P.control.query = $P.mainQuery; $P.control.query = $P.mainQuery;
// 업무 구분별 설정
$P.setTask($P.mainQuery.taskSeCd);
}
// 업무 구분별 설정
$P.setTask = (taskSeCd) => {
// 업무구분에 따른 URL 설정 // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + $P.mainQuery.taskSeCd + "${infoPrefixUrl}" + "/080/list.do"); // 검색 $P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/080/list.do"); // 검색
} }
/************************************************************************** /**************************************************************************

@ -1,76 +1,81 @@
<%@ 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> <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">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card">
<!-- 업무 버튼 표시 --> <!-- 상단 버튼 -->
<div class="container-page-btn">
<button type="button" class="btn btn-outline-dark w-px-120" id="btnReset--${pageName}" title="초기화">
초기화
</button>
<span class="container-window-btn-right">
<button type="button" class="btn btn-search w-px-120" id="btnLinkNxrpSpclB01--${pageName}" title="세외수입 체납상세 조회">
세외수입 조회
</button>
</span>
</div> <!-- 상단 버튼 -->
<!-- 조회 영역 --> <!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <form id="frmSearch--${pageName}" name="frmSearch">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" /> <input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<div class="row g-1"> <!-- 메인 조건 -->
<!-- 총건수 --> <div class="container-search">
<div class="col-md-12 text-end"> <div class="row g-1">
<label for="tnocs--${pageName}" class="w-px-80 bg-lighter pe-2 col-form-label text-sm-end">총건수</label> <!-- 총건수 / 총금액 -->
<input type="text" class="form-control w-px-120" id="tnocs--${pageName}" name="tnocs" autocomplete="off" readonly /> <div class="col-md-12 text-end">
<label for="gramt--${pageName}" class="w-px-80 bg-lighter pe-2 col-form-label text-sm-end">총금액</label> <label class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">총건수 / 총금액</label>
<input type="text" class="form-control w-px-160" id="gramt--${pageName}" name="gramt" autocomplete="off" readonly /> <input type="text" class="form-control w-px-80" id="tnocs--${pageName}" name="tnocs" autocomplete="off" readonly />
</div> <input type="text" class="form-control w-px-140" id="gramt--${pageName}" name="gramt" autocomplete="off" readonly />
<!-- 위반항목 --> </div>
<div class="col-12"> <!-- 부과 일자 -->
<label for="schVltnId--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">위반항목</label> <div class="col-md-6">
<select class="form-select" id="schVltnId--${pageName}" name="schVltnId"> <label for="schLevyYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">부과일자</label>
<option value="">전체</option> <input type="text" class="form-control form-date" id="schLevyYmd--${pageName}" name="schLevyYmd"
<c:forEach items="${FIM004List}" var="item"> data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required />
<option value="${item.code}">${item.value}</option> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</c:forEach> </div>
</select> <!-- 최초 납기 일자 -->
</div> <div class="col-md-6">
<div class="col-md-4"> <label for="schFrstDudtYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">최초납기일자</label>
<label for="schLevyYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">부과일자</label> <input type="text" class="form-control form-date" id="schFrstDudtYmd--${pageName}" name="schFrstDudtYmd"
<input type="text" class="form-control form-date" id="schLevyYmd--${pageName}" name="schLevyYmd" data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required />
data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required /> <button type="button" class="bx bx-sm bx-calendar bg-white"></button>
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> </div>
</div> <!-- 회계연도 -->
<div class="col-md-8"> <div class="col-md-6">
<label for="schFrstDudtYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">최초납기일자</label> <label for="schFyr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">회계연도</label>
<input type="text" class="form-control form-date" id="schFrstDudtYmd--${pageName}" name="schFrstDudtYmd" <input type="text" class="form-control w-px-80" id="schFyr--${pageName}" name="schFyr" maxlength="4" autocomplete="off" required />
data-fmt-type="day" autocomplete="off" title="날짜 선택" maxlength="10" required /> </div>
<button type="button" class="bx bx-sm bx-calendar bg-white"></button> <!-- 부과 번호 -->
</div> <div class="col-md-6">
<!-- 회계연도 --> <label for="schLevyNoFrom--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">부과번호</label>
<div class="col-md-4"> <input type="text" class="form-control w-px-80" id="schLevyNoFrom--${pageName}" name="schLevyNoFrom" maxlength="6" value="000000" autocomplete="off" required /> ~
<label for="schFyr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">회계연도</label> <input type="text" class="form-control w-px-80" id="schLevyNoTo--${pageName}" name="schLevyNoTo" maxlength="6" value="999999" autocomplete="off" required />
<input type="text" class="form-control w-px-80" id="schFyr--${pageName}" name="schFyr" maxlength="4" autocomplete="off" required /> </div>
</div> <!-- 위반항목 -->
<!-- 부과번호 --> <div class="col-12">
<div class="col-md-8"> <label for="schVltnId--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">위반항목</label>
<label for="schLevyNoFrom--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">부과번호</label> <select class="form-select w-px-160" id="schVltnId--${pageName}" name="schVltnId">
<input type="text" class="form-control w-px-80" id="schLevyNoFrom--${pageName}" name="schLevyNoFrom" maxlength="6" value="000000" autocomplete="off" required /> ~ <option value="">전체</option>
<input type="text" class="form-control w-px-80" id="schLevyNoTo--${pageName}" name="schLevyNoTo" maxlength="6" value="999999" autocomplete="off" required /> <c:forEach items="${FIM004List}" var="item">
</div> <option value="${item.code}">${item.value}</option>
</div> </c:forEach>
</form> <!-- /입력 영역 --> </select>
<!-- 업무 버튼 표시 --> </div>
<div> </div> <!-- <div class="row g-1"> -->
<span class="container-page-btn"> </div> <!-- <div class="container-search"> -->
<span class="container-window-btn-right"> </form>
<!-- 업무 버튼 --> <!-- 검색 조건 영역 -->
<button type="button" class="btn btn-primary w-px-120" id="btnLinkNxrpSpclB01--${pageName}" title="세외수입 체납상세 조회">
세외수입 조회
</button>
</span>
</span>
</div> <!-- / 업무 버튼 표시 -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
<p></p> <p></p>
@ -82,7 +87,7 @@
<!-- 발송 구분 --> <!-- 발송 구분 -->
<div class="col-4"> <div class="col-4">
<label for="sndngSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">발송구분</label> <label for="sndngSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">발송구분</label>
<select class="form-select" id="sndngSeCd--${pageName}" name="sndngSeCd"> <select class="form-select w-px-160" id="sndngSeCd--${pageName}" name="sndngSeCd">
<c:forEach items="${FIM047List}" var="item"> <c:forEach items="${FIM047List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
</c:forEach> </c:forEach>
@ -118,21 +123,25 @@
<textarea type="text" class="form-control w-85" id="etcCn--${pageName}" name="etcCn" rows="2" data-maxlengthb="1000"></textarea> <textarea type="text" class="form-control w-85" id="etcCn--${pageName}" name="etcCn" rows="2" data-maxlengthb="1000"></textarea>
</div> </div>
</div> </div>
</form> <!-- /입력 영역 --> </form>
<!-- 업무 버튼 표시 --> <!-- 입력 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div> <div>
<span class="container-page-btn"> <span class="container-page-btn">
<!-- 업무 버튼 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnSave--${pageName}" title="저장"> <button type="button" class="btn btn-primary w-px-120" id="btnSave--${pageName}" title="저장">
저장 저장
</button> </button>
</span> </span>
</span> </span>
</div> <!-- / 업무 버튼 표시 --> </div> <!-- 업무 버튼 및 건수 표시 -->
</div> <!-- <div class="card"> --> </div> <!-- <div class="card"> -->
<!-- Page Body -->
</div> <!-- / Content <div class="container flex-grow-1 px-0"> --> </div> <!-- <div class="container flex-grow-1 px-0"> -->
<!-- Content -->
</div> <!-- / inner page html <div class="content-wrapper"> --> </div> <!-- / inner page html <div class="content-wrapper"> -->
<script> <script>
@ -153,10 +162,8 @@
**************************************************************************/ **************************************************************************/
$(document).ready(function() { $(document).ready(function() {
// pageObject // pageObject
var $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/sndb/sndb01";
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}"; $P.callPurpose = "${callPurpose}";
// FormFields // FormFields
@ -171,31 +178,32 @@
, prefixName: "고지서 발송 대상" , prefixName: "고지서 발송 대상"
, infoSize: "xxl" , infoSize: "xxl"
, keymapper: info => info ? info.CRDN_ID : "" , keymapper: info => info ? info.CRDN_ID : ""
, dataGetter: obj => obj.nhtTrgtList , dataGetter: obj => obj.${infoPrefix}List
, appendData: true , appendData: true
}); });
// $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 이벤트
**************************************************************************/ **************************************************************************/
// 저장 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
, init: () => { setDialogZindex(); }
, onOK: () => { } , onOK: () => { }
}); });
if (resp.saved) { if (resp.saved) {
dialog.close($P.control.prefix + "Dialog"); dialog.close($P.control.prefix + "Dialog--${openerPageName}");
} }
} }
@ -207,7 +215,7 @@
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)
}); });
} }
@ -215,6 +223,42 @@
/************************************************************************** /**************************************************************************
* 사용자 함수(function) * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// 세외수입 과태료 대장 상세 조회
$P.linkNxrpSpclB01 = (params) => {
if (!params) return;
ajax.post({
url: wctx.url("/" + params.taskSeCd + "${infoPrefixUrl}" + "/991/nxrpB01List.do")
, data: params || {}
, success: resp => {
// 연계 성공이면 저장 버튼 활성화
if (resp.saved) {
$("#schLevyYmd--${pageName}").prop("disabled", true); // 부과일자
$("#schFrstDudtYmd--${pageName}").prop("disabled", true); // 최초납기일자
$("#schFyr--${pageName}").prop("disabled", true); // 회계연도
$("#schLevyNoFrom--${pageName}").prop("disabled", true); // 시작 부과번호
$("#schLevyNoTo--${pageName}").prop("disabled", true); // 종료 부과번호
$("#schVltnId--${pageName}").prop("disabled", true); // 위반항목
// enabled
$("#btnSave--${pageName}").prop("disabled", false); // 저장 버튼
}
// S 또는 F 를 버튼 title 로 변경하여 메시지 출력
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.title);
dialog.alert({
content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
}
});
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 제목 변경 // 제목 변경
$P.fnChangeTitle = () => { $P.fnChangeTitle = () => {
let title = ""; let title = "";
@ -243,32 +287,7 @@
params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드 params.sggCd = $("#sggCd--${pageName}").val(); // 시군구 코드
params.taskSeCd = $("#taskSeCd--${pageName}").val(); // 업무 구분 코드 params.taskSeCd = $("#taskSeCd--${pageName}").val(); // 업무 구분 코드
// 서버 호출 $P.linkNxrpSpclB01(params);
ajax.post({
url : wctx.url("/" + params.taskSeCd + $P.PrefixUrl + "/991/nxrpB01List.do")
, data : params || {}
, success : resp => {
// 연계 성공이면 저장 버튼 활성화
if (resp.rtnMsg.match("[S]")) {
$("#schVltnId--${pageName}").prop("disabled", true); // 위반항목
$("#schLevyYmd--${pageName}").prop("disabled", true); // 부과일자
$("#schFrstDudtYmd--${pageName}").prop("disabled", true); // 최초납기일자
$("#schFyr--${pageName}").prop("disabled", true); // 회계연도
$("#schLevyNoFrom--${pageName}").prop("disabled", true); // 시작 부과번호
$("#schLevyNoTo--${pageName}").prop("disabled", true); // 종료 부과번호
$("#btnSave--${pageName}").prop("disabled", false); // 저장 버튼
}
// S 또는 F 를 버튼 title 로 변경하여 메시지 출력
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.title);
dialog.alert({
content : showMessage
, onOK : () => { }
});
}
});
} }
}); });
} }
@ -278,16 +297,16 @@
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
// 저장 파라미터 설정
let info = $P.formFields.get();
let info2 = $P.formEditFields.get();
// 검색조건과 저장 파라미터 객체를 합친다.
let params = $.extend({}, info2, info);
dialog.alert({ dialog.alert({
content : $P.control.prefixName + " 정보를 저장하시겠습니까?" content : $P.control.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK : () => { , onOK : () => {
// 검색조건과 저장 파라미터 객체를 합친다.
let params = $.extend({}, $P.formEditFields.get(), $P.formFields.get());
params.sndngRegSeCd = "01"; // 발송 등록 구분 코드(SNDNG_REG_SE_CD) - 01: 일괄
params.resndYn = "N"; // 재발송 여부
params.delYn = "N"; // 삭제 여부
$P.control.save(params); $P.control.save(params);
} }
}); });
@ -325,12 +344,11 @@
$P.fnChangeTitle(); $P.fnChangeTitle();
}); });
// 세외수입 체납상세정보 조회 버튼 이벤트 // 업무 버튼 이벤트
$("#btnLinkNxrpSpclB01--${pageName}").on("click", function() { $("#btnLinkNxrpSpclB01--${pageName}").on("click", function() {
$P.fnLinkNxrpSpclB01($(this).attr("title")); $P.fnLinkNxrpSpclB01($(this).attr("title")); // 세외수입 체납상세정보 조회
}); });
// 저장 버튼 이벤트 $("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장 버튼
$("#btnSave--${pageName}").on("click", () => $P.fnSave());
} }
// 초기 화면 설정 // 초기 화면 설정
@ -338,56 +356,46 @@
// 화면 초기화 // 화면 초기화
$("#frmSearch--${pageName}")[0].reset(); $("#frmSearch--${pageName}")[0].reset();
// 달력 초기화 // 기본 데이터 설정
initDatepicker("frmSearch--${pageName}"); $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#schLevyYmd--${pageName}").datepicker("setDate", new Date()); $("#taskSeCd--${pageName}").val("${taskSeCd}"); // 업무 구분 코드
$("#schFrstDudtYmd--${pageName}").datepicker("setDate", new Date()); initDatepicker("frmSearch--${pageName}"); // 달력 초기화
initDatepicker("frmEdit--${pageName}"); $("#schLevyYmd--${pageName}").datepicker("setDate", new Date()); // 부과일자
$("#sndngYmd--${pageName}").datepicker("setDate", new Date()); $("#schFrstDudtYmd--${pageName}").datepicker("setDate", new Date()); // 최초납기일자
$("#sndngEndYmd--${pageName}").datepicker("setDate", new Date()); $("#schFyr--${pageName}").val(new Date().getFullYear()); // 회계연도
$("#schLevyNoFrom--${pageName}").val("000001"); // 시작 부과번호
// $("#schLevyNoTo--${pageName}").val("999999"); // 종료 부과번호
$("#btnSave--${pageName}").prop("disabled", true); initDatepicker("frmEdit--${pageName}"); // 달력 초기화
} $("#sndngYmd--${pageName}").datepicker("setDate", new Date()); // 발송 일자
$("#sndngEndYmd--${pageName}").datepicker("setDate", new Date()); // 발송 종료 일자
// 기본 데이터 설정 $("#sndngSeCd--${pageName}").val("03").prop("selected", true); // 발송구분
$P.initData = (taskSeCd) => { $("#sndngYmd--${pageName}").datepicker("setDate", new Date()); // 발송일자
// 시군구 코드
$("#sggCd--${pageName}").val("${sggCd}"); $("#btnSave--${pageName}").prop("disabled", true); // 저장
// 업무 구분 코드
$("#taskSeCd--${pageName}").val("${taskSeCd}");
$("#schLevyYmd--${pageName}").datepicker("setDate", new Date()); // 부과일자
$("#schFrstDudtYmd--${pageName}").datepicker("setDate", new Date()); // 최초납기일자
$("#schFyr--${pageName}").val(new Date().getFullYear()); // 회계연도
$("#schLevyNoFrom--${pageName}").val("000001"); // 시작 부과번호
$("#schLevyNoTo--${pageName}").val("999999"); // 종료 부과번호
$("#sndngSeCd--${pageName}").val("03").prop("selected", true); // 발송구분
$("#sndngYmd--${pageName}").datepicker("setDate", new Date()); // 발송일자
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask($("#taskSeCd--${pageName}").val()); $P.setTask("${taskSeCd}");
} }
// 업무 구분별 설정 // 업무 구분별 설정
$P.setTask = (taskSeCd) => { $P.setTask = (taskSeCd) => {
// 업무별 조회조건 // 업무구분에 따른 URL 설정
let clsForTask = taskSeCd.toLowerCase(); $P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/100/createList.do"); // 등록
renderForTask("frmSearch--${pageName}", clsForTask); // 업무별 조회조건
renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());
// 업무에 따른 위반 내용 // 업무에 따른 위반 내용
let vltnIdCode = []; let vltnIdCode = [];
if (taskSeCd == "PVS") { // 주정차 위반 if (taskSeCd == "PVS") { // 주정차 위반
vltnIdCode = FIM004.list(); vltnIdCode = FIM004.list();
} else if (taskSeCd == "BPV") { // 전용차로 위반 } else if (taskSeCd == "BPV") { // 전용차로 위반
vltnIdCode = FIM005.list(); vltnIdCode = FIM005.list();
} else if (taskSeCd == "DPV") { // 장애인 전용 } else if (taskSeCd == "DPV") { // 장애인 전용
vltnIdCode = FIM006.list(); vltnIdCode = FIM006.list();
} else if (taskSeCd == "ECA") { // 전기차 주차 위반 } else if (taskSeCd == "ECA") { // 전기차 주차 위반
vltnIdCode = FIM061.list(); vltnIdCode = FIM061.list();
} else if (taskSeCd == "PES") { // 밤샘 주차 위반 } else if (taskSeCd == "PES") { // 밤샘 주차 위반
vltnIdCode = FIM064.list(); vltnIdCode = FIM064.list();
} else { } else {
return; return;
@ -399,14 +407,6 @@
$(vltnIdCode).each(function(index, item) { $(vltnIdCode).each(function(index, item) {
$("#schVltnId--${pageName}").append("<option value='" + vltnIdCode[index].code +"'>" + vltnIdCode[index].value + "</option>"); $("#schVltnId--${pageName}").append("<option value='" + vltnIdCode[index].code +"'>" + vltnIdCode[index].value + "</option>");
}); });
// URL 설정
$P.setURL(taskSeCd);
}
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/100/createList.do"); // 등록
} }
/************************************************************************** /**************************************************************************
@ -417,7 +417,6 @@
// 2. 초기 화면 설정 // 2. 초기 화면 설정
$P.initForm(); $P.initForm();
$P.initData();
// 3. 보안모드 // 3. 보안모드
fn_securityModeToggle($("#securityMode--top").is(":checked")); fn_securityModeToggle($("#securityMode--top").is(":checked"));

@ -243,6 +243,9 @@
**************************************************************************/ **************************************************************************/
pageObject["${pageName}"] = {}; pageObject["${pageName}"] = {};
// 공통 코드
var FIM047 = new CommonCodes(${FIM047}, true);
/************************************************************************** /**************************************************************************
* script 진입 * script 진입
**************************************************************************/ **************************************************************************/
@ -321,11 +324,11 @@
// DataTables(그리드) 전체 선택(checkbox) // DataTables(그리드) 전체 선택(checkbox)
if (keys.length < 1) { if (keys.length < 1) {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제 $("th input[type='checkbox']").prop("checked", false); // 체크 해제
} else if (keys.length == ${infoPrefix}List.length) { } else if (keys.length == ${infoPrefix}List.length) {
$("th input[type='checkbox']").prop("checked", true); // 체크 설정 $("th input[type='checkbox']").prop("checked", true); // 체크 설정
} else { } else {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제 $("th input[type='checkbox']").prop("checked", false); // 체크 해제
} }
}; };
@ -531,10 +534,14 @@
// 검색조건 // 검색조건
$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.sndngSeCdFrom = "03"; // 발송 구분 코드 - 03 부과고지서
$P.control.query.sndngSeCdTo = "08"; // 발송 구분 코드 - 08 체납고지서
$P.control.query.delYn = "N"; // 삭제 여부 $P.control.query.delYn = "N"; // 삭제 여부
// 발송구분이 "전체"로 선택 되었다면..
if ($P.control.query.schSndngSeCd == "") {
$P.control.query.sndngSeCdFrom = "03"; // 발송 구분 코드(FIM047) - 03: 고지서
$P.control.query.sndngSeCdTo = "08"; // 발송 구분 코드(FIM047) - 08: 체납고지서
}
$P.control.load(1); $P.control.load(1);
} }
@ -614,7 +621,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) {
@ -684,6 +691,12 @@
// 업무구분에 따른 URL 설정 // 업무구분에 따른 URL 설정
$P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/110/list.do"); // 검색 $P.control.urls.load = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/110/list.do"); // 검색
// 발송 구분에 "전체" 추가
let reasons = FIM047.list().filter(reason => reason.code >= "03" && reason.code <= "08");
$("#schSndngSeCd--${pageName}").empty();
$("#schSndngSeCd--${pageName}").append("<option value=''>" + "전체" + "</option>");
$("#schSndngSeCd--${pageName}").append(reasons.map(reason => "<option value='" + reason.code + "'>" + reason.value + "</option>").join());
// 업무별 조회조건 // 업무별 조회조건
renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase()); renderForTask("frmSearch--${pageName}", taskSeCd.toLowerCase());

@ -6,7 +6,7 @@
<!-- 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 flex-grow-1 px-0">
<!-- Page Body --> <!-- Page Body -->
<div class="card"> <div class="card">
@ -29,28 +29,16 @@
<!-- 검색 조건 영역 --> <!-- 검색 조건 영역 -->
<form id="frmSearch--${pageName}" name="frmSearch"> <form id="frmSearch--${pageName}" name="frmSearch">
<!-- hidden --> <!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" /> <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" />
<!-- 메인 조건 --> <!-- 메인 조건 -->
<div class="container-search"> <div class="container-search">
<div class="row g-1"> <div class="row g-1">
<!-- 업무구분 -->
<div class="col-12">
<span class="form-label fw-bold form-search-title w-px-120 text-end">업무구분</span>
<span class="form-search-linebox">
<c:forEach items="${taskListForSgg}" var="item">
<label>
<input type="radio" class="form-check-input" name="taskSeCd" alt="업무구분"
value="${item.code}" onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);">
${item.value}
</label>
</c:forEach>
</span>
</div>
<!-- 발송 구분 --> <!-- 발송 구분 -->
<div class="col-4"> <div class="col-4">
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schSndngSeCd--${pageName}">발송구분</label>
<select class="form-select w-px-140" id="schSndngSeCd--${pageName}" name="schSndngSeCd"> <select class="form-select w-px-160" id="schSndngSeCd--${pageName}" name="schSndngSeCd">
<option value="">전체</option> <option value="">전체</option>
<c:forEach items="${FIM047List}" var="item"> <c:forEach items="${FIM047List}" var="item">
<option value="${item.code}">${item.value}</option> <option value="${item.code}">${item.value}</option>
@ -98,8 +86,8 @@
<label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRgNo--${pageName}">등기번호</label> <label class="form-label fw-bold form-search-title w-px-120 text-end" for="schRgNo--${pageName}">등기번호</label>
<input type="text" class="form-control w-px-160" id="schRgNo--${pageName}" name="schRgNo" autocomplete="off" /> <input type="text" class="form-control w-px-160" id="schRgNo--${pageName}" name="schRgNo" autocomplete="off" />
</div> </div>
</div> </div> <!-- <div class="row g-1"> -->
</div> <!-- 메인 조건 --> </div> <!-- <div class="container-search"> -->
</form> </form>
<!-- 검색 조건 영역 --> <!-- 검색 조건 영역 -->
@ -263,6 +251,8 @@
// pageObject // pageObject
let $P = pageObject["${pageName}"]; let $P = pageObject["${pageName}"];
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}";
// FormFields // FormFields
$P.formFields = new FimsFormFields("#frmSearch--${pageName}"); $P.formFields = new FimsFormFields("#frmSearch--${pageName}");
$P.formEditFields = new FimsFormFields("#frmEdit--${pageName}"); $P.formEditFields = new FimsFormFields("#frmEdit--${pageName}");
@ -272,7 +262,7 @@
**************************************************************************/ **************************************************************************/
$P.control = new DatasetControl({ $P.control = new DatasetControl({
prefix: "sndbkTrgt" prefix: "sndbkTrgt"
, prefixName: "반송" , prefixName: "반송 대상"
, keymapper: info => info ? info.SNDNG_DTL_ID : "" , keymapper: info => info ? info.SNDNG_DTL_ID : ""
, dataGetter: obj => obj.${infoPrefix}List , dataGetter: obj => obj.${infoPrefix}List
, appendData: true , appendData: true
@ -363,8 +353,10 @@
$P.control.save = (info) => { $P.control.save = (info) => {
if (!info) return; if (!info) return;
let create = ($P.callPurpose == "create");
ajax.post({ ajax.post({
url: $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)
}); });
@ -541,6 +533,8 @@
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
let params = $P.formEditFields.get(); // formFields let params = $P.formEditFields.get(); // formFields
params.sggCd = $("#sggCd--${pageName}").val() // 시군구 코드
params.taskSeCd = $("#taskSeCd--${pageName}").val() // 업무 구분 코드
params.sndngDtlIds = selected.join(","); // 발송 상세 Ids params.sndngDtlIds = selected.join(","); // 발송 상세 Ids
params.undlvrRsnNm = $("#undlvrRsnCd--${pageName} option:selected").text(); // 미배달 사유 명 params.undlvrRsnNm = $("#undlvrRsnCd--${pageName} option:selected").text(); // 미배달 사유 명
params.sndngDtlSttsCd = "05"; // 발송 상세 상태 코드(FIM050) - 05: 반송 params.sndngDtlSttsCd = "05"; // 발송 상세 상태 코드(FIM050) - 05: 반송
@ -614,7 +608,7 @@
// 기본 데이터 설정 // 기본 데이터 설정
$("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 코드 $("#taskSeCd--${pageName}").val("${taskSeCd}"); // 업무 구분 코드
initDatepicker("frmSearch--${pageName}"); // 달력 초기화 initDatepicker("frmSearch--${pageName}"); // 달력 초기화
$("#schSndngYmd--${pageName}").datepicker("setDate", new Date()); // 발송 일자 $("#schSndngYmd--${pageName}").datepicker("setDate", new Date()); // 발송 일자
$("#dlvrYmd--${pageName}").datepicker("setDate", new Date()); // 배달 일자 $("#dlvrYmd--${pageName}").datepicker("setDate", new Date()); // 배달 일자

Loading…
Cancel
Save