From e2202adb7adb7b108175d52cdf6acc969f43a44e Mon Sep 17 00:00:00 2001 From: hylee Date: Tue, 12 Mar 2024 15:41:53 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EA=B8=B0=EC=86=8C=EC=9C=A0=EC=98=88=20?= =?UTF-8?q?=EB=B9=84=EA=B3=B5=EA=B0=9C=20=EB=A9=94=EB=AA=A8=20=EC=86=A1?= =?UTF-8?q?=EC=B6=9C=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java index 20498291..f4b85fc6 100644 --- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java +++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/trgtMng/web/CndtnTrgtMngController.java @@ -2296,18 +2296,18 @@ public class CndtnTrgtMngController { 4000, 5000, 5000, 5000, 3000 , 3000, 5000, 4000, 5000, 13000 - , 3500 + , 3500, 13000 }; // 너비 String[] header = { "의뢰일", "사건번호", "관할청", "생년월일", "성명" , "성별" , "의뢰번호", "의뢰상태", "교육상태", "주소" - , "검사명" + , "검사명", "비공개메모" }; // 헤더에 들어갈 이름 String[] order = { "ReqPnttm", "VntYear", "CmptntAthrt", "DBirth", "TrgtNm" , "Sex", "ReqNmbr", "ReqStateCd", "EduStateCd", "Addr" - , "PrsctrNm" + , "PrsctrNm", "Rmrks" }; // vo 내부의 필드 이름 (첫글자 대문자, 낙타체 사용) excelDown( From 17d9b5ebe605d422aa25a7181b67261d938efbf9 Mon Sep 17 00:00:00 2001 From: hylee Date: Tue, 12 Mar 2024 16:04:30 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=EA=B8=B0=EC=86=8C=EC=9C=A0=EC=98=88=20?= =?UTF-8?q?=EC=8B=A0=EC=B2=AD=EA=B8=B0=EA=B0=84=EB=93=B1=EB=A1=9D=20?= =?UTF-8?q?=EC=B2=A8=EB=B6=80=ED=8C=8C=EC=9D=BC=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/CndtnPrcsInfoMngController.java | 67 ++++- .../cndtnEduPrcsAplctPrdMngDetail.jsp | 12 +- .../cndtnEduPrcsAplctPrdMngMdfy.jsp | 94 ++++++ .../cndtnEduPrcsAplctPrdMngReg.jsp | 274 +++++++++++++----- .../web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp | 13 +- 5 files changed, 386 insertions(+), 74 deletions(-) diff --git a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java index db9e5064..7ae31e16 100644 --- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java +++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java @@ -36,6 +36,7 @@ import kcc.com.cmm.service.FileVO; import kcc.com.cmm.service.impl.CmmUseDAO; import kcc.com.cmm.spring.data.util.ExcelUtil; import kcc.com.cmm.util.StringUtil; +import kcc.com.utl.user.service.CheckFileUtil; import kcc.com.utl.user.service.CheckLoginUtil; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uss.notify.service.NotifyManageService; @@ -159,7 +160,10 @@ public class CndtnPrcsInfoMngController { //파일 처리 egov @Resource(name="EgovFileMngUtil") private EgovFileMngUtil egovFileMngUtil; - + + //파일 체크 util + @Resource(name = "checkFileUtil") + private CheckFileUtil checkFileUtil; @@ -643,6 +647,7 @@ public class CndtnPrcsInfoMngController { , ModelMap model //, RedirectAttributes redirectAttributes , HttpServletRequest request + , final MultipartHttpServletRequest multiRequest ) throws Exception { ModelAndView modelAndView = new ModelAndView(); @@ -661,12 +666,41 @@ public class CndtnPrcsInfoMngController { LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //step2.파일 처리==================================== + //파일 정상 처리 여부와 첨부 파일 정보 + //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO); + //파일 제한 수량 가져오기, 없으면 기본값 사용 + int i_file_limit = checkFileUtil.getLimitCount(request); // file count + int i_limit_size = checkFileUtil.getLimitSize(request); // file MB + String s_file_exts = checkFileUtil.getS_exts(); // file exts + + String atchFileId = checkFileUtil.fileValCheckNdbInsert( + multiRequest, modelAndView + , "APLCT_" //file_name_prefix + , s_file_exts + , i_limit_size + , i_file_limit + ); //EXT, MB size and ea + + if ("ERROR".equals(atchFileId)) return modelAndView; + + + + + + + + vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 vEPrcsDetailVO.setUseYn("Y"); String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); + vEPrcsDetailVO.setAtchFileId(atchFileId); + vEPrcsAplctPrdService.insert(vEPrcsDetailVO); @@ -2139,6 +2173,15 @@ public class CndtnPrcsInfoMngController { //과정 조회 VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO); + + + //파일 정보 가져오기 + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(vEPrcsDetailVODetail.getAtchFileId()); + List result = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", result); + model.addAttribute("fileListCnt", result.size()); + ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); codeVO.setCodeId("VEA001");//기관구분코드 @@ -2162,6 +2205,7 @@ public class CndtnPrcsInfoMngController { , ModelMap model //, RedirectAttributes redirectAttributes , HttpServletRequest request + , final MultipartHttpServletRequest multiRequest ) throws Exception { ModelAndView modelAndView = new ModelAndView(); @@ -2183,12 +2227,33 @@ public class CndtnPrcsInfoMngController { SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //step2.파일 처리==================================== + //파일 정상 처리 여부와 첨부 파일 정보 + //String atchFileId = this.takeFile(multiRequest, modelAndView, bmVO); + //파일 제한 수량 가져오기, 없으면 기본값 사용 + int i_file_limit = checkFileUtil.getLimitCount(request); // file count + int i_limit_size = checkFileUtil.getLimitSize(request); // file MB + String s_file_exts = checkFileUtil.getS_exts(); // file exts + + String atchFileId = checkFileUtil.fileValCheckNdbInsert( + multiRequest, modelAndView + , "APLCT_" //file_name_prefix + , s_file_exts + , i_limit_size + , i_file_limit + ); //EXT, MB size and ea + + if ("ERROR".equals(atchFileId)) return modelAndView; + + //String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID //vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 //vEPrcsDetailVO.setUseYn("Y"); vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + vEPrcsDetailVO.setAtchFileId(atchFileId); vEPrcsAplctPrdService.update(vEPrcsDetailVO); diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.jsp index 280193fd..77d199e2 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngDetail.jsp @@ -426,7 +426,17 @@ - + + +

