diff --git a/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmAplct/service/impl/ExprnClsrmAplctServiceImpl.java b/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmAplct/service/impl/ExprnClsrmAplctServiceImpl.java index 2be8b0fd..42eb511f 100644 --- a/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmAplct/service/impl/ExprnClsrmAplctServiceImpl.java +++ b/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmAplct/service/impl/ExprnClsrmAplctServiceImpl.java @@ -1,13 +1,11 @@ package kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.impl; -import java.time.LocalDateTime; import java.util.List; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.BeanUtils; -import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.servlet.ModelAndView; @@ -18,18 +16,17 @@ import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.FileVO; import kcc.com.utl.user.service.CheckFileUtil; import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.kccadr.cmm.RestResponse; -import kcc.kccadr.cmm.innorix.service.AdrInnorixFileVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; -import kcc.let.utl.fcc.service.EgovStringUtil; import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ExprnClsrmAplctService; import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctOnlnService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnVO; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.impl.VEEduChasiDAO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService; @@ -91,6 +88,9 @@ public class ExprnClsrmAplctServiceImpl implements ExprnClsrmAplctService { @Resource(name = "vEPrcsAplctPrdService") private VEPrcsAplctPrdService vEPrcsAplctPrdService; + //차시 + @Resource(name = "vEEduChasiDAO") + private VEEduChasiDAO vVEEduChasiDAO; @@ -203,6 +203,38 @@ public class ExprnClsrmAplctServiceImpl implements ExprnClsrmAplctService { // 저작권 등록 veEduOprtnService.update(oprtn); + + //저작권 체험교실 서류제출 시 차시별 운영계획서 제출 + if("30".equals(vEEduAplctVO.getLctrDivCd()) && "50".equals(vEEduAplctVO.getAprvlCd())) { + //차시 저장 + String[] s_eduHopeDt = request.getParameterValues("eduHopeDt"); + String[] s_strtTm = request.getParameterValues("strtTm"); + String[] s_endTm = request.getParameterValues("endTm"); + String[] s_lrnTm = request.getParameterValues("lrnTm"); + String[] s_lrnSbjct = request.getParameterValues("lrnSbjct"); + String[] s_lrnCn = request.getParameterValues("lrnCn"); + String[] s_rmrks = request.getParameterValues("rmrks"); + + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); //교육신청순번 + vEEduChasiVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + + for (int i=0;i vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO); + //List vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO); + List vEEduAplctVOList = vEEduMIXService.selectExprnPagingList(vEEduAplctVO); vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList); //3.pageing step3 paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo); @@ -548,9 +550,13 @@ public class ExprnClsrmAplctController { if(vEPrcsDetailVO != null) { model.addAttribute("endPnttm", vEPrcsDetailVO.getEndPnttm()); } - if("1".equals(Type)) { //type1 - 신청정보 + if("10".equals(Type) || "20".equals(Type)) { //type1 - 운영신청 + //등록일이 과정신청기간에 포함 되는지 확인 - 신청기간에 포함되며 신청 단계의 경우 수정 기능 추가 + int cnt = vEEduAplctService.selectCntAplctPrd(vEEduAplctVO); + model.addAttribute("cnt", cnt); return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnAplctDashboard"; - }else if("2".equals(Type)) { //type2 - 서류제출 + }else if("40".equals(Type)) { //type4 - 결과보고 + //거래선 파일 정보 가져오기 FileVO fileVO = new FileVO(); fileVO.setAtchFileId(vEEduAplctVO.getTransAtchFileId()); @@ -569,10 +575,111 @@ public class ExprnClsrmAplctController { result = fileService.selectFileInfs(fileVO); model.addAttribute("planFileList", result); model.addAttribute("planFileListCnt", result.size()); + + //운영계획 차시 리스트 + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + vEEduChasiVO.setInstrDiv("30"); + vEEduChasiVO.setPageIndex(0); + List vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO); + + //복호화 + if(vEEduChasiVOList != null) { + vEEduChasiVOList = egovCryptoUtil.decryptVEEduChasiVOList(vEEduChasiVOList); + } + model.addAttribute("chasiList", vEEduChasiVOList); + return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnDocumentDashboard"; - }else if("3".equals(Type)) { //type3 - 운영계획 + + }else if("50".equals(Type) || "60".equals(Type)){ //type5 - 최종결과 + + FileVO fileVO = new FileVO(); + if(vEEduAplctVO.getOrgnlRsltAtchFileId() != null){ + fileVO.setAtchFileId(vEEduAplctVO.getOrgnlRsltAtchFileId()); + fileVO.setFileSn("0"); + vEEduAplctVO.setOrgnlRsltAtchFileDetail(fileService.selectFileInf(fileVO)); + } + if(vEEduAplctVO.getCpyRsltAtchFileId() != null){ + fileVO.setAtchFileId(vEEduAplctVO.getCpyRsltAtchFileId()); + fileVO.setFileSn("0"); + vEEduAplctVO.setCpyRsltAtchFileDetail(fileService.selectFileInf(fileVO)); + } + if(vEEduAplctVO.getEvdncPhtAtchFileId() != null){ + fileVO.setAtchFileId(vEEduAplctVO.getEvdncPhtAtchFileId()); + fileVO.setFileSn("0"); + vEEduAplctVO.setEvdncPhtAtchFileDetail(fileService.selectFileInf(fileVO)); + } + if(vEEduAplctVO.getRmtTrnAtchFileId() != null){ + fileVO.setAtchFileId(vEEduAplctVO.getRmtTrnAtchFileId()); + fileVO.setFileSn("0"); + vEEduAplctVO.setRmtTrnAtchFileDetail(fileService.selectFileInf(fileVO)); + } + return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRprtDashboard"; + }else { + + FileVO fileVO = new FileVO(); + if(vEEduAplctVO.getOrgnlRsltAtchFileId() != null){ + fileVO.setAtchFileId(vEEduAplctVO.getOrgnlRsltAtchFileId()); + fileVO.setFileSn("0"); + vEEduAplctVO.setOrgnlRsltAtchFileDetail(fileService.selectFileInf(fileVO)); + } + if(vEEduAplctVO.getCpyRsltAtchFileId() != null){ + fileVO.setAtchFileId(vEEduAplctVO.getCpyRsltAtchFileId()); + fileVO.setFileSn("0"); + vEEduAplctVO.setCpyRsltAtchFileDetail(fileService.selectFileInf(fileVO)); + } + if(vEEduAplctVO.getEvdncPhtAtchFileId() != null){ + fileVO.setAtchFileId(vEEduAplctVO.getEvdncPhtAtchFileId()); + fileVO.setFileSn("0"); + vEEduAplctVO.setEvdncPhtAtchFileDetail(fileService.selectFileInf(fileVO)); + } + if(vEEduAplctVO.getRmtTrnAtchFileId() != null){ + fileVO.setAtchFileId(vEEduAplctVO.getRmtTrnAtchFileId()); + fileVO.setFileSn("0"); + vEEduAplctVO.setRmtTrnAtchFileDetail(fileService.selectFileInf(fileVO)); + } + + //운영계획 차시 리스트 + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + vEEduChasiVO.setInstrDiv("30"); + vEEduChasiVO.setPageIndex(0); + List vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO); + + //복호화 + if(vEEduChasiVOList != null) { + vEEduChasiVOList = egovCryptoUtil.decryptVEEduChasiVOList(vEEduChasiVOList); + } + model.addAttribute("chasiList", vEEduChasiVOList); + + return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRsltDashboard"; + } +/* if("10".equals(Type)) { //type1 - 운영신청 + return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnAplctDashboard"; + }else if("20".equals(Type)) { //type2 - 운영확정 + + return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnDocumentDashboard"; + }else if("30".equals(Type)) { //type3 - 서류제출 + //거래선 파일 정보 가져오기 + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(vEEduAplctVO.getTransAtchFileId()); + List result = fileService.selectFileInfs(fileVO); + model.addAttribute("transFileList", result); + model.addAttribute("transFileListCnt", result.size()); + + //서약서 파일 정보 가져오기 + fileVO.setAtchFileId(vEEduAplctVO.getOathAtchFileId()); + result = fileService.selectFileInfs(fileVO); + model.addAttribute("oathFileList", result); + model.addAttribute("oathFileListCnt", result.size()); + + //계획서 파일 정보 가져오기 + fileVO.setAtchFileId(vEEduAplctVO.getPlanAtchFileId()); + result = fileService.selectFileInfs(fileVO); + model.addAttribute("planFileList", result); + model.addAttribute("planFileListCnt", result.size()); return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnPlanDashboard"; - }else if("4".equals(Type)) { //type4 - 결과보고 + }else if("40".equals(Type)) { //type4 - 결과보고 FileVO fileVO = new FileVO(); if(vEEduAplctVO.getOrgnlRsltAtchFileId() != null){ fileVO.setAtchFileId(vEEduAplctVO.getOrgnlRsltAtchFileId()); @@ -620,7 +727,7 @@ public class ExprnClsrmAplctController { } return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRsltDashboard"; } - } +*/ } //체험교실 운영신청 초기화 시 첨부파일 삭제 @RequestMapping(value = "/fmsfileMultipleDeleteAjax.do", method = RequestMethod.POST) diff --git a/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/web/ExprnClsrmEndController.java b/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/web/ExprnClsrmEndController.java index f9c80d24..66f2e9ac 100644 --- a/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/web/ExprnClsrmEndController.java +++ b/src/main/java/kcc/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/web/ExprnClsrmEndController.java @@ -25,6 +25,7 @@ import kcc.com.cmm.LoginVO; import kcc.com.cmm.service.EgovFileMngService; import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.cmm.service.FileVO; +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; @@ -35,10 +36,12 @@ import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ExprnClsrmAplctService; import kcc.ve.cmm.VeConstants; +import kcc.ve.cmm.VeSendMail; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctOnlnService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; @@ -169,13 +172,15 @@ public class ExprnClsrmEndController { // 저작권 vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30); - vEEduAplctVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT); + //체험교실은 상태 종류 추가로 인하여 코드 20 이상일 시 운영 중 + vEEduAplctVO.setSearchQuery("AND A.APRVL_CD >= 20"); //1.pageing step1 PaginationInfo paginationInfo = this.setPagingStep1(vEEduAplctVO); //2. pageing step2 vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo); - List vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO); + //List vEEduAplctVOList = vEEduMIXService.selectExprnEndPagingList(vEEduAplctVO); + List vEEduAplctVOList = vEEduMIXService.selectExprnPagingList(vEEduAplctVO); vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList); //3.pageing step3 paginationInfo = this.setPagingStep3(vEEduAplctVOList, paginationInfo); @@ -223,6 +228,26 @@ public class ExprnClsrmEndController { if(vEPrcsDetailVO != null) { model.addAttribute("endPnttm", vEPrcsDetailVO.getEndPnttm()); } + + //운영계획 차시 리스트 + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + vEEduChasiVO.setInstrDiv("30"); + vEEduChasiVO.setPageIndex(0); + List vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO); + + //복호화 + if(vEEduChasiVOList != null) { + vEEduChasiVOList = egovCryptoUtil.decryptVEEduChasiVOList(vEEduChasiVOList); + } + model.addAttribute("chasiList", vEEduChasiVOList); + + //결과보고 파일 존재 유무 체크(4개 모두) + String rsltAllYn = "Y"; + if (StringUtil.isEmpty(vEEduAplctVO.getOrgnlRsltAtchFileId()) || StringUtil.isEmpty(vEEduAplctVO.getEvdncPhtAtchFileId()) || StringUtil.isEmpty(vEEduAplctVO.getCpyRsltAtchFileId()) || StringUtil.isEmpty(vEEduAplctVO.getRmtTrnAtchFileId())) { + rsltAllYn = "N"; + } + model.addAttribute("rsltAllYn", rsltAllYn); return "/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndDetail"; } @@ -551,6 +576,20 @@ public class ExprnClsrmEndController { return modelAndView; } + @RequestMapping(value="/eduAplctStatusAjax.do") + public ModelAndView eduAplctStatusAjax(HttpServletRequest request , ModelMap model , VEEduAplctVO vEEduAplctVO) throws Exception { + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //권한에 따른 로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); + vEEduAplctVO.setLastUpdusrId(loginVO.getUniqId()); + int rs = vEEduAplctService.statusUpdate(vEEduAplctVO); + + modelAndView.addObject("rsCnt", rs); + modelAndView.addObject("result", "success"); + return modelAndView; + } ////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // diff --git a/src/main/java/kcc/ve/cmm/VeConstants.java b/src/main/java/kcc/ve/cmm/VeConstants.java index 23a33a19..eef25881 100644 --- a/src/main/java/kcc/ve/cmm/VeConstants.java +++ b/src/main/java/kcc/ve/cmm/VeConstants.java @@ -105,4 +105,18 @@ public class VeConstants { public static final String CLASS_TM_90 = "90";//, // 교육시간 public static final String ADULT_TM_60 = "60";//, // 성인 시간 + + public static final String EXPRN_APRVL_CD_10 = "10"; // 운영신청 + public static final String EXPRN_APRVL_CD_11 = "11"; // 수정요청 + public static final String EXPRN_APRVL_CD_12 = "12"; // 운영 미확정 + public static final String EXPRN_APRVL_CD_13 = "13"; // 수정완료 + public static final String EXPRN_APRVL_CD_20 = "20"; // 운영확정 + public static final String EXPRN_APRVL_CD_30 = "30"; // 서류제출 요청 + public static final String EXPRN_APRVL_CD_40 = "40"; // 서류제출 + public static final String EXPRN_APRVL_CD_50 = "50"; // 운영 진행중 + public static final String EXPRN_APRVL_CD_60 = "60"; // 결과보고 완료 + public static final String EXPRN_APRVL_CD_70 = "70"; // 검토중 + public static final String EXPRN_APRVL_CD_80 = "80"; // 운영종료 + + } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java index ca84ad83..d3800714 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java @@ -80,4 +80,7 @@ public interface VEEduMIXService { //저작권 체험교실 이력 과정 목록 List selectExprnHstryPagingList(VEEduAplctVO paramVO) throws Exception; + + //Page List - 체험교실 운영목록(상태 값 20이상) + List selectExprnEndPagingList(VEEduAplctVO paramVO) throws Exception; } 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 b4d50ade..b1ecea11 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 @@ -93,7 +93,7 @@ public class VEEduAplctServiceImpl implements VEEduAplctService { decryptVEEduAplctVO(vo); //교육확정 시 관리번호 추가 - if("60".equals(vEEduAplctVO.getAprvlCd())) { + if( ("60".equals(vEEduAplctVO.getAprvlCd()) && !"30".equals(vo.getLctrDivCd())) || ("20".equals(vEEduAplctVO.getAprvlCd()) && "30".equals(vo.getLctrDivCd())) ) { String mngNmbrDigits = "00000"; //관리번호 5자릿수로 만들기 변수 String mngNmbr = ""; String mngNmbrType = ""; diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java index 09c185e5..3e7ab231 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXDAO.java @@ -203,5 +203,9 @@ public class VEEduMIXDAO extends EgovAbstractDAO { List tlist = (List) list("VEEduMIXDAO.selectExprnHstryPagingList", paramVO); return tlist; } - + public List selectExprnEndPagingList(VEEduAplctVO paramVO) throws Exception { + @SuppressWarnings("unchecked") + List tlist = (List) list("VEEduMIXDAO.selectExprnEndPagingList", paramVO); + return tlist; + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java index 644e98bc..7fd0714e 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/impl/VEEduMIXServiceImpl.java @@ -180,5 +180,11 @@ public class VEEduMIXServiceImpl implements VEEduMIXService { public List selectExprnHstryPagingList(VEEduAplctVO paramVO) throws Exception{ return vEEduMIXDAO.selectExprnHstryPagingList(paramVO); - } + } + + //paging List + public List selectExprnEndPagingList(VEEduAplctVO paramVO) throws Exception{ + return vEEduMIXDAO.selectExprnEndPagingList(paramVO); + } + } diff --git a/src/main/java/kcc/ve/oprtn/cpyrgExprnClsrm/oprtnStateMng/web/OprtnStateMngController.java b/src/main/java/kcc/ve/oprtn/cpyrgExprnClsrm/oprtnStateMng/web/OprtnStateMngController.java index e7a2b420..396af28f 100644 --- a/src/main/java/kcc/ve/oprtn/cpyrgExprnClsrm/oprtnStateMng/web/OprtnStateMngController.java +++ b/src/main/java/kcc/ve/oprtn/cpyrgExprnClsrm/oprtnStateMng/web/OprtnStateMngController.java @@ -32,6 +32,7 @@ import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnVO; @@ -143,7 +144,8 @@ public class OprtnStateMngController { //로그인 처리==================================== vEEduAplctVO.setLctrDivCd("30"); // 저작권체험교실 - vEEduAplctVO.setAprvlCd("60"); // 승인상태(VE0003) 교육확정코드(60) + //체험교실은 상태 종류 추가로 인하여 코드 20 이상일 시 운영 중 + vEEduAplctVO.setSearchQuery("AND A.APRVL_CD >= 20"); if("2".equals(vEEduAplctVO.getSearchCondition())) { // 담당자 검색 시 vEEduAplctVO.setSearchKeyword(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchKeyword())); @@ -154,8 +156,7 @@ public class OprtnStateMngController { //2. pageing step2 vEEduAplctVO = this.setPagingStep2(vEEduAplctVO, paginationInfo); - vEEduAplctVO.setOrderByQuery("H.LAST_UPDT_PNTTM DESC, A.LAST_UPDT_PNTTM DESC , E.LAST_UPDT_PNTTM DESC"); - List vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO); + List vEEduAplctVOList = vEEduMIXService.selectExprnPagingList(vEEduAplctVO); //List복호화 vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList); @@ -243,6 +244,19 @@ public class OprtnStateMngController { VEInstrDetailVO lastVEInstrDetailVO = vEInstrDetailService.selectLastYearDetail(vEEduAplctVO); model.addAttribute("lastVEInstrDetailVO",lastVEInstrDetailVO); + //차시별 운영계획 조회 + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + vEEduChasiVO.setInstrDiv("30"); + vEEduChasiVO.setPageIndex(0); + List vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO); + + //복호화 + if(vEEduChasiVOList != null) { + vEEduChasiVOList = egovCryptoUtil.decryptVEEduChasiVOList(vEEduChasiVOList); + } + model.addAttribute("chasiList", vEEduChasiVOList); + return "oprtn/cpyrgExprnClsrm/oprtnStateMngDetail"; } 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 abc60e9c..591e3f9c 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 @@ -1360,7 +1360,7 @@ VE_EDU_APLCT a WHERE USER_ID = #userId# AND LCTR_DIV_CD = '30' - AND APRVL_CD = '60' + diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEEduOptrn_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEEduOptrn_SQL_Tibero.xml index 52fc4513..3dd9aa48 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEEduOptrn_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEEduOptrn_SQL_Tibero.xml @@ -66,29 +66,71 @@ UPDATE VE_EDU_OPRTN SET - CHRG_MJR = #chrgMjr# - ,D_BIRTH = #dBirth# - ,CHRG_SEX_CD = #chrgSexCd# - ,CMPLT_YEAR = #cmpltYear# - ,CMPLT_NUM = #cmpltNum# - ,EXPRN_CLSRN_CD = #exprnClsrnCd# - ,EXPRN_CLSRN_YEAR = #exprnClsrnYear# - ,EXPRN_CLSRN_APLCT = #exprnClsrnAplct# - ,EXPRN_CLSRN_APLCT_CN = #exprnClsrnAplctCn# - ,TRGT_GRADE = #trgtGrade# - ,TRGT_CLSRM = #trgtClsrm# - ,TRGT_PRSNL = #trgtPrsnl# - ,RPRT_SBMT = #rprtSbmt# - ,OPRTN_STRT_DT = #oprtnStrtDt# - ,OPRTN_END_DT = #oprtnEndDt# - ,OPRTN_FILE_ID = #oprtnFileId# - ,LAST_UPDT_PNTTM = SYSDATE + LAST_UPDT_PNTTM = SYSDATE ,LAST_UPDUSR_ID = #lastUpdusrId# - ,ISLANDS_YN = #islandsYn# - ,REMOTE_YN = #remoteYn# - ,CLS_CMBT_YN = #clsCmbtYn# - ,PPUL_DCLN_YN = #ppulDclnYn# - ,NEED_TXTB_NUM = #needTxtbNum# + + ,CHRG_MJR = #chrgMjr# + + + ,D_BIRTH = #dBirth# + + + ,CHRG_SEX_CD = #chrgSexCd# + + + ,CMPLT_YEAR = #cmpltYear# + + + ,CMPLT_NUM = #cmpltNum# + + + ,EXPRN_CLSRN_CD = #exprnClsrnCd# + + + ,EXPRN_CLSRN_YEAR = #exprnClsrnYear# + + + ,EXPRN_CLSRN_APLCT = #exprnClsrnAplct# + + + ,EXPRN_CLSRN_APLCT_CN = #exprnClsrnAplctCn# + + + ,TRGT_GRADE = #trgtGrade# + + + ,TRGT_CLSRM = #trgtClsrm# + + + ,TRGT_PRSNL = #trgtPrsnl# + + + ,RPRT_SBMT = #rprtSbmt# + + + ,OPRTN_STRT_DT = #oprtnStrtDt# + + + ,OPRTN_END_DT = #oprtnEndDt# + + + ,OPRTN_FILE_ID = #oprtnFileId# + + + ,ISLANDS_YN = #islandsYn# + + + ,REMOTE_YN = #remoteYn# + + + ,CLS_CMBT_YN = #clsCmbtYn# + + + ,PPUL_DCLN_YN = #ppulDclnYn# + + + ,NEED_TXTB_NUM = #needTxtbNum# + WHERE 1=1 AND EDU_APLCT_ORD = #eduAplctOrd# diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml index a4a4c2dd..2ac0bd66 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Tibero.xml @@ -5216,33 +5216,18 @@ VALUES A.schol_instt_nm AS scholInsttNm, A.chrg_nm AS chrgNm, TO_CHAR(A.sbmt_pnttm, 'YYYY.MM.DD') AS sbmtPnttm, + TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY.MM.DD') AS frstRegistPnttm, D.unfth_yn AS unfthYn, ( SELECT COUNT(1) FROM ve_new_noti e - WHERE ((A.edu_aplct_ord = e.tbl_uniq_ord OR B.edu_aplct_ord = e.tbl_uniq_ord) OR B.edu_chasi_ord = e.tbl_uniq_ord) + WHERE A.edu_aplct_ord = e.tbl_uniq_ord AND e.menu_no = #menuNo# AND e.frst_register_id = #notiUserId# ) AS notiCnt, C.CHRG_MJR AS chrgMjr FROM ve_edu_aplct A - LEFT OUTER JOIN ( - SELECT - EDU_APLCT_ORD - ,EDU_CHASI_ORD - ,SUM(lrn_tm) AS lrn_tm - ,MIN( - REPLACE( - CASE WHEN EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = '' THEN NULL ELSE EDU_HOPE_DT END - , '.' - , '' - ) - ) AS EDU_HOPE_DT - FROM VE_EDU_CHASI - GROUP BY EDU_APLCT_ORD, EDU_CHASI_ORD - ) B - ON A.edu_aplct_ord = B.edu_aplct_ord LEFT OUTER JOIN VE_EDU_OPRTN C ON A.EDU_APLCT_ORD = C.EDU_APLCT_ORD LEFT JOIN ( @@ -5268,12 +5253,28 @@ VALUES )D ON a.USER_ID = D.USER_ID WHERE 1=1 + AND A.SBMT_YN = 'Y' A.lctr_div_cd = #lctrDivCd# + + A.user_id = #userId# + AND TO_CHAR(A.SBMT_PNTTM,'YYYY') = #searchYear# + + AND A.APRVL_CD = #searchStatus2# + + + $searchQuery$ + + + AND TO_CHAR(A.SBMT_PNTTM,'YYYYMMDD') = ]]> REPLACE(#searchStartSbmtPnttm#, '.' , '') + + + AND TO_CHAR(A.SBMT_PNTTM,'YYYYMMDD') REPLACE(#searchEndSbmtPnttm#, '.' , '') + AND A.EDU_SLCT_AREA_CD = #eduSlctAreaCd# @@ -5760,10 +5761,810 @@ VALUES AND a.user_id=b.user_id AND a.lctr_div_cd=b.lctr_div_cd AND a.edu_aplct_ord!=b.edu_aplct_ord + AND b.sbmt_yn = 'Y' ORDER BY 1 , $orderByQuery$ - + + + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cmm/rejectPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cmm/rejectPopup.jsp index 6daf5dc3..22a021a8 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cmm/rejectPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cmm/rejectPopup.jsp @@ -27,7 +27,7 @@ aprvlCd = VeConstants.APRVL_CD_30; } else { msg = "수정요청"; - aprvlCd = VeConstants.APRVL_CD_70; + aprvlCd = '11'; } if(confirm(msg+" 하시겠습니까?")){ $.ajax({ diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctMngDetail.jsp index 02317a57..3ec1c4f4 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctMngDetail.jsp @@ -182,41 +182,10 @@ -

처리상태

+

처리상태

- - - 신청취소 - - - 작성중 - - - 운영신청 - - - 운영확정 - - - 신청반려 - - - 교육확정 - - - 수정요청 - - - 수정요청완료 - - - 교육미확정 - - - - - - + @@ -344,7 +313,8 @@ -
+ + <%--

운영 계획

@@ -361,10 +331,10 @@

대상학년/반

${info.trgtGrade} - <%-- +

대상반

- ${info.trgtClsrm} --%> + ${info.trgtClsrm} @@ -401,7 +371,7 @@ -
+
--%> @@ -449,8 +419,7 @@ - + - - - 운영신청 - - - 수정요청 - - - 수정완료 - - - 운영확정 - - - 운영미확정 - - - - - - + @@ -518,7 +468,7 @@ - + @@ -529,38 +479,23 @@
- - - - + + - - <%-- - - - --%>
- - - - + + + + + + + + - <%-- --%> - - <%-- --%> +
diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctMngList.jsp index 25def16b..2329c964 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctMngList.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cpyrgExprnClsrm/oprtnAplctMngList.jsp @@ -16,7 +16,7 @@ -c + @@ -986,86 +977,6 @@ - <%-- - -

필수입력 항목*

-

첨부파일

- - -
- - - -
-
- - - - - - - - - - - - - - - - - -
첨부파일 파일명, 종류, 크기 정보 제공
파일 명종류크기
-

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

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
첨부파일 파일명, 종류, 크기, 삭제 정보 제공
파일 명종류크기삭제
- ${fileList.orignlFileNm} - - "> - - "> - - -
-
-
-
-

최대 3

-

50MB제한

-
-
- - ※ 학교장 직인이 포함된 운영신청서 파일을 업로드 - - - --%>
@@ -1075,7 +986,6 @@
- <%-- --%>
@@ -1146,7 +1056,7 @@ ※ 학교장 직인이 포함된 운영신청서 파일을 업로드
- + --%>
@@ -1200,7 +1110,7 @@
- + diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg_back_231121.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg_back_231121.jsp deleted file mode 100644 index 19bac67b..00000000 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctReg_back_231121.jsp +++ /dev/null @@ -1,1226 +0,0 @@ -<%@ page contentType="text/html; charset=utf-8"%> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> -<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> -<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> -<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> -<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> -<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> - -<% pageContext.setAttribute("replaceChar", "\n"); %> - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - -
-

운영신청서 작성

-
- - -
-
-
-
-

신청자 정보

- * 항목은 필수 입력 사항입니다. -
- -
- -
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- - - - --%> - - - - - - - - - -
-

필수입력 항목*

-

학교(기관)명

-
- - - - - ※ 학교명이 검색되지 않을 경우, 담당자에게 연락 - -
-

학교구분

-
- checked> - checked> - checked> - checked> - checked> -
-

학교지역특성

-
- checked> - checked> - checked> - checked> -
-

필수입력 항목*

-

교사명

-
- - - -

필수입력 항목*

-

성별

-
- -
-

필수입력 항목*

-

휴대폰

-
- - - - - - - - - - - -
-

필수입력 항목*

-

전화

-
- - - - - - - - - - - -
-

필수입력 항목*

-

이메일

-
- - - - @ - - - - - - ※ 교내에서 확인 가능한 메일 계정 입력 (예) 공직자 통합메일 - -
-

주소

-
- - - <%----%>
- - - - -
-

필수입력 항목*

-

담당교과

-
- - -
-

생년월일*

-

생년월일

-
- - - - - - - - - - - -
-

필수입력 항목*

-

저작권 오프라인 교원연수

-
- 이수년도 -     - 이수번호 - - - ※ 교내에서 확인 가능한 메일 계정 입력 (예) 교육청 도메인 - -
-

필수입력 항목*

-

체험교실운영여부

-
-
- - - - -
-
-
-
- ※ 소속학교 변동 여부와는 관계없이 기운영 여부를 체크. -
-

필수입력 항목*

-

신청경로

-
- - - -
-
- -
-
-

운영 계획

- * 항목은 필수 입력 사항입니다. -
-
-
- - - - - - - - - - - - - - <%-- - --%> - - - - - - - - - - - - <%-- - - - --%> - -
운영 계획 (th 명)을 입력하는 표
-

필수입력 항목*

-

대상학년/반

-
- - - -

필수입력 항목*

-

대상 반

-
- - 반 -
-

필수입력 항목*

-

전체학생 수

-
- - 명 - -

필수입력 항목*

-

운영시기

-
- - - <%--
- - " name="oprtnStrtDt" id="oprtnStrtDt" class="calendar" title="시작일 선택"> -
- ~ -
- - " name="oprtnEndDt" id="oprtnEndDt" class="calendar" title="종료일 선택"> -
--%> - - -
- - <%-- --%> - " pattern="yyyy.MM.dd"> -
- ~ -
- - <%-- --%> - "> -
- - - - -
-

필수입력 항목*

-

필요 교재 수량

-
- - -
-

필수입력 항목*

-

첨부파일

-
-
- - - -
-
- - - - - - - - - - - - - - - - - -
첨부파일 파일명, 종류, 크기 정보 제공
파일 명종류크기
-

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

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
첨부파일 파일명, 종류, 크기, 삭제 정보 제공
파일 명종류크기삭제
- ${fileList.orignlFileNm} - - "> - - "> - - -
-
-
-
-

최대 3

-

50MB제한

-
-
- - ※ 학교장 직인이 포함된 운영신청서 파일을 업로드 - -
-
- -
-

필수입력 항목*

첨부파일
-
-
- - <%-- --%> - -
-
- - - - - - - - - - - - - - - - - -
첨부파일 파일명, 종류, 크기 정보 제공
파일 명종류크기
-

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

-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - -
첨부파일 파일명, 종류, 크기, 삭제 정보 제공
파일 명종류크기삭제
- ${fileList.orignlFileNm} - - "> - - "> - - -
-
-
-
-

최대 3

-

50MB제한

-
-
- - ※ 학교장 직인이 포함된 운영신청서 파일을 업로드 - -
-
- -
-
-

개인정보 이용 동의

-
-
-
-
1. 개인정보 수집 및 이용 목적
-- 제공하신 정보는 한국저작권위원회에서 운영하는 <저작권 체험교실 운영> 일정 안내를 위해 사용됩니다.
-
-2. 수집하려는 개인정보의 항목
-- [필수] 신청자의 성명, 주소, 연락처, 휴대폰, 이메일, 직장연락처, 직장주소
-
-3. 개인정보의 보유 및 이용 기간
-- 3년
-
-4. 개인정보 수집 동의 거부의 권리
-- 귀하는 이에 대한 동의를 거부할 수 있습니다.
-다만, 동의 거부 시 한국저작권위원회의 <저작권 체험교실 운영> 신청이 불가능 할 수도 있습니다.
-			   
-
-
-
- - -
-
-
-
-
-
-

저작권 체험교실 운영 결과보고서 이용 허락

-
-
-
-
-한국저작권위원회에서는 저작권 체험교실 운영 결과보고서를 복제(ebook 제작 등 디지털화를 포함) 및 배포, 전송, 2차적 저작물 작성, 그 밖의 사업 목적상 필요한 범위 내에서 이용할 수 있습니다.
-			
-
-
-
- - - -
-
-
-
-
-
-
-
- - - - - - - - - - - -
-
- - -
-
-
-
- - - - - - diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnDocumentDashboard.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnDocumentDashboard.jsp index c10b627f..e74f443a 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnDocumentDashboard.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnDocumentDashboard.jsp @@ -28,6 +28,7 @@ margin-bottom: 0; } + + function fncSave(aprvlCd){ + if (!validCheck()) return; + url = '${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnClsrmAplctMdfyAjax.do'; + if(confirm("계획서를 제출하시겠습니까?")){ + $("#aprvlCd").val('50'); + $('input[name="scholDivCd"]').val(""); /* 차시 최소시간 체크를 제외하기 위한 임시 scholDivCd를 update 처리에서 제외하기 위함 */ + + if($('input[name=oprtnStrtDt]').val() != null){ + $('input[name=oprtnStrtDt]').val($('input[name=oprtnStrtDt]').val().replace(/[.]/gi, '')); + } + if($('input[name=oprtnEndDt]').val() != null){ + $('input[name=oprtnEndDt]').val($('input[name=oprtnEndDt]').val().replace(/[.]/gi, '')); + } + + + var data = new FormData(document.getElementById("createForm")); + + $.ajax({ + type: "POST", + enctype: 'multipart/form-data', + url: url, + data: data, + dataType:'json', + async: false, + processData: false, + contentType: false, + cache: false, + success: function (returnData, status) { + $("#eduAplctOrd").val(returnData.VO.eduAplctOrd); + if(status == 'success'){ + alert("제출 되었습니다."); + location.reload(); + } else if(status== 'fail'){ + alert("등록에 실패하였습니다."); + } + }, + error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); } + }); + } + } + + function validCheck(){ + + if($('#trgtGrade').val() == ''){ + alert('대상학년/반을 입력해주세요.'); + $("#trgtGrade").focus(); + return false; + } + + if($('#trgtPrsnl').val() == ''){ + alert('전체학생 수를 입력해주세요.'); + $("#trgtPrsnl").focus(); + return + false; + } + if($('#needTxtbNum').val() == ''){ + alert('필요 교재 수량을 입력해주세요.'); + $("#needTxtbNum").focus(); + return false; + } + + if($('duet-date-picker[name=oprtnStrtDt]').val() == ''){ + alert('운영시기 시작일을 입력해주세요.'); + $("#oprtnStrtDt").focus(); + return false; + } + + if($('duet-date-picker[name=oprtnEndDt]').val() == ''){ + alert('운영시기 종료일을 입력해주세요.'); + $("#oprtnEndDt").focus(); + return false; + } + + var oprtnStrtDt = $('duet-date-picker[name=oprtnStrtDt]').val(); + var oprtnEndDt = $('duet-date-picker[name=oprtnEndDt]').val(); + + oprtnStrtDt = oprtnStrtDt.replace(/[.]/gi, ''); + oprtnEndDt = oprtnEndDt.replace(/[.]/gi, ''); + + if(oprtnStrtDt > oprtnEndDt){ + alert("시작일이 종료일보다 클 수 없습니다."); + $("#oprtnEndDt").focus(); + return false; + } + + var oprtnStrtDtDate = $('duet-date-picker[name=oprtnStrtDt]').val(); + var yyyy = oprtnStrtDtDate.substr(0,4); + var mm = oprtnStrtDtDate.substr(5,2); + var dd = oprtnStrtDtDate.substr(8,2); + var oprtnStrtDtDate = new Date(yyyy, mm-1, dd); // 교육희망일을 Date 형태로 변경 + + var today = new Date(); + var tyyyy = today.getFullYear(); + var tmm = today.getMonth()+1; + var tdd = today.getDate(); + var todayDate = new Date(tyyyy, tmm-1, tdd) + + //교육희망일이 오늘보다 전인지 체크 + if(oprtnStrtDtDate < todayDate) { + alert('시작일 오늘 이후의 날짜로 입력해주세요.'); + return flag = false; + } + + var trObj = $('.addClassRow').find('tbody > tr').not('.calendar_wrap tr'); + if(trObj.length == 0){ + alert('차시별 운영계획 정보를 등록해주세요.'); + return false; + } + + var flag = true; + + $.each(trObj , function(idx, row){ + if($(this).find('input[name=eduHopeDt]').val() == ''){ + alert('교육희망일 입력해주세요.'); + $('input[name=eduHopeDt]:eq('+idx+')').focus(); + return flag = false; + } + + var eduHopeDt = $(this).find('input[name=eduHopeDt]').val(); + var yyyy = eduHopeDt.substr(0,4); + var mm = eduHopeDt.substr(5,2); + var dd = eduHopeDt.substr(8,2); + var eduHopeDtDate = new Date(yyyy, mm-1, dd); // 교육희망일을 Date 형태로 변경 + console.log(eduHopeDt); + + var today = new Date(); + var tyyyy = today.getFullYear(); + var tmm = today.getMonth()+1; + var tdd = today.getDate(); + var todayDate = new Date(tyyyy, tmm-1, tdd) + + if(eduHopeDtDate < todayDate) { + alert('교육희망일은 오늘 이후의 날짜로 입력해주세요.'); + return flag = false; + } + + if($(this).find('input[name=strtTm]').val() == ''){ + alert('교육시작 시간을 입력해주세요.'); + $('input[name=strtTm]:eq('+idx+')').focus(); + return flag = false; + } + + if($(this).find('input[name=strtTm]').val().indexOf('선택') != -1){ + alert('교육시작 시간을 입력해주세요.'); + $('input[name=strtTm]:eq('+idx+')').focus(); + return flag = false; + } + + + if($(this).find('input[name=endTm]').val() == ''){ + alert('교육종료 시간을 입력해주세요.'); + $('input[name=endTm]:eq('+idx+')').focus(); + return flag = false; + } + + if($(this).find('input[name=endTm]').val().indexOf('선택') != -1){ + alert('교육종료 시간을 입력해주세요.'); + $('input[name=endTm]:eq('+idx+')').focus(); + return flag = false; + } + + if($(this).find('input[name=lrnSbjct]').val() == ''){ + alert('학습주제를 입력해주세요.'); + $('input[name=lrnSbjct]:eq('+idx+')').focus(); + return flag = false; + } + + if($(this).find('input[name=lrnCn]').val() == ''){ + alert('지도내용을 입력해주세요.'); + $('input[name=lrnCn]:eq('+idx+')').focus(); + return flag = false; + } + + }); + if(!flag){ + return false; + } + + return true; + + } + +
" /> @@ -71,15 +387,20 @@ -
+ +
+ +
+ +

거래선 및 서약서 정보

- - +
@@ -91,36 +412,423 @@ - -

거래선 양식

- - -

- ※ 거래선 파일은 개인정보 수집 및 보호를 위해 반드시 메일(entt@copyright.or.kr)로 제출하시기 바랍니다. -

- - - -

서약서 제출

- - - - - - - - - - - - - - - + + +

거래선 양식

+ + +

+ ※ 거래선 파일은 개인정보 수집 및 보호를 위해 반드시 메일(entt@copyright.or.kr)로 제출하시기 바랍니다. +

+ + + +

서약서 제출

+ + + + + + + + + + + + + + + +
+ + +

서약서 제출

+ + + + + + +
+ + + + + +
+
+

운영 계획

+ * 항목은 필수 입력 사항입니다. +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
운영 계획 (th 명)을 입력하는 표
+

필수입력 항목*

+

대상학년/반

+
+ + +
+

필수입력 항목*

+

전체학생 수

+
+ + 명 + +

필수입력 항목*

+

운영시기

+
+ + +
+ +
+ ~ +
+ +
+ + + + +
+

필수입력 항목*

+

필요 교재 수량

+
+ + +
+
+ + +
+
+

차시별 운영계획

+ ※ 운영지원금 지원을 위한 계획서(계획은 웅영에따 따라 변경 가능)
※ 담당교사의 재량으로 자율 편성하되, 1일 최대 2차시까지만 운영 가능
+
+
+ +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

필수입력 항목*

교육희망일

필수입력 항목*

시간

필수입력 항목*

학습주제

필수입력 항목*

지도내용
비고삭제
+
+ +
+
+
+
+ + +
+
+

시간 선택

+
+
+
+ +
+ : +
+ +
+
+ +
+
+
+ + +
+
+

시간 선택

+
+
+
+ +
+ : +
+ +
+
+ +
+
(분) +
+
+ + + + + + + + +
+ +
+
+ + + + +
+
+

운영계획

+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
운영계획 (th 명)을 보여주는 표
+

대상학년/반

+
${info.trgtGrade}
+

대상학생수

+
+ ${info.trgtPrsnl} + +

운영시기

+
+ + + ~ + + +
+

필요 교재 수량

+
+ ${info.needTxtbNum} +
+
+
+
+

차시별 운영계획

+ ※ 운영지원금 지원을 위한 계획서(계획은 웅영에따 따라 변경 가능)
※ 담당교사의 재량으로 자율 편성하되, 1일 최대 2차시까지만 운영 가능
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육희망일시간학습주제지도내용비고
+ + + ${list.eduHopeDt} + + + - + + + + + + ~ + + + (${list.lrnTm}분) + ${list.lrnSbjct}${list.lrnCn}${list.rmrks}
+
+
+
+
@@ -130,8 +838,13 @@
- - + <%-- --%> + + + + + +
diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnPlanDashboard.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnPlanDashboard.jsp index aac3d295..269717b9 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnPlanDashboard.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnPlanDashboard.jsp @@ -48,15 +48,15 @@ -
+

운영계획

- - +
@@ -186,7 +186,6 @@
-
diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRprtDashboard.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRprtDashboard.jsp index fb1f7a13..ef3301e0 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRprtDashboard.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRprtDashboard.jsp @@ -305,7 +305,7 @@ if(fn_innorixCmmAjax(sendData, url) == "OK") { - fncGoList(); + fncStatusChange('60'); } } @@ -365,7 +365,7 @@ } if(fn_innorixCmmAjax(sendData, url) == "OK") { - fncGoList(); + fncStatusChange('60'); } }else{ //업로드 경로 설정 -upload.jsp에서 uploader.setDirectory(innoDirPath) 식으로 사용 @@ -378,6 +378,25 @@ } } + function fncStatusChange(statusVal){ + + $.ajax({ + type:"POST", + url:"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/eduAplctStatusAjax.do", + data: { + "eduAplctOrd" : $("#eduAplctOrd").val() , + "aprvlCd" : statusVal, + }, + dataType:'json', + success:function(returnData){ + location.reload(); + }, + error:function(request , status, error){ + alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error); + } + }); +} + function fncTmprrSave(){ //첨부파일이 변경됐을시만 업로드. 임시저장으로 인하여 비교 필요 @@ -426,15 +445,15 @@ -
+

결과보고

- - +
@@ -616,7 +635,6 @@ -
diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRsltDashboard.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRsltDashboard.jsp index 272de99b..425dc866 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRsltDashboard.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmInfo/exprnRsltDashboard.jsp @@ -6,6 +6,7 @@ <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> <%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> <% pageContext.setAttribute("replaceChar", "\n"); %> @@ -240,14 +241,14 @@
-
+

운영내역 상세

- +
@@ -289,38 +290,10 @@

처리상태

- - - 교육신청 - - - 교육승인 - - - 교육반려 - - - 교육취소 - - - 선정완료 - - - 수정요청 - - - 수정요청완료 - - - 교육확정 - - - 임시저장 - - + - +

반려사유

@@ -430,45 +403,21 @@ - - + <%--

거래선 양식

- - <%-- - - - - - - - - - - - - --%>

※ 거래선 파일은 개인정보 수집 및 보호를 위해 반드시 메일(entt@copyright.or.kr)로 제출하시기 바랍니다.

- + --%>

서약서 제출

- - - - - - - - - - - - + + + @@ -517,16 +466,6 @@ - @@ -536,46 +475,69 @@ ${info.needTxtbNum} - - - -

첨부파일

- - - - - - - - -

차시별 계획서 제출

- - - - - - - - - -
+
+
+

차시별 운영계획

+ ※ 운영지원금 지원을 위한 계획서(계획은 웅영에따 따라 변경 가능)
※ 담당교사의 재량으로 자율 편성하되, 1일 최대 2차시까지만 운영 가능
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육희망일시간학습주제지도내용비고
+ + + ${list.eduHopeDt} + + + - + + + + + + ~ + + + (${list.lrnTm}분) + ${list.lrnSbjct}${list.lrnCn}${list.rmrks}
+
+ <%--
@@ -710,7 +672,7 @@ - +
diff --git a/src/main/webapp/js/ve/veConstants.js b/src/main/webapp/js/ve/veConstants.js index 4aa075cf..e878d51f 100644 --- a/src/main/webapp/js/ve/veConstants.js +++ b/src/main/webapp/js/ve/veConstants.js @@ -65,5 +65,17 @@ var VeConstants = { CLASS_TM_90 : "90", // 교육시간 ADULT_TM_60 : "60", // 성인 시간 + + EXPRN_APRVL_CD_10 : "10", // 운영신청 + EXPRN_APRVL_CD_11 : "11", // 수정요청 + EXPRN_APRVL_CD_12 : "12", // 운영 미확정 + EXPRN_APRVL_CD_13 : "13", // 수정완료 + EXPRN_APRVL_CD_20 : "20", // 운영확정 + EXPRN_APRVL_CD_30 : "30", // 서류제출 요청 + EXPRN_APRVL_CD_40 : "40", // 서류제출 + EXPRN_APRVL_CD_50 : "50", // 운영 진행중 + EXPRN_APRVL_CD_60 : "60", // 결과보고 완료 + EXPRN_APRVL_CD_70 : "70", // 검토중 + EXPRN_APRVL_CD_80 : "80" // 운영종료 } diff --git a/src/main/webapp/visitEdu/usr/publish/css/content.css b/src/main/webapp/visitEdu/usr/publish/css/content.css index f05510da..6e91480c 100644 --- a/src/main/webapp/visitEdu/usr/publish/css/content.css +++ b/src/main/webapp/visitEdu/usr/publish/css/content.css @@ -362,7 +362,7 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa .tb_list02 table .btnType06 {border-radius:5px; padding:5px 10px; font-size:15px;} /*체험교실대시보드 - 5단계(감리용)*/ -.ex_process {display:flex; justify-content:space-between; background:#f5f5f5; border:1px solid #cbcbcb; width:100%; border-radius:10px; margin: 0 0 40px 0; } +/* .ex_process {display:flex; justify-content:space-between; background:#f5f5f5; border:1px solid #cbcbcb; width:100%; border-radius:10px; margin: 0 0 40px 0; } .ex_process li {position:relative; background-position:25 center; background-repeat: no-repeat; width:20%; color:#666; font-size:22px; font-weight:500; letter-spacing:-0.5; } .ex_process li a {width:100%; padding:0; box-sizing: border-box; padding:45px 0 45px 125px ;} .ex_process li.p_1 {background-image: url(../images/content/ex_process1.png); background-position:50px center;} @@ -376,14 +376,14 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa .ex_process li.p_4_on {background-image: url(../images/content/ex_process4_on.png); background-position:50px center; background-color:#f37632; border-radius:10px; color:#fff; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);} .ex_process li.p_5_on {background-image: url(../images/content/ex_process5_on.png); background-position:50px center; background-color:#f37632; border-radius:10px; color:#fff; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.3);} .ex_process li::after {position:absolute; content:""; width:1px; height:60px; background-color: #d5d5d5; right: 0; align-items: center; margin:-85px 0 0 0;} -.ex_process li.p_1_on::after, li.p_2_on::after, li.p_3_on::after, li.p_4_on::after, li.p_5::after, li.p_5_on::after {display:none; } +.ex_process li.p_1_on::after, li.p_2_on::after, li.p_3_on::after, li.p_4_on::after, li.p_5::after, li.p_5_on::after {display:none; } */ -/*체험교실대시보드 7단계 +/* 체험교실대시보드 7단계 */ .ex_process {display:flex; justify-content:space-between;} .ex_process li {border-radius: 10px; width:13.5%; text-align: center; color:#fff; padding:15px 0 18px 0; font-size:22px;} .ex_process li.p {background-color: #a7acb6;} .ex_process li.p_on {background-color:#f37632;} -*/ + /* 첨부파일 */ .tb_type01.attach {margin-bottom: 10px;} @@ -878,7 +878,7 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa .sel_tpye {margin: 100px 120px 24px 120px;} /*체험교실대시보드 5단계 (감리용)*/ - .ex_process {background:#f5f5f5; border:1px solid #cbcbcb; width:100%; border-radius:10px; margin: 0; margin:0 0 30px 0; } + /* .ex_process {background:#f5f5f5; border:1px solid #cbcbcb; width:100%; border-radius:10px; margin: 0; margin:0 0 30px 0; } .ex_process li {position:relative; background-position:25 center; background-repeat: no-repeat; width:20%; color:#666; font-size:17px; letter-spacing: -1px; font-weight:500;} .ex_process li a { padding:20px 0; text-align:center;} .ex_process li.p_1_on {background-image: none;} @@ -892,12 +892,12 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa .ex_process li.p_4 {background-image: none;} .ex_process li.p_5 {background-image: none;} .ex_process li::after {position:absolute; content:""; width:1px; height:30px; background-color: #d5d5d5; right: 0; margin:-45px 0 0 0;} - .ex_process li.p_1_on::after, li.p_2_on::after, li.p_3_on::after, li.p_4_on::after, li.p_5_on::after {display:none; } + .ex_process li.p_1_on::after, li.p_2_on::after, li.p_3_on::after, li.p_4_on::after, li.p_5_on::after {display:none; } */ - /*체험교실대시보드 7단계 + /* 체험교실대시보드 7단계 */ .ex_process li {font-size:18px; padding:8px 3px 10px 3px; border-radius:5px; width:12%; line-height:20px; display: flex; align-items: center; justify-content: center;} - */ + } @media all and (max-width: 860px){