diff --git a/src/main/java/kcc/kccadr/cmm/innorix/service/AdrInnorixFileVO.java b/src/main/java/kcc/kccadr/cmm/innorix/service/AdrInnorixFileVO.java index ea6341cc..61d304ff 100644 --- a/src/main/java/kcc/kccadr/cmm/innorix/service/AdrInnorixFileVO.java +++ b/src/main/java/kcc/kccadr/cmm/innorix/service/AdrInnorixFileVO.java @@ -59,6 +59,10 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable { // 전체 교육인원 - 저작권 체험교실 결과보고서 항목 public String trgtPrsnlReal = ""; + //서류요청 기능 + public String docReqNm = ""; //요청 서류명 + public String sbmtId = ""; //제출 강사 ID + public String getFileType() { return fileType; @@ -140,6 +144,22 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable { this.prcsAplctPrdOrd = prcsAplctPrdOrd; } + public String getDocReqNm() { + return docReqNm; + } + + public void setDocReqNm(String docReqNm) { + this.docReqNm = docReqNm; + } + + public String getSbmtId() { + return sbmtId; + } + + public void setSbmtId(String sbmtId) { + this.sbmtId = sbmtId; + } + diff --git a/src/main/java/kcc/kccadr/cmm/innorix/service/InnorixFileService.java b/src/main/java/kcc/kccadr/cmm/innorix/service/InnorixFileService.java index 0c384109..51e380d8 100644 --- a/src/main/java/kcc/kccadr/cmm/innorix/service/InnorixFileService.java +++ b/src/main/java/kcc/kccadr/cmm/innorix/service/InnorixFileService.java @@ -34,4 +34,6 @@ public interface InnorixFileService { //기반강화 강의계획서 저장 RestResponse insertInnorixLctrPlanFile(AdrInnorixFileVO adrInnorixFileVO); + RestResponse insertInnorixReqFile(AdrInnorixFileVO adrInnorixFileVO); + } diff --git a/src/main/java/kcc/kccadr/cmm/innorix/service/impl/InnorixFileServiceImpl.java b/src/main/java/kcc/kccadr/cmm/innorix/service/impl/InnorixFileServiceImpl.java index 65d096d8..20e8c983 100644 --- a/src/main/java/kcc/kccadr/cmm/innorix/service/impl/InnorixFileServiceImpl.java +++ b/src/main/java/kcc/kccadr/cmm/innorix/service/impl/InnorixFileServiceImpl.java @@ -78,6 +78,10 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I //과정차시 관리 @Resource(name = "vEAPrcsAplctPrdInstrAsgnmService") private VEAPrcsAplctPrdInstrAsgnmService vEAPrcsAplctPrdInstrAsgnmService; + + //서류요청 순번 + @Resource(name="docReqOrdGnrService") + private EgovIdGnrService docReqOrdGnrService; /** * @methodName : fileDataUpload * @author : 이호영 @@ -401,4 +405,38 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now()); } + + @Override + public RestResponse insertInnorixReqFile(AdrInnorixFileVO adrInnorixFileVO) { + + List result = null; + try { + // 파일 저장 후 저장할 file 정보를 받아옴 + result = this.insertFileData(adrInnorixFileVO); + + // 파일 정보 insert + String atchFileId = fileManageDAO.insertFileInfs(result); + + //VE_EDU_DOC_REQ 서류요청테이블 insert + VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + vEEduAplctVO.setEduAplctOrd(adrInnorixFileVO.getEduAplctOrd()); + vEEduAplctVO.setDocReqNm(adrInnorixFileVO.getDocReqNm()); + vEEduAplctVO.setDocFormAtchFileId(atchFileId); + vEEduAplctVO.setFrstRegisterId(adrInnorixFileVO.getUniqId()); + + String[] sbmtIdArray = adrInnorixFileVO.getSbmtId().split(","); + for(String sbmtId : sbmtIdArray) { + vEEduAplctVO.setSbmtId(sbmtId); + vEEduAplctVO.setEduDocReqOrd(docReqOrdGnrService.getNextStringId()); + vEEduAplctService.insertDocReq(vEEduAplctVO); + } + + + } catch (Exception e) { + e.printStackTrace(); + return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now()); + } + + return new RestResponse(HttpStatus.OK, adrInnorixFileVO.getSuccessMsg(), LocalDateTime.now()); + } } diff --git a/src/main/java/kcc/kccadr/cmm/innorix/web/InnorixFileController.java b/src/main/java/kcc/kccadr/cmm/innorix/web/InnorixFileController.java index 906b82f2..4a2d3fd8 100644 --- a/src/main/java/kcc/kccadr/cmm/innorix/web/InnorixFileController.java +++ b/src/main/java/kcc/kccadr/cmm/innorix/web/InnorixFileController.java @@ -159,4 +159,29 @@ public class InnorixFileController { return ResponseEntity.ok(innorixService.insertInnorixLctrPlanFile(adrInnorixFileVO)); } + + /** + * @methodName : insertInnorixReqFile + * @author : 이지우 + * @date : 2023.11.03 + * @description : 파일 insert 전용 + * @param adrInnorixFileVO + * @return + * @throws Exception + * 청소년교육 서류요청 양식 업로드 + */ + @RequestMapping(value = {"/web/common/insertInnorixReqFileAjax.do"}, method = RequestMethod.POST) + public ResponseEntity insertInnorixReqFileAjax(@RequestBody AdrInnorixFileVO adrInnorixFileVO) throws Exception { + + //로그인 권한정보 불러오기 + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId()); + + if(userId.equals("")) { + return ResponseEntity.ok(new RestResponse(HttpStatus.UNAUTHORIZED, "로그인이 필요합니다.", LocalDateTime.now())); + } + adrInnorixFileVO.setUniqId(userId); + + return ResponseEntity.ok(innorixService.insertInnorixReqFile(adrInnorixFileVO)); + } } \ No newline at end of file diff --git a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/web/EduAplctTngrController.java b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/web/EduAplctTngrController.java index bbd2b50a..4afbd221 100644 --- a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/web/EduAplctTngrController.java +++ b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduAplct/web/EduAplctTngrController.java @@ -1,6 +1,9 @@ package kcc.ve.aplct.tngrVisitEdu.eduAplct.web; +import java.util.HashSet; import java.util.List; +import java.util.stream.Collector; +import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -446,6 +449,18 @@ public class EduAplctTngrController { vEEduChasiVOList = egovCryptoUtil.decryptVEEduChasiVOList(vEEduChasiVOList); model.addAttribute("chasiList", vEEduChasiVOList); + //강사 목록 + HashSet userIds = new HashSet<>(); + List instrList = vEEduChasiVOList.stream().filter(e -> userIds.add(e.getUserId())).collect(Collectors.toList()); + model.addAttribute("instrList", instrList); + + //서류 요청 목록 + VEEduAplctVO veEduDocReqVO = new VEEduAplctVO(); + veEduDocReqVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + List vEEduDocReqList = vEEduAplctService.selectDocReqList(veEduDocReqVO); + //복호화 + vEEduDocReqList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduDocReqList); + model.addAttribute("docReqList", vEEduDocReqList); return "/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctDetail"; diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctService.java index abd342b5..e13a0a21 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctService.java @@ -48,4 +48,10 @@ public interface VEEduAplctService { //사용자 진행중인 체험교실 조회하기 String selectProceedingOrd(String userId) throws Exception; + + //서류요청 insert + void insertDocReq(VEEduAplctVO paramVO) throws Exception; + + //서류요청 목록 조회 + List selectDocReqList(VEEduAplctVO paramVO) throws Exception; } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java index cd20f452..7de875c2 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduAplctVO.java @@ -375,6 +375,16 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable { //전체 교육인원(결과보고 제출 시) private String trgtPrsnlReal; + + //VE_EDU_DOC_REQ 서류요청 + private String eduDocReqOrd; //서류요청순번 + private String docReqNm; //요청 서류명 + private String docFormAtchFileId; //요청 서류 양식 파일 아이디 + private String sbmtAtchFileId; //제출 서류 파일 아이디 + private String sbmtId; //제출자 + + + public String getSpecialWorkAllow() { return specialWorkAllow; } @@ -1609,6 +1619,37 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable { public void setStngYr(String stngYr) { this.stngYr = stngYr; } + public String getEduDocReqOrd() { + return eduDocReqOrd; + } + public void setEduDocReqOrd(String eduDocReqOrd) { + this.eduDocReqOrd = eduDocReqOrd; + } + + public String getDocReqNm() { + return docReqNm; + } + public void setDocReqNm(String docReqNm) { + this.docReqNm = docReqNm; + } + public String getDocFormAtchFileId() { + return docFormAtchFileId; + } + public void setDocFormAtchFileId(String docFormAtchFileId) { + this.docFormAtchFileId = docFormAtchFileId; + } + public String getSbmtAtchFileId() { + return sbmtAtchFileId; + } + public void setSbmtAtchFileId(String sbmtAtchFileId) { + this.sbmtAtchFileId = sbmtAtchFileId; + } + public String getSbmtId() { + return sbmtId; + } + public void setSbmtId(String sbmtId) { + this.sbmtId = sbmtId; + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctDAO.java index 56710998..ab17483c 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctDAO.java @@ -139,4 +139,12 @@ public class VEEduAplctDAO extends EgovAbstractDAO { return (String) select("VEEduAplctDAO.selectProceedingOrd", userId); } + public void insertDocReq(VEEduAplctVO paramVO) throws Exception { + insert("VEEduAplctDAO.insertDocReq", paramVO); + } + + //L + public List selectDocReqList(VEEduAplctVO paramVO) throws Exception { + return (List) list("VEEduAplctDAO.selectDocReqList", paramVO); + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctServiceImpl.java index 4b7be46a..89059355 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduAplctServiceImpl.java @@ -163,4 +163,12 @@ public class VEEduAplctServiceImpl implements VEEduAplctService { public String selectProceedingOrd(String userId) throws Exception { return vEEduAplctDAO.selectProceedingOrd(userId); } + + public void insertDocReq(VEEduAplctVO paramVO) throws Exception { + vEEduAplctDAO.insertDocReq(paramVO); + } + + public List selectDocReqList(VEEduAplctVO paramVO) throws Exception{ + return vEEduAplctDAO.selectDocReqList(paramVO); + } } diff --git a/src/main/resources/egovframework/spring/com/context-idgen.xml b/src/main/resources/egovframework/spring/com/context-idgen.xml index 418fd31a..c211ef84 100644 --- a/src/main/resources/egovframework/spring/com/context-idgen.xml +++ b/src/main/resources/egovframework/spring/com/context-idgen.xml @@ -2952,5 +2952,20 @@ + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEEduAplct_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEEduAplct_SQL_Tibero.xml index b11d35e2..6eb678ef 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEEduAplct_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEEduAplct_SQL_Tibero.xml @@ -1217,4 +1217,53 @@ AND LCTR_DIV_CD = '30' AND APRVL_CD = '60' + + + /* VEEduAplctDAO.insertDocReq */ + INSERT INTO VE_EDU_DOC_REQ + ( + EDU_APLCT_ORD, + EDU_DOC_REQ_ORD, + DOC_REQ_NM, + DOC_FORM_ATCH_FILE_ID, + FRST_REGIST_PNTTM, + FRST_REGISTER_ID, + SBMT_ID + )VALUES( + #eduAplctOrd#, + #eduDocReqOrd#, + #docReqNm#, + #docFormAtchFileId#, + SYSDATE, + #frstRegisterId#, + #sbmtId# + ) + + + diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctDetail.jsp index 83cea3fb..854c4c60 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/tngrVisitEdu/eduAplct/eduAplctDetail.jsp @@ -16,6 +16,7 @@ + @@ -205,6 +285,11 @@ + + + " /> + +
@@ -277,7 +362,7 @@ - + ${empty list.instrNm ? '-' : list.instrNm} @@ -312,7 +397,145 @@ - + + +
+ +
+ @@ -711,6 +934,7 @@
+ @@ -788,57 +1012,65 @@ - - - - - - - +
-

필요양식

+

요청서류 목록

-
<%-- --%> + + - + - + + + + - - - - - + + +
교육차시 정보 교육희망일, 시간, 구분, 대상, 배정강사, 인원 을/를 제공하는 표
파일서류명 강사명양식 제출여부제출일
- 범죄경력조회 동의서 + - 청소년강사1 + - 동의서.zip -
- 범죄경력조회 동의서 - - 청소년강사2 - - 미제출 + + + + + + + + + + + 미제출 + + + + + + + - +

* 확정된 교육에 대한 변경은 위원회를 통해 진행 부탁드립니다.