첨부파일

+ + + + + + + + <%--

공개여부(사용여부)

diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfy.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfy.jsp index f9d6c098..781a4c14 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfy.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngMdfy.jsp @@ -41,6 +41,12 @@ var prcsDiv = ""; prcsDivChk(prcsDiv) + + $(".btn_type01").on('click', function(){ + $("#file_temp").click(); + }); + + }); /* @@ -161,6 +167,14 @@ } var data = new FormData(document.getElementById("createForm")); + + //첨부파일 등록 처리-step2 + _fileForm2.forEach(function(obj, idx) { + if (obj) data.append("file"+idx, obj.fileObj); + + }); + + if(confirm("저장하시겠습니까?")){ var url = ""; console.log(data); @@ -324,6 +338,86 @@ + + + + +

필수입력 항목*

+

첨부파일

+ + + + + +

첨부파일 가능 용량은 20MB입니다.

+
+ + + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+

첨부하실 파일을 마우스로 끌어서 넣어주세요.

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+ + + + "> + + "> + + +
+
+ diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngReg.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngReg.jsp index 0b570869..afd21059 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngReg.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngReg.jsp @@ -47,7 +47,13 @@ }); var prcsDiv = ""; - prcsDivChk(prcsDiv) + prcsDivChk(prcsDiv); + + + $(".btn_type01").on('click', function(){ + $("#file_temp").click(); + }); + }); @@ -75,10 +81,21 @@ } var data = new FormData(document.getElementById("createForm")); + + //첨부파일 등록 처리-step2 + _fileForm2.forEach(function(obj, idx) { + if (obj) data.append("file"+idx, obj.fileObj); + + }); + + + + if(confirm("저장하시겠습니까?")){ var url = "${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctPrdMngRegAjax.do"; $.ajax({ type:"POST", + enctype: 'multipart/form-data', url: url, data: data, dataType:'json', @@ -131,6 +148,40 @@ listForm.submit(); } + /* 파일등록 */ + var _fileIdx = 0; + var _fileForm2 = new Array(); + function handleFileUpload(files,obj) //업로드 function + { + console.log('files', files); + var limitsize = 20*1024*1024; //파일 제한 체크(1개, 20MB) + for (var i = 0; i < files.length; i++){ + if(files[i].size > limitsize){ + alert(files[i].name+"파일 사이즈가"+getStrFileSize(files[i].size)+"로 20MB이하만 업로드 가능합니다."); + return ; + } + } + + for (var i = 0; i < files.length; i++) + { + var fd = new FormData(); + fd.append('file', files[i]); + var tmpObj = new Object(); + tmpObj.name = "file_" + _fileIdx; + tmpObj.fileObj = files[i]; + + _fileForm2.push(tmpObj); + sendFileToServer(fd, obj, files[i], _fileIdx); + _fileIdx++; + + var totalfileSize = 0; + $('.totalfileCount').text($('.item_file_size').length) ; + $('.item_file_size').each(function(){ + totalfileSize += $(this).val()*1 ; + }); + $('.totalfileSize').text(getStrFileSize(totalfileSize)) ; + } + } @@ -170,76 +221,76 @@ - - 대면구분 - - - - - - 교육과정 - -<%-- --%> - - - - - - - - 과정명 - - - - - - - 교육기간 - -
- -
- <%-- ~ -
- -
--%> - - - - 교육장소 - - - - - - 신청기간 - -
- -
- ~ -
- -
+ + 대면구분 + + + + + + 교육과정 + + <%-- --%> + + - - - - 상세교육과정 - - - - - - 정원 - - - - + + + + + 과정명 + + + + + + + 교육기간 + +
+ +
+ <%-- ~ +
+ +
--%> + + + + 교육장소 + + + + + + 신청기간 + +
+ +
+ ~ +
+ +
+ + + + + 상세교육과정 + + + + + + 정원 + + + +

상태

@@ -247,7 +298,88 @@ - + + + + +

필수입력 항목*

+

첨부파일

+ + + + + +

첨부파일 가능 용량은 20MB입니다.

+
+ + + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+

첨부하실 파일을 마우스로 끌어서 넣어주세요.

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
첨부파일 리스트 : 파일명, 종류, 크기, 삭제
파일 명종류크기삭제
+ + + + "> + + "> + + +
+
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp index c602eeb7..ffe3cb97 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/sspnIdtmt/eduAplctDetail.jsp @@ -464,7 +464,18 @@ - + + + +

첨부파일

+ + + + + + + +