From 1f4d5e93a150642dd12e70346ab07f074eef2868 Mon Sep 17 00:00:00 2001 From: hylee Date: Wed, 15 Nov 2023 12:10:17 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EA=B8=B0=EB=B0=98=EA=B0=95=ED=99=94=20?= =?UTF-8?q?=EB=B2=A0=EC=8A=A4=ED=8A=B8=20=EC=98=81=EC=97=AD=20css=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20-=20height:=20130px;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/visitEdu/usr/publish/css/content.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/visitEdu/usr/publish/css/content.css b/src/main/webapp/visitEdu/usr/publish/css/content.css index 3414b4b6..e9ffc4f7 100644 --- a/src/main/webapp/visitEdu/usr/publish/css/content.css +++ b/src/main/webapp/visitEdu/usr/publish/css/content.css @@ -289,7 +289,7 @@ select.selType1 {height: 40px; border: 1px solid #d5d5d5; border-radius: 5px; pa .tb_tit02.titBtn button {height: 34px; font-size: 14px; padding: 0 12px;} .best_list {display:flex; width:100%; justify-content: space-between; padding:0 0 60px 0;} -.best_list .best_con {position: relative; width:23%; border:1px solid #d5d5d5; border-radius: 20px 0; overflow: hidden;} +.best_list .best_con {position: relative; width:23%; border:1px solid #d5d5d5; border-radius: 20px 0; overflow: hidden; height: 130px;} .best_list .best_con:hover::after {position: absolute; content: ""; width: calc(100% - 4px); height: calc(100% - 4px); border: 2px solid #ed5908; border-radius: 20px 0; left: 0;top: 0;} .best_list .best_con:hover {box-shadow: 0px 0px 10px rgba(237,89,8,0.8);} .best_list .best_con .img {width: 100%; height: 215px; overflow: hidden; background-color: #f2f4f9;} From f2b5c64469e917da06ab596d877d861cd565bfe4 Mon Sep 17 00:00:00 2001 From: hylee Date: Thu, 16 Nov 2023 14:38:50 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=EA=B4=80=EB=A6=AC=EC=9E=90=20=EC=84=B1?= =?UTF-8?q?=EC=9D=B8=ED=99=9C=EB=8F=99=ED=99=95=EC=9D=B8=EC=84=9C=EC=8B=A0?= =?UTF-8?q?=EC=B2=AD=20=EA=B8=B0=EB=8A=A5=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/InnorixFileServiceImpl.java | 1 + .../web/FndtnEnhanceTrnController.java | 23 +- .../web/InstrAdultPrflController.java | 1754 ++++++------- .../instrInfo/web/InstrPrflController.java | 1 + .../service/VEPrcsAplctPrdService.java | 6 + .../prcsInfo/service/VEPrcsDetailVO.java | 22 + .../service/impl/VEPrcsAplctPrdDAO.java | 12 + .../impl/VEPrcsAplctPrdServiceImpl.java | 24 +- .../InstrActvtHstryAdultMngController.java} | 22 +- .../web/CndtnPrcsInfoMngController.java | 7 + .../web/FndthPrcsAplctPrdMngController.java | 2175 +++++++++-------- .../InstrActvtHstryTngrMngController.java | 311 +++ .../spring/com/context-idgen.xml | 19 +- .../VEInstrDetailActvtHstry_SQL_Tibero.xml | 15 +- .../ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml | 42 + .../instrActvtHstryMngDetail.jsp | 241 ++ .../adultVisitEdu/instrActvtHstryMngList.jsp | 225 ++ .../adultVisitEdu/popup/instrCnclPopup.jsp | 108 + .../fndthEduPrcsAplctPrdMngDetail.jsp | 14 +- .../fndthEduPrcsAplctPrdMngMdfy.jsp | 15 +- .../fndthEduPrcsAplctPrdMngReg.jsp | 14 +- .../tngrVisitEdu/instrActvtHstryMngDetail.jsp | 8 + .../tngrVisitEdu/instrActvtHstryMngList.jsp | 4 +- .../aplct/fndtnEnhanceTrn/eduAplctDetail.jsp | 502 ++-- .../ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp | 1095 +++++---- .../instrInfo/instrPrflDetail.jsp | 375 ++- .../instrInfo/instrPrflDetail.jsp | 9 +- 27 files changed, 4223 insertions(+), 2821 deletions(-) rename src/main/java/kcc/ve/oprtn/{tngrVisitEdu/instrActvtHstryMng/InstrActvtHstryMngController.java => adultVisitEdu/instrActvtHstryMng/InstrActvtHstryAdultMngController.java} (91%) create mode 100644 src/main/java/kcc/ve/oprtn/tngrVisitEdu/instrActvtHstryMng/InstrActvtHstryTngrMngController.java create mode 100644 src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/instrActvtHstryMngDetail.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/instrActvtHstryMngList.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/popup/instrCnclPopup.jsp 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 18b73f3f..97d78cc6 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 @@ -536,6 +536,7 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I VEInstrDetailActvtHstryVO vEInstrActvtHstryVO = new VEInstrDetailActvtHstryVO(); vEInstrActvtHstryVO.setInstrDetailActvtHstryOrd(instrActvtHstryOrdGnrService.getNextStringId()); vEInstrActvtHstryVO.setInstrDetailOrd(adrInnorixFileVO.getInstrDetailOrd()); + vEInstrActvtHstryVO.setUserId(adrInnorixFileVO.getUniqId()); // vEInstrActvtHstryVO.setaplctPnttm(); vEInstrActvtHstryVO.setStateCd("10"); // 상태코드 vEInstrActvtHstryVO.setAplctAtchFileId(atchFileId); diff --git a/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java b/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java index 98483d78..03f04d77 100644 --- a/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java +++ b/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java @@ -4,6 +4,7 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -295,6 +296,26 @@ public class FndtnEnhanceTrnController { //대상 리스트, 페이징 정보 전달 model.addAttribute("list", vEPrcsDetailVOList); + { + // 이달의 과정 LIST + // 날짜 형식 설정 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd"); + + // 현재 날짜 (년과 월만 중요) + LocalDate now = LocalDate.now(); + + // 현재 달에 해당하는 항목을 필터링 + List courseOfTheMonthList = vEPrcsDetailVOList.stream() + .filter(vo -> vo.getEduStrtPnttm() != null && vo.getEduDdlnPnttm() != null) + .filter(vo -> { + LocalDate strtPnttm = LocalDate.parse(vo.getEduStrtPnttm(), formatter); + LocalDate ddlnPnttm = LocalDate.parse(vo.getEduDdlnPnttm(), formatter); + return (strtPnttm.getMonth() == now.getMonth() || ddlnPnttm.getMonth() == now.getMonth()); + }) + .collect(Collectors.toList()); + model.addAttribute("courseOfTheMonthList", courseOfTheMonthList); + System.out.println("courseOfTheMonthList :: "+ courseOfTheMonthList.size()); + } //3.pageing step3 paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); @@ -414,7 +435,7 @@ public class FndtnEnhanceTrnController { if(vEEduAplctVO != null && StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd())) { vEPrcsDetailVODetail.setAprvlCd(vEEduAplctVO.getAprvlCd()); } - + model.addAttribute("info", vEPrcsDetailVODetail); diff --git a/src/main/java/kcc/ve/instr/adultVisitEdu/instrInfo/web/InstrAdultPrflController.java b/src/main/java/kcc/ve/instr/adultVisitEdu/instrInfo/web/InstrAdultPrflController.java index 9a5aeeb2..343e10d8 100644 --- a/src/main/java/kcc/ve/instr/adultVisitEdu/instrInfo/web/InstrAdultPrflController.java +++ b/src/main/java/kcc/ve/instr/adultVisitEdu/instrInfo/web/InstrAdultPrflController.java @@ -1,871 +1,883 @@ -package kcc.ve.instr.adultVisitEdu.instrInfo.web; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; -import kcc.com.cmm.EgovMessageSource; -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.utl.user.service.CheckAdrProcessUtil; -import kcc.com.utl.user.service.CheckFileUtil; -import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.kccadr.accdnt.acd.service.AdjstChangeDateService; -import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService; -import kcc.kccadr.sch.service.SchduleManageService; -import kcc.kccadr.sch.service.SchduleManageVO; -import kcc.let.uat.uia.service.SsoLoginVO; -import kcc.let.utl.fcc.service.EgovCryptoUtil; -import kcc.let.utl.fcc.service.EgovCryptoUtil4VO; -import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService; -import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.web.InstrPrflController; -import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; -import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrMIXService; - -/** - * InstrAdultPrflController.java - * 성인대상 찾아가는 저작권 교육 / 강사정보 / 강사프로필 - * 강사프로필 controller 클래스를 정의한다. - * @author 이지우 - * @since 2021.12.07 - * @version 1.0 - * @see - * - *
- * << 개정이력(Modification Information) >>
- *
- *   수정일      수정자           수정내용
- *  -------    --------    ---------------------------
- *   2021.12.07  이지우          최초 생성
- *
- * 
- */ - -@Controller - -public class InstrAdultPrflController { - - private static final Logger LOGGER = LoggerFactory.getLogger(InstrPrflController.class); - - // eGov 공통 메세지 - @Resource(name = "egovMessageSource") - EgovMessageSource egovMessageSource; - - //로그인 체크 util - @Resource(name = "checkLoginUtil") - private CheckLoginUtil checkLoginUtil; - - //파일 체크 util - @Resource(name = "checkFileUtil") - private CheckFileUtil checkFileUtil; - - //암복호화 유틸 - @Resource(name = "egovCryptoUtil") - EgovCryptoUtil egovCryptoUtil; - - //파일정보의 관리 - @Resource(name = "EgovFileMngService") - private EgovFileMngService fileService; - - //파일 처리 egov - @Resource(name="EgovFileMngUtil") - private EgovFileMngUtil egovFileMngUtil; - - //파일 처리 egov - @Resource(name = "EgovFileMngService") - private EgovFileMngService fileMngService; - - - @Resource(name="adjstChangeDateService") - private AdjstChangeDateService adjstChangeDateService; - - @Resource(name="KccadrMgrUdtService") - private KccadrMgrUdtService kccadrMgrUdtService; - - // 교육신청 서비스단 - @Resource(name = "checkAdrProcessUtil") - private CheckAdrProcessUtil checkAdrProcessUtil; - - //강사 정보 - @Resource(name="vEInstrService") - private VEInstrService vEInstrService; - - //강사상세 정보 - @Resource(name="vEInstrDetailService") - private VEInstrDetailService vEInstrDetailService; - - //VO 암/복호화 - @Resource(name="egovCryptoUtil4VO") - private EgovCryptoUtil4VO egovCryptoUtil4VO; - - //강사 정보 MIX - @Resource(name="vEInstrMixService") - private VEInstrMixService vEInstrMixService; - - //배정 MIX 정보 - @Resource(name="vEAsgnmMIXService") - private VEAsgnmMIXService vEAsgnmMIXService; - - //강의설정 MIX - @Resource(name = "vELctrMIXService") - private VELctrMIXService vELctrMIXService; - - //일정 정보 가져오기 - @Resource(name = "schduleManageService") - private SchduleManageService schduleManageService; - - /** - * 0.성인 강사 대시보드 화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do") - public String instrDashboard( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - //성인 강사 상세정보 조회 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setInstrDiv("20"); - vEInstrDetailVO.setUseYn("Y"); - VEInstrDetailVO instrInfo = vEInstrDetailService.selectDetail(vEInstrDetailVO); - - //강사 정보가 없어도 화면은 이동하고 화면에서 alert과 함께 튕겨내기로 수정 - 0225 - /*if (instrInfo == null) { - return checkLoginUtil.getUserMainPage(model); //강사 정보가 없으면 메인 페이지로 이동한다. - }*/ - - if(instrInfo != null) { - instrInfo = egovCryptoUtil.decryptVEInstrDetailVO(instrInfo); - } - model.addAttribute("instrInfo", instrInfo); - - //최근 교육 확정 현황 - 5개 - vEInstrAsgnmVO.setUserId(loginVO.getUniqId()); - vEInstrAsgnmVO.setInstrDiv("20"); - vEInstrAsgnmVO.setAsgnmAprvlCd("30"); - vEInstrAsgnmVO.setRecordCountPerPage(5); - vEInstrAsgnmVO.setFirstIndex(0); - List instrAsgnmList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO); - model.addAttribute("instrAsgnmList", instrAsgnmList); - - //최근 강의요청 현황 - 5개 - List instrAsgnmRqstList = vEAsgnmMIXService.selectAsgnmRqstPagingList(vEInstrAsgnmVO); - model.addAttribute("instrAsgnmRqstList", instrAsgnmRqstList); - - //교육완료 현황 - 현재 확정현황. 완료 기준 잡아서 수정 필요 - List instrAsgnmEndList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO); - model.addAttribute("instrAsgnmEndList", instrAsgnmEndList); - - //패널티 현황 - List vEInstrPnltyList = vEInstrMixService.selectPnltyList(vEInstrDetailVO); - model.addAttribute("vEInstrPnltyList", vEInstrPnltyList); - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard"; - } - - /** - * 1.성인대상 강사 등록화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do") - public String instrPrflReg( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - System.out.println("vEInstrDetailVO.getInstrDiv()"); - System.out.println(vEInstrDetailVO.getInstrDiv()); - System.out.println(vEInstrDetailVO.getUserId()); - System.out.println(vEInstrDetailVO.getInstrDetailOrd()); - - //강사 기등록여부 확인 - - VEInstrDetailVO t_vEInstrUploadInfoVO = new VEInstrDetailVO(); - t_vEInstrUploadInfoVO.setUserId(loginVO.getUniqId()); - t_vEInstrUploadInfoVO = vEInstrService.selectDetail(t_vEInstrUploadInfoVO); - - if(t_vEInstrUploadInfoVO!=null){ - if("Y".equals(t_vEInstrUploadInfoVO.getAdultInstrYn())){ - redirectAttributes.addFlashAttribute("message", "이미 강사정보를 등록하셨습니다. 관리자에게 문의해주세요."); - //return "redirect:/web/main/mainPage.do"; - return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; - } - } - - VEInstrDetailVO vEInstrUploadInfoVO = null; - if ( - vEInstrDetailVO.getInstrDiv() != null - && vEInstrDetailVO.getUserId() != null - && vEInstrDetailVO.getInstrDetailOrd() != null - ) { - vEInstrUploadInfoVO = vEInstrMixService.selectUploadInfoDetailWithData(vEInstrDetailVO); - }else { - - //SsoLoginVO 객체 값 변경으로 인한 세션 정보가 변경되는 문제 수정_220211 - SsoLoginVO tmpSsoLoginVO = new SsoLoginVO(); - ObjectMapper test = new ObjectMapper(); - Map map1 = new HashMap(); - - map1 = test.convertValue(ssoLoginVO, Map.class); - - ObjectMapper test1 = new ObjectMapper(); - - tmpSsoLoginVO = test1.convertValue(map1, SsoLoginVO.class); - - /*SSO 정보 암호화 후 DB에 엑셀 업로드 한 정보 조회*/ - tmpSsoLoginVO = egovCryptoUtil.encryptSsoLoginVO(tmpSsoLoginVO); - vEInstrDetailVO.setInstrNm(tmpSsoLoginVO.getMembName()); - vEInstrDetailVO.setPhone(tmpSsoLoginVO.getMembCelnum()); - vEInstrUploadInfoVO = vEInstrMixService.selectUploadInfoDetail(vEInstrDetailVO); - tmpSsoLoginVO = egovCryptoUtil.decryptSsoLoginVO(tmpSsoLoginVO); - } - - //사전에 엑셀 업로드된 강사 정보가 없을 시 - if(vEInstrUploadInfoVO == null) { - redirectAttributes.addFlashAttribute("message", "등록된 강사정보가 없습니다. 관리자에게 문의해주세요."); - //return "redirect:/web/main/mainPage.do"; - return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; - //}else if(StringUtil.isNotEmpty(vEInstrUploadInfoVO.getSbmtYn())){ - }else if("Y".equals(vEInstrUploadInfoVO.getSbmtYn())){ - redirectAttributes.addFlashAttribute("message", "이미 강사정보를 등록하셨습니다. 관리자에게 문의해주세요."); - //return "redirect:/web/main/mainPage.do"; - return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; - - } - - vEInstrUploadInfoVO = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrUploadInfoVO); - model.addAttribute("info", vEInstrUploadInfoVO); - /* - //SSO 로그인 정보 가져오기 - vEInstrDetailVO.setInstrNm(ssoLoginVO.getMembName()); - vEInstrDetailVO.setPhone(ssoLoginVO.getMembCelnum()); - vEInstrDetailVO.setEmail(ssoLoginVO.getMembEmail()); - vEInstrDetailVO.setdBirth(ssoLoginVO.getMembBirth()); - - model.addAttribute("info", vEInstrDetailVO); - */ - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg"; - } - - - /** - * 1.성인대상 강사 수정화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegMdfy.do") - public String instrPrflRegMdfy( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); - info = egovCryptoUtil.decryptVEInstrDetailVO(info);/*이름, 번호 복호화*/ - model.addAttribute("info", info); - - try { - FileVO fileVO = new FileVO(); - String atchFileId = info.getPhtAtchFileId(); - fileVO.setAtchFileId(atchFileId); - List fileList = fileService.selectFileInfs(fileVO); - model.addAttribute("fileList", fileList); - }catch(Exception ex) { - ex.printStackTrace(); - } - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegMdfy"; - } - - /** - * 청소년대상 강사 확인 요청 - 기존 DB 데이터에서 useYn과 userId 업데이트 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflCnfrmAjax.do") - public ModelAndView instrPrflCnfrmAjax( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , final MultipartHttpServletRequest multiRequest - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - modelAndView.addObject("result", "fail"); - return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - - String atchFileId = ""; - final Map files = multiRequest.getFileMap(); - - if (!files.isEmpty()) { - //XXX_로 첨부파일 네이밍 - List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); - atchFileId = fileMngService.insertFileInfs(result); - //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 - vEInstrDetailVO.setPhtAtchFileId(atchFileId); - } - - //세션 ID 가져오기 - vEInstrDetailVO.setRqstId(loginVO.getUniqId()); - vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); - - //제출, 승인요청 일시 - if("Y".equals(vEInstrDetailVO.getSbmtYn())) { - SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); - Date time = new Date(); - String now = format1.format(time); - vEInstrDetailVO.setSbmtPnttm(now); - } - - vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); -// ssoLoginVO = egovCryptoUtil.encryptSsoLoginVO(ssoLoginVO); - vEInstrDetailService.update(vEInstrDetailVO); - vEInstrService.update(vEInstrDetailVO); - modelAndView.addObject("result", "success"); - - return modelAndView; - } - - /** - * 청소년대상 강사 확인 요청 후 완료 화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegRgstr.do") - public String instrPrflRegRgstr( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegRgstr"; - } - - /** - * 1.성인대상 강사 등록Ajax - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegAjax.do") - public ModelAndView instrPrflRegAjax( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , final MultipartHttpServletRequest multiRequest - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - modelAndView.addObject("result", "fail"); - return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - - String atchFileId = ""; - final Map files = multiRequest.getFileMap(); - - if (!files.isEmpty()) { - //XXX_로 첨부파일 네이밍 - List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); - atchFileId = fileMngService.insertFileInfs(result); - //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 - vEInstrDetailVO.setPhtAtchFileId(atchFileId); - } - - //세션 ID 가져오기 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); - - //제출, 승인요청 일시 - SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); - Date time = new Date(); - String now = format1.format(time); - if("Y".equals(vEInstrDetailVO.getSbmtYn())) { - vEInstrDetailVO.setSbmtPnttm(now); - } - //사용자가 승인코드10번(등록,수정요청)시 승인일시를 수정하는게 맞는지. 사용자 - 제출일시, 관리자 - 승인일시가 아닌지 - /*if(StringUtil.isNotEmpty(vEInstrDetailVO.getAprvlCd())) { - vEInstrDetailVO.setAprvlPnttm(now); - }*/ - - - VEInstrDetailVO vEInstrVO = new VEInstrDetailVO(); - vEInstrVO = vEInstrService.selectDetail(vEInstrDetailVO); - //최초 신청시에만 강사 테이블에 insert, 수정 요청시는 강사 디테일만 insert - - //암호화 - vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); - - if(vEInstrVO == null) { - vEInstrDetailVO.setUseYn("Y"); //수정 요청시는 승인전 기존 디테일 정보 사용 - vEInstrService.insert(vEInstrDetailVO); - } - vEInstrDetailService.insert(vEInstrDetailVO); - modelAndView.addObject("result", "success"); - - return modelAndView; - } - - /** - * 1.성인대상 강사 상세화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.do") - public String instrPrflDetail( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setInstrDiv("20"); - vEInstrDetailVO.setUseYn("Y"); - VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); - info = egovCryptoUtil.decryptVEInstrDetailVO(info); - - model.addAttribute("info", info); - - - //성인대상 강사 신청내역 조회 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회 - List vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrAplctList", vEInstrAplctList); - - - //성인대상 강사 수정신청 내역 조회 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회 - List vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrMdfyList", vEInstrMdfyList); - - - //현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'"); - List vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList); - - VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); - lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); - lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); - - - //강의설정 요청 리스트 불러오기 - List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); - model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); - - - //강의설정테이블 - lctrDetailVO.setUseYn("Y"); - VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); - model.addAttribute("lctrStngInfo", lctrStngInfo); - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail"; - } - - /** - * 1.성인대상 강사 수정화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfy.do") - public String instrPrflMdfy( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setInstrDiv("20"); - vEInstrDetailVO.setUseYn("Y"); - VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); - info = egovCryptoUtil.decryptVEInstrDetailVO(info);/*이름, 번호 복호화*/ - model.addAttribute("info", info); - - FileVO fileVO = new FileVO(); - String atchFileId = info.getPhtAtchFileId(); - fileVO.setAtchFileId(atchFileId); - List fileList = fileService.selectFileInfs(fileVO); - model.addAttribute("fileList", fileList); - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfy"; - } - - /** - * 1.성인대상 강사 수정Ajax - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfyAjax.do") - public ModelAndView instrPrflMdfyAjax( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , final MultipartHttpServletRequest multiRequest - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - modelAndView.addObject("result", "fail"); - return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - - String atchFileId = ""; - final Map files = multiRequest.getFileMap(); - - if (!files.isEmpty()) { - //XXX_로 첨부파일 네이밍 - List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); - atchFileId = fileMngService.insertFileInfs(result); - } - //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 - vEInstrDetailVO.setPhtAtchFileId(atchFileId); - - //세션 ID 가져오기 - vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); - - //제출, 승인요청 일시 - SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); - Date time = new Date(); - String now = format1.format(time); - if("Y".equals(vEInstrDetailVO.getSbmtYn())) { - vEInstrDetailVO.setSbmtPnttm(now); - } - //사용자가 승인코드10번(등록,수정요청)시 승인일시를 수정하는게 맞는지. 사용자 - 제출일시, 관리자 - 승인일시가 아닌지 - /*if(StringUtil.isNotEmpty(vEInstrDetailVO.getAprvlCd())) { - vEInstrDetailVO.setAprvlPnttm(now); - }*/ - - vEInstrService.update(vEInstrDetailVO); - //등록 요청, 재요청일 시 반려사유 삭제 - if("10".equals(vEInstrDetailVO.getAprvlCd())) { - vEInstrDetailVO.setAprvlCn(""); - } - - //암호화 - vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO);/*이름, 번호 복호화*/ - vEInstrDetailService.update(vEInstrDetailVO); - modelAndView.addObject("result", "success"); - - return modelAndView; - } - - /** - * 1.성인대상 강사 첨부파일 ID 수정Ajax - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflFileMdfyAjax.do") - public ModelAndView instrPrflFileMdfyAjax( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); - - if (loginVO == null || ssoLoginVO == null) { - modelAndView.addObject("result", "fail"); - return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - //암호화 - vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); - - vEInstrDetailService.update(vEInstrDetailVO); - modelAndView.addObject("result", "success"); - - return modelAndView; - } - - /** - * 1.성인대상 강사 상세화면 - 달력일정 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl.do") - public String instrPrflSchdl( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setInstrDiv("20"); - vEInstrDetailVO.setUseYn("Y"); - VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); - info = egovCryptoUtil.decryptVEInstrDetailVO(info); - - model.addAttribute("info", info); - - - //성인대상 강사 신청내역 조회 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회 - List vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrAplctList", vEInstrAplctList); - - - //성인대상 강사 수정신청 내역 조회 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회 - List vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrMdfyList", vEInstrMdfyList); - - - //현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'"); - List vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList); - - VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); - lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); - lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); - - - //강의설정 요청 리스트 불러오기 - List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); - model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); - - - //강의설정테이블 - lctrDetailVO.setUseYn("Y"); - VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); - model.addAttribute("lctrStngInfo", lctrStngInfo); - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl"; - } - - @RequestMapping(value = "/web/ve/instr/adultVisitEdu/instrInfo/adultSchduleManagerAjaxLoadData.do") - @ResponseBody - public List adultSchduleManagerAjaxLoadData( - @ModelAttribute("schduleManageVO") SchduleManageVO schduleManageVO - , ModelMap model - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - schduleManageVO.setUserId(loginVO.getUniqId()); - - - schduleManageVO.setAprvlCd("60"); - schduleManageVO.setLctrDivCd("20"); - - - schduleManageVO.setSearchStartDt(schduleManageVO.getSearchStartDt().split("T")[0].replaceAll("-", "")); - - return schduleManageService.selectSchManageStatusInstrList(schduleManageVO); - } - - //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 - private PaginationInfo setPagingStep1( - VEInstrDetailVO p_vEInstrDetailVO - )throws Exception{ - // pageing step1 - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(p_vEInstrDetailVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(p_vEInstrDetailVO.getPageUnit()); - paginationInfo.setPageSize(p_vEInstrDetailVO.getPageSize()); - - return paginationInfo; - } - - - //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 - private VEInstrDetailVO setPagingStep2( - VEInstrDetailVO p_vEInstrDetailVO - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step2 - p_vEInstrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); - p_vEInstrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); - p_vEInstrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); - - if("".equals(p_vEInstrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - p_vEInstrDetailVO.setSearchSortCnd("sbmt_pnttm"); - p_vEInstrDetailVO.setSearchSortOrd("desc"); - } - - return p_vEInstrDetailVO; - } - - - //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 - private PaginationInfo setPagingStep3( - List p_vEInstrDetailVOList - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step3 - int totCnt = 0; - if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt(); - p_paginationInfo.setTotalRecordCount(totCnt); - - return p_paginationInfo; - } - -} +package kcc.ve.instr.adultVisitEdu.instrInfo.web; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import kcc.com.cmm.EgovMessageSource; +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.utl.user.service.CheckAdrProcessUtil; +import kcc.com.utl.user.service.CheckFileUtil; +import kcc.com.utl.user.service.CheckLoginUtil; +import kcc.kccadr.accdnt.acd.service.AdjstChangeDateService; +import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService; +import kcc.kccadr.sch.service.SchduleManageService; +import kcc.kccadr.sch.service.SchduleManageVO; +import kcc.let.uat.uia.service.SsoLoginVO; +import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.let.utl.fcc.service.EgovCryptoUtil4VO; +import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService; +import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.web.InstrPrflController; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrMIXService; + +/** + * InstrAdultPrflController.java + * 성인대상 찾아가는 저작권 교육 / 강사정보 / 강사프로필 + * 강사프로필 controller 클래스를 정의한다. + * @author 이지우 + * @since 2021.12.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2021.12.07  이지우          최초 생성
+ *
+ * 
+ */ + +@Controller + +public class InstrAdultPrflController { + + private static final Logger LOGGER = LoggerFactory.getLogger(InstrPrflController.class); + + // eGov 공통 메세지 + @Resource(name = "egovMessageSource") + EgovMessageSource egovMessageSource; + + //로그인 체크 util + @Resource(name = "checkLoginUtil") + private CheckLoginUtil checkLoginUtil; + + //파일 체크 util + @Resource(name = "checkFileUtil") + private CheckFileUtil checkFileUtil; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + //파일정보의 관리 + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + //파일 처리 egov + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil egovFileMngUtil; + + //파일 처리 egov + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + + @Resource(name="adjstChangeDateService") + private AdjstChangeDateService adjstChangeDateService; + + @Resource(name="KccadrMgrUdtService") + private KccadrMgrUdtService kccadrMgrUdtService; + + // 교육신청 서비스단 + @Resource(name = "checkAdrProcessUtil") + private CheckAdrProcessUtil checkAdrProcessUtil; + + //강사 정보 + @Resource(name="vEInstrService") + private VEInstrService vEInstrService; + + //강사상세 정보 + @Resource(name="vEInstrDetailService") + private VEInstrDetailService vEInstrDetailService; + + //VO 암/복호화 + @Resource(name="egovCryptoUtil4VO") + private EgovCryptoUtil4VO egovCryptoUtil4VO; + + //강사 정보 MIX + @Resource(name="vEInstrMixService") + private VEInstrMixService vEInstrMixService; + + //배정 MIX 정보 + @Resource(name="vEAsgnmMIXService") + private VEAsgnmMIXService vEAsgnmMIXService; + + //강의설정 MIX + @Resource(name = "vELctrMIXService") + private VELctrMIXService vELctrMIXService; + + //일정 정보 가져오기 + @Resource(name = "schduleManageService") + private SchduleManageService schduleManageService; + + @Resource(name = "vEInstrDetailActvtHstryService") + private VEInstrDetailActvtHstryService vEInstrDetailActvtHstryService; + /** + * 0.성인 강사 대시보드 화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do") + public String instrDashboard( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + //성인 강사 상세정보 조회 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setUseYn("Y"); + VEInstrDetailVO instrInfo = vEInstrDetailService.selectDetail(vEInstrDetailVO); + + //강사 정보가 없어도 화면은 이동하고 화면에서 alert과 함께 튕겨내기로 수정 - 0225 + /*if (instrInfo == null) { + return checkLoginUtil.getUserMainPage(model); //강사 정보가 없으면 메인 페이지로 이동한다. + }*/ + + if(instrInfo != null) { + instrInfo = egovCryptoUtil.decryptVEInstrDetailVO(instrInfo); + } + model.addAttribute("instrInfo", instrInfo); + + //최근 교육 확정 현황 - 5개 + vEInstrAsgnmVO.setUserId(loginVO.getUniqId()); + vEInstrAsgnmVO.setInstrDiv("20"); + vEInstrAsgnmVO.setAsgnmAprvlCd("30"); + vEInstrAsgnmVO.setRecordCountPerPage(5); + vEInstrAsgnmVO.setFirstIndex(0); + List instrAsgnmList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO); + model.addAttribute("instrAsgnmList", instrAsgnmList); + + //최근 강의요청 현황 - 5개 + List instrAsgnmRqstList = vEAsgnmMIXService.selectAsgnmRqstPagingList(vEInstrAsgnmVO); + model.addAttribute("instrAsgnmRqstList", instrAsgnmRqstList); + + //교육완료 현황 - 현재 확정현황. 완료 기준 잡아서 수정 필요 + List instrAsgnmEndList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO); + model.addAttribute("instrAsgnmEndList", instrAsgnmEndList); + + //패널티 현황 + List vEInstrPnltyList = vEInstrMixService.selectPnltyList(vEInstrDetailVO); + model.addAttribute("vEInstrPnltyList", vEInstrPnltyList); + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard"; + } + + /** + * 1.성인대상 강사 등록화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do") + public String instrPrflReg( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + System.out.println("vEInstrDetailVO.getInstrDiv()"); + System.out.println(vEInstrDetailVO.getInstrDiv()); + System.out.println(vEInstrDetailVO.getUserId()); + System.out.println(vEInstrDetailVO.getInstrDetailOrd()); + + //강사 기등록여부 확인 + + VEInstrDetailVO t_vEInstrUploadInfoVO = new VEInstrDetailVO(); + t_vEInstrUploadInfoVO.setUserId(loginVO.getUniqId()); + t_vEInstrUploadInfoVO = vEInstrService.selectDetail(t_vEInstrUploadInfoVO); + + if(t_vEInstrUploadInfoVO!=null){ + if("Y".equals(t_vEInstrUploadInfoVO.getAdultInstrYn())){ + redirectAttributes.addFlashAttribute("message", "이미 강사정보를 등록하셨습니다. 관리자에게 문의해주세요."); + //return "redirect:/web/main/mainPage.do"; + return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; + } + } + + VEInstrDetailVO vEInstrUploadInfoVO = null; + if ( + vEInstrDetailVO.getInstrDiv() != null + && vEInstrDetailVO.getUserId() != null + && vEInstrDetailVO.getInstrDetailOrd() != null + ) { + vEInstrUploadInfoVO = vEInstrMixService.selectUploadInfoDetailWithData(vEInstrDetailVO); + }else { + + //SsoLoginVO 객체 값 변경으로 인한 세션 정보가 변경되는 문제 수정_220211 + SsoLoginVO tmpSsoLoginVO = new SsoLoginVO(); + ObjectMapper test = new ObjectMapper(); + Map map1 = new HashMap(); + + map1 = test.convertValue(ssoLoginVO, Map.class); + + ObjectMapper test1 = new ObjectMapper(); + + tmpSsoLoginVO = test1.convertValue(map1, SsoLoginVO.class); + + /*SSO 정보 암호화 후 DB에 엑셀 업로드 한 정보 조회*/ + tmpSsoLoginVO = egovCryptoUtil.encryptSsoLoginVO(tmpSsoLoginVO); + vEInstrDetailVO.setInstrNm(tmpSsoLoginVO.getMembName()); + vEInstrDetailVO.setPhone(tmpSsoLoginVO.getMembCelnum()); + vEInstrUploadInfoVO = vEInstrMixService.selectUploadInfoDetail(vEInstrDetailVO); + tmpSsoLoginVO = egovCryptoUtil.decryptSsoLoginVO(tmpSsoLoginVO); + } + + //사전에 엑셀 업로드된 강사 정보가 없을 시 + if(vEInstrUploadInfoVO == null) { + redirectAttributes.addFlashAttribute("message", "등록된 강사정보가 없습니다. 관리자에게 문의해주세요."); + //return "redirect:/web/main/mainPage.do"; + return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; + //}else if(StringUtil.isNotEmpty(vEInstrUploadInfoVO.getSbmtYn())){ + }else if("Y".equals(vEInstrUploadInfoVO.getSbmtYn())){ + redirectAttributes.addFlashAttribute("message", "이미 강사정보를 등록하셨습니다. 관리자에게 문의해주세요."); + //return "redirect:/web/main/mainPage.do"; + return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; + + } + + vEInstrUploadInfoVO = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrUploadInfoVO); + model.addAttribute("info", vEInstrUploadInfoVO); + /* + //SSO 로그인 정보 가져오기 + vEInstrDetailVO.setInstrNm(ssoLoginVO.getMembName()); + vEInstrDetailVO.setPhone(ssoLoginVO.getMembCelnum()); + vEInstrDetailVO.setEmail(ssoLoginVO.getMembEmail()); + vEInstrDetailVO.setdBirth(ssoLoginVO.getMembBirth()); + + model.addAttribute("info", vEInstrDetailVO); + */ + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg"; + } + + + /** + * 1.성인대상 강사 수정화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegMdfy.do") + public String instrPrflRegMdfy( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); + info = egovCryptoUtil.decryptVEInstrDetailVO(info);/*이름, 번호 복호화*/ + model.addAttribute("info", info); + + try { + FileVO fileVO = new FileVO(); + String atchFileId = info.getPhtAtchFileId(); + fileVO.setAtchFileId(atchFileId); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + }catch(Exception ex) { + ex.printStackTrace(); + } + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegMdfy"; + } + + /** + * 청소년대상 강사 확인 요청 - 기존 DB 데이터에서 useYn과 userId 업데이트 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflCnfrmAjax.do") + public ModelAndView instrPrflCnfrmAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + modelAndView.addObject("result", "fail"); + return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + + + String atchFileId = ""; + final Map files = multiRequest.getFileMap(); + + if (!files.isEmpty()) { + //XXX_로 첨부파일 네이밍 + List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); + atchFileId = fileMngService.insertFileInfs(result); + //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 + vEInstrDetailVO.setPhtAtchFileId(atchFileId); + } + + //세션 ID 가져오기 + vEInstrDetailVO.setRqstId(loginVO.getUniqId()); + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + if("Y".equals(vEInstrDetailVO.getSbmtYn())) { + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + vEInstrDetailVO.setSbmtPnttm(now); + } + + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); +// ssoLoginVO = egovCryptoUtil.encryptSsoLoginVO(ssoLoginVO); + vEInstrDetailService.update(vEInstrDetailVO); + vEInstrService.update(vEInstrDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 청소년대상 강사 확인 요청 후 완료 화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegRgstr.do") + public String instrPrflRegRgstr( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegRgstr"; + } + + /** + * 1.성인대상 강사 등록Ajax + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegAjax.do") + public ModelAndView instrPrflRegAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + modelAndView.addObject("result", "fail"); + return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + + + String atchFileId = ""; + final Map files = multiRequest.getFileMap(); + + if (!files.isEmpty()) { + //XXX_로 첨부파일 네이밍 + List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); + atchFileId = fileMngService.insertFileInfs(result); + //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 + vEInstrDetailVO.setPhtAtchFileId(atchFileId); + } + + //세션 ID 가져오기 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + if("Y".equals(vEInstrDetailVO.getSbmtYn())) { + vEInstrDetailVO.setSbmtPnttm(now); + } + //사용자가 승인코드10번(등록,수정요청)시 승인일시를 수정하는게 맞는지. 사용자 - 제출일시, 관리자 - 승인일시가 아닌지 + /*if(StringUtil.isNotEmpty(vEInstrDetailVO.getAprvlCd())) { + vEInstrDetailVO.setAprvlPnttm(now); + }*/ + + + VEInstrDetailVO vEInstrVO = new VEInstrDetailVO(); + vEInstrVO = vEInstrService.selectDetail(vEInstrDetailVO); + //최초 신청시에만 강사 테이블에 insert, 수정 요청시는 강사 디테일만 insert + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + + if(vEInstrVO == null) { + vEInstrDetailVO.setUseYn("Y"); //수정 요청시는 승인전 기존 디테일 정보 사용 + vEInstrService.insert(vEInstrDetailVO); + } + vEInstrDetailService.insert(vEInstrDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 1.성인대상 강사 상세화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.do") + public String instrPrflDetail( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setUseYn("Y"); + VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); + info = egovCryptoUtil.decryptVEInstrDetailVO(info); + + model.addAttribute("info", info); + + + //성인대상 강사 신청내역 조회 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회 + List vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrAplctList", vEInstrAplctList); + + + //성인대상 강사 수정신청 내역 조회 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회 + List vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrMdfyList", vEInstrMdfyList); + + + //현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'"); + List vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList); + + VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); + lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); + lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + + //강의설정 요청 리스트 불러오기 + List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); + model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); + + + //강의설정테이블 + lctrDetailVO.setUseYn("Y"); + VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); + model.addAttribute("lctrStngInfo", lctrStngInfo); + + + VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO = new VEInstrDetailActvtHstryVO(); + vEInstrDetailActvtHstryVO.setInstrDetailOrd(info.getInstrDetailOrd()); + vEInstrDetailActvtHstryVO.setUserId(info.getUserId()); + // 강사활동확인서내역 + List vEInstrActvtHstryList = vEInstrDetailActvtHstryService.select(vEInstrDetailActvtHstryVO); + model.addAttribute("vEInstrActvtHstryList", vEInstrActvtHstryList); + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail"; + } + + /** + * 1.성인대상 강사 수정화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfy.do") + public String instrPrflMdfy( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setUseYn("Y"); + VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); + info = egovCryptoUtil.decryptVEInstrDetailVO(info);/*이름, 번호 복호화*/ + model.addAttribute("info", info); + + FileVO fileVO = new FileVO(); + String atchFileId = info.getPhtAtchFileId(); + fileVO.setAtchFileId(atchFileId); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfy"; + } + + /** + * 1.성인대상 강사 수정Ajax + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfyAjax.do") + public ModelAndView instrPrflMdfyAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + modelAndView.addObject("result", "fail"); + return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + + + String atchFileId = ""; + final Map files = multiRequest.getFileMap(); + + if (!files.isEmpty()) { + //XXX_로 첨부파일 네이밍 + List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); + atchFileId = fileMngService.insertFileInfs(result); + } + //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 + vEInstrDetailVO.setPhtAtchFileId(atchFileId); + + //세션 ID 가져오기 + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + if("Y".equals(vEInstrDetailVO.getSbmtYn())) { + vEInstrDetailVO.setSbmtPnttm(now); + } + //사용자가 승인코드10번(등록,수정요청)시 승인일시를 수정하는게 맞는지. 사용자 - 제출일시, 관리자 - 승인일시가 아닌지 + /*if(StringUtil.isNotEmpty(vEInstrDetailVO.getAprvlCd())) { + vEInstrDetailVO.setAprvlPnttm(now); + }*/ + + vEInstrService.update(vEInstrDetailVO); + //등록 요청, 재요청일 시 반려사유 삭제 + if("10".equals(vEInstrDetailVO.getAprvlCd())) { + vEInstrDetailVO.setAprvlCn(""); + } + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO);/*이름, 번호 복호화*/ + vEInstrDetailService.update(vEInstrDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 1.성인대상 강사 첨부파일 ID 수정Ajax + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflFileMdfyAjax.do") + public ModelAndView instrPrflFileMdfyAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + if (loginVO == null || ssoLoginVO == null) { + modelAndView.addObject("result", "fail"); + return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + + vEInstrDetailService.update(vEInstrDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 1.성인대상 강사 상세화면 - 달력일정 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl.do") + public String instrPrflSchdl( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setUseYn("Y"); + VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); + info = egovCryptoUtil.decryptVEInstrDetailVO(info); + + model.addAttribute("info", info); + + + //성인대상 강사 신청내역 조회 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회 + List vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrAplctList", vEInstrAplctList); + + + //성인대상 강사 수정신청 내역 조회 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회 + List vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrMdfyList", vEInstrMdfyList); + + + //현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'"); + List vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList); + + VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); + lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); + lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + + //강의설정 요청 리스트 불러오기 + List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); + model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); + + + //강의설정테이블 + lctrDetailVO.setUseYn("Y"); + VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); + model.addAttribute("lctrStngInfo", lctrStngInfo); + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl"; + } + + @RequestMapping(value = "/web/ve/instr/adultVisitEdu/instrInfo/adultSchduleManagerAjaxLoadData.do") + @ResponseBody + public List adultSchduleManagerAjaxLoadData( + @ModelAttribute("schduleManageVO") SchduleManageVO schduleManageVO + , ModelMap model + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + schduleManageVO.setUserId(loginVO.getUniqId()); + + + schduleManageVO.setAprvlCd("60"); + schduleManageVO.setLctrDivCd("20"); + + + schduleManageVO.setSearchStartDt(schduleManageVO.getSearchStartDt().split("T")[0].replaceAll("-", "")); + + return schduleManageService.selectSchManageStatusInstrList(schduleManageVO); + } + + //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 + private PaginationInfo setPagingStep1( + VEInstrDetailVO p_vEInstrDetailVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_vEInstrDetailVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_vEInstrDetailVO.getPageUnit()); + paginationInfo.setPageSize(p_vEInstrDetailVO.getPageSize()); + + return paginationInfo; + } + + + //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 + private VEInstrDetailVO setPagingStep2( + VEInstrDetailVO p_vEInstrDetailVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_vEInstrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_vEInstrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_vEInstrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_vEInstrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_vEInstrDetailVO.setSearchSortCnd("sbmt_pnttm"); + p_vEInstrDetailVO.setSearchSortOrd("desc"); + } + + return p_vEInstrDetailVO; + } + + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setPagingStep3( + List p_vEInstrDetailVOList + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } + +} diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/web/InstrPrflController.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/web/InstrPrflController.java index 0304ccd6..22a64fed 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/web/InstrPrflController.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/web/InstrPrflController.java @@ -764,6 +764,7 @@ public class InstrPrflController { VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO = new VEInstrDetailActvtHstryVO(); vEInstrDetailActvtHstryVO.setInstrDetailOrd(info.getInstrDetailOrd()); + vEInstrDetailActvtHstryVO.setUserId(info.getUserId()); // 강사활동확인서내역 List vEInstrActvtHstryList = vEInstrDetailActvtHstryService.select(vEInstrDetailActvtHstryVO); model.addAttribute("vEInstrActvtHstryList", vEInstrActvtHstryList); diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java index 39cba379..0d6e98f3 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java @@ -49,4 +49,10 @@ public interface VEPrcsAplctPrdService { VEPrcsDetailVO findByCnclInfo(VEPrcsDetailVO vEPrcsDetailVO); + void etcInsert(VEPrcsDetailVO vEPrcsDetailVO); + + VEPrcsDetailVO selectEtc(String prcsAplctPrdOrd); + + void updateEtc(VEPrcsDetailVO vEPrcsDetailVO); + } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java index f401af64..717cd553 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsDetailVO.java @@ -138,6 +138,10 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable { private String imageAtchFileId; + private String prpsCn; + private String chrctCn; + private String prcsAplctPrdEtcOrd; + @@ -664,6 +668,24 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable { public void setImageAtchFileId(String imageAtchFileId) { this.imageAtchFileId = imageAtchFileId; } + public String getPrpsCn() { + return prpsCn; + } + public void setPrpsCn(String prpsCn) { + this.prpsCn = prpsCn; + } + public String getChrctCn() { + return chrctCn; + } + public void setChrctCn(String chrctCn) { + this.chrctCn = chrctCn; + } + public String getPrcsAplctPrdEtcOrd() { + return prcsAplctPrdEtcOrd; + } + public void setPrcsAplctPrdEtcOrd(String prcsAplctPrdEtcOrd) { + this.prcsAplctPrdEtcOrd = prcsAplctPrdEtcOrd; + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdDAO.java index 3d73e353..b6e578cc 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdDAO.java @@ -107,5 +107,17 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO { public VEPrcsDetailVO findByCnclInfo(VEPrcsDetailVO paramVO) { return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.findByCnclInfo", paramVO); } + + public void etcInsert(VEPrcsDetailVO vEPrcsDetailVO) { + insert("VEPrcsAplctPrdDAO.etcInsert", vEPrcsDetailVO); + } + + public VEPrcsDetailVO selectEtc(String prcsAplctPrdOrd) { + return (VEPrcsDetailVO) select("VEPrcsAplctPrdDAO.selectEtc", prcsAplctPrdOrd); + } + + public void updateEtc(VEPrcsDetailVO vEPrcsDetailVO) { + update("VEPrcsAplctPrdDAO.updateEtc", vEPrcsDetailVO); + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdServiceImpl.java index 1bedd5b8..29f8d8e6 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/impl/VEPrcsAplctPrdServiceImpl.java @@ -34,11 +34,6 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService { //C public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception { - - String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID - vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); - //vEPrcsDetailVO.setUseYn("Y"); - vEPrcsAplctPrdDAO.insert(vEPrcsDetailVO); } @@ -112,4 +107,23 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService { vEPrcsAplctPrdDAO.update(vEPrcsDetailVO); } + @Override + public void etcInsert(VEPrcsDetailVO vEPrcsDetailVO) { + vEPrcsAplctPrdDAO.etcInsert(vEPrcsDetailVO); + } + + @Override + public VEPrcsDetailVO selectEtc(String prcsAplctPrdOrd) { + return vEPrcsAplctPrdDAO.selectEtc(prcsAplctPrdOrd); + } + + @Override + public void updateEtc(VEPrcsDetailVO vEPrcsDetailVO) { + System.out.println(vEPrcsDetailVO.getPrpsCn()); + System.out.println(vEPrcsDetailVO.getChrctCn()); + System.out.println(vEPrcsDetailVO.getPrcsAplctPrdOrd()); + + vEPrcsAplctPrdDAO.updateEtc(vEPrcsDetailVO); + } + } diff --git a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/instrActvtHstryMng/InstrActvtHstryMngController.java b/src/main/java/kcc/ve/oprtn/adultVisitEdu/instrActvtHstryMng/InstrActvtHstryAdultMngController.java similarity index 91% rename from src/main/java/kcc/ve/oprtn/tngrVisitEdu/instrActvtHstryMng/InstrActvtHstryMngController.java rename to src/main/java/kcc/ve/oprtn/adultVisitEdu/instrActvtHstryMng/InstrActvtHstryAdultMngController.java index 2807dd83..a43f1a3f 100644 --- a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/instrActvtHstryMng/InstrActvtHstryMngController.java +++ b/src/main/java/kcc/ve/oprtn/adultVisitEdu/instrActvtHstryMng/InstrActvtHstryAdultMngController.java @@ -1,4 +1,4 @@ -package kcc.ve.oprtn.tngrVisitEdu.instrActvtHstryMng; +package kcc.ve.oprtn.adultVisitEdu.instrActvtHstryMng; import java.util.List; import java.util.Properties; @@ -47,9 +47,9 @@ import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; */ @Controller -public class InstrActvtHstryMngController { +public class InstrActvtHstryAdultMngController { - private static final Logger LOGGER = LoggerFactory.getLogger(InstrActvtHstryMngController.class); + private static final Logger LOGGER = LoggerFactory.getLogger(InstrActvtHstryAdultMngController.class); //로그인 체크 util @Resource(name = "checkLoginUtil") @@ -87,7 +87,7 @@ public class InstrActvtHstryMngController { /** * 강사활동확인서신청관리 목록 */ - @RequestMapping("/kccadr/oprtn/tngrVisitEdu/instrActvtHstryMngList.do") + @RequestMapping("/kccadr/oprtn/adultVisitEdu/instrActvtHstryMngList.do") public String instrActvtHstryMngList( @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO , ModelMap model @@ -103,7 +103,7 @@ public class InstrActvtHstryMngController { // return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. // } //로그인 처리==================================== - vEInstrDetailActvtHstryVO.setInstrDiv(VeConstants.LCTR_DIV_CD_10); //청소년 + vEInstrDetailActvtHstryVO.setInstrDiv(VeConstants.LCTR_DIV_CD_20); //성인 //1.pageing step1 PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailActvtHstryVO); @@ -125,14 +125,14 @@ public class InstrActvtHstryMngController { - return "oprtn/tngrVisitEdu/instrActvtHstryMngList"; + return "oprtn/adultVisitEdu/instrActvtHstryMngList"; } /** * 강사활동확인서신청관리 상세 */ - @RequestMapping("/kccadr/oprtn/tngrVisitEdu/instrActvtHstryMngDetail.do") + @RequestMapping("/kccadr/oprtn/adultVisitEdu/instrActvtHstryMngDetail.do") public String instrActvtHstryMngDetail( @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO , ModelMap model @@ -164,13 +164,13 @@ public class InstrActvtHstryMngController { - return "oprtn/tngrVisitEdu/instrActvtHstryMngDetail"; + return "oprtn/adultVisitEdu/instrActvtHstryMngDetail"; } /** * 강사활동확인서신청관리 상세 */ - @RequestMapping("/kccadr/oprtn/tngrVisitEdu/popup/instrCnclPopup.do") + @RequestMapping("/kccadr/oprtn/adultVisitEdu/popup/instrCnclPopup.do") public String instrCnclPopup( @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO , ModelMap model @@ -190,12 +190,12 @@ public class InstrActvtHstryMngController { - return "oprtn/tngrVisitEdu/popup/instrCnclPopup"; + return "oprtn/adultVisitEdu/popup/instrCnclPopup"; } - @RequestMapping("/kccadr/oprtn/tngrVisitEdu/updateStateCd.do") + @RequestMapping("/kccadr/oprtn/adultVisitEdu/updateStateCd.do") public ModelAndView updateStateCd( @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO , ModelMap model 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 0bfd99d8..d4dc79d6 100644 --- a/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java +++ b/src/main/java/kcc/ve/oprtn/cndtnSspnIdtmt/web/CndtnPrcsInfoMngController.java @@ -125,6 +125,11 @@ public class CndtnPrcsInfoMngController { //온라인콘텐츠과정 관리 @Resource(name = "sspnIdtmtService") private SspnIdtmtService sspnIdtmtService; + + //과정신청기간순번 + @Resource(name="prcsAplctPrdGnrService") + private EgovIdGnrService prcsAplctPrdGnrService; + /** * 기반강화연수 과정 관리 목록 화면 */ @@ -613,6 +618,8 @@ public class CndtnPrcsInfoMngController { vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID + vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); vEPrcsAplctPrdService.insert(vEPrcsDetailVO); diff --git a/src/main/java/kcc/ve/oprtn/fndtnEnhanceTrn/prcsAplctPrdMng/web/FndthPrcsAplctPrdMngController.java b/src/main/java/kcc/ve/oprtn/fndtnEnhanceTrn/prcsAplctPrdMng/web/FndthPrcsAplctPrdMngController.java index 526bf1db..d72ed363 100644 --- a/src/main/java/kcc/ve/oprtn/fndtnEnhanceTrn/prcsAplctPrdMng/web/FndthPrcsAplctPrdMngController.java +++ b/src/main/java/kcc/ve/oprtn/fndtnEnhanceTrn/prcsAplctPrdMng/web/FndthPrcsAplctPrdMngController.java @@ -1,1075 +1,1100 @@ -package kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.web; - -import java.util.List; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.apache.commons.lang3.StringUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; - -import egovframework.rte.fdl.cmmn.exception.FdlException; -import egovframework.rte.fdl.idgnr.EgovIdGnrService; -import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; -import kcc.com.cmm.ComDefaultCodeVO; -import kcc.com.cmm.ComDefaultVO; -import kcc.com.cmm.LoginVO; -import kcc.com.cmm.service.EgovFileMngService; -import kcc.com.cmm.service.EgovFileMngUtil; -import kcc.com.cmm.service.impl.CmmUseDAO; -import kcc.com.cmm.util.StringUtil; -import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.let.uat.uia.service.SsoLoginVO; -import kcc.let.utl.fcc.service.EgovCryptoUtil; -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.VEEduMIXService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCmpltDetailService; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; - -/** - * 기반강화연수(관리자) 신청기간관리 - * 기반강화연수에 관한 controller 클래스를 정의한다. - * @author 조용준 - * @since 2023.07.12 - * @version 1.0 - * @see - * - *
- * << 개정이력(Modification Information) >>
- *
- *   수정일      수정자           수정내용
- *  -------    --------    ---------------------------
- *   2021.12.16  조용준          최초 생성
- *
- * 
- */ - -@Controller -//@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn") -public class FndthPrcsAplctPrdMngController { - - private static final Logger LOGGER = LoggerFactory.getLogger(FndthPrcsAplctPrdMngController.class); - - //로그인 체크 util - @Resource(name = "checkLoginUtil") - private CheckLoginUtil checkLoginUtil; - - //과정 관리 - @Resource(name = "vEPrcsService") - private VEPrcsService vEPrcsService; - - //과정 관리 - @Resource(name = "vEEduMIXService") - private VEEduMIXService vEEduMIXService; - - //온라인콘텐츠과정 관리 - @Resource(name = "vEPrcsOnlnCntntService") - private VEPrcsOnlnCntntService vEPrcsOnlnCntntService; - - //과정차시 관리 - @Resource(name = "vEPrcsAplctPrdService") - private VEPrcsAplctPrdService vEPrcsAplctPrdService; - - //과정차시 관리 - @Resource(name = "vEAPrcsAplctPrdInstrAsgnmService") - private VEAPrcsAplctPrdInstrAsgnmService vEAPrcsAplctPrdInstrAsgnmService; - - //교육과정순번 - @Resource(name="prcsGnrService") - private EgovIdGnrService prcsGnrService; - - //과정신청기간순번 - @Resource(name="prcsAplctPrdGnrService") - private EgovIdGnrService prcsAplctPrdGnrService; - - //과정온라인콘텐츠순번 - @Resource(name="prcsOnlnGnrService") - private EgovIdGnrService prcsOnlnGnrService; - - //교육신청 - @Resource(name = "vEEduAplctService") - private VEEduAplctService vEEduAplctService; - - //교육과정신청 - @Resource(name = "vEPrcsMIXService") - private VEPrcsMIXService vEPrcsMIXService; - - //차시 - @Resource(name = "vEEduChasiService") - private VEEduChasiService vVEEduChasiService; - - //첨부파일 경로, realPath 설정 - @Resource(name="EgovFileMngUtil") - private EgovFileMngUtil fileUtil; - - //암복호화 유틸 - @Resource(name = "egovCryptoUtil") - EgovCryptoUtil egovCryptoUtil; - - //교육과정신청 - @Resource(name = "vEPrcsCmpltDetailService") - private VEPrcsCmpltDetailService vEPrcsCmpltDetailService; - - @Resource(name = "EgovFileMngService") - private EgovFileMngService fileService; - - //과정 - @Resource(name="cmmUseDAO") - private CmmUseDAO cmmUseDAO; - - /* - - // 교육신청 서비스단 - @Resource(name = "AdjReqMgrService") - private AdjReqMgrService adjReqMgrService; - - // eGov 공통코드 - @Resource(name = "EgovCmmUseService") - private EgovCmmUseService cmmUseService; - - @Resource(name = "EgovFileMngService") - private EgovFileMngService fileService; - - // global 프로퍼티 - @Resource(name="globalSettings") - protected Properties propertiesService; - - //첨부파일 경로, realPath 설정 - @Resource(name="EgovFileMngUtil") - private EgovFileMngUtil fileUtil; - - // 첨부파일 정보 - @Resource(name="EgovFileMngService") - private EgovFileMngService fileMngService; - - //암복호화 유틸 - @Resource(name = "egovCryptoUtil") - EgovCryptoUtil egovCryptoUtil; - - - @Resource(name="KccadrMgrUdtService") - private KccadrMgrUdtService kccadrMgrUdtService; - - // 교육신청 서비스단 - @Resource(name = "checkAdrProcessUtil") - private CheckAdrProcessUtil checkAdrProcessUtil; - */ - - /** - * 기반강화연수 과정 신청 기간 관리 목록 화면 - */ - - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do") - public String fndthEduPrcsAplctPrdMngList( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; - - //로그인 처리==================================== - - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); - - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - //paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); - - //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - - if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ - String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; - vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); - - } - - if(StringUtil.isNotEmpty(vEPrcsDetailVO.getPrcsKind())){ - String[] splited = vEPrcsDetailVO.getPrcsKind().split(","); - vEPrcsDetailVO.setSearchStatusArr(splited); - } - - if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) { - - //vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 - - } - List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO); - - //3.pageing step3 - paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); - - - model.addAttribute("paginationInfo", paginationInfo); - - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEPrcsDetailVOList); - - - return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList"; - ///kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do - } - - /** - * 기반강화연수 교육확정관리목록 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList.do") - public String fndthEduPrcsAplctMngList( @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , HttpSession session, ModelMap model ) throws Exception { - - - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; - - //로그인 처리==================================== - - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); - - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - //paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); - - //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - //교육확정 목록 조회 - vEPrcsDetailVO.setDdlnCd("20"); - - if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ - String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; - vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); - - } - - if(StringUtil.isNotEmpty(vEPrcsDetailVO.getPrcsKind())){ - String[] splited = vEPrcsDetailVO.getPrcsKind().split(","); - vEPrcsDetailVO.setSearchStatusArr(splited); - } - - if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) { - - //vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 - - } - List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO); - - //3.pageing step3 - paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); - - - model.addAttribute("paginationInfo", paginationInfo); - - // 지정된 강사가 있는지 확인 - vEPrcsDetailVOList.stream().forEach(t->{ - - List vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd()); - if(vEAPrcsAplctPrdInstrAsgnmList.size() > 0) { - t.setInstrCnt(Integer.toString(vEAPrcsAplctPrdInstrAsgnmList.size())); - } - - }); - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEPrcsDetailVOList); - - - - - return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList"; - } - - - /** - * 조건부기소유예 기간 상세화면 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail.do") - public String cndtnEduPrcsAplctCfnMngDetail( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - //과정 조회 - VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO); - model.addAttribute("info", vEPrcsDetailVODetail); - - //과정 신청자 정보 가져오기 - { - //해당 과정을 제출한 사용자 정보를 가져온다. - VEEduAplctVO paramVO = new VEEduAplctVO(); - paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); - paramVO.setSbmtYn("Y"); - - if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) { - - String searchQuery = "AND vadi.APLCT_STATE_CD = "+vEPrcsDetailVO.getSearchStatus(); - paramVO.setSearchQuery(searchQuery); - } - // 검색 - 날짜 - paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt()); - paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt()); - // 검색 - 검색어 - paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus()); - - - - List vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO); - vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList); - System.out.println("===="); - - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("listPrcsAplct", vEPrcsDetailVOList); - } - - // 강사 배치 정보 - { - - System.out.println("===="); - List vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); - List instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList); - - model.addAttribute("instrAsgnmList", instrAsgnmList); - } - - return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail"; - } - - - - /** - * 기반강화연수과정 신청기간 등록 화면 - */ - //@RequestMapping("eduPrcsMngReg.do") - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg.do") - public String fndthEduPrcsAplctPrdMngReg( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; - - //로그인 처리==================================== - - //과정 정보 가져오기 - { - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - vEPrcsDetailVO.setOrderByQuery("a.prcs_nm asc"); - - vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); - - //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - - List vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); - - //3.pageing step3 - paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); - //model.addAttribute("paginationInfo", paginationInfo); - - // 교육 부분 코드 가져오는 영역 - ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); - codeVO.setCodeId("VEA001");//기관구분코드 - codeVO.setCode(vEPrcsDetailVOList.get(0).getPrcsDiv()); - model.addAttribute("prcsDivNm", cmmUseDAO.selectCmmCodeDetailValue(codeVO).getCodeNm()); - - // 상세교육과정 내용 가져오는 영역 - VEPrcsDetailVO vEPrcsDetailVOPrcsCn = new VEPrcsDetailVO(); - vEPrcsDetailVOPrcsCn.setPrcsOrd(vEPrcsDetailVOList.get(0).getPrcsOrd()); - model.addAttribute("prcsCn", vEPrcsService.selectDetail(vEPrcsDetailVOPrcsCn).getPrcsCn()); - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("listPrcs", vEPrcsDetailVOList); - } - - - - - return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg"; - } - - /** - * 기반강화연수과정 신청기간 등록 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngRegAjax.do") - public ModelAndView fndthEduPrcsAplctPrdMngRegAjax( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - //, RedirectAttributes redirectAttributes - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - - //로그인 처리==================================== - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - - vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id - vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - vEPrcsAplctPrdService.insert(vEPrcsDetailVO); - - - modelAndView.addObject("result", "success"); - - return modelAndView; - - } - - /** - * 기반강화연수과정 신청기간 등록 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctSelectDivAndCnAjax.do") - public ModelAndView fndthEduPrcsAplctSelectDivAjax( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - //, RedirectAttributes redirectAttributes - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - - //로그인 처리==================================== - - VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsService.selectDetail(vEPrcsDetailVO); - - ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); - codeVO.setCodeId("VEA001");//기관구분코드 - codeVO.setCode(vEPrcsDetailVODetail.getPrcsDiv()); - - - - modelAndView.addObject("result", "success"); - modelAndView.addObject("prcsDiv", cmmUseDAO.selectCmmCodeDetailValue(codeVO) - .getCodeNm()); - - modelAndView.addObject("prcsCn", vEPrcsDetailVODetail.getPrcsCn()); - - - return modelAndView; - - } - - /** - * 기반강화연수과정 기간 상세화면 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.do") - public String fndthEduPrcsMngDetail( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - //로그인 처리==================================== - - //과정 정보 가져오기 - /* - { - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - vEPrcsDetailVO.setOrderByQuery("a.prcs_nm asc"); - - vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); - - //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - - vEPrcsDetailVO.setPrcsOrd(""); - - List vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); - - //3.pageing step3 - paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); - - //model.addAttribute("paginationInfo", paginationInfo); - - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("listPrcs", vEPrcsDetailVOList); - } - */ - - //과정 조회 - VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO); - model.addAttribute("info", vEPrcsDetailVODetail); - - //과정 신청자 정보 가져오기 - { - //해당 과정을 제출한 사용자 정보를 가져온다. - VEEduAplctVO paramVO = new VEEduAplctVO(); - paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); - paramVO.setSbmtYn("Y"); - - // 검색 - 날짜 - paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt()); - paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt()); - // 검색 - 검색어 - paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus()); - - - - List vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO); - vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList); - System.out.println("===="); - - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("listPrcsAplct", vEPrcsDetailVOList); - } - - // 강사 배치 정보 - { - - List vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); - List instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList); - - model.addAttribute("instrAsgnmList", instrAsgnmList); - } - - return "/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail"; - } - - /** - * 기반강화연수과정 기간 상세수정화면 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.do") - public String fndthEduPrcsAplctPrdMngMdfy( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - //로그인 처리==================================== - - //과정 정보 가져오기 - { - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - vEPrcsDetailVO.setOrderByQuery("a.prcs_nm asc"); - - vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); - - //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - - vEPrcsDetailVO.setPrcsOrd(""); - - List vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); - - //3.pageing step3 - paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); - - //model.addAttribute("paginationInfo", paginationInfo); - - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("listPrcs", vEPrcsDetailVOList); - System.out.println("=========="); - } - - //과정 조회 - VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO); - model.addAttribute("info", vEPrcsDetailVODetail); - - return "/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy"; - } - - /** - * 기반강화연수과정 신청기간 수정 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfyAjax.do") - public ModelAndView fndthEduPrcsAplctPrdMngMdfyAjax( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - //, RedirectAttributes redirectAttributes - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - - //로그인 처리==================================== - - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - - //String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID - //vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); - vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 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 - - vEPrcsAplctPrdService.update(vEPrcsDetailVO); - - - modelAndView.addObject("result", "success"); - - return modelAndView; - - } - - /** - * ve_prcs_aplct_prd 테이블에 데이터 하나만 변경하는 기능 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/updateDdlnCdAjax.do") - public ModelAndView updateDdlnCdAjax( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - //, RedirectAttributes redirectAttributes - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - //로그인 처리==================================== - //로그인 정보 가져오기 - - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - - //로그인 처리==================================== - - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - - //String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID - //vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); - vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 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 - - vEPrcsAplctPrdService.updateOneColumn(vEPrcsDetailVO); - - - modelAndView.addObject("result", "success"); - - return modelAndView; - - } - - - - - /** - * 1.기반강화 강사배치 팝업 function - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/popup/fndthInstrAsgnmPopup.do") - public String fndthInstrAsgnmPopup( -// @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - - - System.out.println("vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getPrcsAplctPrdOrd()); - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - //로그인 처리==================================== - - - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); - - - //2. pageing step2 - vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); - - //3. SelectPagingListQuery set 할 조건 설정 - String selectCondition = new String(); - //3.1 제출 완료 후 사용중인 데이터 조회 - selectCondition += "AND a.sbmt_yn='Y' AND a.use_yn = 'Y'"; - //3.2 강사 테이블 성인강사여부 Y인것만 조회 - selectCondition += "AND (b.adult_instr_yn ='Y' OR a.qlfct_end_yn = 'Y') "; - //3.3 이름 검색 시 - if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ - //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')"; - //이름 암호화 - comDefaultVO 검색단어 공통 암호화 - ComDefaultVO comDefaultVO = new ComDefaultVO(); - comDefaultVO.setSearchKeyword(vEPrcsDetailVO.getSearchKeyword()); - comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO); - vEPrcsDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); - selectCondition += "AND a.instr_nm LIKE '%'|| '" +vEPrcsDetailVO.getSearchKeyword() + "'|| '%'"; - comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO); - vEPrcsDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); - } - //3.4 요청일 시작일 검색 시 -// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchStartDt())){ -// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEPrcsDetailVO.getSearchStartDt()+"', '.', '')"; -// } - //3.5 요청일 종료일 검색 시 -// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchEndDt())){ -// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEPrcsDetailVO.getSearchEndDt()+"', '.', '')"; -// } - vEPrcsDetailVO.setInstrDiv("20"); - vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); - - List vEInstrDetailVOList = vEPrcsAplctPrdService.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO); - - try { - - vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); - } catch (Exception e) { - e.printStackTrace(); - // TODO: handle exception - } - - //4.pageing step3 - paginationInfo = this.setInstrPagingStep3(vEInstrDetailVOList, paginationInfo); - System.out.println(" ==== vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getPrcsAplctPrdOrd()); - model.addAttribute("vEPrcsDetailVO", vEPrcsDetailVO); - model.addAttribute("paginationInfo", paginationInfo); - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEInstrDetailVOList); - - return "/oprtn/fndthEnhanceTrn/popup/fndthInstrAsgnmPopup"; - } - - /** - * 강사배정 등록 처리 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthInstrAsgnmAjax.do") - public ModelAndView instrAsgnmAjaxinstrAsgnmAjax( - @ModelAttribute("vEAPrcsAplctPrdInstrAsgnmVO") VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO - , ModelMap model - //, RedirectAttributes redirectAttributes - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - //로그인 처리==================================== - //로그인 정보 가져오기 - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - //로그인 처리==================================== - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - - try { - //선택한 강사 데이터 등록 처리 - vEAPrcsAplctPrdInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id - vEAPrcsAplctPrdInstrAsgnmService.instrInsert(vEAPrcsAplctPrdInstrAsgnmVO); - } catch (Exception ex) { - ex.printStackTrace(); - } - - modelAndView.addObject("result", "success"); - - return modelAndView; - - } - - - /** - * 기반강화 신청자 상태값 변경 - */ - @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/updateEduAplctAprvlCdAjax.do") - public ModelAndView updateEduAplctAprvlCd( - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - , HttpServletRequest request - ) throws Exception { - - System.out.println(vEPrcsDetailVO.getPrcsAplctPrdOrd() +"!!!"); - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - if (!"".equals(s_oprtnLoginCheckNInfo)) { - modelAndView.addObject("result", "loginFail"); - return modelAndView; - } - //로그인 처리==================================== - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - - try { - // 교육 신청 테이블에 신청자 상태값 update - vEAPrcsAplctPrdInstrAsgnmService.udpateAprvlCdEduAplct(vEPrcsDetailVO); - - // 승인 - 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함 - if("20".equals(vEPrcsDetailVO.getAprvlCd())) { - this.aprvlCd20(vEPrcsDetailVO,loginVO.getUniqId()); - } - // 접수취소(반려) - vea_aplct_detail_info TB에 data update - else if("30".equals(vEPrcsDetailVO.getAprvlCd())) - { - this.aprvlCd30(vEPrcsDetailVO); - } - modelAndView.addObject("result", "success"); - - } catch (Exception ex) { - ex.printStackTrace(); - modelAndView.addObject("result", ""); - } - - - return modelAndView; - - } - - - /** - * @methodName : aprvlCd20 - * @author : 이호영 - * @date : 2023.09.25 - * @description : aprvlCd == 20 교육 승인 일 경유 - * 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함 - * @param vEPrcsDetailVO - * @param uniqId - * @throws FdlException - */ - private void aprvlCd20(VEPrcsDetailVO vEPrcsDetailVO, String uniqId) throws FdlException { - - for(String id : vEPrcsDetailVO.getEduAplctOrdList()) { - VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO(); - - vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); - vEDetailVO.setEduAplctOrd(id); - - // 데이터가 있는지만 비교하기 위한 구문 - VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO); - - // 데이터가 없으면 Insert - if(vEDetail_DVO == null) { - vEDetailVO.setAplctStateCd("10"); // 신청상태코드 VEA003 10:미이수 20:이수 - vEDetailVO.setFrstRegisterId(uniqId); - vEAPrcsAplctPrdInstrAsgnmService.insertAprvlCdEduAplctDetail(vEDetailVO); - - } - - } - - } - - /** - * @methodName : aprvlCd30 - * @author : 이호영 - * @date : 2023.09.25 - * @description : aprvlCd == 30 교육 반려 - * 승인일 경우 vea_aplct_detail_info TB에 data 삭제 - * @param vEPrcsDetailVO - * @param uniqId - * @throws FdlException - */ - private void aprvlCd30(VEPrcsDetailVO vEPrcsDetailVO) { - - for(String id : vEPrcsDetailVO.getEduAplctOrdList()) { - VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO(); - - vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); - vEDetailVO.setEduAplctOrd(id); - - // 데이터가 있는지만 비교하기 위한 구문 - VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO); - - // 데이터가 있으면 삭제 - if(vEDetail_DVO != null) { - vEDetailVO.setAplctStateCd("30"); - vEAPrcsAplctPrdInstrAsgnmService.updateAprvlCdEduAplctDetail(vEDetailVO); - - } - - } - - } - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - // - // private function - // - // - - //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 - private PaginationInfo setPagingStep1( - VEPrcsDetailVO p_vEPrcsDetailVO - )throws Exception{ - // pageing step1 - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(p_vEPrcsDetailVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(p_vEPrcsDetailVO.getPageUnit()); - paginationInfo.setPageSize(p_vEPrcsDetailVO.getPageSize()); - - return paginationInfo; - } - - //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 - private VEPrcsDetailVO setPagingStep2( - VEPrcsDetailVO p_vEPrcsDetailVO - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step2 - p_vEPrcsDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); - p_vEPrcsDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); - p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); - - if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord"); - p_vEPrcsDetailVO.setSearchSortOrd("desc"); - } - - return p_vEPrcsDetailVO; - } - - - //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 - private PaginationInfo setPagingStep3( - List p_vEPrcsDetailVOList - - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step3 - int totCnt = 0; - if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt(); - p_paginationInfo.setTotalRecordCount(totCnt); - - return p_paginationInfo; - } - - - - - //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 - private PaginationInfo setInstrPagingStep3( - List p_vEInstrDetailVOList - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step3 - int totCnt = 0; - if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt(); - p_paginationInfo.setTotalRecordCount(totCnt); - - return p_paginationInfo; - } - -} +package kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.web; + +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import egovframework.rte.fdl.cmmn.exception.FdlException; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import kcc.com.cmm.ComDefaultCodeVO; +import kcc.com.cmm.ComDefaultVO; +import kcc.com.cmm.LoginVO; +import kcc.com.cmm.service.EgovFileMngService; +import kcc.com.cmm.service.EgovFileMngUtil; +import kcc.com.cmm.service.impl.CmmUseDAO; +import kcc.com.cmm.util.StringUtil; +import kcc.com.utl.user.service.CheckLoginUtil; +import kcc.let.uat.uia.service.SsoLoginVO; +import kcc.let.utl.fcc.service.EgovCryptoUtil; +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.VEEduMIXService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCmpltDetailService; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService; +import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; + +/** + * 기반강화연수(관리자) 신청기간관리 + * 기반강화연수에 관한 controller 클래스를 정의한다. + * @author 조용준 + * @since 2023.07.12 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2021.12.16  조용준          최초 생성
+ *
+ * 
+ */ + +@Controller +//@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn") +public class FndthPrcsAplctPrdMngController { + + private static final Logger LOGGER = LoggerFactory.getLogger(FndthPrcsAplctPrdMngController.class); + + //로그인 체크 util + @Resource(name = "checkLoginUtil") + private CheckLoginUtil checkLoginUtil; + + //과정 관리 + @Resource(name = "vEPrcsService") + private VEPrcsService vEPrcsService; + + //과정 관리 + @Resource(name = "vEEduMIXService") + private VEEduMIXService vEEduMIXService; + + //온라인콘텐츠과정 관리 + @Resource(name = "vEPrcsOnlnCntntService") + private VEPrcsOnlnCntntService vEPrcsOnlnCntntService; + + //과정차시 관리 + @Resource(name = "vEPrcsAplctPrdService") + private VEPrcsAplctPrdService vEPrcsAplctPrdService; + + //과정차시 관리 + @Resource(name = "vEAPrcsAplctPrdInstrAsgnmService") + private VEAPrcsAplctPrdInstrAsgnmService vEAPrcsAplctPrdInstrAsgnmService; + + //교육과정순번 + @Resource(name="prcsGnrService") + private EgovIdGnrService prcsGnrService; + + //과정신청기간순번 + @Resource(name="prcsAplctPrdGnrService") + private EgovIdGnrService prcsAplctPrdGnrService; + + //과정온라인콘텐츠순번 + @Resource(name="prcsOnlnGnrService") + private EgovIdGnrService prcsOnlnGnrService; + + //교육신청 + @Resource(name = "vEEduAplctService") + private VEEduAplctService vEEduAplctService; + + //교육과정신청 + @Resource(name = "vEPrcsMIXService") + private VEPrcsMIXService vEPrcsMIXService; + + //차시 + @Resource(name = "vEEduChasiService") + private VEEduChasiService vVEEduChasiService; + + //첨부파일 경로, realPath 설정 + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + //교육과정신청 + @Resource(name = "vEPrcsCmpltDetailService") + private VEPrcsCmpltDetailService vEPrcsCmpltDetailService; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + //과정 + @Resource(name="cmmUseDAO") + private CmmUseDAO cmmUseDAO; + + //과정신청기간순번 + @Resource(name="vePrcsAplctPrdEtcGnrService") + private EgovIdGnrService vePrcsAplctPrdEtcGnrService; + /* + + // 교육신청 서비스단 + @Resource(name = "AdjReqMgrService") + private AdjReqMgrService adjReqMgrService; + + // eGov 공통코드 + @Resource(name = "EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + // global 프로퍼티 + @Resource(name="globalSettings") + protected Properties propertiesService; + + //첨부파일 경로, realPath 설정 + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + // 첨부파일 정보 + @Resource(name="EgovFileMngService") + private EgovFileMngService fileMngService; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + + @Resource(name="KccadrMgrUdtService") + private KccadrMgrUdtService kccadrMgrUdtService; + + // 교육신청 서비스단 + @Resource(name = "checkAdrProcessUtil") + private CheckAdrProcessUtil checkAdrProcessUtil; + */ + + /** + * 기반강화연수 과정 신청 기간 관리 목록 화면 + */ + + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList.do") + public String fndthEduPrcsAplctPrdMngList( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; + + //로그인 처리==================================== + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + //paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + //기반강화 조회 + vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + + if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ + String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; + vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); + + } + + if(StringUtil.isNotEmpty(vEPrcsDetailVO.getPrcsKind())){ + String[] splited = vEPrcsDetailVO.getPrcsKind().split(","); + vEPrcsDetailVO.setSearchStatusArr(splited); + } + + if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) { + + //vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 + + } + List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO); + + //3.pageing step3 + paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); + + + model.addAttribute("paginationInfo", paginationInfo); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEPrcsDetailVOList); + + + return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngList"; + ///kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsMngList.do + } + + /** + * 기반강화연수 교육확정관리목록 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList.do") + public String fndthEduPrcsAplctMngList( @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , HttpSession session, ModelMap model ) throws Exception { + + + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; + + //로그인 처리==================================== + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + //paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + //기반강화 조회 + vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + //교육확정 목록 조회 + vEPrcsDetailVO.setDdlnCd("20"); + + if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ + String selectCondition = "AND b.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')"; + vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); + + } + + if(StringUtil.isNotEmpty(vEPrcsDetailVO.getPrcsKind())){ + String[] splited = vEPrcsDetailVO.getPrcsKind().split(","); + vEPrcsDetailVO.setSearchStatusArr(splited); + } + + if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) { + + //vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 + + } + List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth(vEPrcsDetailVO); + + //3.pageing step3 + paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); + + + model.addAttribute("paginationInfo", paginationInfo); + + // 지정된 강사가 있는지 확인 + vEPrcsDetailVOList.stream().forEach(t->{ + + List vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(t.getPrcsAplctPrdOrd()); + if(vEAPrcsAplctPrdInstrAsgnmList.size() > 0) { + t.setInstrCnt(Integer.toString(vEAPrcsAplctPrdInstrAsgnmList.size())); + } + + }); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEPrcsDetailVOList); + + + + + return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngList"; + } + + + /** + * 조건부기소유예 기간 상세화면 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail.do") + public String cndtnEduPrcsAplctCfnMngDetail( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //과정 조회 + VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO); + model.addAttribute("info", vEPrcsDetailVODetail); + + //과정 신청자 정보 가져오기 + { + //해당 과정을 제출한 사용자 정보를 가져온다. + VEEduAplctVO paramVO = new VEEduAplctVO(); + paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); + paramVO.setSbmtYn("Y"); + + if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) { + + String searchQuery = "AND vadi.APLCT_STATE_CD = "+vEPrcsDetailVO.getSearchStatus(); + paramVO.setSearchQuery(searchQuery); + } + // 검색 - 날짜 + paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt()); + paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt()); + // 검색 - 검색어 + paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus()); + + + + List vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO); + vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList); + System.out.println("===="); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("listPrcsAplct", vEPrcsDetailVOList); + } + + // 강사 배치 정보 + { + + System.out.println("===="); + List vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); + List instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList); + + model.addAttribute("instrAsgnmList", instrAsgnmList); + } + + return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctCfnMngDetail"; + } + + + + /** + * 기반강화연수과정 신청기간 등록 화면 + */ + //@RequestMapping("eduPrcsMngReg.do") + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg.do") + public String fndthEduPrcsAplctPrdMngReg( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; + + //로그인 처리==================================== + + //과정 정보 가져오기 + { + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + vEPrcsDetailVO.setOrderByQuery("a.prcs_nm asc"); + + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + //기반강화 조회 + vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + + List vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); + + //3.pageing step3 + paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); + //model.addAttribute("paginationInfo", paginationInfo); + + // 교육 부분 코드 가져오는 영역 + ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); + codeVO.setCodeId("VEA001");//기관구분코드 + codeVO.setCode(vEPrcsDetailVOList.get(0).getPrcsDiv()); + model.addAttribute("prcsDivNm", cmmUseDAO.selectCmmCodeDetailValue(codeVO).getCodeNm()); + + // 상세교육과정 내용 가져오는 영역 + VEPrcsDetailVO vEPrcsDetailVOPrcsCn = new VEPrcsDetailVO(); + vEPrcsDetailVOPrcsCn.setPrcsOrd(vEPrcsDetailVOList.get(0).getPrcsOrd()); + model.addAttribute("prcsCn", vEPrcsService.selectDetail(vEPrcsDetailVOPrcsCn).getPrcsCn()); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("listPrcs", vEPrcsDetailVOList); + } + + + + + return "oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg"; + } + + /** + * 기반강화연수과정 신청기간 등록 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngRegAjax.do") + public ModelAndView fndthEduPrcsAplctPrdMngRegAjax( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + //, RedirectAttributes redirectAttributes + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + + //로그인 처리==================================== + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + vEPrcsDetailVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + + vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdGnrService.getNextStringId()); // 고유ID + + + vEPrcsAplctPrdService.insert(vEPrcsDetailVO); + + vEPrcsDetailVO.setPrcsAplctPrdEtcOrd(vePrcsAplctPrdEtcGnrService.getNextStringId()); // ETC 고유ID + + vEPrcsAplctPrdService.etcInsert(vEPrcsDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + + } + + /** + * 기반강화연수과정 신청기간 등록 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctSelectDivAndCnAjax.do") + public ModelAndView fndthEduPrcsAplctSelectDivAjax( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + //, RedirectAttributes redirectAttributes + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + + //로그인 처리==================================== + + VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsService.selectDetail(vEPrcsDetailVO); + + ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); + codeVO.setCodeId("VEA001");//기관구분코드 + codeVO.setCode(vEPrcsDetailVODetail.getPrcsDiv()); + + + + modelAndView.addObject("result", "success"); + modelAndView.addObject("prcsDiv", cmmUseDAO.selectCmmCodeDetailValue(codeVO) + .getCodeNm()); + + modelAndView.addObject("prcsCn", vEPrcsDetailVODetail.getPrcsCn()); + + + return modelAndView; + + } + + /** + * 기반강화연수과정 기간 상세화면 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.do") + public String fndthEduPrcsMngDetail( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + //과정 정보 가져오기 + /* + { + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + vEPrcsDetailVO.setOrderByQuery("a.prcs_nm asc"); + + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + //기반강화 조회 + vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + + vEPrcsDetailVO.setPrcsOrd(""); + + List vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); + + //3.pageing step3 + paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); + + //model.addAttribute("paginationInfo", paginationInfo); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("listPrcs", vEPrcsDetailVOList); + } + */ + + //과정 조회 + VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO); + + VEPrcsDetailVO vEPrcsEtcDetail = vEPrcsAplctPrdService.selectEtc(vEPrcsDetailVODetail.getPrcsAplctPrdOrd()); + if(vEPrcsEtcDetail != null) + { + vEPrcsDetailVODetail.setPrpsCn(vEPrcsEtcDetail.getPrpsCn()); + vEPrcsDetailVODetail.setChrctCn(vEPrcsEtcDetail.getChrctCn()); + vEPrcsDetailVODetail.setPrcsAplctPrdEtcOrd(vEPrcsEtcDetail.getPrcsAplctPrdEtcOrd()); + } + model.addAttribute("info", vEPrcsDetailVODetail); + + //과정 신청자 정보 가져오기 + { + //해당 과정을 제출한 사용자 정보를 가져온다. + VEEduAplctVO paramVO = new VEEduAplctVO(); + paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); + paramVO.setSbmtYn("Y"); + + // 검색 - 날짜 + paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt()); + paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt()); + // 검색 - 검색어 + paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus()); + + + + List vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO); + vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList); + System.out.println("===="); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("listPrcsAplct", vEPrcsDetailVOList); + } + + // 강사 배치 정보 + { + + List vEAPrcsAplctPrdInstrAsgnmList = vEAPrcsAplctPrdInstrAsgnmService.findByPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); + List instrAsgnmList = egovCryptoUtil.decryptVEAPrcsAplctPrdInstrAsgnmVOList(vEAPrcsAplctPrdInstrAsgnmList); + + model.addAttribute("instrAsgnmList", instrAsgnmList); + } + + return "/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail"; + } + + /** + * 기반강화연수과정 기간 상세수정화면 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.do") + public String fndthEduPrcsAplctPrdMngMdfy( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + //과정 정보 가져오기 + { + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 + paginationInfo.setRecordCountPerPage(10000); + + //2. pageing step2 + vEPrcsDetailVO.setOrderByQuery("a.prcs_nm asc"); + + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + //기반강화 조회 + vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + + vEPrcsDetailVO.setPrcsOrd(""); + + List vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); + + //3.pageing step3 + paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); + + //model.addAttribute("paginationInfo", paginationInfo); + + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("listPrcs", vEPrcsDetailVOList); + System.out.println("=========="); + } + + //과정 조회 + VEPrcsDetailVO vEPrcsDetailVODetail = vEPrcsAplctPrdService.selectDetailNewOne4Fndth(vEPrcsDetailVO); + VEPrcsDetailVO vEPrcsEtcDetail = vEPrcsAplctPrdService.selectEtc(vEPrcsDetailVODetail.getPrcsAplctPrdOrd()); + if(vEPrcsEtcDetail != null) + { + vEPrcsDetailVODetail.setPrpsCn(vEPrcsEtcDetail.getPrpsCn()); + vEPrcsDetailVODetail.setChrctCn(vEPrcsEtcDetail.getChrctCn()); + vEPrcsDetailVODetail.setPrcsAplctPrdEtcOrd(vEPrcsEtcDetail.getPrcsAplctPrdEtcOrd()); + } + model.addAttribute("info", vEPrcsDetailVODetail); + + return "/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy"; + } + + /** + * 기반강화연수과정 신청기간 수정 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfyAjax.do") + public ModelAndView fndthEduPrcsAplctPrdMngMdfyAjax( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + //, RedirectAttributes redirectAttributes + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + + //로그인 처리==================================== + + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID + //vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); + vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 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 + + vEPrcsAplctPrdService.update(vEPrcsDetailVO); + vEPrcsAplctPrdService.updateEtc(vEPrcsDetailVO); + + + modelAndView.addObject("result", "success"); + + return modelAndView; + + } + + /** + * ve_prcs_aplct_prd 테이블에 데이터 하나만 변경하는 기능 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/updateDdlnCdAjax.do") + public ModelAndView updateDdlnCdAjax( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + //, RedirectAttributes redirectAttributes + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + + //로그인 처리==================================== + + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //String prcsAplctPrdOrd = prcsAplctPrdGnrService.getNextStringId(); // 고유ID + //vEPrcsDetailVO.setPrcsAplctPrdOrd(prcsAplctPrdOrd); + vEPrcsDetailVO.setLctrDivCd("50"); //강의구분코드 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 + + vEPrcsAplctPrdService.updateOneColumn(vEPrcsDetailVO); + + + modelAndView.addObject("result", "success"); + + return modelAndView; + + } + + + + + /** + * 1.기반강화 강사배치 팝업 function + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/popup/fndthInstrAsgnmPopup.do") + public String fndthInstrAsgnmPopup( +// @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + + + System.out.println("vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getPrcsAplctPrdOrd()); + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + //로그인 처리==================================== + + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); + + + //2. pageing step2 + vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); + + //3. SelectPagingListQuery set 할 조건 설정 + String selectCondition = new String(); + //3.1 제출 완료 후 사용중인 데이터 조회 + selectCondition += "AND a.sbmt_yn='Y' AND a.use_yn = 'Y'"; + //3.2 강사 테이블 성인강사여부 Y인것만 조회 + selectCondition += "AND (b.adult_instr_yn ='Y' OR a.qlfct_end_yn = 'Y') "; + //3.3 이름 검색 시 + if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){ + //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')"; + //이름 암호화 - comDefaultVO 검색단어 공통 암호화 + ComDefaultVO comDefaultVO = new ComDefaultVO(); + comDefaultVO.setSearchKeyword(vEPrcsDetailVO.getSearchKeyword()); + comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO); + vEPrcsDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + selectCondition += "AND a.instr_nm LIKE '%'|| '" +vEPrcsDetailVO.getSearchKeyword() + "'|| '%'"; + comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO); + vEPrcsDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword()); + } + //3.4 요청일 시작일 검색 시 +// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchStartDt())){ +// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEPrcsDetailVO.getSearchStartDt()+"', '.', '')"; +// } + //3.5 요청일 종료일 검색 시 +// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchEndDt())){ +// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEPrcsDetailVO.getSearchEndDt()+"', '.', '')"; +// } + vEPrcsDetailVO.setInstrDiv("20"); + vEPrcsDetailVO.setSelectPagingListQuery(selectCondition); + + List vEInstrDetailVOList = vEPrcsAplctPrdService.selectinstrAsgnmPopupPagingList(vEPrcsDetailVO); + + try { + + vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); + } catch (Exception e) { + e.printStackTrace(); + // TODO: handle exception + } + + //4.pageing step3 + paginationInfo = this.setInstrPagingStep3(vEInstrDetailVOList, paginationInfo); + System.out.println(" ==== vEPrcsDetailVO.getPrcsAplctPrdOrd() :"+ vEPrcsDetailVO.getPrcsAplctPrdOrd()); + model.addAttribute("vEPrcsDetailVO", vEPrcsDetailVO); + model.addAttribute("paginationInfo", paginationInfo); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEInstrDetailVOList); + + return "/oprtn/fndthEnhanceTrn/popup/fndthInstrAsgnmPopup"; + } + + /** + * 강사배정 등록 처리 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/fndthInstrAsgnmAjax.do") + public ModelAndView instrAsgnmAjaxinstrAsgnmAjax( + @ModelAttribute("vEAPrcsAplctPrdInstrAsgnmVO") VEAPrcsAplctPrdInstrAsgnmVO vEAPrcsAplctPrdInstrAsgnmVO + , ModelMap model + //, RedirectAttributes redirectAttributes + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + //로그인 처리==================================== + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + + try { + //선택한 강사 데이터 등록 처리 + vEAPrcsAplctPrdInstrAsgnmVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id + vEAPrcsAplctPrdInstrAsgnmService.instrInsert(vEAPrcsAplctPrdInstrAsgnmVO); + } catch (Exception ex) { + ex.printStackTrace(); + } + + modelAndView.addObject("result", "success"); + + return modelAndView; + + } + + + /** + * 기반강화 신청자 상태값 변경 + */ + @RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/updateEduAplctAprvlCdAjax.do") + public ModelAndView updateEduAplctAprvlCd( + @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + System.out.println(vEPrcsDetailVO.getPrcsAplctPrdOrd() +"!!!"); + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + //로그인 처리==================================== + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + + try { + // 교육 신청 테이블에 신청자 상태값 update + vEAPrcsAplctPrdInstrAsgnmService.udpateAprvlCdEduAplct(vEPrcsDetailVO); + + // 승인 - 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함 + if("20".equals(vEPrcsDetailVO.getAprvlCd())) { + this.aprvlCd20(vEPrcsDetailVO,loginVO.getUniqId()); + } + // 접수취소(반려) - vea_aplct_detail_info TB에 data update + else if("30".equals(vEPrcsDetailVO.getAprvlCd())) + { + this.aprvlCd30(vEPrcsDetailVO); + } + modelAndView.addObject("result", "success"); + + } catch (Exception ex) { + ex.printStackTrace(); + modelAndView.addObject("result", ""); + } + + + return modelAndView; + + } + + + /** + * @methodName : aprvlCd20 + * @author : 이호영 + * @date : 2023.09.25 + * @description : aprvlCd == 20 교육 승인 일 경유 + * 승인일 경우 vea_aplct_detail_info TB에 넣어줘야함 + * @param vEPrcsDetailVO + * @param uniqId + * @throws FdlException + */ + private void aprvlCd20(VEPrcsDetailVO vEPrcsDetailVO, String uniqId) throws FdlException { + + for(String id : vEPrcsDetailVO.getEduAplctOrdList()) { + VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO(); + + vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); + vEDetailVO.setEduAplctOrd(id); + + // 데이터가 있는지만 비교하기 위한 구문 + VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO); + + // 데이터가 없으면 Insert + if(vEDetail_DVO == null) { + vEDetailVO.setAplctStateCd("10"); // 신청상태코드 VEA003 10:미이수 20:이수 + vEDetailVO.setFrstRegisterId(uniqId); + vEAPrcsAplctPrdInstrAsgnmService.insertAprvlCdEduAplctDetail(vEDetailVO); + + } + + } + + } + + /** + * @methodName : aprvlCd30 + * @author : 이호영 + * @date : 2023.09.25 + * @description : aprvlCd == 30 교육 반려 + * 승인일 경우 vea_aplct_detail_info TB에 data 삭제 + * @param vEPrcsDetailVO + * @param uniqId + * @throws FdlException + */ + private void aprvlCd30(VEPrcsDetailVO vEPrcsDetailVO) { + + for(String id : vEPrcsDetailVO.getEduAplctOrdList()) { + VEPrcsDetailVO vEDetailVO = new VEPrcsDetailVO(); + + vEDetailVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd()); + vEDetailVO.setEduAplctOrd(id); + + // 데이터가 있는지만 비교하기 위한 구문 + VEPrcsDetailVO vEDetail_DVO = vEAPrcsAplctPrdInstrAsgnmService.selectAprvlCdEduAplctDetail(vEDetailVO); + + // 데이터가 있으면 삭제 + if(vEDetail_DVO != null) { + vEDetailVO.setAplctStateCd("30"); + vEAPrcsAplctPrdInstrAsgnmService.updateAprvlCdEduAplctDetail(vEDetailVO); + + } + + } + + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + // + // private function + // + // + + //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 + private PaginationInfo setPagingStep1( + VEPrcsDetailVO p_vEPrcsDetailVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_vEPrcsDetailVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_vEPrcsDetailVO.getPageUnit()); + paginationInfo.setPageSize(p_vEPrcsDetailVO.getPageSize()); + + return paginationInfo; + } + + //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 + private VEPrcsDetailVO setPagingStep2( + VEPrcsDetailVO p_vEPrcsDetailVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_vEPrcsDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_vEPrcsDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_vEPrcsDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_vEPrcsDetailVO.setSearchSortCnd("prcs_ord"); + p_vEPrcsDetailVO.setSearchSortOrd("desc"); + } + + return p_vEPrcsDetailVO; + } + + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setPagingStep3( + List p_vEPrcsDetailVOList + + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEPrcsDetailVOList.size() > 0) totCnt = p_vEPrcsDetailVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } + + + + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setInstrPagingStep3( + List p_vEInstrDetailVOList + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } + +} diff --git a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/instrActvtHstryMng/InstrActvtHstryTngrMngController.java b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/instrActvtHstryMng/InstrActvtHstryTngrMngController.java new file mode 100644 index 00000000..5772ec43 --- /dev/null +++ b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/instrActvtHstryMng/InstrActvtHstryTngrMngController.java @@ -0,0 +1,311 @@ +package kcc.ve.oprtn.tngrVisitEdu.instrActvtHstryMng; + +import java.util.List; +import java.util.Properties; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import kcc.com.cmm.LoginVO; +import kcc.com.cmm.service.EgovCmmUseService; +import kcc.com.cmm.service.EgovFileMngService; +import kcc.com.cmm.service.EgovFileMngUtil; +import kcc.com.utl.user.service.CheckLoginUtil; +import kcc.let.uat.uia.service.SsoLoginVO; +import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.ve.cmm.VeConstants; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; + +/** + * 교육일정관리(관리자-청소년찾아가는저작권교육) + * 교육일정관리에 관한 controller 클래스를 정의한다. + * @author 조용준 + * @since 2021.12.16 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2021.12.16  조용준          최초 생성
+ *
+ * 
+ */ + +@Controller +public class InstrActvtHstryTngrMngController { + + private static final Logger LOGGER = LoggerFactory.getLogger(InstrActvtHstryTngrMngController.class); + + //로그인 체크 util + @Resource(name = "checkLoginUtil") + private CheckLoginUtil checkLoginUtil; + + // eGov 공통코드 + @Resource(name = "EgovCmmUseService") + private EgovCmmUseService cmmUseService; + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + // global 프로퍼티 + @Resource(name="globalSettings") + protected Properties propertiesService; + + //첨부파일 경로, realPath 설정 + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil fileUtil; + + // 첨부파일 정보 + @Resource(name="EgovFileMngService") + private EgovFileMngService fileMngService; + + // 첨부파일 정보 + @Resource(name="vEInstrDetailActvtHstryService") + private VEInstrDetailActvtHstryService vEInstrDetailActvtHstryService; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + + + /** + * @methodName : instrActvtHstryMngList + * @author : 이호영 + * @date : 2023.11.16 + * @description : 강사활동확인서신청관리 목록 + * @param vEInstrDetailActvtHstryVO + * @param model + * @param request + * @return + * @throws Exception + */ + @RequestMapping("/kccadr/oprtn/tngrVisitEdu/instrActvtHstryMngList.do") + public String instrActvtHstryMngList( + @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + +// if (loginVO == null || ssoLoginVO == null) { +// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. +// } + //로그인 처리==================================== + vEInstrDetailActvtHstryVO.setInstrDiv(VeConstants.LCTR_DIV_CD_10); //청소년 + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailActvtHstryVO); + //2. pageing step2 + vEInstrDetailActvtHstryVO = this.setPagingStep2(vEInstrDetailActvtHstryVO, paginationInfo); + vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); + List vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectPagingList(vEInstrDetailActvtHstryVO); + + vEInstrDetailActvtHstryVOList.stream().forEach(t-> t.setInstrNm(egovCryptoUtil.decrypt(t.getInstrNm()))); + + //3.pageing step3 + paginationInfo = this.setPagingStep3(vEInstrDetailActvtHstryVOList, paginationInfo); + model.addAttribute("paginationInfo", paginationInfo); + + // 검색어 복호화 + vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEInstrDetailActvtHstryVOList); + + + + return "oprtn/tngrVisitEdu/instrActvtHstryMngList"; + } + + + /** + * @methodName : instrActvtHstryMngDetail + * @author : 이호영 + * @date : 2023.11.16 + * @description : 강사활동확인서신청관리 상세 + * @param vEInstrDetailActvtHstryVO + * @param model + * @param request + * @return + * @throws Exception + */ + @RequestMapping("/kccadr/oprtn/tngrVisitEdu/instrActvtHstryMngDetail.do") + public String instrActvtHstryMngDetail( + @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 +// String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); +// if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + +// if (loginVO == null || ssoLoginVO == null) { +// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. +// } +// vEInstrDetailActvtHstryVO.setInstrDiv(VeConstants.LCTR_DIV_CD_20); //청소년 + + VEInstrDetailActvtHstryVO vEInstrActvtHstryVO = vEInstrDetailActvtHstryService.findById(vEInstrDetailActvtHstryVO); + + vEInstrActvtHstryVO.setInstrNm(egovCryptoUtil.decrypt(vEInstrActvtHstryVO.getInstrNm())); + vEInstrActvtHstryVO.setPhone(egovCryptoUtil.decrypt(vEInstrActvtHstryVO.getPhone())); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("info", vEInstrActvtHstryVO); + + + + return "oprtn/tngrVisitEdu/instrActvtHstryMngDetail"; + } + + /** + * @methodName : instrCnclPopup + * @author : 이호영 + * @date : 2023.11.16 + * @description : 강사활동확인서신청관리 상세 + * @param vEInstrDetailActvtHstryVO + * @param model + * @param request + * @return + * @throws Exception + */ + @RequestMapping("/kccadr/oprtn/tngrVisitEdu/popup/instrCnclPopup.do") + public String instrCnclPopup( + @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + +// if (loginVO == null || ssoLoginVO == null) { +// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. +// } + //대상 리스트, 페이징 정보 전달 + model.addAttribute("info", vEInstrDetailActvtHstryVO); + + + + return "oprtn/tngrVisitEdu/popup/instrCnclPopup"; + } + + + + @RequestMapping("/kccadr/oprtn/tngrVisitEdu/updateStateCd.do") + public ModelAndView updateStateCd( + @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO + , ModelMap model + //, RedirectAttributes redirectAttributes + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + + //로그인 처리==================================== + //로그인 정보 가져오기 + + String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); + if (!"".equals(s_oprtnLoginCheckNInfo)) { + modelAndView.addObject("result", "loginFail"); + return modelAndView; + } + + //로그인 처리==================================== + + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + vEInstrDetailActvtHstryVO.setLastUpdusrId(loginVO.getUniqId()); + vEInstrDetailActvtHstryService.updateStateCd(vEInstrDetailActvtHstryVO); + + modelAndView.addObject("result", "success"); + + return modelAndView; + + } + + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // + // + // private function + // + // + + //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 + private PaginationInfo setPagingStep1( + VEInstrDetailActvtHstryVO p_vEEduAplctVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit()); + paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize()); + + return paginationInfo; + } + + + //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 + private VEInstrDetailActvtHstryVO setPagingStep2( + VEInstrDetailActvtHstryVO p_vEEduAplctVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_vEEduAplctVO.setSearchSortCnd("prcs_ord"); + p_vEEduAplctVO.setSearchSortOrd("desc"); + } + + return p_vEEduAplctVO; + } + + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setPagingStep3( + List p_vEEduAplctVOList + + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } +} diff --git a/src/main/resources/egovframework/spring/com/context-idgen.xml b/src/main/resources/egovframework/spring/com/context-idgen.xml index b9775d23..fcdfe196 100644 --- a/src/main/resources/egovframework/spring/com/context-idgen.xml +++ b/src/main/resources/egovframework/spring/com/context-idgen.xml @@ -2996,5 +2996,22 @@ - + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/sqlmap/ve/instr/VEInstrDetailActvtHstry_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/instr/VEInstrDetailActvtHstry_SQL_Tibero.xml index 74728ff1..93447577 100644 --- a/src/main/resources/egovframework/sqlmap/ve/instr/VEInstrDetailActvtHstry_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/instr/VEInstrDetailActvtHstry_SQL_Tibero.xml @@ -14,6 +14,7 @@ instr_detail_actvt_hstry_ord + , user_id , instr_detail_ord , aplct_pnttm , state_cd @@ -30,7 +31,8 @@ a.instr_detail_actvt_hstry_ord as instrDetailActvtHstryOrd - , a.instr_detail_ord as instrDetailOrd + , a.user_id as userId + , a.instr_detail_ord as instrDetailOrd , TO_CHAR(a.aplct_pnttm,'YYYY-MM-DD') AS aplctPnttm , a.state_cd as stateCd , TO_CHAR(a.state_pnttm,'YYYY-MM-DD') AS statePnttm @@ -48,6 +50,7 @@ )VALUES( #instrDetailActvtHstryOrd# + , #userId# , #instrDetailOrd# , SYSDATE , #stateCd# @@ -68,7 +71,7 @@ FROM a WHERE - INSTR_DETAIL_ORD = #instrDetailOrd# + user_id = #userId# @@ -81,8 +84,9 @@ FROM a JOIN ve_instr_detail b - ON a.INSTR_DETAIL_ORD = b.INSTR_DETAIL_ORD - AND b.INSTR_DIV = #instrDiv# + ON a.user_id = b.user_id + AND a.instr_detail_ord = b.instr_detail_ord + AND b.INSTR_DIV = #instrDiv# WHERE 1=1 @@ -116,7 +120,8 @@ FROM a JOIN ve_instr_detail b - ON a.INSTR_DETAIL_ORD = b.INSTR_DETAIL_ORD + ON a.user_id = b.user_id + AND a.instr_detail_ord = b.instr_detail_ord WHERE a.instr_detail_actvt_hstry_ord = #instrDetailActvtHstryOrd# diff --git a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml index 0fc6f77c..697df2ef 100644 --- a/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/prcs/VEPrcsAplctPrd_SQL_Tibero.xml @@ -113,6 +113,48 @@ ) + + + /* VEPrcsAplctPrdDAO.etcInsert */ + INSERT INTO VE_PRCS_APLCT_PRD_ETC( + PRCS_APLCT_PRD_ETC_ORD + , PRCS_APLCT_PRD_ORD + , PRPS_CN + , CHRCT_CN + + )VALUES( + #prcsAplctPrdEtcOrd# + , #prcsAplctPrdOrd# + , #prpsCn# + , #chrctCn# + ) + + + + + + + + + + + + +
+
+ + +
+

강사활동확인서신청관리 상세

+
    +
  • +
  • +

    성인 찾아가는 저작권 교육

    +
  • +
  • 강사활동확인서신청관리
  • +
+
+ + +
+ +
+

교육과정관리

+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
강사명 + +
신청일자 + +
상태 + +
반려사유 + +
연락처 + +
주소 + () + +
+
+ + + +
+
+ + +
+
+
+
+ + + +
+
+
+
+
+
+ + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/instrActvtHstryMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/instrActvtHstryMngList.jsp new file mode 100644 index 00000000..068e1f59 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/instrActvtHstryMngList.jsp @@ -0,0 +1,225 @@ + +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> +<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + +<% + /** + * @Class Name : eduInstrFeeMngList.jsp + * @Description : 강사료 확정 관리 > 강사료 확정 목록 + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2022.12.7 안주영 최초 생성 + * @author 안주영 + * @since 2022.2.7 + * @version 1.0 + * @see + * + */ +%> + + + + + + 강사활동확인서신청관리 + + +
+ +
+
+ + " /> + " /> + +
+
+ + +
+

강사활동확인서신청관리 목록

+
    +
  • +
  • +

    성인 찾아가는 저작권 교육

    +
  • +
  • 강사활동확인서신청관리
  • +
+
+ + +
+ +
+
+
+

구분

+
+
+ +
+
+
+
+

신청일자

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

강사명

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

총 건수 :

+
+ +
+
+ + +
+ + + +<%-- --%> +<%-- --%> +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + +
번호강사명신청일처리일발급상태
+ + + ${list.instrNm } + + ${list.aplctPnttm } + + + + - + + + + + + + +
+
+ + +
+ +
+ +
+
+
+
+
+
+
+
+
+
+
+ + +
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/popup/instrCnclPopup.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/popup/instrCnclPopup.jsp new file mode 100644 index 00000000..a502e0b9 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/popup/instrCnclPopup.jsp @@ -0,0 +1,108 @@ + +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %> +<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> + + + + +<%-- --%> + + + 강사배치 팝업 + + + + +
+
+
+ + +
+
+
+

강사활동확인서 반려

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

반려사유

+ +
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ +
+
+
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.jsp index 95f958c3..551eaa11 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngDetail.jsp @@ -305,11 +305,23 @@ - 상세교육과정 + 상세교육내용 + + 목적 + + + + + + 특징 + + + + 정원 diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.jsp index d4076f3d..83c1535c 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngMdfy.jsp @@ -267,12 +267,23 @@ - 상세교육과정 + 상세교육내용 - + + 목적 + + + + + + 특징 + + + + 정원 diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg.jsp index 04e3e94d..32308dfc 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/fndthEnhanceTrn/fndthEduPrcsAplctPrdMngReg.jsp @@ -267,11 +267,23 @@ - 상세교육과정 + 상세교육내용 + + 목적 + + + + + + 특징 + + + + 정원 diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/instrActvtHstryMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/instrActvtHstryMngDetail.jsp index d1e920d2..94bf6867 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/instrActvtHstryMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/instrActvtHstryMngDetail.jsp @@ -146,6 +146,14 @@ + + + 반려사유 + + + + + 연락처 diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/instrActvtHstryMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/instrActvtHstryMngList.jsp index fe9cbad3..ec08ca58 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/instrActvtHstryMngList.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/instrActvtHstryMngList.jsp @@ -54,14 +54,14 @@ listForm.pageIndex.value = pageNo ; listForm.searchCondition.value = $('#searchCondition').val(); listForm.searchKeyword.value = $('#searchKeyword').val(); - listForm.action = ""; + listForm.action = ""; listForm.submit(); } function fn_goDetail(instrDetailActvtHstryOrd){ var form = document.detailForm; form.instrDetailActvtHstryOrd.value = instrDetailActvtHstryOrd ; - form.action = ""; + form.action = ""; form.submit(); } diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp index 4ebbf100..7f041787 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp @@ -1,242 +1,262 @@ -<%@ 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="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"); %> - - - - - - -
-
-

신청상세

-
- - -
-
-
- -
-

찾아가는 저작권 교육

- - ‘찾아가는 저작권 교육’은 저작권 교육이 필요한 공공기관, 대학, 문화예술단체 등을 대상으로 무료로 강의를 지원하는 맞춤형 교육 서비스입니다. -

담당자 연락처) 02-2669-0083

-
-
-
- -
-
-

교육신청 내용

-
- <%-- - -
- -
-
- --%> -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
교육부분 - -
과정 - - -
신청기간 - ~ -
교육장소 - -
교육기간 - ~ -
상세교육과정 - -
정원 - -
상태 - -
-
-
-
-
-
-
-
- -
-
- - +<%@ 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="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"); %> + + + + + + +
+
+

