From b52e82cf82b2afd8f7fb8b987aa089106e4bd365 Mon Sep 17 00:00:00 2001 From: jjh Date: Mon, 10 Jul 2023 19:15:04 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B6=80=EA=B3=BC=EC=A0=9C=EC=99=B8=20?= =?UTF-8?q?=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/excl/Excl01Query.java | 25 ++++- .../cokr/xit/fims/excl/dao/Excl01Mapper.java | 6 +- .../xit/fims/excl/service/Excl01Service.java | 10 +- .../fims/excl/service/bean/Excl01Bean.java | 13 ++- .../excl/service/bean/Excl01ServiceBean.java | 19 +++- .../xit/fims/excl/web/Excl01Controller.java | 79 ++++++++++---- .../sql/mapper/fims/excl/excl01-mapper.xml | 10 +- .../WEB-INF/jsp/fims/excl/excl01010-main.jsp | 47 ++++---- .../WEB-INF/jsp/fims/excl/excl01020-info.jsp | 101 ++++++++---------- .../WEB-INF/jsp/fims/excl/excl02010-main.jsp | 2 +- .../WEB-INF/jsp/fims/excl/excl03010-main.jsp | 2 +- 11 files changed, 203 insertions(+), 111 deletions(-) diff --git a/src/main/java/cokr/xit/fims/excl/Excl01Query.java b/src/main/java/cokr/xit/fims/excl/Excl01Query.java index 06602a09..151f174e 100644 --- a/src/main/java/cokr/xit/fims/excl/Excl01Query.java +++ b/src/main/java/cokr/xit/fims/excl/Excl01Query.java @@ -39,7 +39,9 @@ public class Excl01Query extends QueryRequest { private String schRtpyrNm; // 납부자 명 - 납부자(TB_PAYER) // - private String levyExclId; + private String levyExclId; // 부과 제외 ID + private String crdnId; // 단속 ID + private String levyExclSeCd; // 부과 제외 구분 코드 public String getSggCd() { return ifEmpty(sggCd, () -> null); @@ -221,7 +223,6 @@ public class Excl01Query extends QueryRequest { return self(); } - public String getLevyExclId() { return ifEmpty(levyExclId, () -> null); } @@ -232,4 +233,24 @@ public class Excl01Query extends QueryRequest { return self(); } + public String getCrdnId() { + return ifEmpty(crdnId, () -> null); + } + + public T setCrdnId(String crdnId) { + this.crdnId = crdnId; + + return self(); + } + + public String getLevyExclSeCd() { + return ifEmpty(levyExclSeCd, () -> null); + } + + public T setLevyExclSeCd(String levyExclSeCd) { + this.levyExclSeCd = levyExclSeCd; + + return self(); + } + } diff --git a/src/main/java/cokr/xit/fims/excl/dao/Excl01Mapper.java b/src/main/java/cokr/xit/fims/excl/dao/Excl01Mapper.java index 08a114f7..1e9b45cd 100644 --- a/src/main/java/cokr/xit/fims/excl/dao/Excl01Mapper.java +++ b/src/main/java/cokr/xit/fims/excl/dao/Excl01Mapper.java @@ -39,10 +39,10 @@ public interface Excl01Mapper extends AbstractMapper { * @param levyExclId 부과제외 ID * @return 부과제외 정보 */ - Excl01 selectLevyExcl(Excl01Query req); + DataObject selectLevyExcl(Excl01Query req); - default Excl01 selectLevyExclInfo(String levyExclId) { - Excl01 levyExclInfo = selectLevyExcl(new Excl01Query().setLevyExclId(levyExclId)); + default DataObject selectLevyExclInfo(String levyExclId) { + DataObject levyExclInfo = selectLevyExcl(new Excl01Query().setLevyExclId(levyExclId)); return levyExclInfo; } diff --git a/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java b/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java index 3b42fedd..8cce048a 100644 --- a/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java +++ b/src/main/java/cokr/xit/fims/excl/service/Excl01Service.java @@ -34,7 +34,7 @@ public interface Excl01Service { * @param levyExclId 부과 제외 ID * @return 부과제외 정보 */ - Excl01 getLevyExclusionInfo(String levyExclId); + DataObject getLevyExclusionInfo(Excl01Query req); /**부과제외 대장 정보를 등록한다. * @param excl 부과제외 대장 @@ -64,3 +64,11 @@ public interface Excl01Service { boolean removeLevyExclusion(Excl01 excl01); } + + +///**지정한 ID의 부과제외 정보를 반환한다.
+// * @param levyExclId 부과 제외 ID +// * @return 부과제외 정보 +// */ +//Excl01 getLevyExclusionInfo(String levyExclId); + diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java index 662d08de..8a150112 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01Bean.java @@ -49,8 +49,8 @@ public class Excl01Bean extends AbstractComponent { * @param levyExclId 부과제외 ID * @return 부과제외 정보 */ - public Excl01 getLevyExclusionInfo(String levyExclId) { - return excl01Mapper.selectLevyExclInfo(levyExclId); + public DataObject getLevyExclusionInfo(Excl01Query req) { + return excl01Mapper.selectLevyExcl(req); } /**부과제외 대장 정보를 등록한다. @@ -87,3 +87,12 @@ public class Excl01Bean extends AbstractComponent { } } + + +///**지정한 ID의 부과제외 정보를 반환한다.
+// * @param levyExclId 부과제외 ID +// * @return 부과제외 정보 +// */ +//public Excl01 getLevyExclusionInfo(String levyExclId) { +// return excl01Mapper.selectLevyExclInfo(levyExclId); +//} diff --git a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java index 0e281d3e..4f3ec0df 100644 --- a/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java +++ b/src/main/java/cokr/xit/fims/excl/service/bean/Excl01ServiceBean.java @@ -1,5 +1,7 @@ package cokr.xit.fims.excl.service.bean; +import static org.mockito.ArgumentMatchers.nullable; + import java.util.List; import javax.annotation.Resource; @@ -40,8 +42,14 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv } @Override - public Excl01 getLevyExclusionInfo(String levyExclId) { - return excl01Bean.getLevyExclusionInfo(levyExclId); + public DataObject getLevyExclusionInfo(Excl01Query req) { + // 단속 ID 확인 + if (req.getCrdnId() == null || "".equals(req.getCrdnId())) { + // 단속 ID가 없다면 오류 발생.. + return excl01Bean.getLevyExclusionInfo(req); + } else { + return excl01Bean.getLevyExclusionInfo(req); + } } @Override @@ -60,3 +68,10 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv } } + + +//@Override +//public Excl01 getLevyExclusionInfo(String levyExclId) { +// return excl01Bean.getLevyExclusionInfo(levyExclId); +//} + diff --git a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java index c6851fd5..3711c03d 100644 --- a/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java +++ b/src/main/java/cokr/xit/fims/excl/web/Excl01Controller.java @@ -44,12 +44,14 @@ public class Excl01Controller extends ApplicationController { ModelAndView mav = new ModelAndView("fims/excl/excl01010-main"); // View(jsp)에서 사용할 공통코드를 조회 - Map> commonCodes = getCodesOf("FIM021", "FIM054"); + Map> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054"); + + addCodes(commonCodes, mav, "FIM021", "FIM022"); return mav.addObject("pageName", "excl01010") // View(jsp)에서 사용할 id 뒤에 붙일 suffix .addObject("urlPrefix", "/excl/excl01") // URL로 사용할 prefix .addObject("infoPrefix", "levyExcl") // prefix - .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) + .addObject("FIM021List", commonCodes.get("FIM021")) // 업무 구분 코드(TASK_SE_CD) .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) ; } @@ -80,31 +82,27 @@ public class Excl01Controller extends ApplicationController { * } */ @RequestMapping(name = "부과제외 정보 조회", value = "/020/info.do") - public ModelAndView getLevyExclusionInfo(String levyExclId) { + public ModelAndView getLevyExclusionInfo(Excl01Query req) { // View(jsp)에서 사용할 공통코드를 조회 - Map> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054"); + DataObject levyExclusionInfo = excl01Service.getLevyExclusionInfo(req); - if (!isEmpty(levyExclId)) { -// DataObject levyExclusionInfo = excl01Service.getLevyExclusionInfo(levyExclId); - Excl01 levyExclusionInfo = excl01Service.getLevyExclusionInfo(levyExclId); + boolean json = jsonResponse(); - boolean json = jsonResponse(); + ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info") + .addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + ; - return new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info") - .addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix - .addObject("pageMode", "update") // - .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) - .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) - .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) - .addObject("levyExclInfo", json ? levyExclusionInfo : toJson(levyExclusionInfo)) + // 조회 결과가 없다면.. 0 + if (levyExclusionInfo == null) { + return mav + .addObject("pageMode", "create") // + .addObject("levyExclSeCd", req.getLevyExclSeCd()) ; } else { - return new ModelAndView("fims/excl/excl01020-info") - .addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix - .addObject("pageMode", "create") // - .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) - .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) - .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) + return mav + .addObject("pageMode", "update") // + .addObject("levyExclSeCd", levyExclusionInfo.string("LEVY_EXCL_SE_CD")) + .addObject("levyExclInfo", json ? levyExclusionInfo : toJson(levyExclusionInfo)) ; } } @@ -155,4 +153,41 @@ public class Excl01Controller extends ApplicationController { .addObject("saved", saved); } -} \ No newline at end of file +} + + +///**지정한 ID의 부과제외 정보를 반환한다. +// * @param levyExclId 부과 제외 ID +// * @return fims/excl/excl01020-info 또는 jsonView +// *
{
+// *     "levyExclusionInfo": 부과제외 정보
+// * }
+// */ +//@RequestMapping(name = "부과제외 정보 조회", value = "/020/info.do") +//public ModelAndView getLevyExclusionInfo(String levyExclId) { +// // View(jsp)에서 사용할 공통코드를 조회 +// Map> commonCodes = getCodesOf("FIM021", "FIM022", "FIM054"); +// +// if (!isEmpty(levyExclId)) { +// Excl01 levyExclusionInfo = excl01Service.getLevyExclusionInfo(levyExclId); +// +// boolean json = jsonResponse(); +// +// return new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info") +// .addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix +// .addObject("pageMode", "update") // +// .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) +// .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) +// .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) +// .addObject("levyExclInfo", json ? levyExclusionInfo : toJson(levyExclusionInfo)) +// ; +// } else { +// return new ModelAndView("fims/excl/excl01020-info") +// .addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix +// .addObject("pageMode", "create") // +// .addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD) +// .addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD) +// .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) +// ; +// } +//} diff --git a/src/main/resources/sql/mapper/fims/excl/excl01-mapper.xml b/src/main/resources/sql/mapper/fims/excl/excl01-mapper.xml index 0ef984c4..ba5b0811 100644 --- a/src/main/resources/sql/mapper/fims/excl/excl01-mapper.xml +++ b/src/main/resources/sql/mapper/fims/excl/excl01-mapper.xml @@ -179,9 +179,15 @@ FROM TB_LEVY_EXCL A - /* 부과제외 대장 객체 가져오기(excl01Mapper.selectLevyExcl) */ - WHERE A.LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */ + WHERE A.DEL_YN = 'N' /* 삭제 여부 */ + + AND A.LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */ + + + AND A.CRDN_ID = #{crdnId} /* 단속 ID */ + diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp index d7dc6407..8c1daa18 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp @@ -250,6 +250,10 @@ **************************************************************************/ var prefixUrl = "/excl/excl01"; + // 공통 코드 + var FIM021 = new CommonCodes(${FIM021}, true); + var FIM022 = new CommonCodes(${FIM022}, true); + /************************************************************************** * DatasetControl **************************************************************************/ @@ -340,7 +344,7 @@ $("th input[type='checkbox']").prop("checked", false); } - // DataTables 더블클릭 이벤트 + // ${pageName}Control.getInfo = (params) => { let info = ${pageName}Control.dataset.getCurrent("item"); @@ -349,12 +353,15 @@ url : ${pageName}Control.urls.getInfo , data : params || {} , success : resp => { + resp = resp.replace(/infoPrefix/g, this.prefix) + .replace(/prefixName/g, this.prefixName) dialog.open({ id : ${pageName}Control.prefixed("dialog") , title : ${pageName}Control.prefixName + " 정보" , content : resp , size : ${pageName}Control.infoSize , init : () => ${pageName}Control.setInfo(info) + , onClose : () => { ${pageName}Control.load("1"); } // callback }); } }); @@ -369,6 +376,12 @@ ${pageName}Control.getInfo(); } + // Create 신규 등록 + ${pageName}Control.afterNewInfo = (obj) => { +// ${pageName}Control.dataset.append(obj || {}); + ${pageName}Control.getInfo(obj); + } + /************************************************************************** * 초기 셋팅 **************************************************************************/ @@ -433,25 +446,19 @@ // 등록 function fnCreate${pageName}(levyExclSeCd) { - let dialogInfo = {}; - - if (levyExclSeCd == "1") { - dialogInfo = { - id : "notLevy" + "dialog" - , title : "비부과 등록" - } - } else if (levyExclSeCd == "2") { - dialogInfo = { - id : "warning" + "dialog" - , title : "계고 등록" - } - } else { - return; - } - - dialogInfo.levyExclSeCd = levyExclSeCd; - - ${pageName}Control.newInfo(dialogInfo); + let dialogInfo = { + callMode : "create" + , crdnId : "4148020180000150" + , levyExclSeCd : levyExclSeCd + }; + + // 테이블에서 선택한 현재 자료 +// dialogInfo = ${pageName}Control.getCurrent(); +// dialogInfo.callMode = "create"; +// dialogInfo.crdnId = "4148020180000150"; +// dialogInfo.levyExclSeCd = levyExclSeCd; + + ${pageName}Control.afterNewInfo(dialogInfo); } // 삭제 diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp index 2b315830..3994dce9 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp @@ -2,34 +2,30 @@ <%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> - -
- - +
+ + + + - - +
@@ -61,7 +58,7 @@ /************************************************************************** * Global Variable **************************************************************************/ - var ${pageName}Fields = new FormFields("#frmInput--${pageName}"); + var ${pageName}Fields = new FormFields("#formInput--${pageName}"); var ${pageName}Mode = "${pageMode}"; /************************************************************************** @@ -69,6 +66,7 @@ **************************************************************************/ var ${pageName}Info = new Dataset({ prefix : "levyExcl" + , prefixName : "부과제외" , keymapper : info => info ? info.levyExclId : "" , urls : { load : wctx.url(prefixUrl + "/010/list.do") @@ -78,10 +76,11 @@ , remove : wctx.url(prefixUrl + "/020/remove.do") } , formats : { - levyExclYmd : dateFormat + LEVY_EXCL_YMD : dateFormat } , onCurrentChange : item => { ${pageName}Fields.set(item); + setFim021(item.data.LEVY_EXCL_SE_CD); } }); @@ -93,7 +92,6 @@ if (resp.saved) { dialog.alert("저장됐습니다."); dialog.close(${pageName}Info.conf.prefix + "dialog"); - excl01010Control.load("1"); } } @@ -104,24 +102,35 @@ ${pageName}Info.save = (info) => { if (!info) return; - let item = ${pageName}Info.getCurrent("item"), - create = "added" == item.state; + let item = ${pageName}Info.getCurrent("item"); + let create = item == null ? "added" : item.state; ajax.post({ - url : !create ? ${pageName}Info.urls.update : ${pageName}Info.urls.create + url : !create ? ${pageName}Info.conf.urls.update : ${pageName}Info.conf.urls.create , data : info , success : resp => ${pageName}Info.onSave(resp) }); } + function setFim021(code) { + let cmnCode = FIM021[code]; + $("#levyExclSeCd--${pageName}").val(cmnCode.code); + $("#levyExclSeNm--${pageName}").val(cmnCode.value); + } /************************************************************************** * 초기 셋팅 **************************************************************************/ // 검색조건 초기값 셋팅 function initSearch${pageName}() { // 달력 초기화 - initDatepicker("frmInput--${pageName}"); + initDatepicker("formInput--${pageName}"); $("#levyExclYmd--${pageName}").datepicker("setDate", new Date()); + + // 부과제외구분에 따른 부과제외사유 코드 설정 + setFim021("${levyExclSeCd}"); + + let reasons = FIM022.list().filter(reason => "1" == "${levyExclSeCd}" ? reason.code < "200" : reason.code > "200"); + $("#levyExclRsnCd--${pageName}").html(reasons.map(reason => "").join()); } // @@ -135,33 +144,14 @@ **************************************************************************/ // 저장 function fnSave${pageName}() { - if (!$("#frmInput--${pageName} input").validInputs()) return; - - let formFields = new FimsFormFields("#frmInput--${pageName}"); - let data = formFields.get(); - - if (${pageName}Mode == "create") { - create${pageName}(data); - } else if (${pageName}Mode == "update") { - - } - } - - // 등록 - function create${pageName}(data) { - ajax.post({ - url : wctx.url(prefixUrl + "/020/create.do") - , data : data - , success : resp => ${pageName}Info.onSave(resp) - }); - } - - // 수정 - function update${pageName}(data) { - ajax.post({ - url : wctx.url(prefixUrl + "/020/update.do") - , data : data - , success : resp => ${pageName}Info.onSave(resp) + let formFields = new FimsFormFields("#frmInput--${pageName}"); + let data = formFields.get(); + + dialog.alert({ + content : "현재 " + ${pageName}Info.conf.prefixName + " 정보를 저장하시겠습니까?" + , onOK : () => { + ${pageName}Info.save(formFields.get()); + } }); } @@ -169,7 +159,7 @@ * script 진입 **************************************************************************/ $(document).ready(function() { - // 검색조건 초기값 설정 + // 초기값 설정 initSearch${pageName}(); // 이벤트 설정 @@ -178,11 +168,12 @@ // Data 셋팅 if (${pageName}Mode == "create") { - } else if (${pageName}Mode == "update") { - ${pageName}Info.setData([${levyExclInfo}]).setState(); - } else { + } else if (${pageName}Mode == "update") { + ${pageName}Info.setData([${levyExclInfo}]); + } else { } + }); // #sourceURL=excl01020-info.jsp diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp index ae7af607..b912e181 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02010-main.jsp @@ -334,7 +334,7 @@ let key = item.data.OPNN_ID; - $("#${infoPrefix}List").setCurrentRow(key); + $("#tbody--${pageName}").setCurrentRow(key); }; // DataTables checkbox 클릭 이벤트 diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp index 0be77760..fa346904 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl03010-main.jsp @@ -277,7 +277,7 @@ let key = item.data.RE_REG_ID; - $("#${infoPrefix}List").setCurrentRow(key); + $("#tbody--${pageName}").setCurrentRow(key); }; // DataTables checkbox 클릭 이벤트