From c5c93f8d5ebfc39b53c9e0fc4e4b267e64c6aca4 Mon Sep 17 00:00:00 2001 From: jjh Date: Tue, 25 Jun 2024 17:51:11 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=A0=EC=A7=80=EC=84=9C=20=EB=B0=9C?= =?UTF-8?q?=EC=86=A1=20=EB=93=B1=EB=A1=9D=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cokr/xit/fims/sndb/SndbQuery.java | 20 +- .../xit/fims/sndb/service/bean/SndngBean.java | 27 +- .../xit/fims/sndb/web/Sndb01Controller.java | 28 +- .../sql/mapper/fims/sndb/sndng-mapper.xml | 14 +- .../WEB-INF/jsp/fims/epst/epst02010-main.jsp | 2 +- .../WEB-INF/jsp/fims/sndb/sndb01020-info.jsp | 53 ++- .../WEB-INF/jsp/fims/sndb/sndb01040-info.jsp | 24 +- .../WEB-INF/jsp/fims/sndb/sndb01060-info.jsp | 10 +- .../WEB-INF/jsp/fims/sndb/sndb01080-info.jsp | 24 +- .../WEB-INF/jsp/fims/sndb/sndb01100-info.jsp | 313 +++++++++--------- .../WEB-INF/jsp/fims/sndb/sndb01110-main.jsp | 25 +- .../WEB-INF/jsp/fims/sndb/sndb01210-info.jsp | 36 +- 12 files changed, 305 insertions(+), 271 deletions(-) diff --git a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java index 81d62d23..9400ddab 100644 --- a/src/main/java/cokr/xit/fims/sndb/SndbQuery.java +++ b/src/main/java/cokr/xit/fims/sndb/SndbQuery.java @@ -39,10 +39,10 @@ public class SndbQuery extends CmmnQuery { private String schRtpyrNo; // 납부자 번호 private String schRtpyrNm; // 납부자 명 private String schSndngRegSeCd; // 발송 등록 구분 코드 + private String schSndngSeCd; // 발송 구분 코드 private String schSndngYmd; // 발송 일자 private String schSndngYmdFrom; // 발송 일자 시작 private String schSndngYmdTo; // 발송 일자 종료 - private String schSndngSeCd; // 발송 구분 코드 private String schRcpnNm; // 수령인 명 private String schDlvrYmdFrom; // 배달 일자 시작 private String schDlvrYmdTo; // 배달 일자 종료 @@ -275,6 +275,15 @@ public class SndbQuery extends CmmnQuery { return self(); } + public String getSchSndngSeCd() { + return ifEmpty(schSndngSeCd, () -> null); + } + + public T setSchSndngSeCd(String schSndngSeCd) { + this.schSndngSeCd = schSndngSeCd; + return self(); + } + public String getSchSndngYmd() { return ifEmpty(schSndngYmd, () -> null); } @@ -302,15 +311,6 @@ public class SndbQuery extends CmmnQuery { return self(); } - public String getSchSndngSeCd() { - return ifEmpty(schSndngSeCd, () -> null); - } - - public T setSchSndngSeCd(String schSndngSeCd) { - this.schSndngSeCd = schSndngSeCd; - return self(); - } - public String getSchRcpnNm() { return ifEmpty(schRcpnNm, () -> null); } diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java index 2aa8e9af..9cbef0ad 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java @@ -332,6 +332,12 @@ public class SndngBean extends AbstractBean { if (sndng.getSndngRegSeCd() == null) { 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) { sndng.setResndYn("N"); // 재발송 여부 } @@ -631,21 +637,24 @@ public class SndngBean extends AbstractBean { rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다."; return rtnMsg; } - if (sndng.getTnocs() != nhtTrgtList.size()) { - rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다."; - return rtnMsg; - } +// if (sndng.getTnocs() != nhtTrgtList.size()) { +// rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다."; +// return rtnMsg; +// } // 사용자 정보를 조회한다. DataObject userInfo = userBean.getUserInfo(currentUser().getId()); // 발송 대장에 등록한다. sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드 - sndng.setVltnId(sndng.getVltnId()); // 위반 ID - if (sndng.getTnocs() == 1) { - sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드 - 개별 - } else { - sndng.setSndngRegSeCd("01"); // 발송 등록 구분 코드 - 일괄 + if (sndng.getSndngRegSeCd() == null) { + sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별 + } + if (sndng.getTnocs() == null) { + sndng.setTnocs(nhtTrgtList.size()); // 총건수 + } + if (sndng.getGramt() == null) { + sndng.setGramt(nhtTrgtList.get(0).number("GRAMT").longValue()); // 총금액 } if (sndng.getResndYn() == null) { sndng.setResndYn("N"); // 재발송 여부 diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index acc3003c..d1b61116 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -88,6 +88,7 @@ public class Sndb01Controller extends ApplicationController { , createAdvanceNoticeSendingList = "/060/createList.do" // 사전통지 발송 대상 목록의 발송 등록 , advanceNoticeSendingMain = "/070/main.do" // 사전통지 발송 현황 메인 화면 , getAdvanceNoticeSendingList = "/070/list.do" // 사전통지 발송 현황 목록 조회 + , removeAdvanceNoticeSending = "/070/remove.do" // 사전통지 발송 현황 삭제 , getAdvanceNoticeSendingDetailInfo = "/080/info.do" // 사전통지 발송 현황 상세 화면 , getAdvanceNoticeSendingDetailList = "/080/list.do" // 사전통지 발송 현황 상세 목록 조회 , createSendingLink = "/080/createSndngLink.do" // 사전통지 발송 현황 상세 목록의 우편통합 발송 연계 등록 @@ -960,14 +961,20 @@ public class Sndb01Controller extends ApplicationController { public ModelAndView getNoticeSheetTargetInfo(HttpServletRequest hReq, SndbQuery req) { ModelAndView mav = new ModelAndView("fims/sndb/sndb01100-info"); + // View(jsp)에서 사용할 공통코드를 조회 + Map> commonCodes = getCodesOf("FIM004", "FIM005", "FIM006", "FIM047", "FIM061", "FIM064"); + + addCodes(commonCodes, mav, "FIM004", "FIM005", "FIM006", "FIM061", "FIM064", "FIM047"); + return mav - .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName - .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 - .addObject("pageName", "sndb01100") // View(jsp)에서 사용할 id 뒤에 붙일 suffix - .addObject("infoPrefix", "nhtTrgt") // prefix - .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl - .addObject("mainQuery", toJson(req)) // 검색 조건 - .addObject("nhtTrgtList", toJson(mav.getModel().get("nhtTrgtList"))) // 자료 + .addObject("openerPageName", hReq.getParameter("openerPageName")) // 호출한 Jsp PageName + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("pageName", "sndb01100") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "nhtTrgt") // prefix + .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl + .addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD) + .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)에서 사용할 공통코드를 조회 Map> commonCodes = getCodesOf("FIM047", "FIM054", "FIM067"); + addCodes(commonCodes, mav, "FIM047"); + return mav .addObject("pageName", "sndb01110") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("infoPrefix", "nhtSndng") // prefix @@ -1262,7 +1271,7 @@ public class Sndb01Controller extends ApplicationController { .addObject("infoPrefix", "sndbkTrgt") // prefix .addObject("infoPrefixUrl", CLASS_URL) // prefixUrl .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("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD) ; @@ -1464,9 +1473,9 @@ public class Sndb01Controller extends ApplicationController { .addObject("FIM004List", commonCodes.get("FIM004")) // 주정차위반 내역 코드(VLTN_ID) .addObject("FIM005List", commonCodes.get("FIM005")) // 전용차로위반 내역 코드(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("FIM064List", commonCodes.get("FIM064")) // 화물자동차 밤샘주차 위반 코드(VLTN_ID) + .addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD) .addObject("FIM081List", commonCodes.get("FIM081")) // 미배달 사유 코드(UNDLVR_RSN_CD) ; } @@ -2403,6 +2412,7 @@ public class Sndb01Controller extends ApplicationController { } } */ + saved = true; rtnMsg = "[S]"; return new ModelAndView("jsonView") diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml index 41ae3bfb..a086d316 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -94,6 +94,9 @@ AND S.SNDNG_REG_SE_CD = #{schSndngRegSeCd} + + AND S.SNDNG_SE_CD = #{schSndngSeCd} + AND S.SNDNG_SE_CD = #{sndngSeCd} @@ -613,8 +616,8 @@ @@ -712,6 +716,7 @@ AND L.LEVY_NO #{schLevyNoTo} AND L.DEL_YN = 'N' + AND C.DEL_YN = 'N' /* 고지서 발송 대상 단속ID 가져오기(sndngMapper.selectAdvntceTrgtCrdnIds) */ SELECT L.LEVY_ID , C.CRDN_ID + , SUM(L.SUM_AMT) OVER() AS GRAMT diff --git a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp index 950e0540..96d8ae04 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/epst/epst02010-main.jsp @@ -50,7 +50,7 @@
- diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp index 872e001c..7a536168 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01020-info.jsp @@ -323,9 +323,25 @@ /************************************************************************** * 사용자 함수(function) **************************************************************************/ - // 업무구분에 따른 URL 설정 - $P.fnSetURL = (taskSeCd) => { - $P.control.urls.create = wctx.url("/" + taskSeCd + "${infoPrefixUrl}" + "/020/createList.do"); // 등록 + // 초기 데이터 설정 + $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.control.urls.create = wctx.url("/" + $P.mainQuery.taskSeCd + "${infoPrefixUrl}" + "/020/createList.do"); // 등록 } /************************************************************************** @@ -336,14 +352,16 @@ // validate 확인 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({ content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" , init: () => { setDialogZindex(); } , 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); } }); @@ -407,27 +425,6 @@ $("#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); - } - /************************************************************************** * 최초 실행 함수 **************************************************************************/ diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp index a8f31176..8ee7e9d1 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01040-info.jsp @@ -12,7 +12,8 @@
- + +
@@ -324,9 +325,6 @@ , ${infoPrefix}Fetch: ${wrngSndngDtlFetch} , ${infoPrefix}Total: ${wrngSndngDtlTotal} }); - - // 초기 데이터 설정 - $P.initData(); }); } @@ -334,19 +332,23 @@ $P.initForm = () => { // 화면 초기화 $("#frmEdit--${pageName}")[0].reset(); - } - // 초기 데이터 설정 - $P.initData = () => { - // SNDNG_ID - $("#sndngId--${pageName}").val($P.control.dataset.getValue("SNDNG_ID")); + // 기본 데이터 설정 + $("#sggCd--${pageName}").val($P.mainQuery.sggCd); // 시군구 코드 + $("#taskSeCd--${pageName}").val($P.mainQuery.taskSeCd); // 업무 구분 코드 - // 검색 조건 설정 (엑셀저장) + // 검색 조건 설정 $P.control.defaultFetchSize = $P.mainQuery.fetchSize; $P.control.query = $P.mainQuery; + // 업무 구분별 설정 + $P.setTask($P.mainQuery.taskSeCd); + } + + // 업무 구분별 설정 + $P.setTask = (taskSeCd) => { // 업무구분에 따른 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"); // 조회 } /************************************************************************** diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp index 50681e33..9e8ef850 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01060-info.jsp @@ -330,14 +330,16 @@ // validate 확인 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({ content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" , init: () => { setDialogZindex(); } , 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); } }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp index 1709aa22..11faf4ad 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp @@ -12,7 +12,8 @@
- + +
@@ -620,9 +621,6 @@ , ${infoPrefix}Fetch: ${advntceSndngDtlFetch} , ${infoPrefix}Total: ${advntceSndngDtlTotal} }); - - // 초기 데이터 설정 - $P.initData(); }); } @@ -631,24 +629,28 @@ // 화면 초기화 $("#frmEdit--${pageName}")[0].reset(); + // 기본 데이터 설정 + $("#sggCd--${pageName}").val($P.mainQuery.sggCd); // 시군구 코드 + $("#taskSeCd--${pageName}").val($P.mainQuery.taskSeCd); // 업무 구분 코드 + // 업무가 주정차위반(PVS) 또는 전용차로위반(BPV) 이라면.. if ($P.mainQuery.taskSeCd == "PVS" || $P.mainQuery.taskSeCd == "BPV") { $("#btnLinkNxrpIndivA01--${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.query = $P.mainQuery; + // 업무 구분별 설정 + $P.setTask($P.mainQuery.taskSeCd); + } + + // 업무 구분별 설정 + $P.setTask = (taskSeCd) => { // 업무구분에 따른 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"); // 검색 } /************************************************************************** diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01100-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01100-info.jsp index c5b9214c..ec77f190 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01100-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01100-info.jsp @@ -1,76 +1,81 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> -고지서 발송 대상 상세 정보 +고지서 발송 대상 등록
+
- + +
+ + + + +
- +
- - - -
- -
- - - - -
- -
- - -
-
- - - -
-
- - - -
- -
- - -
- -
- - ~ - -
-
-
- -
- - - - - - -
+ + + + + + +

@@ -82,7 +87,7 @@
- @@ -118,21 +123,25 @@
- - + + + +
+ - -
+
+ -
+
+