신청상세

+
+ + +
+
+
+ +
+

찾아가는 저작권 교육

+ + ‘찾아가는 저작권 교육’은 저작권 교육이 필요한 공공기관, 대학, 문화예술단체 등을 대상으로 무료로 강의를 지원하는 맞춤형 교육 서비스입니다. +

담당자 연락처) 02-2669-0083

+
+
+
+ +
+
+

교육신청 내용

+
+ <%-- + +
+ +
+
+ --%> +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육부분 + + 과정 + + +
신청기간 + ~ + 교육기간 + ~ +
상세교육내용 + + 정원 + +
상태 + + + + + + + + +<%-- --%> + 교육장소 + +
+
+
+
+
+
+
+
+ +
+
+ +
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp index 676ba635..f713dfed 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctList.jsp @@ -1,544 +1,553 @@ -<%@ 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" %> -<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> - -교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템 - - - - -
- -
- -
-
- -
-
- -
- - - - " /> - " /> - - -
-

강의목록

-
- - -
-
- -
-
-
베스트
-
-
- -
-
- -
-
-
핵심인재 역량강화
-
    -
  • 핵심인재 역량강화 핵심인재 역량강화
  • -
  • 2023-09-24 ~ 2023-09-30
  • -
  • -
-
-
-
핵심인재 역량강화
-
    -
  • 핵심인재 역량강화
  • -
  • 2023-09-24 ~ 2023-09-30
  • -
  • -
