diff --git a/src/main/java/cokr/xit/fims/cvlc/service/CrdnCvlcptService.java b/src/main/java/cokr/xit/fims/cvlc/service/CrdnCvlcptService.java index ee2aa381..9a7cefd1 100644 --- a/src/main/java/cokr/xit/fims/cvlc/service/CrdnCvlcptService.java +++ b/src/main/java/cokr/xit/fims/cvlc/service/CrdnCvlcptService.java @@ -44,6 +44,12 @@ public interface CrdnCvlcptService { */ Map makeFileFromHwpFormat(CrdnQuery query); + /** 단속민원 자료의 반송(회수)처리한다. + * @param crdnID 단속ID + * @return 저장여부 + */ + boolean sendBackCivilComplaintInfo(String crdnId); + /** 단속민원 부과요청에 대한 수용 처리구분을 변경한다. * @param nonQueryRequest 처리 요청, crdnCvlcpt 단속민원정보, crdn 단속정보, newFileInfoList 업로드 파일 목록 * @return 저장여부 diff --git a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java index 3a8de0c4..6a2581fd 100644 --- a/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java +++ b/src/main/java/cokr/xit/fims/cvlc/service/bean/CrdnCvlcptServiceBean.java @@ -284,6 +284,16 @@ public class CrdnCvlcptServiceBean extends AbstractServiceBean implements CrdnCv return dataObject; } + @Override + public boolean sendBackCivilComplaintInfo(String crdnId) { + boolean saved = false; + + //TODO : 반송(회수) 처리 추가 + + + return saved; + } + @Override public boolean updateCvlcptPrcsSe(Map nonQueryRequest, CrdnCvlcpt crdnCvlcpt, Crdn crdn, List newFileInfoList) { boolean saved = false; @@ -314,8 +324,6 @@ public class CrdnCvlcptServiceBean extends AbstractServiceBean implements CrdnCv String newCvlcptPrcsCd = ""; String newCvlcptTrsmCd = ""; - - // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 String ansRsnCd = ""; if(acceptType.equals("someAccept") || acceptType.equals("nonAccept")) { //일부수용,불수용 ansRsnCd = crdn.getLevyExclRsnCd(); @@ -330,6 +338,8 @@ public class CrdnCvlcptServiceBean extends AbstractServiceBean implements CrdnCv if(ifEmpty(crdnCvlcpt.getDstrbncYn(), () -> "").equals("Y")) { crdnQuery.setDstrbncYn("Y"); } + + // 민원 답변 문구(TB_CVLCPT_ANS_WORDS) 대장 조회 DataObject infoCvlcptAnsWords = crdnCvlcptMapper.selectCvlcptAnswerWordsInfo(crdnQuery); if(acceptType.equals("someAccept") || acceptType.equals("nonAccept")) { //일부수용,불수용 diff --git a/src/main/java/cokr/xit/fims/cvlc/web/Cvlc01Controller.java b/src/main/java/cokr/xit/fims/cvlc/web/Cvlc01Controller.java index ef4f77aa..29ed9096 100644 --- a/src/main/java/cokr/xit/fims/cvlc/web/Cvlc01Controller.java +++ b/src/main/java/cokr/xit/fims/cvlc/web/Cvlc01Controller.java @@ -54,6 +54,41 @@ public class Cvlc01Controller extends ApplicationController { return mav; } + /**민원접수자료 목록을 조회한다.
+ * {@link CrdnService#getCrackdownList(CrdnQuery)} 참고 + * @param query 민원접수자료 목록 조회 조건 + * @return jsonView + *
 {
+	 *     "crdnList": [조회결과 목록],
+	 *     "crdnStart": 현재 페이지의 시작 자료 인덱스,
+	 *     "crdnFetchTotal": 한 페이지에 가져오는 자료 건 수,
+	 *     "crdnTotal": 조회 결과 찾은 전체 건 수
+	 * }
+ */ + @RequestMapping(name="민원접수자료 목록", value="/010/list.do") + public ModelAndView getCivilComplaintReceiptDataList(CrdnQuery query) { + query.setGridType("receiptData"); + setFetchSize(query); + return setCollectionInfo(new ModelAndView("jsonView"), crdnCvlcptService.getCivilComplaintList(query),""); + } + + /**지정한 민원자료를 제거한다. + * @param crdnId 단속대장 아이디 + * @return jsonView + *
 {
+	 *     "affected": 저장된 정보수
+	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
+	 * }
+ */ + @RequestMapping(name="민원자료 제거", value="/010/remove.do") + public ModelAndView removeCivilComplaint(String[] IDs) { + + boolean saved = crdnService.remove(IDs); + + return new ModelAndView("jsonView") + .addObject("saved", saved); + } + /** 민원내역 원본 보기 팝업 화면을 연다. * @return fims/cvlc/cvlc01050-info */ @@ -76,22 +111,16 @@ public class Cvlc01Controller extends ApplicationController { return mav; } - /**민원접수자료 목록을 조회한다.
- * {@link CrdnService#getCrackdownList(CrdnQuery)} 참고 - * @param query 민원접수자료 목록 조회 조건 - * @return jsonView - *
 {
-	 *     "crdnList": [조회결과 목록],
-	 *     "crdnStart": 현재 페이지의 시작 자료 인덱스,
-	 *     "crdnFetchTotal": 한 페이지에 가져오는 자료 건 수,
-	 *     "crdnTotal": 조회 결과 찾은 전체 건 수
-	 * }
+ /** 민원내역 원본을 한글 파일로 작성한다. + * @return hwp파일 */ - @RequestMapping(name="민원접수자료 목록", value="/010/list.do") - public ModelAndView getCivilComplaintReceiptDataList(CrdnQuery query) { - query.setGridType("receiptData"); - setFetchSize(query); - return setCollectionInfo(new ModelAndView("jsonView"), crdnCvlcptService.getCivilComplaintList(query),""); + @RequestMapping(name="민원내역 원본 한글 파일 생성", value="/050/makeFileFromHwpFormat.do") + public ModelAndView makeFileFromHwpFormat(CrdnQuery query) { + + Map result = crdnCvlcptService.makeFileFromHwpFormat(query); + ModelAndView mav = new ModelAndView("jsonView"); + mav.addAllObjects(result); + return mav; } /**민원접수 초기자료 상세조회 팝업 화면을 연다.
@@ -149,23 +178,6 @@ public class Cvlc01Controller extends ApplicationController { return mav; } - /**지정한 민원자료를 제거한다. - * @param crdnId 단속대장 아이디 - * @return jsonView - *
 {
-	 *     "affected": 저장된 정보수
-	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
-	 * }
- */ - @RequestMapping(name="민원자료 제거", value="/010/remove.do") - public ModelAndView removeCivilComplaint(String[] IDs) { - - boolean saved = crdnService.remove(IDs); - - return new ModelAndView("jsonView") - .addObject("saved", saved); - } - /**지정한 민원 초기자료를 수정한다. * @param hReq 수정 요청, crdnCvlcpt 민원 정보, crdn 단속 정보, 추가한 이미지 파일 newFileList, modifyFileList 편집한 이미지 파일 * @return jsonView @@ -231,7 +243,6 @@ public class Cvlc01Controller extends ApplicationController { * @param crdnId 단속대장 아이디 * @return jsonView *
 {
-	 *     "affected": 저장된 정보수
 	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
 	 * }
*/ @@ -246,16 +257,21 @@ public class Cvlc01Controller extends ApplicationController { .addObject("saved", saved); } - /** 민원내역 원본을 한글 파일로 작성한다. - * @return hwp파일 + /**지정한 민원 자료를 반송(회수) 처리한다. + * @param crdnId 단속 ID + * @return jsonView + *
 {
+	 *     "saved": 저장되었으면 true, 그렇지 않으면 false
+	 * }
*/ - @RequestMapping(name="민원내역 원본 한글 파일 생성", value="/050/makeFileFromHwpFormat.do") - public ModelAndView makeFileFromHwpFormat(CrdnQuery query) { + @RequestMapping(name="민원 자료 반송", value="/020/remove.do") + public ModelAndView sendBackCivilComplaintInfo(String crdnId) { - Map result = crdnCvlcptService.makeFileFromHwpFormat(query); - ModelAndView mav = new ModelAndView("jsonView"); - mav.addAllObjects(result); - return mav; - } + boolean saved = false; + + saved = crdnCvlcptService.sendBackCivilComplaintInfo(crdnId); + return new ModelAndView("jsonView") + .addObject("saved", saved); + } } diff --git a/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml b/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml index eb442983..1d3d9175 100644 --- a/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml +++ b/src/main/resources/sql/mapper/fims/cvlc/crdnCvlcpt-mapper.xml @@ -311,7 +311,7 @@ SELECT C.CRDN_ID , CVLCPT_TRSM_CD = #{cvlcptTrsmCd} /* 민원전송코드 */ , CVLCPT_PRCS_SUMRY = #{cvlcptPrcsSumry} /* 민원처리요약 */ , DSTRBNC_YN = NULLIF(#{dstrbncYn},'N') /* 방해 여부 */ - , CVLCPT_PRCS_PIC = #{modifiedBy} /* 수정자 */ + , CVLCPT_PRCS_PIC = #{modifiedBy} /* 민원 처리 담당자 */ , MDFCN_DT = /* 수정일시 */ , MDFR = #{modifiedBy} /* 수정자 */ WHERE CVLCPT_LINK_ID = #{cvlcptLinkId} /* 연계 ID */ diff --git a/src/main/webapp/WEB-INF/jsp/fims/cvlc/cvlc01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/cvlc/cvlc01010-main.jsp index 331c6515..eeee7e33 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/cvlc/cvlc01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/cvlc/cvlc01010-main.jsp @@ -557,7 +557,14 @@ $(document).ready(function(){ }, "refreshList" : function(){ $P.refreshCrdnList(); - } + }, + "hasData" : function(key){ + if($P.crdnControl.dataset.getData(key) == null){ + return false; + } else { + return true; + } + }, }; diff --git a/src/main/webapp/WEB-INF/jsp/fims/cvlc/cvlc01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/cvlc/cvlc01020-info.jsp index e7c62522..dab841b4 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/cvlc/cvlc01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/cvlc/cvlc01020-info.jsp @@ -253,6 +253,7 @@ + @@ -310,7 +311,8 @@ pageObject.childReq.push({ getPrevKey : function(){ return ""; }, selectRow : function(){}, holdRow : function(){}, - refreshList : function(){} + refreshList : function(){}, + hasData : function(){ return true; } }); $(document).ready(function(){ @@ -341,7 +343,8 @@ $(document).ready(function(){ load : "", getInfo : wctx.url("/${taskSeCd}/cvlc/cvlc01/020/info.do"), update : wctx.url("/${taskSeCd}/cvlc/cvlc01/020/update.do"), - create : wctx.url("/${taskSeCd}/cvlc/cvlc01/020/create.do") + create : wctx.url("/${taskSeCd}/cvlc/cvlc01/020/create.do"), + remove : wctx.url("/${taskSeCd}/cvlc/cvlc01/020/remove.do") }, keymapper:info => info ? info.CRDN_ID : "", dataGetter:obj => obj.crdnInfo, @@ -548,6 +551,45 @@ $(document).ready(function(){ }; + + $P.fnSendBack = () => { + if(!confirm("반송 처리 하시겠습니까?")){ + return; + } + + var crdnId = $("#crdnId--${pageName}").val(); + + ajax.post({ + url : $P.crdnControl.urls.remove, + data : { crdnId : crdnId }, + success : resp => { + if(resp.saved){ + var message = "민원회수 요청이 등록되었습니다.\n" + +"해당 자료를 서손처리하시기 바랍니다.\n" + +"서손처리 후 30~60분 사이에 서버에서 민원시스템으로 전송이 진행되니 이후에 민원시스템에서 확인하시기 바랍니다."; + dialog.alert(message); + + var crdnId = $("#crdnId--${pageName}").val(); + + var cursorKey = ""; + + var nextKey = $P.provided.getNextKey(crdnId); + if(nextKey != ""){ + cursorKey = nextKey; + } else { + var prevKey = $P.provided.getPrevKey(crdnId); + if(prevKey != ""){ + cursorKey = prevKey; + } + } + + $("#refreshEnd--${pageName}").attr("data-cursor-key", cursorKey); + $P.provided.refreshList(); + } + } + }); + } + $P.videoCallback = (snapshots) => { snapshots.forEach(function(canvas, index, array){ canvas.toBlob(function(blob){ @@ -762,17 +804,21 @@ $(document).ready(function(){ /************************************************************************** * element.on **************************************************************************/ + $("#btnReset--${pageName}").on("click", () => $P.fnReset() ); $("#btnPrev--${pageName}").on("click", () => $P.fnPrev() ); $("#btnNext--${pageName}").on("click", () => $P.fnNext() ); - - $("#btnReset--${pageName}").on("click", () => $P.fnReset() ); + + //업무처리 버튼 + $("#btnSendBack--${pageName}").on('click', () => { $P.fnSendBack(); }); $("#btnInstLevyExcl1--${pageName}").on("click", () => $P.openLevyExclPop("1")); $("#btnInstLevyExcl2--${pageName}").on("click", () => $P.openLevyExclPop("2")); $("#btnDataCopy--${pageName}").on("click", () => $P.fnCopy()); + $("#btnAccept--${pageName}").on('click', () => $P.fnAccept()); $("#btnHold--${pageName}").on("click", () => $P.fnHold()); $("#btnOpenCvlcptOrgnl--${pageName}").on("click", () => $P.fnOpenCvlcptOrgnl()); - $("#btnAccept--${pageName}").on('click', () => $P.fnAccept()); - + + + //파일처리 버튼 $("#btnAddFile--${pageName}").on('click', () => { $("#inputUploadSet--${pageName}").trigger("click"); }); $("#btnOpenVideoCapture--${pageName}").on('click', () => { @@ -836,6 +882,7 @@ $(document).ready(function(){ $P.fnDisplay(false); }); + //차적조회 $("#vhrno--${pageName}").on("keyup",function(e){ if(e.key == "Enter"){ var crdnYmd = $("#crdnYmd--${pageName}").val().replaceAll("-", ""); @@ -944,11 +991,18 @@ $(document).ready(function(){ } $("#refreshEnd--${pageName}").on("refreshEnd", function(){ - if(this.dataset.cursorKey != null && this.dataset.cursorKey != ""){ - $P.fnGo(this.dataset.cursorKey); - } else { - dialog.close("cvlcptInitialDataEditDialog--${openerPageName}"); - } + + if(this.dataset.cursorKey == null || this.dataset.cursorKey == ""){ + dialog.close("cvlcptInitialDataEditDialog--${openerPageName}"); + return; + } + + if(!$P.provided.hasData(this.dataset.cursorKey)){ + dialog.close("cvlcptInitialDataEditDialog--${openerPageName}"); + return; + } + + $P.fnGo(this.dataset.cursorKey); }); /**************************************************************************