From 696263128c5fdc5d65f1d5d3cb35336e3ec4ac44 Mon Sep 17 00:00:00 2001 From: hylee Date: Wed, 28 Dec 2022 09:32:41 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=ED=8C=8C=EC=9D=BC=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cmm/service/AdrInnorixFileEnumVO.java | 2 +- .../kcc/com/cmm/service/AdrInnorixFileVO.java | 9 + .../service/impl/InnorixFileServiceImpl.java | 5 +- .../com/cmm/web/InnorixFileController.java | 11 +- .../kccadr/adjPgrMgr/apm/popup/docRegPop.jsp | 136 ++------ .../adjPgrMgr/apm/popup/updtRpplPop.jsp | 297 ++++++------------ .../adjReqMgrPast/adjReqMgrPastFileRegist.jsp | 95 +++--- src/main/webapp/innorix/exam/upload.jsp | 29 +- ...{upload_test_220916.jsp => upload_ori.jsp} | 29 +- .../webapp/js/kccadr/adm/common/common.js | 2 + .../js/kccadr/adm/common/innorixCommon.js | 111 +++++++ 11 files changed, 322 insertions(+), 404 deletions(-) rename src/main/webapp/innorix/exam/{upload_test_220916.jsp => upload_ori.jsp} (77%) create mode 100644 src/main/webapp/js/kccadr/adm/common/innorixCommon.js diff --git a/src/main/java/kcc/com/cmm/service/AdrInnorixFileEnumVO.java b/src/main/java/kcc/com/cmm/service/AdrInnorixFileEnumVO.java index 371cf040..cd91c4e4 100644 --- a/src/main/java/kcc/com/cmm/service/AdrInnorixFileEnumVO.java +++ b/src/main/java/kcc/com/cmm/service/AdrInnorixFileEnumVO.java @@ -15,7 +15,7 @@ public enum AdrInnorixFileEnumVO { // history 값 private final String p_code_desc; - // history 값 + // history stat 값 private final String p_stat_cd; private final String p_adrHstryMgrSeq; private final String p_updateQuery; diff --git a/src/main/java/kcc/com/cmm/service/AdrInnorixFileVO.java b/src/main/java/kcc/com/cmm/service/AdrInnorixFileVO.java index e75b01e6..83354311 100644 --- a/src/main/java/kcc/com/cmm/service/AdrInnorixFileVO.java +++ b/src/main/java/kcc/com/cmm/service/AdrInnorixFileVO.java @@ -43,6 +43,7 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable { public String openYn = ""; public String atchFileId = ""; public String mode = ""; + public String successMsg = ""; public boolean isAdrRpplDoc; /* @@ -225,6 +226,14 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable { public void setAdrRpplDoc(boolean isAdrRpplDoc) { this.isAdrRpplDoc = isAdrRpplDoc; } + + public String getSuccessMsg() { + return successMsg; + } + + public void setSuccessMsg(String successMsg) { + this.successMsg = successMsg; + } diff --git a/src/main/java/kcc/com/cmm/service/impl/InnorixFileServiceImpl.java b/src/main/java/kcc/com/cmm/service/impl/InnorixFileServiceImpl.java index 2dc43ecf..67bb90be 100644 --- a/src/main/java/kcc/com/cmm/service/impl/InnorixFileServiceImpl.java +++ b/src/main/java/kcc/com/cmm/service/impl/InnorixFileServiceImpl.java @@ -109,7 +109,8 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now()); } - return new RestResponse(HttpStatus.OK, "등록 되었습니다.", LocalDateTime.now()); + System.out.println("adrInnorixFileListVO :: "+ adrInnorixFileListVO.getSuccessMsg()); + return new RestResponse(HttpStatus.OK, adrInnorixFileListVO.getSuccessMsg(), adrInnorixFileListVO.getAtchFileId(),LocalDateTime.now()); } /** @@ -128,8 +129,6 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I List result = this.fileChange(innorixVO, atchFileId, 0); - - log.info(" // file data 반복문 끝 "); // 파일 업로드 fileManageDAO.insertFileInfs(result); diff --git a/src/main/java/kcc/com/cmm/web/InnorixFileController.java b/src/main/java/kcc/com/cmm/web/InnorixFileController.java index 7c7bdd80..5c0fbfca 100644 --- a/src/main/java/kcc/com/cmm/web/InnorixFileController.java +++ b/src/main/java/kcc/com/cmm/web/InnorixFileController.java @@ -44,7 +44,16 @@ public class InnorixFileController { @Resource(name = "InnorixFileService") protected InnorixFileService innorixService; - @RequestMapping(value = {"/kccadr/common/insertInnorixFileAjax.do"}, method = RequestMethod.POST) + /** + * @methodName : insertInnorixFileAjax + * @author : 이호영 + * @date : 2022.12.26 + * @description : 파일등록 외에 rpplDoc 과 history 관련 Controller + * @param adrInnorixFileVO + * @return + * @throws Exception + */ + @RequestMapping(value = {"/kccadr/common/insertInnorixFileAndRpplAjax.do"}, method = RequestMethod.POST) public ResponseEntity insertInnorixFileAjax(@RequestBody AdrInnorixFileVO adrInnorixFileVO) throws Exception { //로그인 권한정보 불러오기 diff --git a/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/apm/popup/docRegPop.jsp b/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/apm/popup/docRegPop.jsp index 3bda36b7..52c0df26 100644 --- a/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/apm/popup/docRegPop.jsp +++ b/src/main/webapp/WEB-INF/jsp/kccadr/adjPgrMgr/apm/popup/docRegPop.jsp @@ -26,6 +26,7 @@ + @@ -225,60 +226,21 @@ //등록 버튼 function fncReg() { - var f = document.getElementById("listForm"); - var data = new FormData(f); - _fileForm2.forEach(function(obj, idx) { - if (obj) - data.append("file" + idx, obj.fileObj); - }); if (validation()) { if(confirm("사건문서를 등록 하시겠습니까?")){ - if(control.getUploadFiles().length > 0){ - var postObj = new Object(); postObj.innoDirPath = $('#innoDirPath').val(); control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가 control.upload(); // 업로드 시작 - }else{ - alert("등록된 첨부파일이 없습니다."); return false; - } - -// $.ajax({ -// type : "POST", -// enctype : 'multipart/form-data', -// url : "/kccadr/adjPgrMgr/apm/docRegPopAjax.do", -// data : data, -// dataType : 'json', -// async : false, -// processData : false, -// contentType : false, -// cache : false, -// success : function(returnData, status) { -// if (returnData.result == 'success') { -// alert("사건문서 제출이 완료되었습니다."); -// opener.location.reload(true); -// self.close(); -// } else { -// alert(returnData.message); -// } - -// }, -// error : function(e) { -// alert("사건문서 제출에 실패하였습니다."); -// console.log("ERROR : ", e); -// } -// }); } - } - } // 파일 업로드 솔루션 init 셋팅 @@ -289,15 +251,14 @@ el: '#fileControl' // 컨트롤 출력 HTML 객체 ID , transferMode: 'both' // 업로드, 다운로드 혼합사용 , installUrl: '/innorix/install/install.html' // Agent 설치 페이지 - , uploadUrl: '/innorix/exam/upload_test_220916.jsp' // 업로드 URL + , uploadUrl: '/innorix/exam/upload.jsp' // 업로드 URL , height:80 , width: 635 }); // 업로드 완료 이벤트 control.on('uploadComplete', function (p) { - fn_insertFile(p.files); // 파일 정보 DB isnert function - control.removeAllFiles(); // control 초기화 + fn_callBackInnorix(p.files); // 파일 정보 DB isnert function }); }; @@ -305,12 +266,14 @@ /* * 파일 정보 DB insert Ajax * */ - function fn_insertFile(data){ + function fn_callBackInnorix(data){ + + var url = ""; var filePath = location.pathname; var jspFileName = filePath.substring(filePath.lastIndexOf("/")+1, filePath.lastIndexOf(".")); - - var resultData = { + + var sendData = { "adrSeq": $('#adrSeq').val() , "adrSn": $('#adrSn').val() , "adrDocTy": $('#adrDocTy').val() @@ -319,37 +282,19 @@ , "openYn": $('#openYn').val() , "jspFileName": jspFileName , "innorixFileListVO": data + , "successMsg" : "사건문서 제출이 완료되었습니다." } - - console.log('resultData :: ', resultData); - $.ajax({ - type: "POST", - url: "", - data: JSON.stringify(resultData), - dataType:'json', - async: false, - processData: false, - contentType: "application/json", - cache: false, - success: function (returnData) { - if(returnData.status == "OK"){ - alert("사건문서 제출이 완료되었습니다."); - opener.location.reload(true); - self.close(); - }else{ - alert(returnData.data); - return false; - } - }, - error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } - }); - + /* + * 공통 : innorixCommon.js + * fn_insertInnorixFileAndRpplAjax() 호출 후 status가 성공(OK)이면 실행 + */ + if(fn_insertInnorixFileAndRpplAjax(sendData, url) == "OK") + { + opener.location.reload(true); + self.close(); + } } - - - - 사건관련문서 등록 diff --git a/src/main/webapp/innorix/exam/upload.jsp b/src/main/webapp/innorix/exam/upload.jsp index 65dffe30..dd898bf4 100644 --- a/src/main/webapp/innorix/exam/upload.jsp +++ b/src/main/webapp/innorix/exam/upload.jsp @@ -1,15 +1,18 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="com.innorix.transfer.InnorixUpload" %> - +<%-- <%@ page import="egovframework.rte.fdl.property.EgovPropertyService" %> --%> <% // CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 if (request.getMethod().equals("POST")) { String directory = InnorixUpload.getServletAbsolutePath(request); - System.out.println("========== directory :: " + directory + " =========="); - directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; +// directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; +// directory = PropertyService.getString("Globals.fileStorePath"); + directory = "/usr/local/tomcat/file/sht/"; int maxPostSize = 2147482624; // bytes + + InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); /* @@ -32,6 +35,26 @@ if (request.getMethod().equals("POST")) String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 String _transferId = uploader.getParameter("_transferId"); // TransferId + String _innoFilePath = uploader.getParameter("innoDirPath"); // 커스텀 정의 POST Param 2 + + /* + + 현재 페이지를 호출하는 jsp에서 + " /> + 위 코드를 작성하고 + + control.upload() 전에 + + + var postObj = new Object(); + postObj.innoDirPath = $('#innoDirPath').val(); + control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가 + + 위 코드를 넣어 줘야 함 + + */ + uploader.setDirectory(_innoFilePath); + String _run_retval = uploader.run(); // 개별파일 업로드 완료 diff --git a/src/main/webapp/innorix/exam/upload_test_220916.jsp b/src/main/webapp/innorix/exam/upload_ori.jsp similarity index 77% rename from src/main/webapp/innorix/exam/upload_test_220916.jsp rename to src/main/webapp/innorix/exam/upload_ori.jsp index dd898bf4..65dffe30 100644 --- a/src/main/webapp/innorix/exam/upload_test_220916.jsp +++ b/src/main/webapp/innorix/exam/upload_ori.jsp @@ -1,18 +1,15 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="com.innorix.transfer.InnorixUpload" %> -<%-- <%@ page import="egovframework.rte.fdl.property.EgovPropertyService" %> --%> + <% // CORS체크를 위한 OPTIONS 메소드가 들어오므로 POST 일 경우에만 동작하도록 조건 추가 if (request.getMethod().equals("POST")) { String directory = InnorixUpload.getServletAbsolutePath(request); -// directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; -// directory = PropertyService.getString("Globals.fileStorePath"); - directory = "/usr/local/tomcat/file/sht/"; + System.out.println("========== directory :: " + directory + " =========="); + directory = directory.substring(0, directory.lastIndexOf("/") + 1) + "data"; int maxPostSize = 2147482624; // bytes - - InnorixUpload uploader = new InnorixUpload(request, response, maxPostSize, directory); /* @@ -35,26 +32,6 @@ if (request.getMethod().equals("POST")) String _type = uploader.getParameter("type"); // 커스텀 정의 POST Param 1 String _part = uploader.getParameter("part"); // 커스텀 정의 POST Param 2 String _transferId = uploader.getParameter("_transferId"); // TransferId - String _innoFilePath = uploader.getParameter("innoDirPath"); // 커스텀 정의 POST Param 2 - - /* - - 현재 페이지를 호출하는 jsp에서 - " /> - 위 코드를 작성하고 - - control.upload() 전에 - - - var postObj = new Object(); - postObj.innoDirPath = $('#innoDirPath').val(); - control.setPostData(postObj); // 업로드시 함께 전달될 POST Param 추가 - - 위 코드를 넣어 줘야 함 - - */ - uploader.setDirectory(_innoFilePath); - String _run_retval = uploader.run(); // 개별파일 업로드 완료 diff --git a/src/main/webapp/js/kccadr/adm/common/common.js b/src/main/webapp/js/kccadr/adm/common/common.js index 66af5970..d7b1bafb 100644 --- a/src/main/webapp/js/kccadr/adm/common/common.js +++ b/src/main/webapp/js/kccadr/adm/common/common.js @@ -29,4 +29,6 @@ function openExampleAdminPop(exmpCd) { // commonPopWindowopenForm("/web/kccadr/adjst/popup/"+uri, '500', '400', "openExampleAdminPop", $('#pop')); commonPopWindowopenForm("/kccadr/adjPgrMgr/apm/popup/"+uri, '600', '400', "openExampleAdminPop", $('#pop')); + + fn_data_reg(atchfileId); } diff --git a/src/main/webapp/js/kccadr/adm/common/innorixCommon.js b/src/main/webapp/js/kccadr/adm/common/innorixCommon.js new file mode 100644 index 00000000..1bfb4ed8 --- /dev/null +++ b/src/main/webapp/js/kccadr/adm/common/innorixCommon.js @@ -0,0 +1,111 @@ +/** + * + * @author : 이호영 + * @fileName : InnorixCommon.js + * @date : 2022.12.26 + * @description : innorix 대용량 파일 업로드 솔루션 공통 js + * =========================================================== + * DATE AUTHOR NOTE + * ----------------------------------------------------------- * + * 2022.11.01 이호영 최초 생성 + * + * + * + */ + + +var innoJquery = innorix._load("innoJquery"); + +var urlBase = location.href.substring(0, location.href.lastIndexOf("/") + 1); +var control = new Object(); // 파일전송 컨트롤 객체선언 +var downFileArr = new Array(); // 다운로드 목록 정보 +var resetFileArr = new Array(); // 다운로드 목록 초기화 정보 +var delFileArr = new Array(); // 삭제된 파일 정보 +var removeFlag = true; // 삭제 이벤트 조건 플래그 + +function fn_insertInnorixFileAndRpplAjax(sendData, url){ + + var successData; + + $.ajax({ + type: "POST", + url: url, + data: JSON.stringify(sendData), + dataType:'json', + async: false, + processData: false, + contentType: "application/json", + cache: false, + success: function (returnData) { + console.log('returnData : ', returnData); + if(returnData.status == "OK"){ + if(returnData.data != "") + alert(returnData.data); + successData = returnData.status; + }else{ + alert(returnData.data); + return false; + } + }, + error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } + }); + return successData; + + +} + +/* 등록되어 있는 파일 삭제버튼 클릭시 */ +function innorixDelAtchFile(itemId , fileSn){ + + $.ajax({ + type: "POST", + url: "/uss/ion/fms/fmsfileDeleteAjax.do", + data:{ "atchFileId" : itemId , "fileSn" : fileSn}, + dataType:'json', + cache: false, + async: false, + timeout: 600000, + success: function (returnData, status) { + if(status == 'success'){ + if(returnData.result == 'fail'){ + alert("삭제처리가 실패하였습니다."); + }else if(returnData.result == 'auth_fail'){ + alert("세션이 종료되었습니다."); + }else if(returnData.result =='success'){ + alert("삭제되었습니다."); + } + }else{ + alert("삭제처리에 실패하였습니다."); + } + }, + error: function (e) { + console.log("ERROR : ", e); + alert("삭제처리에 실패하였습니다."); + } + }); +} + +/* +* loadComplete에서 불러온 최초 파일 array에서 +* 삭제된 파일 정보 삭제 +*/ +function deleteFromResetFileArr(value) { + + $(resetFileArr).each(function(index, element){ + if(element.printFileName === value) + resetFileArr.splice(index, 1); + }); +} + +/* +* 파일 삭제 confire 아니요 클릭 시 +* 솔루션에서 진행하는 자동 파일 삭제 후 +* reset을 통해 파일 배열 다시 불러옴 +*/ +function fileListReset() { + removeFlag = false; + delFileArr = new Array(); // 삭제정보 초기화 + control.removeAllFiles(); // 리스트 컨트롤에서 파일을 삭제 + control.presetDownloadFiles(resetFileArr); // 다운로드 목록 초기화 +} +