-
-
-
핵심인재 역량강화
-
    -
  • 핵심인재 역량강화
  • -
  • 2023-09-24 ~ 2023-09-30
  • -
  • -
-
-
-
핵심인재 역량강화
-
    -
  • 핵심인재 역량강화
  • -
  • 2023-09-24 ~ 2023-09-30
  • -
  • -
-
-
- - -
    -
  • -
  • -
- - - -
- -
-
- - - - -
-
-
- <%-- --%> - -
- ~ -
- <%-- --%> - -
- - - -
-
- - - -
- - - <%-- --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - <%-- - - - - - - - - - - - - - - - - - - - -
교육구분과정명신청기간교육기간신청자/정원상태교육신청
');" style="cursor:pointer;"> --%> - <%-- --%> - - - - ');" style="cursor:pointer;"> - () - - ~ - - ~ - - / - - - - - - - - - - - -
-
- -
-
-
-
-
-
- -
-
- - -
- -
-
- - -
- -
-
6개의 검색결과가 있습니다.
-
    -
  • 지난교육일정
  • -
  • 당월교육일정
  • -
  • 교육예정일정
  • -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
교육일정표
교육과정명
(상세 내용을 보시려면 과정을 클릭하세요)
일수교육일정(교육 시작일)
123456789101112
-
-
- -
+<%@ 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" %> +<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%> + +교육신청 목록 > 성인 찾아가는 저작권 교육 > 한국저작권위원회 저작권 교육 시스템 + + + + +
+ +
+ +
+
+ +
+
+ +
+ + + + " /> + " /> + + +
+

강의목록

+
+ + +
+
+ +
+
+
이달의 과정
+
+
+ +
+
+ +
+ + + +
+
    +
  • +
  • ~
  • +
  • +
+
+
+ +
+ + +
    +
  • +
  • +
+ + + +
+ +
+
+ + + + +
+
+
+ <%-- --%> + +
+ ~ +
+ <%-- --%> + +
+ + + +
+
+ + + +
+ + + <%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + + + + + + + + + + + + + + + +
교육구분과정명신청기간교육일자신청자/정원상태교육신청
');" style="cursor:pointer;"> --%> + <%-- --%> + + + + ');" style="cursor:pointer;"> + () + + ~ + + ~ +<%-- --%> + + / + + + + + + + + + + + +
+
+ +
+
+
+
+
+
+ +
+
+ + +
+ +
+
+ + +
+ +
+
6개의 검색결과가 있습니다.
+
    +
  • 지난교육일정
  • +
  • 당월교육일정
  • +
  • 교육예정일정
  • +
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육일정표
교육과정명
(상세 내용을 보시려면 과정을 클릭하세요)
일수교육일정(교육 시작일)
123456789101112
+
+
+ +
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.jsp index e2b9be21..24a2cdbd 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.jsp @@ -29,8 +29,13 @@ 강사프로필 상세 + + + + + @@ -42,6 +47,9 @@ input:read-only { background-color: #f9f9f9 !important; } + #fileControl{margin: 8px 0 0 0; border: 1px solid #d5d5d5; border-radius: 5px; height: 150px !important; background-color: #fafafa;} + .innorix_basic div.irx_filetree.empty-uploader{background: url(/offedu/visitEdu/usr/publish/images/content/dropzone_file_before.png) no-repeat center; height: 150px !important;} + .irx_filetree,.innorix_basic div.irx_infoBox{height: 150px !important;}
@@ -561,66 +639,91 @@ -
-
-

활동확인서 내역

-
-
- -
- -
-
- - - - - - <%-- --%> - - - - - - - - - - - - - - - - - - - -<%-- --%> -<%-- --%> - - <%-- --%> -<%-- --%> - - - - - - -
강의 설정 정보 번호, 요청일, 구분, 신청상태, 승인일(반려일), 비고 을/를 제공하는 표
번호신청일발급일발급상태양식
- ${status.count} - - 2023-11-02 - - 2023-11-03 - - 완료 / 처리중 / 반려 - - - - -
-
+ +
+
+

활동확인서 내역

+
+
+ + <%-- --%> +
+
+
+ + + + + + <%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
강의 설정 정보 번호, 요청일, 구분, 신청상태, 승인일(반려일), 비고 을/를 제공하는 + 표
번호신청일처리일발급상태
${status.count} + + + + + - + + + + + + + + + + + + + + + + + + + +
+ 신청내역이 없습니다. +
+
@@ -677,3 +780,153 @@
+ +
+ +
+ + + +
+ +
+ + + + diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail.jsp index 8a9ad382..983fb6cc 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/instr/tngrVisitEdu/instrInfo/instrPrflDetail.jsp @@ -29,7 +29,7 @@ 강사프로필 상세 - + @@ -941,6 +941,13 @@ + + + + 신청내역이 없습니다. + + +
From 511331f929437263d439d44f8199ac8809d0e58c Mon Sep 17 00:00:00 2001 From: myname Date: Thu, 16 Nov 2023 15:28:52 +0900 Subject: [PATCH 3/5] =?UTF-8?q?2023-11-16=2015:28=20=EC=9B=94=EB=B3=84=20?= =?UTF-8?q?=EA=B0=95=EC=82=AC=20=EB=B0=B0=EC=A0=95=EC=8B=9C=EA=B0=84=20?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=20=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../let/utl/fcc/service/EgovCryptoUtil.java | 22 +++ .../eduInfo/service/VEAutoAsgnmVO.java | 20 ++ .../web/OprtnInstrTngrPrflContoller.java | 1 + .../web/EduAsgnmCnfrmMngTngrController.java | 150 ++++++++++++-- .../ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml | 54 ++++- .../tngrVisitEdu/mntInstrAsgnmMngList.jsp | 187 ++++++++++-------- 6 files changed, 327 insertions(+), 107 deletions(-) diff --git a/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java b/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java index 7e03b860..81511320 100644 --- a/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java +++ b/src/main/java/kcc/let/utl/fcc/service/EgovCryptoUtil.java @@ -21,6 +21,7 @@ import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduExcelVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEEduSatisfactionExcelVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEAutoAsgnmVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; @@ -366,6 +367,15 @@ public class EgovCryptoUtil { return p_vELctrDetailVO; } + //VEAutoAsgnmVO - 복호화 + public VEAutoAsgnmVO decryptVEAutoAsgnmVOInfo(VEAutoAsgnmVO p_vEAutoAsgnmVO){ + + if (!"".equals(p_vEAutoAsgnmVO.getInstrNm())) p_vEAutoAsgnmVO.setInstrNm(this.decrypt(p_vEAutoAsgnmVO.getInstrNm())); + + return p_vEAutoAsgnmVO; + } + + //VEEduAplctVOList - 복호화 public List decryptVELctrDetailVOList(List p_vELctrDetailVO){ @@ -377,6 +387,18 @@ public class EgovCryptoUtil { return p_vELctrDetailVO; } + //VEAutoAsgnmVOList - 복호화 + public List decryptVEAutoAsgnmVOList(List p_vEAutoAsgnmVO){ + + for (int i=0;i selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO); model.addAttribute("selectStngYrList", selectStngYrList); + /* + System.out.println(vEEduAplctVO.getSearchKeyword()); + System.out.println(vEEduAplctVO.getSearchKeyword()); + System.out.println(vEEduAplctVO.getSearchKeyword()); + System.out.println(vEEduAplctVO.getMngNmbrYr()); + System.out.println(vEEduAplctVO.getMngNmbrYr()); + + if (vEEduAplctVO.getMngNmbrYr() == null) { + System.out.println("null"); + }else { + System.out.println("oo null"); + } + */ + + + VEAutoAsgnmVO vEAutoAsgnmVO = new VEAutoAsgnmVO(); + vEAutoAsgnmVO.setYr(vEEduAplctVO.getMngNmbrYr()); + List vEInstrAssiEduAplctVOList = null; + + if (vEEduAplctVO.getMngNmbrYr() != null) { + + if (vEEduAplctVO.getSearchKeyword() != null) { + vEAutoAsgnmVO.setInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchKeyword())); + } + + vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectAsgnmInfoList(vEAutoAsgnmVO); + + //복호화 + vEInstrAssiEduAplctVOList = egovCryptoUtil.decryptVEAutoAsgnmVOList(vEInstrAssiEduAplctVOList); + model.addAttribute("vEInstrAssiEduAplctVOList",vEInstrAssiEduAplctVOList); + model.addAttribute("vEInstrAssiEduAplctVOListCnt",vEInstrAssiEduAplctVOList.size()); + }else { + model.addAttribute("vEInstrAssiEduAplctVOList",null); + model.addAttribute("vEInstrAssiEduAplctVOListCnt",0); + } + + + /* //1.pageing step1 //vEInstrDetailVODetail.setPageUnit(10); System.out.println(vELctrDetailVO.getPageUnit()); @@ -1004,8 +1048,6 @@ public class EduAsgnmCnfrmMngTngrController { //복호화 selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - model.addAttribute("list",selectAsgnmInfoT2List); @@ -1013,6 +1055,8 @@ public class EduAsgnmCnfrmMngTngrController { paginationInfo = vEPagingUtil.setPagingStep3_VELctrDetailVO(selectAsgnmInfoT2List, paginationInfo); model.addAttribute("paginationInfo", paginationInfo); + */ + }catch(Exception ex) { ex.printStackTrace(); } @@ -1039,6 +1083,7 @@ public class EduAsgnmCnfrmMngTngrController { try { + /* //1.pageing step1 //vEInstrDetailVODetail.setPageUnit(10); PaginationInfo paginationInfo = new PaginationInfo(); @@ -1068,53 +1113,120 @@ public class EduAsgnmCnfrmMngTngrController { } System.out.println("out-list-2"); + */ + VEAutoAsgnmVO vEAutoAsgnmVO = new VEAutoAsgnmVO(); + vEAutoAsgnmVO.setYr(vEEduAplctVO.getMngNmbrYr()); + List vEInstrAssiEduAplctVOList = null; + + if (vEEduAplctVO.getMngNmbrYr() != null) { + + /* + * excel 다운로드에 강사명 검색은 제외 + if (vEEduAplctVO.getSearchKeyword() != null) { + vEAutoAsgnmVO.setInstrNm(egovCryptoUtil.encrypt(vEEduAplctVO.getSearchKeyword())); + } + */ + + vEInstrAssiEduAplctVOList = vEAutoAsgnmMIXService.selectAsgnmInfoList(vEAutoAsgnmVO); + + //복호화 + vEInstrAssiEduAplctVOList = egovCryptoUtil.decryptVEAutoAsgnmVOList(vEInstrAssiEduAplctVOList); + //model.addAttribute("vEInstrAssiEduAplctVOList",vEInstrAssiEduAplctVOList); + //model.addAttribute("vEInstrAssiEduAplctVOListCnt",vEInstrAssiEduAplctVOList.size()); + }else { + //model.addAttribute("vEInstrAssiEduAplctVOList",null); + //model.addAttribute("vEInstrAssiEduAplctVOListCnt",0); + } List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT2List); + excelData.addAll(vEInstrAssiEduAplctVOList); // 세팅값 String title = "월별 강사 배정시간 목록"; int[] width = { - + /* 4000, 4000 , 4000 , 4000, 4000 - //, 4000 - , 4000 - , 4000, 4000 + */ + 4000 - , 4000, 4000, 4000, 4000, 4000 - , 4000, 4000, 4000, 4000, 4000 , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + , 4000, 4000 + + , 4000, 4000 + + , 4000 }; // 너비 //33개 항목 String[] header = { + /* "NO", "기수" , "이름" , "지역1", "거주지" + */ //, "요일" - , "배정시간" - , "1월", "2월" - , "3월", "4월", "5월", "6월", "7월" - , "8월", "9월", "10월", "11월", "12월" - , "누계", "달성율(%)" + "이름" + + , "1월실제배정차시", "1월최대배정가능차시" + , "2월실제배정차시", "2월최대배정가능차시" + , "3월실제배정차시", "3월최대배정가능차시" + , "4월실제배정차시", "4월최대배정가능차시" + , "5월실제배정차시", "5월최대배정가능차시" + , "6월실제배정차시", "6월최대배정가능차시" + , "7월실제배정차시", "7월최대배정가능차시" + , "8월실제배정차시", "8월최대배정가능차시" + , "9월실제배정차시", "9월최대배정가능차시" + , "10월실제배정차시", "10월최대배정가능차시" + , "11월실제배정차시", "11월최대배정가능차시" + , "12월실제배정차시", "12월최대배정가능차시" + + , "누계(실제배정차시)", "누계(최대배정가능차시)" + + , "달성율(%)" }; String[] order = { + /* "RqstId", "ApptDiv" , "InstrNm" , "LctrAreaNm", "Rsdne" //, "wCnt" - , "YrMxmmAsgnmTm" - , "AsgnmTm1", "AsgnmTm2" - , "AsgnmTm3", "AsgnmTm4", "AsgnmTm5", "AsgnmTm6", "AsgnmTm7" - , "AsgnmTm8", "AsgnmTm9", "AsgnmTm10", "AsgnmTm11", "AsgnmTm12" - , "MntSum", "AchvPer" + * + */ + "InstrNm" + + , "M01Isc", "M01Tm" + , "M02Isc", "M02Tm" + , "M03Isc", "M03Tm" + , "M04Isc", "M04Tm" + , "M05Isc", "M05Tm" + , "M06Isc", "M06Tm" + , "M07Isc", "M07Tm" + , "M08Isc", "M08Tm" + , "M09Isc", "M09Tm" + , "M10Isc", "M10Tm" + , "M11Isc", "M11Tm" + , "M12Isc", "M12Tm" + + , "MIscSum", "MTmSum" + + , "AchvmRt" }; // 호출 diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml index a27c79da..d93ac09c 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEAutoAsgnm_MIX_SQL_Tibero.xml @@ -701,6 +701,8 @@ SELECT aa.yr , aa.user_id AS userId + + , MAX(cc.instr_nm) AS instrNm , NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='01' THEN bb.instrSumChasi END),0) AS m01Isc @@ -754,7 +756,36 @@ + NVL(aa.m09_tm,0) + NVL(aa.m10_tm,0) + NVL(aa.m11_tm,0) - + NVL(aa.m12_tm,0) AS mTmSum + + NVL(aa.m12_tm,0) AS mTmSum + + , CEIL((NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='01' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='02' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='03' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='04' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='05' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='06' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='07' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='08' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='09' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='10' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='11' THEN bb.instrSumChasi END),0) + + NVL(SUM(CASE WHEN substring(bb.yrmnt,6,7)='12' THEN bb.instrSumChasi END),0))*100 + / + ( NVL(aa.m01_tm,0) + + NVL(aa.m02_tm,0) + + NVL(aa.m03_tm,0) + + NVL(aa.m04_tm,0) + + NVL(aa.m05_tm,0) + + NVL(aa.m06_tm,0) + + NVL(aa.m07_tm,0) + + NVL(aa.m08_tm,0) + + NVL(aa.m09_tm,0) + + NVL(aa.m10_tm,0) + + NVL(aa.m11_tm,0) + + NVL(aa.m12_tm,0) + )) + AS achvmRt + FROM vea_instr_indvd_mnt_tm aa LEFT OUTER JOIN ( @@ -783,7 +814,23 @@ aa.user_id=bb.user_id AND aa.yr=substring(bb.yrMnt,0,4) ) - WHERE aa.user_id=#userId# + , ve_instr_detail cc + WHERE 1=1 + AND aa.user_id=cc.user_id + AND cc.use_yn='Y' + + AND aa.user_id=#userId# + + + + AND aa.yr=#yr# + + + + AND cc.instr_nm=#instrNm# + + + GROUP BY aa.yr , aa.user_id @@ -800,6 +847,7 @@ , aa.m11_tm , aa.m12_tm - ORDER BY aa.yr + ORDER BY aa.yr + , aa.user_id diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/mntInstrAsgnmMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/mntInstrAsgnmMngList.jsp index b12695e4..76424ed0 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/mntInstrAsgnmMngList.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/mntInstrAsgnmMngList.jsp @@ -151,98 +151,115 @@ - + +
-

총 건수 :

+

총 건수 :

*교육신청과 강사배정이 모두 확정된 데이터 기준 - + +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +
-
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - -
-
이름1월(실제배정차시/최대가능배정차시)2월3월4월5월6월7월8월9월10월11월12월누계(달성율)
+ + +
(${fn:split(asgnmInfoT2.userId,'_')[1]*1}) +
+
/ / / / / / / / / / / / / +
( %) +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
이름
(배정시간)
1월(일수/지역)2월3월4월5월6월7월8월9월10월11월12월누계
(달성율)
- - -
(${fn:split(list.userId,'_')[1]*1}) -
-
(시간) -
-
(%) -
-
- + 데이터가 없습니다. - -
- -
- + + + + + + + + From aef7adb0a3feabeef8994e64e7203d91cf2835a1 Mon Sep 17 00:00:00 2001 From: hylee Date: Thu, 16 Nov 2023 15:37:26 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EC=82=AC=EC=9A=A9=EC=9E=90/=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=EC=9E=90=20=EC=8B=A4=EB=AC=B4=EC=97=AD=EB=9F=89?= =?UTF-8?q?=EA=B0=95=ED=99=94=20=EB=AA=A9=EC=A0=81=20=ED=8A=B9=EC=A7=95=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java | 9 ++++++++- .../web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp | 10 ++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java b/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java index 03f04d77..80da7a34 100644 --- a/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java +++ b/src/main/java/kcc/ve/aplct/fndtnEnhanceTrn/web/FndtnEnhanceTrnController.java @@ -435,7 +435,14 @@ public class FndtnEnhanceTrnController { if(vEEduAplctVO != null && StringUtils.isNotEmpty(vEEduAplctVO.getAprvlCd())) { vEPrcsDetailVODetail.setAprvlCd(vEEduAplctVO.getAprvlCd()); } - + + VEPrcsDetailVO vEPrcsEtcDetail = vEPrcsAplctPrdService.selectEtc(vEPrcsDetailVODetail.getPrcsAplctPrdOrd()); + if(vEPrcsEtcDetail != null) + { + vEPrcsDetailVODetail.setPrpsCn(vEPrcsEtcDetail.getPrpsCn()); + vEPrcsDetailVODetail.setChrctCn(vEPrcsEtcDetail.getChrctCn()); + vEPrcsDetailVODetail.setPrcsAplctPrdEtcOrd(vEPrcsEtcDetail.getPrcsAplctPrdEtcOrd()); + } model.addAttribute("info", vEPrcsDetailVODetail); diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp index 7f041787..07641d31 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.jsp @@ -216,6 +216,16 @@ + + 목적 + + + + 특징 + + + 상태 From 46a1ad5a591113d3078a6fca7ea487cb581ed866 Mon Sep 17 00:00:00 2001 From: jiwoo Date: Thu, 16 Nov 2023 16:13:41 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EC=9D=B4=EC=A7=80=EC=9A=B0=20-=20=EC=84=B1?= =?UTF-8?q?=EC=9D=B8=20=EA=B5=90=EC=9C=A1=20=EA=B0=95=EC=82=AC=EC=B0=B8?= =?UTF-8?q?=EC=84=9D=ED=99=95=EC=9D=B8=EC=84=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java | 8 ++++++++ .../ve/instr/adultVisitEdu/endInfo/instrEduEndDetail.jsp | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java index d90532c2..a6f900cb 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/asgnmInfo/service/VEInstrAsgnmVO.java @@ -150,6 +150,8 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable { private String prcsAplctPrdOrd; //과정신청기간순번 + private String attendAtchFileId;//강사참석확인서 파일ID + public String getMemoCn() { return memoCn; @@ -751,5 +753,11 @@ public class VEInstrAsgnmVO extends ComDefaultVO implements Serializable { public void setEduPlace(String eduPlace) { this.eduPlace = eduPlace; } + public String getAttendAtchFileId() { + return attendAtchFileId; + } + public void setAttendAtchFileId(String attendAtchFileId) { + this.attendAtchFileId = attendAtchFileId; + } } diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/instr/adultVisitEdu/endInfo/instrEduEndDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/instr/adultVisitEdu/endInfo/instrEduEndDetail.jsp index 85992ff8..f0c40cc8 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/instr/adultVisitEdu/endInfo/instrEduEndDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/instr/adultVisitEdu/endInfo/instrEduEndDetail.jsp @@ -299,7 +299,11 @@ $( document ).ready(function() {

강사 참석 확인서

- + + + + +