diff --git a/src/main/java/kcc/com/cmm/LoginVO.java b/src/main/java/kcc/com/cmm/LoginVO.java index cbc0cde4..890c8b40 100644 --- a/src/main/java/kcc/com/cmm/LoginVO.java +++ b/src/main/java/kcc/com/cmm/LoginVO.java @@ -125,8 +125,6 @@ public class LoginVO implements Serializable{ private String mberCi; - private String joinType; - public String getId() { return id; } @@ -442,13 +440,6 @@ public class LoginVO implements Serializable{ public void setMberCi(String mberCi) { this.mberCi = mberCi; } - public String getJoinType() { - return joinType; - } - public void setJoinType(String joinType) { - this.joinType = joinType; - } - diff --git a/src/main/java/kcc/let/my/web/MyPageController.java b/src/main/java/kcc/let/my/web/MyPageController.java index 50abed76..96e094f7 100644 --- a/src/main/java/kcc/let/my/web/MyPageController.java +++ b/src/main/java/kcc/let/my/web/MyPageController.java @@ -1,9 +1,10 @@ package kcc.let.my.web; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -16,6 +17,7 @@ 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.ptl.mvc.tags.ui.pagination.PaginationInfo; @@ -24,7 +26,14 @@ import kcc.com.utl.user.service.CheckLoginUtil; import kcc.let.cop.bbs.service.BoardMasterVO; import kcc.let.cop.bbs.service.BoardVO; import kcc.let.uat.uia.service.SsoLoginVO; +import kcc.let.uss.notify.service.NotifyManageService; +import kcc.let.uss.notify.service.NotifyManageVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService; +import kcc.ve.cmm.VeConstants; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; +import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; @@ -51,94 +60,277 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; @Controller public class MyPageController { - private static final Logger LOGGER = LoggerFactory.getLogger(MyPageController.class); - // 로그인 체크 util @Resource(name = "checkLoginUtil") private CheckLoginUtil checkLoginUtil; + // 교육과정신청 + @Resource(name = "vEEduMIXService") + private VEEduMIXService vEEduMIXService; + //암복호화 유틸 @Resource(name = "egovCryptoUtil") EgovCryptoUtil egovCryptoUtil; + //과정차시 관리 + @Resource(name = "vEPrcsAplctPrdService") + private VEPrcsAplctPrdService vEPrcsAplctPrdService; + //과정 관리 @Resource(name = "vEPrcsService") private VEPrcsService vEPrcsService; - //과정차시 관리 - @Resource(name = "vEPrcsAplctPrdService") - private VEPrcsAplctPrdService vEPrcsAplctPrdService; + //온라인콘텐츠과정 관리 + @Resource(name = "fndtnEnhanceTrnService") + private FndtnEnhanceTrnService fndtnEnhanceTrnService; + + @Resource(name = "NotifyManageService") + private NotifyManageService notifyManageService; - private String p_lctr_div_cd = "60"; + private static final Logger LOGGER = LoggerFactory.getLogger(MyPageController.class); @RequestMapping(value = { "/web/my/myPageDashBoard.do" }) - public String selectFaqListWeb(HttpServletRequest request, @ModelAttribute("vEEduAplctVO") VEPrcsDetailVO vEPrcsDetailVO, + public String selectFaqListWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model, BoardVO boardVO, RedirectAttributes redirectAttributes) throws Exception { - //로그인 처리==================================== - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - //이전 url 처리(beforeSiteUrl)_이준호_220228추가 - return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - vEPrcsDetailVO.setUserId(loginVO.getUniqId()); - - - //1.pageing step1 - //5개만 select을 위한 설정 - vEPrcsDetailVO.setPageUnit(5); - PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); - - - //로그인 처리==================================== - - //1.pageing step1 - - //임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함 - //paginationInfo.setRecordCountPerPage(10000); - - //2. pageing step2 - vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); - - //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd(p_lctr_div_cd); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - - - /* - if(StringUtil.isEmpty(vEPrcsDetailVO.getPrcsDiv())) { - vEPrcsDetailVO.setPrcsDiv("10");// 과정구분 VE0015 10-산업종사자, 20-대학생, 30-공무원, 40-일반인, 50-청소년, 60-학부모 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); // 권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); // SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model, request); // 로그인 정보가 없으면 로그인 페이지로 이동한다. } - */ - vEPrcsDetailVO.setSiteId(p_lctr_div_cd); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소 - List vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlQustnrAllList(vEPrcsDetailVO); - //List vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO); - // 현재 날짜를 가져옵니다. - LocalDate currentDate = LocalDate.now(); - // 날짜비교 - vEPrcsDetailVOList.stream().forEach(t->{ - t.setDateChk(this.dateChk(t, currentDate)); - }); - - - Map countMap = vEPrcsAplctPrdService.findAllSspnldtmtDashboardCnt(vEPrcsDetailVO); - // 리스트 row마다 신청 확인하기 - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEPrcsDetailVOList); - model.addAttribute("countMap", countMap); - - + /* + * 청소년 진행목록 + */ + { + /*진행/종료 건수에서 신청/완료 건수로 변경 > 진행/종료는 차시 기준. 신청은 신청 기준이라 조회쿼리 변경*/ + /*VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + // 청소년 - // Q&A 영역 -// vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); -// List vEPrcsDetailQnaVOList = fndtnEnhanceTrnService.selectVeEduQna(vEPrcsDetailVO); -// model.addAttribute("qnaList", vEPrcsDetailQnaVOList); - - -// return "/web/ve/aplct/sspnIdtmt/main"; + // 사용자 교육신청 차시 리스트 + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); + vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT); + vEEduChasiVO.setUserId(loginVO.getUniqId()); + vEEduChasiVO.setRecordCountPerPage(1000000); + vEEduChasiVO.setFirstIndex(0); + // List vEEduChasiVOList = + // vEEduMIXService.selectChasiList(vEEduChasiVO); + vEEduChasiVO.setPageIndex(vEEduAplctVO.getPageIndex()); + vEEduChasiVO.setPageUnit(vEEduAplctVO.getPageUnit()); + vEEduChasiVO.setPageSize(vEEduAplctVO.getPageSize()); + + List tngrList = vEEduMIXService.selectChasiListMypage(vEEduChasiVO); + + + Map tngrMap = tngrList.stream() + .collect(Collectors.partitioningBy(vo -> "30".equals(vo.getAsgnmAprvlCd()), Collectors.counting())) + //.collect(Collectors.partitioningBy(vo -> "60".equals(vo.getAprvlCd()), Collectors.counting())) + .entrySet().stream() + .collect(Collectors.toMap( + entry -> entry.getKey() ? "tngrEnd" : "tngrIng", + entry -> entry.getValue().toString() + ) + ); + + System.out.println(tngrMap); + System.out.println(tngrMap); + + + model.addAttribute("tngrMap", tngrMap); + model.addAttribute("tngrList", tngrList);*/ + + //신청목록 + VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + vEEduAplctVO.setUserId(loginVO.getUniqId()); + vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); + vEEduAplctVO.setRecordCountPerPage(10); + vEEduAplctVO.setFirstIndex(0); + List vEEduAplctVOList = vEEduMIXService.selectPagingApplyList(vEEduAplctVO); + int tngrAplctCnt = 0; + if(vEEduAplctVOList != null && !vEEduAplctVOList.isEmpty()) { + tngrAplctCnt = vEEduAplctVOList.get(0).getTotCnt(); + } + model.addAttribute("tngrAplctCnt", tngrAplctCnt); + + //완료목록 + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); + vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT); + vEEduChasiVO.setUserId(loginVO.getUniqId()); + vEEduChasiVO.setSearchStartDt(vEEduAplctVO.getSearchStartDt()); + vEEduChasiVO.setSearchEndDt(vEEduAplctVO.getSearchEndDt()); + vEEduChasiVO.setRecordCountPerPage(10); + vEEduChasiVO.setFirstIndex(0); + List vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO); + int tngrEndCnt = 0; + if(vEEduChasiVOList != null && !vEEduChasiVOList.isEmpty()) { + tngrEndCnt = vEEduChasiVOList.get(0).getTotCnt(); + } + model.addAttribute("tngrEndCnt", tngrEndCnt); + model.addAttribute("tngrList", vEEduChasiVOList); + } + + /* + * 성인 진행목록 + */ + { + /*진행/종료 건수에서 신청/완료 건수로 변경 > 진행/종료는 차시 기준. 신청은 신청 기준이라 조회쿼리 변경*/ + /*VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + // 청소년 + + // 사용자 교육신청 차시 리스트 + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20); + vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT); + vEEduChasiVO.setUserId(loginVO.getUniqId()); + vEEduChasiVO.setRecordCountPerPage(1000000); + vEEduChasiVO.setFirstIndex(0); + // List vEEduChasiVOList = + // vEEduMIXService.selectChasiList(vEEduChasiVO); + + vEEduChasiVO.setPageIndex(vEEduAplctVO.getPageIndex()); + vEEduChasiVO.setPageUnit(vEEduAplctVO.getPageUnit()); + vEEduChasiVO.setPageSize(vEEduAplctVO.getPageSize()); + + List adultList = vEEduMIXService.selectChasiListMypage(vEEduChasiVO); + + + Map adultMap = adultList.stream() + .collect(Collectors.partitioningBy(vo -> "30".equals(vo.getAsgnmAprvlCd()), Collectors.counting())) + .entrySet().stream() + .collect(Collectors.toMap( + entry -> entry.getKey() ? "adultEnd" : "adultIng", + entry -> entry.getValue().toString() + ) + ); + + model.addAttribute("adultMap", adultMap); + model.addAttribute("adultList", adultList);*/ + //신청목록 + VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + vEEduAplctVO.setUserId(loginVO.getUniqId()); + vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20); + vEEduAplctVO.setRecordCountPerPage(10); + vEEduAplctVO.setFirstIndex(0); + List vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO); + int adultAplctCnt = 0; + if(vEEduAplctVOList != null && !vEEduAplctVOList.isEmpty()) { + adultAplctCnt = vEEduAplctVOList.get(0).getTotCnt(); + } + model.addAttribute("adultAplctCnt", adultAplctCnt); + + //완료목록 + VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); + vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20); + vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT); + vEEduChasiVO.setUserId(loginVO.getUniqId()); + vEEduChasiVO.setRecordCountPerPage(10); + vEEduChasiVO.setFirstIndex(0); + List vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO); + int adultEndCnt = 0; + if(vEEduChasiVOList != null && !vEEduChasiVOList.isEmpty()) { + adultEndCnt = vEEduChasiVOList.get(0).getTotCnt(); + } + model.addAttribute("adultEndCnt", adultEndCnt); + model.addAttribute("adultList", vEEduChasiVOList); + } + /* + * 체험교실 + * */ + { + VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + // 저작권 + vEEduAplctVO.setUserId(loginVO.getUniqId()); + vEEduAplctVO.setRecordCountPerPage(1000000); + vEEduAplctVO.setFirstIndex(0); + vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30); + + List vEEduAplctVOList = vEEduMIXService.selectExprnPagingList(vEEduAplctVO); + vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList); + + System.out.println("vEEduAplctVOList.size() :: "+vEEduAplctVOList.size()); +// vEEduAplctVOList에서 10, 11, 12, 13 값 제거 + List filteredList = vEEduAplctVOList.stream() + /* + .filter(item -> !item.getAprvlCd().equals("10") + && !item.getAprvlCd().equals("11") + && !item.getAprvlCd().equals("12") + && !item.getAprvlCd().equals("13")) + */ + .filter(item -> item.getAprvlCd().equals("80") + || item.getAprvlCd().equals("20") + ) + .collect(Collectors.toList()); +// -- 종료 80 +// -- 진행중 20~70 + + Map exprnMap = filteredList.stream() + .collect(Collectors.partitioningBy(vo -> "80".equals(vo.getAprvlCd()), Collectors.counting())) + .entrySet().stream() + .collect(Collectors.toMap( + entry -> entry.getKey() ? "exprnEnd" : "exprnIng", + entry -> entry.getValue().toString() + ) + ); + + model.addAttribute("exprnMap", exprnMap); + model.addAttribute("exprnList", filteredList); + } + + /* + * 실무역량강화 + * */ + { + + + VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); + + vEPrcsDetailVO.setUserId(loginVO.getUniqId()); + //기반강화 조회 + vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 + vEPrcsDetailVO.setRecordCountPerPage(1000000); + vEPrcsDetailVO.setFirstIndex(0); + + + List vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO); + // 요청 + long cont = vEPrcsDetailVOList.stream().filter(t-> "10".equals(t.getAprvlCd())).count(); + // 미이수 + long aplctStateCd10 = vEPrcsDetailVOList.stream().filter(t-> "10".equals(t.getAplctStateCd())).count(); + // 이수완료 + long aplctStateCd20 = vEPrcsDetailVOList.stream().filter(t-> "20".equals(t.getAplctStateCd())).count(); + + Map fndtnMap = new HashMap<>(); + fndtnMap.put("fndtnEnd", String.valueOf(aplctStateCd20)); + fndtnMap.put("fndtnIng", String.valueOf(aplctStateCd10+cont)); + + model.addAttribute("fndtnMap", fndtnMap); + model.addAttribute("fndtnList", vEPrcsDetailVOList); + + + //신청중, 수강중, 종료된 수량 + Map countMap = vEPrcsAplctPrdService.findAllDashboardCnt(vEPrcsDetailVO); + model.addAttribute("countMap", countMap); + + } + + //내 문의 목록 + { + + VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); + vEPrcsDetailVO.setRecordCountPerPage(3); + vEPrcsDetailVO.setFirstIndex(0); + vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); + List qnaList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO); + model.addAttribute("qnaList", qnaList); + } + +// return "/web/cop/bbs/FaqListAjax"; return "web/my/myPageDashBoard"; } @@ -175,12 +367,140 @@ public class MyPageController { model.addAttribute("paginationInfo", paginationInfo); + // 사용자 이름 디코딩 +// vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); + //대상 리스트, 페이징 정보 전달 model.addAttribute("list", vEPrcsDetailVOList); return "web/my/myQnaMngList"; } + @RequestMapping(value = { "/web/my/myNotifyMngList.do" }) + public String myNotifyMngList( + HttpServletRequest request + , @ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO + , ModelMap model + ) throws Exception { + +// try { + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + //이전 url 처리(beforeSiteUrl)_이준호_220228추가 + return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다. +// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + + notifyManageService.updateM7DaysUseYnN(); + + + //1.pageing step1 + PaginationInfo paginationInfo = this.setNotiPagingStep1(notifyManageVO); + //2. pageing step2 + notifyManageVO = this.setNotiPagingStep2(notifyManageVO, paginationInfo); +// + + + notifyManageVO.setToUserId(loginVO.getUniqId()); + + + /*if(StringUtils.isNotEmpty(notifyManageVO.getSearchStatus())) { + String status = ""; + if("Y".equals(notifyManageVO.getSearchStatus())) + status = "IS NOT NULL"; + if("N".equals(notifyManageVO.getSearchStatus())) + status = "IS NULL"; + + notifyManageVO.setSearchQuery(" AND qn.QNA_ANSWER_CN "+status); + } */ + + List notifyManageVOList = notifyManageService.selectPagingList(notifyManageVO); + + //3.pageing step3 + paginationInfo = this.setNotiPagingStep3(notifyManageVOList, paginationInfo); + + model.addAttribute("paginationInfo", paginationInfo); + + // 사용자 이름 디코딩 +// vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); + + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", notifyManageVOList); +// } catch (Exception e) { +// e.printStackTrace(); +// // TODO: handle exception +// } +// return "web/my/myQnaMngList"; + return "web/my/myNotifyMngList"; + } + + @RequestMapping(value = { "/web/my/myNotifyMngDetail.do"}) + public String myNotifyMngDetail( + @ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO + , 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, request); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + //과정 조회 + NotifyManageVO notifyManageInfo = notifyManageService.findById(notifyManageVO); + + model.addAttribute("info", notifyManageInfo); + + + try { + if ("30".equals(notifyManageInfo.getLctrDivCd())){ //체험교실은 다른게 바로가기를 만든다. + //eduAplctOrd:eduAplct_00000015581 + List notifyParamList = new ArrayList(); + NotifyManageVO tInfo = new NotifyManageVO(); + tInfo.setSiteNm("eduAplctOrd"); + tInfo.setParams(notifyManageInfo.getEduAplctOrd()); + + notifyParamList.add(tInfo); + + model.addAttribute("notifyParamList", notifyParamList); + + }else{ + //세부과정 목록 조회 + String[] a_params = notifyManageInfo.getParams().split(","); + + List notifyParamList = new ArrayList(); + + for (int i=0;i vEPrcsDetailVOList, PaginationInfo paginationInfo) { + // pageing step3 + int totCnt = 0; + if(vEPrcsDetailVOList.size() > 0) totCnt = vEPrcsDetailVOList.get(0).getTotCnt(); + paginationInfo.setTotalRecordCount(totCnt); + + return paginationInfo; + } + } diff --git a/src/main/java/kcc/let/my/web/MyPageController_back_251028.java b/src/main/java/kcc/let/my/web/MyPageController_back_251028.java deleted file mode 100644 index cfd20cd8..00000000 --- a/src/main/java/kcc/let/my/web/MyPageController_back_251028.java +++ /dev/null @@ -1,667 +0,0 @@ -package kcc.let.my.web; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -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.ptl.mvc.tags.ui.pagination.PaginationInfo; -import kcc.com.cmm.LoginVO; -import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.let.cop.bbs.service.BoardMasterVO; -import kcc.let.cop.bbs.service.BoardVO; -import kcc.let.uat.uia.service.SsoLoginVO; -import kcc.let.uss.notify.service.NotifyManageService; -import kcc.let.uss.notify.service.NotifyManageVO; -import kcc.let.utl.fcc.service.EgovCryptoUtil; -import kcc.ve.aplct.fndtnEnhanceTrn.service.FndtnEnhanceTrnService; -import kcc.ve.cmm.VeConstants; -import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; -import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO; -import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; -import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; - -/** - * 게시물 관리를 위한 컨트롤러 클래스 - * - * @author 공통 서비스 개발팀 이삼섭 - * @since 2009.03.19 - * @version 1.0 - * @see - * - *
- * << 개정이력(Modification Information) >>
- *
- *   수정일      수정자          수정내용
- *  -------    --------    ---------------------------
- *  2009.03.19  이삼섭          최초 생성
- *  2009.06.29  한성곤	       2단계 기능 추가 (댓글관리, 만족도조사)
- *  2011.08.31  JJY            경량환경 템플릿 커스터마이징버전 생성
- *
- *      
- */ -//@Controller -public class MyPageController_back_251028 { - - // 로그인 체크 util - @Resource(name = "checkLoginUtil") - private CheckLoginUtil checkLoginUtil; - - // 교육과정신청 - @Resource(name = "vEEduMIXService") - private VEEduMIXService vEEduMIXService; - - //암복호화 유틸 - @Resource(name = "egovCryptoUtil") - EgovCryptoUtil egovCryptoUtil; - - //과정차시 관리 - @Resource(name = "vEPrcsAplctPrdService") - private VEPrcsAplctPrdService vEPrcsAplctPrdService; - - //과정 관리 - @Resource(name = "vEPrcsService") - private VEPrcsService vEPrcsService; - - //온라인콘텐츠과정 관리 - @Resource(name = "fndtnEnhanceTrnService") - private FndtnEnhanceTrnService fndtnEnhanceTrnService; - - @Resource(name = "NotifyManageService") - private NotifyManageService notifyManageService; - - private static final Logger LOGGER = LoggerFactory.getLogger(MyPageController_back_251028.class); - - @RequestMapping(value = { "/web/my/myPageDashBoard.do" }) - public String selectFaqListWeb(HttpServletRequest request, @ModelAttribute("searchVO") BoardMasterVO boardMasterVO, - ModelMap model, BoardVO boardVO, RedirectAttributes redirectAttributes) throws Exception { - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); // 권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); // SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model, request); // 로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - /* - * 청소년 진행목록 - */ - { - /*진행/종료 건수에서 신청/완료 건수로 변경 > 진행/종료는 차시 기준. 신청은 신청 기준이라 조회쿼리 변경*/ - /*VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - // 청소년 - - // 사용자 교육신청 차시 리스트 - VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); - vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); - vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); - vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT); - vEEduChasiVO.setUserId(loginVO.getUniqId()); - vEEduChasiVO.setRecordCountPerPage(1000000); - vEEduChasiVO.setFirstIndex(0); - // List vEEduChasiVOList = - // vEEduMIXService.selectChasiList(vEEduChasiVO); - - vEEduChasiVO.setPageIndex(vEEduAplctVO.getPageIndex()); - vEEduChasiVO.setPageUnit(vEEduAplctVO.getPageUnit()); - vEEduChasiVO.setPageSize(vEEduAplctVO.getPageSize()); - - List tngrList = vEEduMIXService.selectChasiListMypage(vEEduChasiVO); - - - Map tngrMap = tngrList.stream() - .collect(Collectors.partitioningBy(vo -> "30".equals(vo.getAsgnmAprvlCd()), Collectors.counting())) - //.collect(Collectors.partitioningBy(vo -> "60".equals(vo.getAprvlCd()), Collectors.counting())) - .entrySet().stream() - .collect(Collectors.toMap( - entry -> entry.getKey() ? "tngrEnd" : "tngrIng", - entry -> entry.getValue().toString() - ) - ); - - System.out.println(tngrMap); - System.out.println(tngrMap); - - - model.addAttribute("tngrMap", tngrMap); - model.addAttribute("tngrList", tngrList);*/ - - //신청목록 - VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - vEEduAplctVO.setUserId(loginVO.getUniqId()); - vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); - vEEduAplctVO.setRecordCountPerPage(10); - vEEduAplctVO.setFirstIndex(0); - List vEEduAplctVOList = vEEduMIXService.selectPagingApplyList(vEEduAplctVO); - int tngrAplctCnt = 0; - if(vEEduAplctVOList != null && !vEEduAplctVOList.isEmpty()) { - tngrAplctCnt = vEEduAplctVOList.get(0).getTotCnt(); - } - model.addAttribute("tngrAplctCnt", tngrAplctCnt); - - //완료목록 - VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); - vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10); - vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT); - vEEduChasiVO.setUserId(loginVO.getUniqId()); - vEEduChasiVO.setSearchStartDt(vEEduAplctVO.getSearchStartDt()); - vEEduChasiVO.setSearchEndDt(vEEduAplctVO.getSearchEndDt()); - vEEduChasiVO.setRecordCountPerPage(10); - vEEduChasiVO.setFirstIndex(0); - List vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO); - int tngrEndCnt = 0; - if(vEEduChasiVOList != null && !vEEduChasiVOList.isEmpty()) { - tngrEndCnt = vEEduChasiVOList.get(0).getTotCnt(); - } - model.addAttribute("tngrEndCnt", tngrEndCnt); - model.addAttribute("tngrList", vEEduChasiVOList); - } - - /* - * 성인 진행목록 - */ - { - /*진행/종료 건수에서 신청/완료 건수로 변경 > 진행/종료는 차시 기준. 신청은 신청 기준이라 조회쿼리 변경*/ - /*VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - // 청소년 - - // 사용자 교육신청 차시 리스트 - VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); - vEEduChasiVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); - vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20); - vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT); - vEEduChasiVO.setUserId(loginVO.getUniqId()); - vEEduChasiVO.setRecordCountPerPage(1000000); - vEEduChasiVO.setFirstIndex(0); - // List vEEduChasiVOList = - // vEEduMIXService.selectChasiList(vEEduChasiVO); - - vEEduChasiVO.setPageIndex(vEEduAplctVO.getPageIndex()); - vEEduChasiVO.setPageUnit(vEEduAplctVO.getPageUnit()); - vEEduChasiVO.setPageSize(vEEduAplctVO.getPageSize()); - - List adultList = vEEduMIXService.selectChasiListMypage(vEEduChasiVO); - - - Map adultMap = adultList.stream() - .collect(Collectors.partitioningBy(vo -> "30".equals(vo.getAsgnmAprvlCd()), Collectors.counting())) - .entrySet().stream() - .collect(Collectors.toMap( - entry -> entry.getKey() ? "adultEnd" : "adultIng", - entry -> entry.getValue().toString() - ) - ); - - model.addAttribute("adultMap", adultMap); - model.addAttribute("adultList", adultList);*/ - //신청목록 - VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - vEEduAplctVO.setUserId(loginVO.getUniqId()); - vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20); - vEEduAplctVO.setRecordCountPerPage(10); - vEEduAplctVO.setFirstIndex(0); - List vEEduAplctVOList = vEEduMIXService.selectPagingList(vEEduAplctVO); - int adultAplctCnt = 0; - if(vEEduAplctVOList != null && !vEEduAplctVOList.isEmpty()) { - adultAplctCnt = vEEduAplctVOList.get(0).getTotCnt(); - } - model.addAttribute("adultAplctCnt", adultAplctCnt); - - //완료목록 - VEEduChasiVO vEEduChasiVO = new VEEduChasiVO(); - vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_20); - vEEduChasiVO.setAprvlCd(VeConstants.STATUS_CD_EDU_SELCT); - vEEduChasiVO.setUserId(loginVO.getUniqId()); - vEEduChasiVO.setRecordCountPerPage(10); - vEEduChasiVO.setFirstIndex(0); - List vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO); - int adultEndCnt = 0; - if(vEEduChasiVOList != null && !vEEduChasiVOList.isEmpty()) { - adultEndCnt = vEEduChasiVOList.get(0).getTotCnt(); - } - model.addAttribute("adultEndCnt", adultEndCnt); - model.addAttribute("adultList", vEEduChasiVOList); - } - /* - * 체험교실 - * */ - { - VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - // 저작권 - vEEduAplctVO.setUserId(loginVO.getUniqId()); - vEEduAplctVO.setRecordCountPerPage(1000000); - vEEduAplctVO.setFirstIndex(0); - vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_30); - - List vEEduAplctVOList = vEEduMIXService.selectExprnPagingList(vEEduAplctVO); - vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList); - - System.out.println("vEEduAplctVOList.size() :: "+vEEduAplctVOList.size()); -// vEEduAplctVOList에서 10, 11, 12, 13 값 제거 - List filteredList = vEEduAplctVOList.stream() - /* - .filter(item -> !item.getAprvlCd().equals("10") - && !item.getAprvlCd().equals("11") - && !item.getAprvlCd().equals("12") - && !item.getAprvlCd().equals("13")) - */ - .filter(item -> item.getAprvlCd().equals("80") - || item.getAprvlCd().equals("20") - ) - .collect(Collectors.toList()); -// -- 종료 80 -// -- 진행중 20~70 - - Map exprnMap = filteredList.stream() - .collect(Collectors.partitioningBy(vo -> "80".equals(vo.getAprvlCd()), Collectors.counting())) - .entrySet().stream() - .collect(Collectors.toMap( - entry -> entry.getKey() ? "exprnEnd" : "exprnIng", - entry -> entry.getValue().toString() - ) - ); - - model.addAttribute("exprnMap", exprnMap); - model.addAttribute("exprnList", filteredList); - } - - /* - * 실무역량강화 - * */ - { - - - VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); - - vEPrcsDetailVO.setUserId(loginVO.getUniqId()); - //기반강화 조회 - vEPrcsDetailVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - vEPrcsDetailVO.setRecordCountPerPage(1000000); - vEPrcsDetailVO.setFirstIndex(0); - - - List vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO); - // 요청 - long cont = vEPrcsDetailVOList.stream().filter(t-> "10".equals(t.getAprvlCd())).count(); - // 미이수 - long aplctStateCd10 = vEPrcsDetailVOList.stream().filter(t-> "10".equals(t.getAplctStateCd())).count(); - // 이수완료 - long aplctStateCd20 = vEPrcsDetailVOList.stream().filter(t-> "20".equals(t.getAplctStateCd())).count(); - - Map fndtnMap = new HashMap<>(); - fndtnMap.put("fndtnEnd", String.valueOf(aplctStateCd20)); - fndtnMap.put("fndtnIng", String.valueOf(aplctStateCd10+cont)); - - model.addAttribute("fndtnMap", fndtnMap); - model.addAttribute("fndtnList", vEPrcsDetailVOList); - - - //신청중, 수강중, 종료된 수량 - Map countMap = vEPrcsAplctPrdService.findAllDashboardCnt(vEPrcsDetailVO); - model.addAttribute("countMap", countMap); - - } - - //내 문의 목록 - { - - VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); - vEPrcsDetailVO.setRecordCountPerPage(3); - vEPrcsDetailVO.setFirstIndex(0); - vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); - List qnaList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO); - model.addAttribute("qnaList", qnaList); - } - -// return "/web/cop/bbs/FaqListAjax"; - return "web/my/myPageDashBoard"; - } - - @RequestMapping(value = { "/web/my/myQnaMngList.do" }) - public String myQnaMngList( - HttpServletRequest request - , @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - ) throws Exception { - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); // 권한에 따른 로그인 정보 가져오기 - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO); - //2. pageing step2 - vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo); - - vEPrcsDetailVO.setQnaRegist(loginVO.getUniqId()); - - - if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) { - String status = ""; - if("Y".equals(vEPrcsDetailVO.getSearchStatus())) - status = "IS NOT NULL"; - if("N".equals(vEPrcsDetailVO.getSearchStatus())) - status = "IS NULL"; - - vEPrcsDetailVO.setSearchQuery(" AND qn.QNA_ANSWER_CN "+status); - } - - List vEPrcsDetailVOList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO); - - //3.pageing step3 - paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); - - model.addAttribute("paginationInfo", paginationInfo); - - // 사용자 이름 디코딩 -// vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEPrcsDetailVOList); - - return "web/my/myQnaMngList"; - } - - @RequestMapping(value = { "/web/my/myNotifyMngList.do" }) - public String myNotifyMngList( - HttpServletRequest request - , @ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO - , ModelMap model - ) throws Exception { - -// try { - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - //이전 url 처리(beforeSiteUrl)_이준호_220228추가 - return checkLoginUtil.getUserLoginPage(model, request); //로그인 정보가 없으면 로그인 페이지로 이동한다. -// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - notifyManageService.updateM7DaysUseYnN(); - - - //1.pageing step1 - PaginationInfo paginationInfo = this.setNotiPagingStep1(notifyManageVO); - //2. pageing step2 - notifyManageVO = this.setNotiPagingStep2(notifyManageVO, paginationInfo); -// - - - notifyManageVO.setToUserId(loginVO.getUniqId()); - - - /*if(StringUtils.isNotEmpty(notifyManageVO.getSearchStatus())) { - String status = ""; - if("Y".equals(notifyManageVO.getSearchStatus())) - status = "IS NOT NULL"; - if("N".equals(notifyManageVO.getSearchStatus())) - status = "IS NULL"; - - notifyManageVO.setSearchQuery(" AND qn.QNA_ANSWER_CN "+status); - } */ - - List notifyManageVOList = notifyManageService.selectPagingList(notifyManageVO); - - //3.pageing step3 - paginationInfo = this.setNotiPagingStep3(notifyManageVOList, paginationInfo); - - model.addAttribute("paginationInfo", paginationInfo); - - // 사용자 이름 디코딩 -// vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); - - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", notifyManageVOList); -// } catch (Exception e) { -// e.printStackTrace(); -// // TODO: handle exception -// } -// return "web/my/myQnaMngList"; - return "web/my/myNotifyMngList"; - } - - @RequestMapping(value = { "/web/my/myNotifyMngDetail.do"}) - public String myNotifyMngDetail( - @ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO - , 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, request); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - //과정 조회 - NotifyManageVO notifyManageInfo = notifyManageService.findById(notifyManageVO); - - model.addAttribute("info", notifyManageInfo); - - - try { - if ("30".equals(notifyManageInfo.getLctrDivCd())){ //체험교실은 다른게 바로가기를 만든다. - //eduAplctOrd:eduAplct_00000015581 - List notifyParamList = new ArrayList(); - NotifyManageVO tInfo = new NotifyManageVO(); - tInfo.setSiteNm("eduAplctOrd"); - tInfo.setParams(notifyManageInfo.getEduAplctOrd()); - - notifyParamList.add(tInfo); - - model.addAttribute("notifyParamList", notifyParamList); - - }else{ - //세부과정 목록 조회 - String[] a_params = notifyManageInfo.getParams().split(","); - - List notifyParamList = new ArrayList(); - - for (int i=0;i 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; - } - - - - private PaginationInfo setNotiPagingStep1(NotifyManageVO notifyManageVO) { - // pageing step1 - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(notifyManageVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(notifyManageVO.getPageUnit()); - paginationInfo.setPageSize(notifyManageVO.getPageSize()); - - return paginationInfo; - } - - private NotifyManageVO setNotiPagingStep2(NotifyManageVO notifyManageVO, PaginationInfo paginationInfo) { - // pageing step2 - notifyManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); - notifyManageVO.setLastIndex(paginationInfo.getLastRecordIndex()); - notifyManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); - - if("".equals(notifyManageVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - notifyManageVO.setSearchSortCnd("prcs_ord"); - notifyManageVO.setSearchSortOrd("desc"); - } - - return notifyManageVO; - } - - private PaginationInfo setNotiPagingStep3(List vEPrcsDetailVOList, PaginationInfo paginationInfo) { - // pageing step3 - int totCnt = 0; - if(vEPrcsDetailVOList.size() > 0) totCnt = vEPrcsDetailVOList.get(0).getTotCnt(); - paginationInfo.setTotalRecordCount(totCnt); - - return paginationInfo; - } - - -} diff --git a/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java b/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java index a8eddd83..6912ed6f 100644 --- a/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java +++ b/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java @@ -552,14 +552,8 @@ public class SspnIdtmtController { try { if (vEEduAplctVO !=null) { vEPrcsAplctVO.setPrcsAplctPrdOrd(vEPrcsDetailVODetail.getPrcsAplctPrdOrd()); + vEPrcsAplctVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); - //나의 강의실, 신청목록에서 접근 시 해당 교육 정보 노출 - //교육 신청목록에서 접근 시 가장 최근 정보 노출 - if(StringUtils.isNotEmpty(vEPrcsDetailVO.getEduAplctOrd())) { - vEPrcsAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); - }else { - vEPrcsAplctVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); - } vEPrcsAplctVO = vEPrcsAplctPrdService.selectAplctInfo(vEPrcsAplctVO); } @@ -807,8 +801,7 @@ public class SspnIdtmtController { */ @RequestMapping("/web/ve/aplct/sspnIdtmt/popup/eduCancelPopupAjax.do") public ModelAndView filePopupAjax( - @ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO, - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO + @ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO , ModelMap model //, RedirectAttributes redirectAttributes , HttpServletRequest request @@ -876,27 +869,16 @@ public class SspnIdtmtController { System.out.println(vEEduRprtVO.getAprvlCn()); System.out.println(s_atchFileId); - /* - * VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - * vEEduAplctVO.setEduAplctOrd(vEEduRprtVO.getEduAplctOrd()); - * - * vEEduAplctVO.setAplctCn(vEEduRprtVO.getAprvlCn()); - * vEEduAplctVO.setRsltAtchFileId(s_atchFileId); - * vEEduAplctVO.setAprvlCd("35"); - * vEEduAplctVO.setLastUpdusrId(loginVO.getUniqId()); - * vEEduAplctService.update(vEEduAplctVO); - */ + VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + vEEduAplctVO.setEduAplctOrd(vEEduRprtVO.getEduAplctOrd()); - /* - 251023 - ve_edu_aplct는 확정 상태 유지. - vea_aplct_detail_info에서 취소 관련 처리 - */ - vEEduAplctVO.setAplctStateCd(VeConstants.EDU_CD_CANCLE_REQ); //취소요청 코드 35 - vEEduAplctVO.setCnclAtchFileId(s_atchFileId); - vEEduAplctVO.setCnclCn(vEEduAplctVO.getAprvlCn()); //취소사유 - 기존에는 aprvlCn 사용 - vEEduMIXService.updateCnclStatus(vEEduAplctVO); + vEEduAplctVO.setAplctCn(vEEduRprtVO.getAprvlCn()); + vEEduAplctVO.setRsltAtchFileId(s_atchFileId); + vEEduAplctVO.setAprvlCd("35"); + vEEduAplctVO.setLastUpdusrId(loginVO.getUniqId()); + //취소요청 정보 저장 + vEEduAplctService.update(vEEduAplctVO); }catch(Exception ex) { diff --git a/src/main/java/kcc/ve/cmm/VeConstants.java b/src/main/java/kcc/ve/cmm/VeConstants.java index 4e0b30c1..d8068b3a 100644 --- a/src/main/java/kcc/ve/cmm/VeConstants.java +++ b/src/main/java/kcc/ve/cmm/VeConstants.java @@ -268,14 +268,6 @@ public class VeConstants { public static final String DDLN_CD_APP_ING = "40"; public static final String DDLN_CD_APP_END = "50"; - /* - * VEA003 - edu_state_cd(vea_sspn_idmt_trgt), aplct_state_cd(vea_aplct_detail_info) - */ - public static final String EDU_CD_NOTCOMPLETE= "10"; //미이수 - public static final String EDU_CD_COMPLETE = "20"; //이수 - public static final String EDU_CD_CANCLE_REQ = "35"; //취소요청 - public static final String EDU_CD_DELAY = "60"; //연기 - } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java index 872f3a3b..8ee092ad 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java @@ -128,6 +128,4 @@ public interface VEEduMIXService { List selectTngrRsltRprtList(VEEduAplctVO paramVO) throws Exception; List selectExprnRsltFileDownList(VEEduAplctVO paramVO) throws Exception; - - void updateCnclStatus(VEEduAplctVO vEEduAplctVO); } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java index 52144199..2854fad8 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java @@ -174,46 +174,10 @@ public interface VEInstrMixService { //교육실정통계- 3.대상별 교육 의뢰 현황(그래프 포함) List selectEduPrfrmInfo_csi_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - //조건부기소유예관리 통계 - //교육실정통계- ①검찰청별 교육 의뢰 현황(그래프 포함) - List selectEduPrfrmInfo_csi_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception; //교육실정통계- ⑤월별 교육 이수 현황(그래프 포함) List selectEduPrfrmInfo_csi_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - //교육실정통계- ⑥대상별 교육 이수 현황(그래프 포함) - List selectEduPrfrmInfo_csi_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception; //교육실정통계- ⑦월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계 List selectEduPrfrmInfo_csi_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - - //예방교육 - //교육실정통계- ⑤월별 교육 이수 현황(그래프 포함) - List selectEduPrfrmInfo_csi_prevent_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - - //시정명령 통계 - //교육실정통계- ①검찰청별 교육 의뢰 현황(그래프 포함) - List selectEduPrfrmInfo_csi_cmdTrgt_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - //교육실정통계- ①월별 교육 의뢰 현황(그래프 포함) - List selectEduPrfrmInfo_csi_cmdTrgt_no2(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - //교육실정통계- 3.대상별 교육 의뢰 현황(그래프 포함) - List selectEduPrfrmInfo_csi_cmdTrgt_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - //조건부기소유예관리 통계 - //교육실정통계- ①검찰청별 교육 의뢰 현황(그래프 포함) - List selectEduPrfrmInfo_csi_cmdTrgt_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - //교육실정통계- ⑤월별 교육 이수 현황(그래프 포함) - List selectEduPrfrmInfo_csi_cmdTrgt_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - //교육실정통계- ⑥대상별 교육 이수 현황(그래프 포함) - List selectEduPrfrmInfo_csi_cmdTrgt_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception; - - //교육실정통계- ⑦월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계 - List selectEduPrfrmInfo_csi_cmdTrgt_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception; } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java index 38cdb901..89ee34bc 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java @@ -343,68 +343,13 @@ public class VEInstrMixDAO extends EgovAbstractDAO { return tlist; } - //통계정보-조건부기소유예관리-①검찰청별 교육 의뢰 현황(그래프 포함) - public List selectEduPrfrmInfo_csi_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_no4", vEInstrDetailVO); - return tlist; - } - public List selectEduPrfrmInfo_csi_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception { List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_no5", vEInstrDetailVO); return tlist; } - public List selectEduPrfrmInfo_csi_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_no6", vEInstrDetailVO); - return tlist; - } - public List selectEduPrfrmInfo_csi_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception { List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_no7", vEInstrDetailVO); return tlist; } - - - public List selectEduPrfrmInfo_csi_prevent_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_prevent_no5", vEInstrDetailVO); - return tlist; - } - - - //통계정보-조건부기소유예관리-①검찰청별 교육 의뢰 현황(그래프 포함) - public List selectEduPrfrmInfo_csi_cmdTrgt_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no1", vEInstrDetailVO); - return tlist; - } - - public List selectEduPrfrmInfo_csi_cmdTrgt_no2(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no2", vEInstrDetailVO); - return tlist; - } - - public List selectEduPrfrmInfo_csi_cmdTrgt_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no3", vEInstrDetailVO); - return tlist; - } - - //통계정보-조건부기소유예관리-①검찰청별 교육 의뢰 현황(그래프 포함) - public List selectEduPrfrmInfo_csi_cmdTrgt_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no4", vEInstrDetailVO); - return tlist; - } - - public List selectEduPrfrmInfo_csi_cmdTrgt_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no5", vEInstrDetailVO); - return tlist; - } - - public List selectEduPrfrmInfo_csi_cmdTrgt_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no6", vEInstrDetailVO); - return tlist; - } - - public List selectEduPrfrmInfo_csi_cmdTrgt_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception { - List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no7", vEInstrDetailVO); - return tlist; - } } 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 7e747dfc..30069c86 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 @@ -92,7 +92,4 @@ public interface VEPrcsAplctPrdService { //교육확정상태 대상자 리스트 가져오기 List selectTrgtList4_60(VEPrcsDetailVO vEPrcsDetailVO) throws Exception; - - //신청목록-실무역량강화, 기소유예 new -설문조사, 이수증 처리용 - List findByAprvlQustnrAllList(VEPrcsDetailVO 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 e84c6b19..9dd288e1 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 @@ -200,11 +200,13 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService { //ve_prcs_aplct_prd : 처리 없음 //ve_edu_aplct : 삭제 //vea_aplct_detail_info : 삭제 - //vea_sspn_idmt_trgt : 처리 없음 + //vea_sspn_idmt_trgt : update edu_state_cd=10,edu_aplct_ord is null VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); + //vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO); + vEEduAplctDAO.delete(vEEduAplctVO); vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO); vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); @@ -212,52 +214,9 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService { }else if ("4".equals(vEPrcsDetailVO.getReqNo())) { //대상자 교육신청후 관리자가 반려 처리 //ve_prcs_aplct_prd : 처리 없음 - //ve_edu_aplct : aprvl_cd=30 + //ve_edu_aplct : update aprvl_cd=35 //vea_aplct_detail_info : 처리 없음 - //vea_sspn_idmt_trgt : 처리 없음 - - VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); - - //vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO); - - vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); - vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); - - }else if ("6".equals(vEPrcsDetailVO.getReqNo())) { - //교육확정 - //ve_prcs_aplct_prd : 처리 없음(앞에서 처리) - //ve_edu_aplct : aprvl_cd=60 - //vea_aplct_detail_info : 처리 없음 - //vea_sspn_idmt_trgt : 처리 없음 - - VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); - - - vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); - - }else if ("6-1".equals(vEPrcsDetailVO.getReqNo())) { - /* 251027 기준 - 6-1 미사용 중 */ - //대상자 교육신청후 교육 취소 요청시 처리 - //ve_prcs_aplct_prd : 처리 없음 - //ve_edu_aplct : 처리 없음 - //vea_aplct_detail_info : aplct_state_cd = 35 - //vea_sspn_idmt_trgt : 처리 없음 - - VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); - - vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); - //vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO); - vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); - - }else if ("6-2".equals(vEPrcsDetailVO.getReqNo())) { - //대상자 교육 취소 신청 승인(취소 승인-교육종료) - //ve_prcs_aplct_prd : 처리 없음 - //ve_edu_aplct : 처리 없음 - //vea_aplct_detail_info : aplct_state_cd 60(연기) - //vea_sspn_idmt_trgt : edu_state_cd=60(연기),req_state_cd=35(미완료) + //vea_sspn_idmt_trgt : update edu_state_cd=30,req_state_cd=20 VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); @@ -265,21 +224,77 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService { //vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO); //vEEduAplctDAO.delete(vEEduAplctVO); - //vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); - vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO); + vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); + vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO); + vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); + + }else if ("6".equals(vEPrcsDetailVO.getReqNo())) { + //교육확정 + //ve_prcs_aplct_prd : 처리 없음(앞에서 처리) + //ve_edu_aplct : update aprvl_cd=60 + //vea_aplct_detail_info : 처리 없음 + //vea_sspn_idmt_trgt : update edu_state_cd=30,req_state_cd=20 + + VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); + + //vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO); + + //vEEduAplctDAO.delete(vEEduAplctVO); + vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); + //vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO); + vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); + + }else if ("6-1".equals(vEPrcsDetailVO.getReqNo())) { + //대상자 교육신청후 교육 취소 시 처리 + //ve_prcs_aplct_prd : 처리 없음 + //ve_edu_aplct : update aprvl_cd=35 + //vea_aplct_detail_info : 처리 없음 + //vea_sspn_idmt_trgt : update edu_state_cd=30,req_state_cd=20 + + VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); + + //vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO); + + //vEEduAplctDAO.delete(vEEduAplctVO); + vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); + //vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO); + vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); + + }else if ("6-2".equals(vEPrcsDetailVO.getReqNo())) { + //대상자 교육 취소 신청 승인(취소 승인-교육종료) + //ve_prcs_aplct_prd : 처리 없음 + //ve_edu_aplct : update aprvl_cd=40 + //vea_aplct_detail_info : 처리 없음 + //vea_sspn_idmt_trgt : update edu_state_cd=60,req_state_cd=40 + + VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); + + //vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO); + + //vEEduAplctDAO.delete(vEEduAplctVO); + vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); + //vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO); vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); }else if ("6-3".equals(vEPrcsDetailVO.getReqNo())) { //대상자 교육 취소 신청 반려(취소 반려-교육계속) //ve_prcs_aplct_prd : 처리 없음 - //ve_edu_aplct : 처리 없음 - //vea_aplct_detail_info : aplct_state_cd = null + //ve_edu_aplct : update aprvl_cd=60 + //vea_aplct_detail_info : 처리 없음 //vea_sspn_idmt_trgt : 처리 없음 VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); vEEduAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); - vEPrcsMIXDAO.updateAplctDetailInfo(vEPrcsDetailVO); + //vEPrcsAplctPrdDAO.delete(vEPrcsDetailVO); + + //vEEduAplctDAO.delete(vEEduAplctVO); + vEEduAplctDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); + //vEPrcsMIXDAO.deleteAplctDetailInfo(vEPrcsDetailVO); + //vEPrcsMIXDAO.updateSspnIdmtTrgtCancelNew(vEPrcsDetailVO); } return 1; @@ -383,10 +398,6 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService { @Override public List selectTrgtList4_60(VEPrcsDetailVO paramVO) throws Exception{ return vEPrcsAplctPrdDAO.selectTrgtList4_60(paramVO); - } - - public List findByAprvlQustnrAllList(VEPrcsDetailVO vEPrcsDetailVO) { - return vEPrcsAplctPrdDAO.findByAprvlQustnrAllList(vEPrcsDetailVO); } diff --git a/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdInstrMngController.java b/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdInstrMngController.java deleted file mode 100644 index 67cb8993..00000000 --- a/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdInstrMngController.java +++ /dev/null @@ -1,1571 +0,0 @@ -package kcc.ve.oprtn.cmdTrgt.web; - -import java.util.ArrayList; -import java.util.List; -import java.util.Locale; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.apache.poi.xssf.streaming.SXSSFWorkbook; -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.fdl.idgnr.EgovIdGnrService; -import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; -import kcc.com.cmm.ComDefaultCodeVO; -import kcc.com.cmm.service.EgovFileMngService; -import kcc.com.cmm.service.EgovFileMngUtil; -import kcc.com.cmm.service.impl.CmmUseDAO; -import kcc.com.cmm.spring.data.util.ExcelUtil; -import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.let.utl.fcc.service.EgovCryptoUtil; -import kcc.ve.cmm.VeInstrFeeMng; -import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO; -import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeService; -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.VEInstrDetailActvtHstryService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; -import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; -import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrMIXService; -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 CmdInstrMngController { - - private static final Logger LOGGER = LoggerFactory.getLogger(CmdInstrMngController.class); - - private final String LCTR_DIV_CD = "70"; - - //로그인 체크 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 = "vEPrcsMIXService") - private VEPrcsMIXService vEPrcsMIXService; - - //과정차시 관리 - @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 = "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 = "vEInstrFeeService") - private VEInstrFeeService vEInstrFeeService; - - //rkdtk 관리 - @Resource(name = "vEInstrMixService") - private VEInstrMixService vEInstrMixService; - - //강의설정 MIX - @Resource(name = "vELctrMIXService") - private VELctrMIXService vELctrMIXService; - - // 첨부파일 정보 - @Resource(name="vEInstrDetailActvtHstryService") - private VEInstrDetailActvtHstryService vEInstrDetailActvtHstryService; - - /* - - // 교육신청 서비스단 - @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/cmdTrgt/cndtnInstrMngList.do") - public String cndtnInstrMngList( @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(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - - //교육확정 목록 조회 - vEPrcsDetailVO.setDdlnCd("20"); - - //정렬 - System.out.println(vEPrcsDetailVO.getSearchSortCnd()); - System.out.println(vEPrcsDetailVO.getSearchSortOrd()); - if(!"".equals(vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - vEPrcsDetailVO.setOrderByQuery(vEPrcsDetailVO.getSearchSortCnd() + " " +vEPrcsDetailVO.getSearchSortOrd()); - } - - - //강사명 검색시 암호화 - if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) { - vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.encrypt(vEPrcsDetailVO.getSrchKwd3_1())); - } - - List vEPrcsDetailVOList = vEPrcsMIXService.selectPagingList4FndthInstr(vEPrcsDetailVO); - - //강사명 검색시 복호화 - if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) { - vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.decrypt(vEPrcsDetailVO.getSrchKwd3_1())); - } - - - //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())); - } - - }); - - //대상 리스트, 페이징 정보 전달 - vEPrcsDetailVOList = egovCryptoUtil.decryptvEPrcsDetailList(vEPrcsDetailVOList); - model.addAttribute("list", vEPrcsDetailVOList); - - - - - return "oprtn/cmdTrgt/cndtnInstrMngList"; - } - - /** - * 강사료 확정 처리 목록 화면 - */ - //@RequestMapping("eduInstrFeeMngList.do") - @RequestMapping("/kccadr/oprtn/cmdTrgt/eduInstrFeeMngList.do") - public String eduInstrFeeMngList( - //@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO - , ModelMap model - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - //String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model); - //if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo; - - //로그인 처리==================================== - - try { - //로그인 처리==================================== - //로그인 정보 가져오기 - - 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(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - - //교육확정 목록 조회 - vEPrcsDetailVO.setDdlnCd("20"); - - //정렬 - System.out.println(vEPrcsDetailVO.getSearchSortCnd()); - System.out.println(vEPrcsDetailVO.getSearchSortOrd()); - if(!"".equals(vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - vEPrcsDetailVO.setOrderByQuery(vEPrcsDetailVO.getSearchSortCnd() + " " +vEPrcsDetailVO.getSearchSortOrd()); - } - - - //강사명 검색시 암호화 - if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) { - vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.encrypt(vEPrcsDetailVO.getSrchKwd3_1())); - } - - List vEPrcsDetailVOList = vEPrcsMIXService.selectPagingList4FndthInstr(vEPrcsDetailVO); - - //강사명 검색시 복호화 - if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) { - vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.decrypt(vEPrcsDetailVO.getSrchKwd3_1())); - } - - - //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())); - } - - }); - - - // 강사료 계산 - //vEEduAplctVO = egovCryptoUtil.encryptVEEduAplctVOInfo(vEEduAplctVO); - //List vEEduAplctVOList = vEEduMIXService.selectTngrFeePagingList(vEEduAplctVO); - VEEduAplctVO vo = new VEEduAplctVO(); - for(int i=0; i < vEPrcsDetailVOList.size(); i++) { - //vo = egovCryptoUtil.decryptVEEduAplctVOInfo(vEEduAplctVOList.get(i)); - //System.out.println(" @@@@@@@@@@@@@ "+vo.getChrgNm()); - //vEEduAplctVOList.get(i).setChrgNm(vo.getChrgNm()); - - // 강사료 계산 - VeInstrFeeMng veInstrFeeMng = new VeInstrFeeMng(); - VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = veInstrFeeMng.VeInstrFeeMng4Fndth( - vEInstrFeeService - , vEPrcsDetailVOList.get(i).getPrcsAplctPrdOrd() - , vEPrcsDetailVOList.get(i).getUserId() - ); - vEPrcsDetailVOList.get(i).setInstrFeeSum(Integer.toString(vEInstrFeeAcmdtVO.getInstrFeeSum())); - - System.out.println("vEPrcsDetailVOList.get(i).getInstrPhone()"); - System.out.println(vEPrcsDetailVOList.get(i).getInstrPhone()); - System.out.println(vEPrcsDetailVOList.get(i).getInstrPhone()); - - } - - - //대상 리스트, 페이징 정보 전달 - vEPrcsDetailVOList = egovCryptoUtil.decryptvEPrcsDetailList(vEPrcsDetailVOList); - model.addAttribute("list", vEPrcsDetailVOList); - - System.out.println("vEPrcsDetailVOList.toString()"); - System.out.println(vEPrcsDetailVOList.toString()); - }catch(Exception ex) { - ex.printStackTrace(); - } - - return "oprtn/cmdTrgt/eduInstrFeeMngList"; - } - - /** - * 강사료 확정 처리 목록 Excel - * @param model - * @return - * @throws Exception - */ - @SuppressWarnings("rawtypes") - @RequestMapping(value = "/kccadr/oprtn/cmdTrgt/eduInstrFeeExcelDownLoad.do") - public ModelAndView eduInstrFeeExcelDownLoad( - //@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - @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(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - - //교육확정 목록 조회 - vEPrcsDetailVO.setDdlnCd("20"); - - //정렬 - System.out.println(vEPrcsDetailVO.getSearchSortCnd()); - System.out.println(vEPrcsDetailVO.getSearchSortOrd()); - if(!"".equals(vEPrcsDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - vEPrcsDetailVO.setOrderByQuery(vEPrcsDetailVO.getSearchSortCnd() + " " +vEPrcsDetailVO.getSearchSortOrd()); - } - - - //강사명 검색시 암호화 - if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) { - vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.encrypt(vEPrcsDetailVO.getSrchKwd3_1())); - } - - List vEPrcsDetailVOList = vEPrcsMIXService.selectPagingList4FndthInstr(vEPrcsDetailVO); - - //강사명 검색시 복호화 - if (!"".equals(vEPrcsDetailVO.getSrchKwd3_1())) { - vEPrcsDetailVO.setSrchKwd3_1(egovCryptoUtil.decrypt(vEPrcsDetailVO.getSrchKwd3_1())); - } - - - //3.pageing step3 - paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo); - - - model.addAttribute("paginationInfo", paginationInfo); - - vEPrcsDetailVOList = egovCryptoUtil.decryptvEPrcsDetailList(vEPrcsDetailVOList); - - - VeInstrFeeMng veInstrFeeMng = new VeInstrFeeMng(); - vEPrcsDetailVOList.forEach( vo -> { - ComDefaultCodeVO codeParam = new ComDefaultCodeVO(); - - try { - - // 강사료 계산 - VEInstrFeeAcmdtVO vEInstrFeeAcmdtVO = veInstrFeeMng.VeInstrFeeMng4Fndth4Excel(vEInstrFeeService, vo.getPrcsAplctPrdOrd(), vo.getUserId()); - - vo.setInstrFeeSum(String.format("%,d", vEInstrFeeAcmdtVO.getInstrFeeSum())); - - } - catch(Exception ex) { - System.out.println(ex.toString()); - - } - }); - - List excelData = new ArrayList<>(); - excelData.addAll(vEPrcsDetailVOList); - // 세팅값 - String title = "강사료 지급내역"; - - // 너비 - int[] width = { - 4000, 4000 - , 4000, 4000, 4000 - , 4000 - }; - - // 헤더 - String[] header = { - "교육일자", "과정명" - , "강사이름", "강사료", "교통비" - , "강사료 합계" - }; - - // 컬럼명 - String[] order = { - "EduHopeDt", "PrcsNm" - , "InstrNm", "InstrFee", "TrafficFee" - , "InstrFeeSum" - }; - - // 호출 - SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title); - model.addAttribute("locale", Locale.KOREA); - model.addAttribute("workbook", workbook); - model.addAttribute("workbookName", title); - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - modelAndView.addObject(model); - - return modelAndView; - } - - /** - * 교육실적통계 화면 - */ - @RequestMapping("/kccadr/oprtn/cmdTrgt/newEduPrfrmMngList.do") - public String newEduPrfrmMngList( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - - , HttpSession session - , ModelMap model - ) throws Exception { - - //LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; - - - //설정 년 리스트(과거~올해+1) - List selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO); - model.addAttribute("selectStngYrList", selectStngYrList); - - //차시별 정보 - VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); - vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); - List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth4Stts(vEPrcsDetailVO); - model.addAttribute("vEPrcsDetailVOList", vEPrcsDetailVOList); - - - //vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예 - - - //통계- ①검찰청별 교육 의뢰 현황(그래프 포함) - { - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no1(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List_no1 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no1); - - model.addAttribute("list_no1",selectAsgnmInfoT2List_no1); - } - - - //통계- ②월별 교육의뢰현황(그래프 포함) - { - //vEInstrDetailVODetail.setNo3("10"); /* 10-횟수, 20-인원 */ - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no2 = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no2(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List_no2 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no2); - - model.addAttribute("list_no2",selectAsgnmInfoT2List_no2); - } - - - //통계- ③대상별 교육의뢰현황(그래프 포함) - { - //vEInstrDetailVODetail.setNo3("20"); /* 10-횟수, 20-인원 */ - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no3 = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no3(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List_no3 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no3); - - model.addAttribute("list_no3",selectAsgnmInfoT2List_no3); - } - - - //통계- ④검찰청별 교육 수료 현황(그래프 포함) - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT4List_no4 = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no4(vEInstrDetailVODetail); - - model.addAttribute("list_no4",selectAsgnmInfoT4List_no4); - } - - // ⑤월별 교육이수현황(그래프 포함) - 대상이 없어서 제공안됨 - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT5List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no5(vEInstrDetailVODetail); - model.addAttribute("list_no5",selectAsgnmInfoT5List); - } - // ⑥대상별 교육이수현황(그래프 포함) - 대상이 없어서 제공안됨 - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT6List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no6(vEInstrDetailVODetail); - model.addAttribute("list_no6",selectAsgnmInfoT6List); - } - // ⑦월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계 - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - //vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT7List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no7(vEInstrDetailVODetail); - model.addAttribute("list_no7",selectAsgnmInfoT7List); - } - //통계- ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨 - /* - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no8 = vEInstrMixService.selectEduPrfrmInfo_tngr_no8(vEInstrDetailVODetail); - - //복호화 - selectAsgnmInfoT2List_no8 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no8); - - model.addAttribute("list_no8",selectAsgnmInfoT2List_no8); - } - */ - - - //통계- ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨 - /* - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no9 = vEInstrMixService.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVODetail); - - //복호화 - selectAsgnmInfoT2List_no9 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no9); - - model.addAttribute("list_no9",selectAsgnmInfoT2List_no9); - } - */ - return "oprtn/cmdTrgt/newEduPrfrmMngList"; - - - } - - /** - * @methodName : instrActvtHstrySignMngList - * @author : 이호영 - * @date : 2023.12.28 - * @description : 직인대장관리(이수증) - 기반 기소 - * @param vEInstrDetailActvtHstryVO - * @param model - * @param request - * @return - * @throws Exception - */ - @RequestMapping("/kccadr/oprtn/cmdTrgt/instrActvtHstrySignAndCmpltCrtfcMngList.do") - public String instrActvtHstrySignAndCmpltCrtfcMngList( - @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); //로그인 정보가 없으면 로그인 페이지로 이동한다. -// } - //로그인 처리==================================== - - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO); - //2. pageing step2 - vEInstrDetailActvtHstryVO = this.setPagingStep2_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO, paginationInfo); - vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); -// List vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignPagingList(vEInstrDetailActvtHstryVO); - List vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignAndCmpltCrtfcPagingList(vEInstrDetailActvtHstryVO); - - vEInstrDetailActvtHstryVOList.stream().forEach(t-> t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); - - //3.pageing step3 - paginationInfo = this.setPagingStep3_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVOList, paginationInfo); - model.addAttribute("paginationInfo", paginationInfo); - - // 검색어 복호화 - vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEInstrDetailActvtHstryVOList); - - - -// return "oprtn/cmm/instrActvtHstrySignMngList"; - return "oprtn/cmdTrgt/instrActvtHstrySignAndCmpltCrtfcMngList"; - } - - /** - * 교육실적통계 화면-개별 - */ - @RequestMapping("/kccadr/oprtn/cmdTrgt/newEduPrfrmEAMngList.do") - public String newEduPrfrmEAMngList( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - - , HttpSession session - , ModelMap model - ) throws Exception { - - //LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; - - - //설정 년 리스트(과거~올해+1) - List selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO); - model.addAttribute("selectStngYrList", selectStngYrList); - - //차시별 정보 - VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); - List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth4Stts(vEPrcsDetailVO); - model.addAttribute("vEPrcsDetailVOList", vEPrcsDetailVOList); - - - //vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예 - - - //통계- ①검찰청별 교육 의뢰 현황(그래프 포함) - { - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List_no1 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no1); - - model.addAttribute("list_no1",selectAsgnmInfoT2List_no1); - } - - - //통계- ②월별 교육의뢰현황(그래프 포함) - { - //vEInstrDetailVODetail.setNo3("10"); /* 10-횟수, 20-인원 */ - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no2 = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List_no2 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no2); - - model.addAttribute("list_no2",selectAsgnmInfoT2List_no2); - } - - - //통계- ③월별 지역별 교육인원(그래프 포함) - { - //vEInstrDetailVODetail.setNo3("20"); /* 10-횟수, 20-인원 */ - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no3 = vEInstrMixService.selectEduPrfrmInfo_csi_no3(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List_no3 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no3); - - model.addAttribute("list_no3",selectAsgnmInfoT2List_no3); - } - - - //통계- ④월별 강사종류별,강사별 교육횟수(그래프 포함) - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no4 = vEInstrMixService.selectEduPrfrmInfo_tngr_no4(vEInstrDetailVODetail); - - //복호화 - selectAsgnmInfoT2List_no4 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no4); - - model.addAttribute("list_no4",selectAsgnmInfoT2List_no4); - } - - // ⑤월별 교육대상별 교육횟수(그래프 포함) - 대상이 없어서 제공안됨 - // ⑥월별 교육대상별 교육횟수(그래프 포함) - 대상이 없어서 제공안됨 - // ⑦월별 교육대상별 교육인원(그래프 포함) - 대상이 없어서 제공안됨 - { - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no5_no_6_no7 = vEInstrMixService.selectEduPrfrmInfo_adult_no5_no6_no7(vEInstrDetailVODetail); - - //복호화 - selectAsgnmInfoT2List_no5_no_6_no7 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no5_no_6_no7); - - model.addAttribute("list_no5_no6_no7",selectAsgnmInfoT2List_no5_no_6_no7); - } - //통계- ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨 - /* - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no8 = vEInstrMixService.selectEduPrfrmInfo_tngr_no8(vEInstrDetailVODetail); - - //복호화 - selectAsgnmInfoT2List_no8 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no8); - - model.addAttribute("list_no8",selectAsgnmInfoT2List_no8); - } - */ - - - //통계- ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨 - /* - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no9 = vEInstrMixService.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVODetail); - - //복호화 - selectAsgnmInfoT2List_no9 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no9); - - model.addAttribute("list_no9",selectAsgnmInfoT2List_no9); - } - */ - return "oprtn/cmdTrgt/newEduPrfrmEAMngList"; - - - } - - /** - * 교육실적통계 Excel - 조건부기소유예 - ①검찰청별 교육 의뢰 현황(그래프 포함) - * @param model - * @return - * @throws Exception - */ - @SuppressWarnings("rawtypes") - @RequestMapping(value = "/kccadr/oprtn/cmdTrgt/eduPrfrmMngExcelDownLoad_csi_no1.do") - public ModelAndView eduPrfrmMngExcelDownLoad_csi_no1( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - , ModelMap model - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - - try { - - //통계- ①월별 횟수/교육인원(그래프 포함) - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - System.out.println("out-list-2"); - - - List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT2List); - - - // 세팅값 - String title = "교육실적통계-검찰청별 교육 의뢰 현황"; - int[] width = { - - 4000, 4000 - - }; // 너비 - - //33개 항목 - String[] header = { - - "구분" - , "의뢰(명)" - - }; - - String[] order = { - - "CodeNm" - , "Cnt" - - }; - - excelDown( - excelData, - title, - width, - header, - order, - model - ); - - }catch(Exception ep) { - ep.getStackTrace(); - } - - - modelAndView.addObject(model); - - return modelAndView; - } - - /** - * 교육실적통계 Excel - 조건부기소유예 - 2검찰청별 교육 의뢰 현황(그래프 포함) - * @param model - * @return - * @throws Exception - */ - @SuppressWarnings("rawtypes") - @RequestMapping(value = "/kccadr/oprtn/cmdTrgt/eduPrfrmMngExcelDownLoad_csi_no2.do") - public ModelAndView eduPrfrmMngExcelDownLoad_csi_no2( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - , ModelMap model - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - - try { - - //통계- ①월별 횟수/교육인원(그래프 포함) - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - System.out.println("out-list-2"); - - - selectAsgnmInfoT2List.get(12).setCodeNm("합계"); - - List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT2List); - - - // 세팅값 - String title = "교육실적통계-월별 교육 의뢰 현황"; - int[] width = { - - 4000, 4000 - - }; // 너비 - - //33개 항목 - String[] header = { - - "월" - , "의뢰(명)" - - }; - - String[] order = { - - "CodeNm" - , "Cnt" - - }; - - excelDown( - excelData, - title, - width, - header, - order, - model - ); - - }catch(Exception ep) { - ep.getStackTrace(); - } - - - modelAndView.addObject(model); - - return modelAndView; - } - - /** - * 교육실적통계 Excel - 조건부기소유예 - 3대상별 교육 의뢰 현황(그래프 포함) - * @param model - * @return - * @throws Exception - */ - @SuppressWarnings("rawtypes") - @RequestMapping(value = "/kccadr/oprtn/cmdTrgt/eduPrfrmMngExcelDownLoad_csi_no3.do") - public ModelAndView eduPrfrmMngExcelDownLoad_csi_no3( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - , ModelMap model - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - - try { - - //통계- ①월별 횟수/교육인원(그래프 포함) - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT3List = vEInstrMixService.selectEduPrfrmInfo_csi_no3(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - System.out.println("out-list-2"); - - - selectAsgnmInfoT3List.get(2).setCodeNm("합계"); - - List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT3List); - - - // 세팅값 - String title = "교육실적통계-대상별 교육 의뢰 현황"; - int[] width = { - - 4000, 4000 - - }; // 너비 - - //33개 항목 - String[] header = { - - "대상" - , "의뢰(명)" - - }; - - String[] order = { - - "CodeNm" - , "Cnt" - - }; - - excelDown( - excelData, - title, - width, - header, - order, - model - ); - - }catch(Exception ep) { - ep.getStackTrace(); - } - - - modelAndView.addObject(model); - - return modelAndView; - } - - /** - * 교육실적통계 Excel - 조건부기소유예 - 4검찰청별 교육 이수 현황(그래프 포함) - * @param model - * @return - * @throws Exception - */ - @SuppressWarnings("rawtypes") - @RequestMapping(value = "/kccadr/oprtn/cmdTrgt/eduPrfrmMngExcelDownLoad_csi_no4.do") - public ModelAndView eduPrfrmMngExcelDownLoad_csi_no4( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - , ModelMap model - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - - try { - - //통계- ①월별 횟수/교육인원(그래프 포함) - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no4(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - System.out.println("out-list-2"); - - - List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT2List); - - - // 세팅값 - String title = "교육실적통계-검찰청별 교육 이수 현황"; - int[] width = { - - 4000, 4000 - - }; // 너비 - - //33개 항목 - String[] header = { - - "구분" - , "이수(명)" - - }; - - String[] order = { - - "CodeNm" - , "Cnt" - - }; - - excelDown( - excelData, - title, - width, - header, - order, - model - ); - - }catch(Exception ep) { - ep.getStackTrace(); - } - - - modelAndView.addObject(model); - - return modelAndView; - } - - /** - * 교육실적통계 Excel - 조건부기소유예 - 5검찰청별 교육 이수 현황(그래프 포함) - * @param model - * @return - * @throws Exception - */ - @SuppressWarnings("rawtypes") - @RequestMapping(value = "/kccadr/oprtn/cmdTrgt/eduPrfrmMngExcelDownLoad_csi_no5.do") - public ModelAndView eduPrfrmMngExcelDownLoad_csi_no5( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - , ModelMap model - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - - try { - - //통계- ①월별 횟수/교육인원(그래프 포함) - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no5(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - System.out.println("out-list-2"); - - - selectAsgnmInfoT2List.get(12).setCodeNm("합계"); - - List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT2List); - - - // 세팅값 - String title = "교육실적통계-월별 교육 이수 현황"; - int[] width = { - - 4000, 4000, 4000 - - }; // 너비 - - //33개 항목 - String[] header = { - - "월" - , "이수(명)" - , "횟수" - - }; - - String[] order = { - - "CodeNm" - , "Cnt" - , "Cnt2" - - }; - - excelDown( - excelData, - title, - width, - header, - order, - model - ); - - }catch(Exception ep) { - ep.getStackTrace(); - } - - - modelAndView.addObject(model); - - return modelAndView; - } - - /** - * 교육실적통계 Excel - 조건부기소유예 - 5검찰청별 교육 이수 현황(그래프 포함) - * @param model - * @return - * @throws Exception - */ - @SuppressWarnings("rawtypes") - @RequestMapping(value = "/kccadr/oprtn/cmdTrgt/eduPrfrmMngExcelDownLoad_csi_no7.do") - public ModelAndView eduPrfrmMngExcelDownLoad_csi_no7( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - , ModelMap model - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - - try { - - //통계- ①월별 횟수/교육인원(그래프 포함) - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - //vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT7List = vEInstrMixService.selectEduPrfrmInfo_csi_no7(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - System.out.println("out-list-2"); - - - //selectAsgnmInfoT2List.get(12).setCodeNm("합계"); - - List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT7List); - - - // 세팅값 - String title = "교육실적통계-월별 교육 이수, 미이수, 연기 현황"; - int[] width = { - - 4000, 4000, 4000, 4000, 4000 - - }; // 너비 - - //33개 항목 - String[] header = { - - "월" - , "차시" - , "이수인원" - , "미이수 인원" - , "연기인원" - - }; - - String[] order = { - - "CodeNm4" - , "CodeNm3" - , "EduCd20" - , "EduCd40" - , "EduCd50" - - }; - - excelDown( - excelData, - title, - width, - header, - order, - model - ); - - }catch(Exception ep) { - ep.getStackTrace(); - } - - - modelAndView.addObject(model); - - return modelAndView; - } - - /** - * 교육실적통계 Excel - 조건부기소유예 - 3대상별 교육 이수 현황(그래프 포함) - * @param model - * @return - * @throws Exception - */ - @SuppressWarnings("rawtypes") - @RequestMapping(value = "/kccadr/oprtn/cmdTrgt/eduPrfrmMngExcelDownLoad_csi_no6.do") - public ModelAndView eduPrfrmMngExcelDownLoad_csi_no6( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - , ModelMap model - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - - try { - - //통계- ①월별 횟수/교육인원(그래프 포함) - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT3List = vEInstrMixService.selectEduPrfrmInfo_csi_no6(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - System.out.println("out-list-2"); - - - selectAsgnmInfoT3List.get(2).setCodeNm("합계"); - - List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT3List); - - - // 세팅값 - String title = "교육실적통계-대상별 교육 이수 현황"; - int[] width = { - - 4000, 4000 - - }; // 너비 - - //33개 항목 - String[] header = { - - "대상" - , "이수(명)" - - }; - - String[] order = { - - "CodeNm" - , "Cnt" - - }; - - excelDown( - excelData, - title, - width, - header, - order, - model - ); - - }catch(Exception ep) { - ep.getStackTrace(); - } - - - modelAndView.addObject(model); - - return modelAndView; - } - - ////////////////////////////////////////////////////////////////////////////////////////////////////////////// - // - // - // 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; - } - - //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 - private PaginationInfo setPagingStep1_VEInstrDetailActvtHstryVO( - 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( - 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_VEInstrDetailActvtHstryVO( - 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; - } - - - //페이징을 위한 처리 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; - } - - //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 - private PaginationInfo setPagingStep1_vEEduAplctVO( - VEEduAplctVO 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 VEEduAplctVO setPagingStep2_vEEduAplctVO( - VEEduAplctVO 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_vEEduAplctVO( - 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; - } - - @SuppressWarnings("unused") - private void excelDown( - List list, - String title, - int[] width, - String[] header, - String[] order, - ModelMap model - ){ - // 호출 - SXSSFWorkbook workbook; - try { - workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(list, header, order, width, title); - model.addAttribute("locale", Locale.KOREA); - model.addAttribute("workbook", workbook); - model.addAttribute("workbookName", title); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } -} diff --git a/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java b/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java index 82f8d707..a2ff8be2 100644 --- a/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java +++ b/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java @@ -38,11 +38,8 @@ import kcc.com.cmm.spring.data.util.ExcelUtil; import kcc.com.cmm.util.StringUtil; import kcc.com.utl.user.service.CheckFileUtil; import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.com.utl.user.service.QustnrCommonUtil; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uss.notify.service.NotifyManageService; -import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService; -import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService; @@ -60,7 +57,6 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngService; import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO; import kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.service.ExcelVO; -import kcc.ve.oprtn.qestnr.service.VEALettnQestnrMIXService; /** * 기반강화연수(관리자) @@ -178,17 +174,6 @@ public class CmdPrcsInfoMngController { @Resource(name="eduAplctGnrService") private EgovIdGnrService eduAplctGnrService; - // 설문 util - @Resource(name = "qustnrCommonUtil") - private QustnrCommonUtil qustnrCommonUtil; - - // 설문 복합 VEA_ - @Resource(name = "vEALettnQestnrMIXService") - private VEALettnQestnrMIXService vEALettnQestnrMIXService; - - @Resource(name = "egovQustnrRespondInfoService") - private EgovQustnrRespondInfoService egovQustnrRespondInfoService; - /** * 기반강화연수 과정 관리 목록 화면 */ @@ -1343,92 +1328,6 @@ public class CmdPrcsInfoMngController { model.addAttribute("instrAsgnmList", instrAsgnmList); } - - //설문 문항 정보 - try { - model = qustnrCommonUtil._qustnrQesItm( - model - , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 - , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 - , "QTMPLA_0000000000001" - , vEALettnQestnrMIXService - , egovQustnrRespondInfoService - , vEPrcsDetailVO.getPrcsAplctPrdOrd() - , "" - //, vEEduAplctVO.getEduAplctOrd() - //, vEEduAplctVO.getEduChasiOrd() - ); - - }catch(Exception ex) { - ex.printStackTrace(); - } - /* - // 설문조사 정보 - QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); - qustnrRespondInfoVO.setSiteId(VeConstants.LCTR_DIV_CD_20); - QustnrRespondInfoVO info = egovQustnrRespondInfoService.selectSiteIdQustnrTmplat(qustnrRespondInfoVO); - - // 설문조사 문항리스트 조회 - Map commandMap =new HashMap(); - commandMap.put("qestnrTmplatId", "QTMPLA_0000000000001"); - commandMap.put("qestnrId",info.getQestnrId()); //문제 ID - model.addAttribute("Comtnqustnrqesitm", egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap)); - */ - - try{ - model = qustnrCommonUtil._chasiSrvyList( - model - , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 - , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 - , vEPrcsDetailVO.getPrcsAplctPrdOrd() - , "" - //, vEEduAplctVO.getEduAplctOrd() - //, vEEduAplctVO.getEduChasiOrd() - , vEALettnQestnrMIXService - ); - - }catch(Exception ex) { - ex.printStackTrace(); - } - - - //개인별 만족도 관리 - chasiSrvyEAList - try{ - model = qustnrCommonUtil._chasiSrvyEAList( - model - , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 - , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 - , vEPrcsDetailVO.getPrcsAplctPrdOrd() - , "" - //, vEEduAplctVO.getEduAplctOrd() - //, vEEduAplctVO.getEduChasiOrd() - , vEALettnQestnrMIXService - ); - - }catch(Exception ex) { - ex.printStackTrace(); - } - - - //주관식 답변 정보 - try { - QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); - //qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd()); - qustnrRespondInfoVO.setEduChasiOrd(""); - - List subjList = egovQustnrRespondInfoService.selectSubjList(qustnrRespondInfoVO); - if (subjList.size()>=0) { - model.addAttribute("subjInfo", subjList.get(0)); - } - - - }catch(Exception ex) { - System.out.println("Exception vEEduAplctOnlnService.updateBulk"); - } - - System.out.println("=============================================chasiSrvyEAList============================================="); - - return "/oprtn/cmdTrgt/cndtnEduPrcsAplctCfnMngDetail"; } diff --git a/src/main/java/kcc/ve/oprtn/prevent/web/PreventMngController.java b/src/main/java/kcc/ve/oprtn/prevent/web/PreventMngController.java index 23d4fd37..d0f6357c 100644 --- a/src/main/java/kcc/ve/oprtn/prevent/web/PreventMngController.java +++ b/src/main/java/kcc/ve/oprtn/prevent/web/PreventMngController.java @@ -38,23 +38,15 @@ import kcc.com.cmm.spring.data.util.ExcelUtil; import kcc.com.cmm.util.StringUtil; import kcc.com.utl.user.service.CheckFileUtil; import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.com.utl.user.service.QustnrCommonUtil; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uss.notify.service.NotifyManageService; -import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService; -import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService; import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; -import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; -import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrMIXService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; @@ -65,7 +57,6 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; import kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.service.ExcelVO; -import kcc.ve.oprtn.qestnr.service.VEALettnQestnrMIXService; /** * 기반강화연수(관리자) @@ -170,33 +161,12 @@ public class PreventMngController { //파일 처리 egov @Resource(name="EgovFileMngUtil") private EgovFileMngUtil egovFileMngUtil; - + //파일 체크 util @Resource(name = "checkFileUtil") private CheckFileUtil checkFileUtil; - // 설문 util - @Resource(name = "qustnrCommonUtil") - private QustnrCommonUtil qustnrCommonUtil; - - // 설문 복합 VEA_ - @Resource(name = "vEALettnQestnrMIXService") - private VEALettnQestnrMIXService vEALettnQestnrMIXService; - - @Resource(name = "egovQustnrRespondInfoService") - private EgovQustnrRespondInfoService egovQustnrRespondInfoService; - - //강의설정 MIX - @Resource(name = "vELctrMIXService") - private VELctrMIXService vELctrMIXService; - - //rkdtk 관리 - @Resource(name = "vEInstrMixService") - private VEInstrMixService vEInstrMixService; - - // 첨부파일 정보 - @Resource(name="vEInstrDetailActvtHstryService") - private VEInstrDetailActvtHstryService vEInstrDetailActvtHstryService; + /** * 기반강화연수 과정 관리 목록 화면 @@ -681,278 +651,7 @@ public class PreventMngController { } - /** - * 교육실적통계 화면 - */ - @RequestMapping("/kccadr/oprtn/prevent/newEduPrfrmMngList.do") - public String newEduPrfrmMngList( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - - , HttpSession session - , ModelMap model - ) throws Exception { - - //LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; - - - //설정 년 리스트(과거~올해+1) - List selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO); - model.addAttribute("selectStngYrList", selectStngYrList); - - //차시별 정보 - VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); - vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); - List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth4Stts(vEPrcsDetailVO); - model.addAttribute("vEPrcsDetailVOList", vEPrcsDetailVOList); - - - //vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예 - - - /* - //통계- ①검찰청별 교육 의뢰 현황(그래프 포함) - { - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List_no1 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no1); - - model.addAttribute("list_no1",selectAsgnmInfoT2List_no1); - } - - - //통계- ②월별 교육의뢰현황(그래프 포함) - { - //vEInstrDetailVODetail.setNo3("10"); * 10-횟수, 20-인원 * - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no2 = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List_no2 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no2); - - model.addAttribute("list_no2",selectAsgnmInfoT2List_no2); - } - - - //통계- ③대상별 교육의뢰현황(그래프 포함) - { - // * 10-횟수, 20-인원 * - //vEInstrDetailVODetail.setNo3("20"); - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no3 = vEInstrMixService.selectEduPrfrmInfo_csi_no3(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List_no3 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no3); - - model.addAttribute("list_no3",selectAsgnmInfoT2List_no3); - } - - - //통계- ④검찰청별 교육 수료 현황(그래프 포함) - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT4List_no4 = vEInstrMixService.selectEduPrfrmInfo_csi_no4(vEInstrDetailVODetail); - - model.addAttribute("list_no4",selectAsgnmInfoT4List_no4); - } - */ - - // ⑤월별 교육이수현황(그래프 포함) - 대상이 없어서 제공안됨 - { - vEInstrDetailVODetail.setLctrDivCd(LCTR_DIV_CD); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT5List = vEInstrMixService.selectEduPrfrmInfo_csi_prevent_no5(vEInstrDetailVODetail); - model.addAttribute("list_no5",selectAsgnmInfoT5List); - } - - /* - // ⑥대상별 교육이수현황(그래프 포함) - 대상이 없어서 제공안됨 - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT6List = vEInstrMixService.selectEduPrfrmInfo_csi_no6(vEInstrDetailVODetail); - model.addAttribute("list_no6",selectAsgnmInfoT6List); - } - // ⑦월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계 - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - //vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT7List = vEInstrMixService.selectEduPrfrmInfo_csi_no7(vEInstrDetailVODetail); - model.addAttribute("list_no7",selectAsgnmInfoT7List); - } - */ - //통계- ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨 - /* - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no8 = vEInstrMixService.selectEduPrfrmInfo_tngr_no8(vEInstrDetailVODetail); - - //복호화 - selectAsgnmInfoT2List_no8 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no8); - - model.addAttribute("list_no8",selectAsgnmInfoT2List_no8); - } - */ - - - //통계- ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨 - /* - { - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - List selectAsgnmInfoT2List_no9 = vEInstrMixService.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVODetail); - - //복호화 - selectAsgnmInfoT2List_no9 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no9); - - model.addAttribute("list_no9",selectAsgnmInfoT2List_no9); - } - */ - return "oprtn/prevent/newEduPrfrmMngList"; - - - } - /** - * 교육실적통계 Excel - 조건부기소유예 - 5검찰청별 교육 이수 현황(그래프 포함) - * @param model - * @return - * @throws Exception - */ - @SuppressWarnings("rawtypes") - @RequestMapping(value = "/kccadr/oprtn/prevent/eduPrfrmMngExcelDownLoad_csi_no5.do") - public ModelAndView eduPrfrmMngExcelDownLoad_csi_no5( - @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO - , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail - , ModelMap model - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("excelDownloadView"); - - try { - - //통계- ①월별 횟수/교육인원(그래프 포함) - //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); - vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); - vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 - List selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_prevent_no5(vEInstrDetailVODetail); - - //복호화 - //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); - - System.out.println("out-list-2"); - - - selectAsgnmInfoT2List.get(12).setCodeNm("합계"); - - List excelData = new ArrayList<>(); - excelData.addAll(selectAsgnmInfoT2List); - - - // 세팅값 - String title = "교육실적통계-월별 교육 이수 현황"; - int[] width = { - - 4000, 4000, 4000 - - }; // 너비 - - //33개 항목 - String[] header = { - - "월" - , "이수(명)" - , "횟수" - - }; - - String[] order = { - - "CodeNm" - , "Cnt" - , "Cnt2" - - }; - - excelDown( - excelData, - title, - width, - header, - order, - model - ); - - }catch(Exception ep) { - ep.getStackTrace(); - } - - - modelAndView.addObject(model); - - return modelAndView; - } - - /** - * @methodName : instrActvtHstrySignMngList - * @author : 이호영 - * @date : 2023.12.28 - * @description : 직인대장관리(이수증) - 기반 기소 - * @param vEInstrDetailActvtHstryVO - * @param model - * @param request - * @return - * @throws Exception - */ - @RequestMapping("/kccadr/oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList.do") - public String instrActvtHstrySignAndCmpltCrtfcMngList( - @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); //로그인 정보가 없으면 로그인 페이지로 이동한다. -// } - //로그인 처리==================================== - - //1.pageing step1 - PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO); - //2. pageing step2 - vEInstrDetailActvtHstryVO = this.setPagingStep2_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO, paginationInfo); - vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); -// List vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignPagingList(vEInstrDetailActvtHstryVO); - List vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignAndCmpltCrtfcPagingList(vEInstrDetailActvtHstryVO); - - vEInstrDetailActvtHstryVOList.stream().forEach(t-> t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); - - //3.pageing step3 - paginationInfo = this.setPagingStep3_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVOList, paginationInfo); - model.addAttribute("paginationInfo", paginationInfo); - - // 검색어 복호화 - vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); - //대상 리스트, 페이징 정보 전달 - model.addAttribute("list", vEInstrDetailActvtHstryVOList); - - - -// return "oprtn/cmm/instrActvtHstrySignMngList"; - return "oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList"; - } /** * 기소유예 신청기간 등록 @@ -1623,93 +1322,6 @@ public class PreventMngController { model.addAttribute("instrAsgnmList", instrAsgnmList); } - - //설문 문항 정보 - try { - model = qustnrCommonUtil._qustnrQesItm( - model - , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 - , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 - , "QTMPLA_0000000000001" - , vEALettnQestnrMIXService - , egovQustnrRespondInfoService - , vEPrcsDetailVO.getPrcsAplctPrdOrd() - , "" - //, vEEduAplctVO.getEduAplctOrd() - //, vEEduAplctVO.getEduChasiOrd() - ); - - }catch(Exception ex) { - ex.printStackTrace(); - } - /* - // 설문조사 정보 - QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); - qustnrRespondInfoVO.setSiteId(VeConstants.LCTR_DIV_CD_20); - QustnrRespondInfoVO info = egovQustnrRespondInfoService.selectSiteIdQustnrTmplat(qustnrRespondInfoVO); - - // 설문조사 문항리스트 조회 - Map commandMap =new HashMap(); - commandMap.put("qestnrTmplatId", "QTMPLA_0000000000001"); - commandMap.put("qestnrId",info.getQestnrId()); //문제 ID - model.addAttribute("Comtnqustnrqesitm", egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap)); - */ - - try{ - model = qustnrCommonUtil._chasiSrvyList( - model - , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 - , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 - , vEPrcsDetailVO.getPrcsAplctPrdOrd() - , "" - //, vEEduAplctVO.getEduAplctOrd() - //, vEEduAplctVO.getEduChasiOrd() - , vEALettnQestnrMIXService - ); - - }catch(Exception ex) { - ex.printStackTrace(); - } - - - //개인별 만족도 관리 - chasiSrvyEAList - try{ - model = qustnrCommonUtil._chasiSrvyEAList( - model - , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 - , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 - , vEPrcsDetailVO.getPrcsAplctPrdOrd() - , "" - //, vEEduAplctVO.getEduAplctOrd() - //, vEEduAplctVO.getEduChasiOrd() - , vEALettnQestnrMIXService - ); - - }catch(Exception ex) { - ex.printStackTrace(); - } - - - //주관식 답변 정보 - try { - QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); - //qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd()); - qustnrRespondInfoVO.setEduChasiOrd(""); - - List subjList = egovQustnrRespondInfoService.selectSubjList(qustnrRespondInfoVO); - if (subjList.size()>=0) { - model.addAttribute("subjInfo", subjList.get(0)); - } - - - }catch(Exception ex) { - System.out.println("Exception vEEduAplctOnlnService.updateBulk"); - } - - System.out.println("=============================================chasiSrvyEAList============================================="); - - - return "/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail"; } @@ -3336,72 +2948,4 @@ public class PreventMngController { return p_paginationInfo; } - //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 - private PaginationInfo setPagingStep1_VEInstrDetailActvtHstryVO( - 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( - 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_VEInstrDetailActvtHstryVO( - 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; - } - - @SuppressWarnings("unused") - private void excelDown( - List list, - String title, - int[] width, - String[] header, - String[] order, - ModelMap model - ){ - // 호출 - SXSSFWorkbook workbook; - try { - workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(list, header, order, width, title); - model.addAttribute("locale", Locale.KOREA); - model.addAttribute("workbook", workbook); - model.addAttribute("workbookName", title); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } } diff --git a/src/main/resources/egovframework/spring/com/context-security.xml b/src/main/resources/egovframework/spring/com/context-security.xml index f1501519..497cdb8a 100644 --- a/src/main/resources/egovframework/spring/com/context-security.xml +++ b/src/main/resources/egovframework/spring/com/context-security.xml @@ -25,7 +25,7 @@ jdbcUsersByUsernameQuery="SELECT USER_ID, ESNTL_ID AS PASSWORD, 1 ENABLED, USER_NM, USER_ZIP, USER_ADRES, USER_EMAIL, USER_SE, '-' ORGNZT_ID, ESNTL_ID, '-' ORGNZT_NM, AUTHOR_CODE AS AUTHORITY - , '' AS mber_seq, JOIN_TYPE AS JOIN_TYPE + , '' AS mber_seq FROM COMVNUSERMASTER A INNER JOIN LETTNEMPLYRSCRTYESTBS B ON A.ESNTL_ID = B.SCRTY_DTRMN_TRGET_ID WHERE CONCAT(USER_SE, USER_ID) = ?" diff --git a/src/main/resources/egovframework/sqlmap/config/postgresql/sql-map-config-postgresql-ve.xml b/src/main/resources/egovframework/sqlmap/config/postgresql/sql-map-config-postgresql-ve.xml index baf99838..e5a1c639 100644 --- a/src/main/resources/egovframework/sqlmap/config/postgresql/sql-map-config-postgresql-ve.xml +++ b/src/main/resources/egovframework/sqlmap/config/postgresql/sql-map-config-postgresql-ve.xml @@ -3,10 +3,6 @@ "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> - - - - @@ -41,8 +37,5 @@ - - - - + diff --git a/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Postgresql.xml index ba275dc7..b20d6a91 100644 --- a/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Postgresql.xml @@ -134,9 +134,7 @@ FROM LETTNQUSTNRQESITM A WHERE 1=1 AND A.QESTNR_ID = #qestnrId# - /* - AND A.QUSTNR_TMPLAT_ID = qestnrTmplatId - */ + AND A.QUSTNR_TMPLAT_ID = #qestnrTmplatId# ORDER BY A.QESTN_SN diff --git a/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Postgresql.xml index 931b6d54..c09a453b 100644 --- a/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Postgresql.xml @@ -218,8 +218,7 @@ ]]> - CRTFC_DN_VALUE, - JOIN_TYPE ) + CRTFC_DN_VALUE ) VALUES ( #uniqId# , #emplyrId# , @@ -257,8 +256,7 @@ #snsId# , #snsEmail# , - #subDn#, - #joinType# ) + #subDn# ) diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml index ce0d3d76..206c7e9c 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml @@ -808,8 +808,6 @@ qe.QESTNR_ID AS qestnrId , /* 설문했으면 ID가 있음 */ vadi.APLCT_STATE_CD AS aplctStateCd, /* 이수 상태 */ - vadi.CNCL_CN AS cnclCn, /* 취소사유 */ - vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId, /* 취소요청파일 */ vsit.edu_state_cd AS eduStateCd, le.MBER_NM AS userNm, le.MBER_ID AS mberId, @@ -919,35 +917,24 @@ a.QUSTNR_TMPLAT_ID , a.SITE_ID , - a.QESTNR_ID as QESTNR_ID_10 , - null as QESTNR_ID_20 , - null as QESTNR_ID_30 , - a.qustnr_bgnde , - a.qustnr_endde - - /* MAX(CASE WHEN a.site_id_cd = '10' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_10, MAX(CASE WHEN a.site_id_cd = '20' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_20, - MAX(CASE WHEN a.site_id_cd = '30' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30 - */ + MAX(CASE WHEN a.site_id_cd = '30' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30 FROM LETTNQESTNRINFO a WHERE a.SITE_ID = #siteId# AND a.SITE_ID_CD IN ('10', '20', '30') - - /* - - AND TO_CHAR(NOW(), 'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde, '2000.01.01') AND COALESCE(a.qustnr_endde, '9999.12.31') - + AND TO_CHAR(NOW(), + 'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde, + '2000.01.01') + AND COALESCE(a.qustnr_endde, + '9999.12.31') GROUP BY a.QUSTNR_TMPLAT_ID , - a.SITE_ID - */ - - ) I ON - (vpap.edu_strt_pnttm between coalesce(I.qustnr_bgnde, '20000101') and coalesce(I.qustnr_endde,'99991231')) + a.SITE_ID ) I ON + (1 = 1) diff --git a/src/main/resources/egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Postgresql.xml deleted file mode 100644 index 5527896b..00000000 --- a/src/main/resources/egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Postgresql.xml +++ /dev/null @@ -1,3173 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/main/resources/egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Postgresql.xml index 116dd1a1..03381c6c 100644 --- a/src/main/resources/egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Postgresql.xml @@ -147,9 +147,7 @@ lettnqustnrrespondinfo b WHERE b.edu_aplct_ord=#eduAplctOrd# - /* - AND b.edu_chasi_ord=eduChasiOrd - */ + AND b.edu_chasi_ord=#eduChasiOrd# GROUP BY b.QUSTNR_TMPLAT_ID , b.QESTNR_ID @@ -162,22 +160,14 @@ AND a.site_id_cd = #siteIdCd# )b - on(1=1) - , ve_prcs_aplct_prd c + on(1=1) WHERE 1 =1 - AND A.SITE_ID = #siteId# - AND COALESCE(A.site_id_cd, '10')=#siteIdCd# - - AND c.prcs_aplct_prd_ord=#eduAplctOrd# - AND c.edu_strt_pnttm between coalesce(a.qustnr_bgnde, '20000101') and coalesce(a.qustnr_endde, '99991231') - - /* AND to_char(NOW(), 'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde,'2000.01.01') AND COALESCE(a.qustnr_endde,'9999.12.31') - */ - + AND A.SITE_ID = #siteId# + AND COALESCE(A.site_id_cd, '10')=#siteIdCd# ORDER BY A.QESTNR_ID DESC LIMIT 1 @@ -240,42 +230,30 @@ SELECT c02.* FROM ( - SELECT - - c00.qestnr_id , - c00.qustnr_qesitm_id , - max(c00.qustnr_rslt_id) as qustnr_rslt_id + c00.qustnr_tmplat_id + , c00.qestnr_id + , c00.qustnr_qesitm_id + , max(c00.qustnr_rslt_id) AS qustnr_rslt_id FROM LETTNQESTNRRSLTDetail c00 - , ve_edu_aplct d00 WHERE - d00.prcs_ord = #eduAplctOrd# - and d00.EDU_APLCT_ORD=c00.edu_aplct_ord - /* - and c00.EDU_CHASI_ORD = '' - */ + c00.EDU_APLCT_ORD = #eduAplctOrd# + AND c00.EDU_CHASI_ORD = #eduChasiOrd# GROUP BY - - c00.qestnr_id , - c00.qustnr_qesitm_id - + c00.qustnr_tmplat_id + , c00.qestnr_id + , c00.qustnr_qesitm_id )c01 , LETTNQESTNRRSLTDetail c02 - WHERE 1=1 - /* - c01.qustnr_tmplat_id=c02.qustnr_tmplat_id - */ + WHERE c01.qustnr_tmplat_id=c02.qustnr_tmplat_id AND c01.qestnr_id=c02.qestnr_id AND c01.qustnr_qesitm_id=c02.qustnr_qesitm_id AND c01.qustnr_rslt_id=c02.qustnr_rslt_id ) c on( - 1=1 - /* b.QUSTNR_TMPLAT_ID =c.QUSTNR_TMPLAT_ID - */ AND b.QESTNR_ID =c.QESTNR_ID AND b.QUSTNR_QESITM_ID =c.QUSTNR_QESITM_ID @@ -309,10 +287,7 @@ LEFT OUTER JOIN LETTNQUSTNRRESPONDINFO e on ( - 1=1 - /* - d.QUSTNR_TMPLAT_ID =e.QUSTNR_TMPLAT_ID - */ + d.QUSTNR_TMPLAT_ID =e.QUSTNR_TMPLAT_ID AND d.QESTNR_ID =e.QESTNR_ID AND d.QUSTNR_RESPOND_ID =e.QUSTNR_RESPOND_ID AND d.EDU_APLCT_ORD = e.EDU_APLCT_ORD @@ -346,10 +321,7 @@ )F on( - 1=1 - /* b.QUSTNR_TMPLAT_ID =f.QUSTNR_TMPLAT_ID - */ AND b.QESTNR_ID =f.QESTNR_ID AND b.QUSTNR_QESITM_ID =f.QUSTNR_QESITM_ID @@ -359,9 +331,7 @@ WHERE a.site_id=#siteId# AND COALESCE(a.SITE_ID_CD,'10') =#siteIdCd# - /* - AND b.QUSTNR_TMPLAT_ID =a.QUSTNR_TMPLAT_ID - */ + AND b.QUSTNR_TMPLAT_ID =a.QUSTNR_TMPLAT_ID AND b.QESTNR_ID =a.QESTNR_ID diff --git a/src/main/webapp/WEB-INF/jsp/main/EgovMainList.jsp b/src/main/webapp/WEB-INF/jsp/main/EgovMainList.jsp index 251838a6..4f2c30f2 100644 --- a/src/main/webapp/WEB-INF/jsp/main/EgovMainList.jsp +++ b/src/main/webapp/WEB-INF/jsp/main/EgovMainList.jsp @@ -53,6 +53,7 @@ function fncGoDetail(prcsAplctPrdOrd, url){ <%-- =========================================== 조건부 기소유예 시작 ============================================ --%> +
조건부기소유예

조건부기소유예 대상자 목록 현황

@@ -148,6 +149,7 @@ function fncGoDetail(prcsAplctPrdOrd, url){ <%-- =========================================== 시정명령 시작 ============================================ --%> +
시정명령

시정명령 대상자 정보 현황

@@ -243,6 +245,7 @@ function fncGoDetail(prcsAplctPrdOrd, url){ <%-- =========================================== 예방교육 시작 ============================================ --%> +
예방교육

과정신청현황

diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cmdTrgt/newEduPrfrmMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cmdTrgt/newEduPrfrmMngList.jsp deleted file mode 100644 index fc4da997..00000000 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cmdTrgt/newEduPrfrmMngList.jsp +++ /dev/null @@ -1,1304 +0,0 @@ - -<%@ 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="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" %> - -<% - /** - * @Class Name : newEduPrfrmMngList.jsp - * @Description : 교육신청관리 > 교육실적통계 (new 2024-01-10) - * @Modification Information - * @ - * @ 수정일 수정자 수정내용 - * @ ------- -------- --------------------------- - * @ 2021.12.14 조용준 최초 생성 - * @author 조용준 - * @since 2021.12.14 - * @version 1.0 - * @see - * - */ -%> - - - - - - -교육확정관리 - - - - - " /> - " /> - - - -
-
- -
-

교육실적통계

-
    -
  • -
  • -

    조건부기소유예관리

    -
  • -
  • 교육실적통계
  • -
-
- - -
- -
-
-
-

구분

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

- ①특허청 교육 의뢰 현황 -

-
- - - -
-
- - - - - - - - - - - -
-
-
- -
- - - -
- - -<%-- --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
구분의뢰(명)
-
- - - - -
- -

- ②월별 교육 의뢰 현황 -

-
- - - -
-
- - - - - - - - - - - -
-
-
- -
- - - -
- - -<%-- --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
구분 - - 합계 - ${list.codeNm}월 - - -
의뢰(명)
-
- - - -
- -

- ③대상별 교육 의뢰 현황 -

-
- - - -
-
- - - - - - - - - - - -
-
-
- -
- - - -
- - -<%-- --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
구분 - - 합계 - ${list.codeNm} - - -
의뢰(명)
-
- - - - -
- -

- ④특허청별 교육 이수 현황 -

-
- - - -
-
- - - - - - - - - - - -
-
-
- -
- - - -
- - -<%-- --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - -
구분이수(명)
-
- - - - -
- -

- ⑤월별 교육 이수 현황 -

-
- - - -
-
- - - - - - - - - - - -
-
-
- -
- - - -
- - -<%-- --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
구분 - - 합계 - ${list.codeNm}월 - - -
이수(명)
횟수
-
- - - - -
- -

- ⑥대상별 교육 이수 현황 -

-
- - - -
-
- - - - - - - - - - - -
-
-
- -
- - - -
- - -<%-- --%> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
구분 - - 합계 - ${list.codeNm} - - -
이수(명)
-
- - - - - - - - - - -
-
-
-
-
- - - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.jsp index bec36544..2ea0c479 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail.jsp @@ -924,37 +924,37 @@ - - + +

- ${list.cnclCn} + ${list.aplctCn}
- +
- + 취소승인

- ${list.cnclCn} + ${list.aplctCn}
- +
- + 취소반려

- ${list.cnclCn} + ${list.aplctCn}
- +
@@ -1108,51 +1108,51 @@

교육 내용에 대한 전반적 만족도 평가

- - -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> - - - - - - -<%-- "> --%> -<%-- --%> - - - - - - - - - - - -<%-- "> --%> -<%-- --%> - - - - - - - -<%-- --%> -<%-- --%> - - - -<%-- --%> - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

참석자

+
+ "> + + +

응답율

+
-
+

응답자

+
+ "> + + +

무응답

+
-
등록된 평가문항이 없습니다.
+
@@ -1317,7 +1317,7 @@ - + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp index e403c254..e10e3810 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp @@ -845,37 +845,37 @@ --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> - - - - - - -<%-- "> --%> -<%-- --%> - - - - - - - - - - - -<%-- "> --%> -<%-- --%> - - - - - - - -<%-- --%> -<%-- --%> - - - -<%-- --%> - - - -
-
- - + +

- ${list.cnclCn} + ${list.aplctCn}
- +
- + 취소승인

- ${list.cnclCn} + ${list.aplctCn}
- +
- + 취소반려

- ${list.cnclCn} + ${list.aplctCn}
- +
@@ -962,8 +962,7 @@ - -
+
@@ -1017,229 +1016,7 @@ <%-- --%>
- - - - -
-

교육 내용에 대한 전반적 만족도 평가

-
- - -<%-- --%> -<%--
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
평가문항매우만족만족보통불만족매우불만족
- ${status1.count}) - - - - - - - - - - -
-
-
- - - - -
- - - - - - - - - - - - - - - - -
기타의견
기타의견
-
- -
-
-
- -
-
-
- -
-
- - - - - - - - -<%-- --%> - - -
-
- - - - - - - - - - - - - - - - - - - -
-
-
- - -
-
- - - - - - - - - - - - - - - - - - -
-
-
-
- - +
diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList.jsp deleted file mode 100644 index 8642c40f..00000000 --- a/src/main/webapp/WEB-INF/jsp/oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList.jsp +++ /dev/null @@ -1,249 +0,0 @@ - -<%@ 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="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %> -<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> -<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%> - -<% - /** - * @Class Name : instrActvtHstrySignMngList.jsp - * @Description : 운영관리 > 직인대장관리 - * @Modification Information - * @ - * @ 수정일 수정자 수정내용 - * @ ------- -------- --------------------------- - * @ 2022.12.7 안주영 최초 생성 - * @author 안주영 - * @since 2022.2.7 - * @version 1.0 - * @see - * - */ -%> - - - - - - 직인대장관리(이수증) - - -
- -
-
- - " /> - " /> - -
-
- - -
-

직인대장관리(이수증) 목록

-
    -
  • -
  • -

    운영관리

    -
  • -
  • 직인대장관리(이수증)
  • -
-
- - -
- -
- -
-
-

발급일자

-
-
-
- -
- ~ -
- -
- -
-
-
-
-

성명

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

총 건수 :

-
- -
-
- - -
- - - - - - - - - - - - - - - - - - - - - - - - -<%-- --%> - - - - - - - - - - - - - - - -
번호항목문서번호과정명교육일시성명발급일자
- - - - - 실무역량- - 기소유예- - - - - - - - - - -
-
- - -
- -
- -
-
-
-
-
-
-
-
-
-
-
- - -
- - - diff --git a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp index 6ff3bbb6..af46bc9d 100644 --- a/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/com/webCommonHeader.jsp @@ -91,7 +91,14 @@
- + + + + + + + +
diff --git a/src/main/webapp/WEB-INF/jsp/web/com/webLayout.jsp b/src/main/webapp/WEB-INF/jsp/web/com/webLayout.jsp index d8078f7b..966c4c3f 100644 --- a/src/main/webapp/WEB-INF/jsp/web/com/webLayout.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/com/webLayout.jsp @@ -76,7 +76,7 @@ - + <%-- --%> - - -
-
" method="post"> + + + " method="post"> + +
+ +
" method="post">
-
- - -
- - - " /> - " /> + +
+ +
+
+ +
+
+ +
+
+
+

마이페이지

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

교육현황

-
-
    - <%--
  • 신청중 강의

  • --%> -
  • 신청중 강의

  • - <%--
  • 수강중 강의

  • --%> -
  • 수강중 강의

  • - <%--
  • 종료된 강의

  • --%> -
  • 종료된 강의

  • -
+ -
-
-
교육 신청 목록
-
-
- -
-
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
교육 신청 목록 - 교육과정, 교육일자, 신청결과, 설문조사등의 정보제공
구분교육과정교육일자신청결과설문조사이수증
- - ', '', '');" onkeypress="if(event.keyCode == 13){fncGoDetail('', '', '');}" style="cursor:pointer;" tabindex="0"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 대상설문없음 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 교육완료 - - - - - - -
-
- -
- - -
- -
- diff --git a/src/main/webapp/visitEdu/usr/publish/list.html b/src/main/webapp/visitEdu/usr/publish/list.html index c24b7a5d..6f1faf2f 100644 --- a/src/main/webapp/visitEdu/usr/publish/list.html +++ b/src/main/webapp/visitEdu/usr/publish/list.html @@ -57,18 +57,11 @@

교육신청

-
- -
-
    -
  • -
  • -
+
    +
  • +
  • +
@@ -163,7 +156,7 @@ - ' + } + + $(".cont_tit").append(titleText); diff --git a/src/main/webapp/visitEdu/usr/publish/script/duetdatepicker.js b/src/main/webapp/visitEdu/usr/publish/script/duetdatepicker.js index d86b6406..5741e3dd 100644 --- a/src/main/webapp/visitEdu/usr/publish/script/duetdatepicker.js +++ b/src/main/webapp/visitEdu/usr/publish/script/duetdatepicker.js @@ -449,103 +449,110 @@ var startDateNum = []; setTimeout(function(){ for (var i = 2; i 0 && arguments[0] !== undefined ? arguments[0] : "" - var createDate = arguments.length > 1 ? arguments[1] : undefined - var matches = value.match(DATE_FORMAT) + if (startDateNum[i]){ + startDateNum[i].dateAdapter = { + parse: function parse() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "" + var createDate = arguments.length > 1 ? arguments[1] : undefined + var matches = value.match(DATE_FORMAT) - if (matches) { - return createDate(matches[3], matches[2], matches[1]) + if (matches) { + return createDate(matches[3], matches[2], matches[1]) + } + }, + format: function format(date) { + if (date.getMonth() < 9) { + if (date.getDate() < 10) { + return "" + .concat(date.getFullYear(), ".") + .concat('0', date.getMonth() + 1, ".") + .concat('0', date.getDate()) + } else { + return "" + .concat(date.getFullYear(), ".") + .concat('0', date.getMonth() + 1, ".") + .concat(date.getDate()) + } + } else { + if (date.getDate() < 10) { + return "" + .concat(date.getFullYear(), ".") + .concat(date.getMonth() + 1, ".") + .concat('0', date.getDate()) + } else { + return "" + .concat(date.getFullYear(), ".") + .concat(date.getMonth() + 1, ".") + .concat(date.getDate()) + } + } + }, } - }, - format: function format(date) { - if (date.getMonth() < 9) { - if (date.getDate() < 10) { - return "" - .concat(date.getFullYear(), ".") - .concat('0', date.getMonth() + 1, ".") - .concat('0', date.getDate()) - } else { - return "" - .concat(date.getFullYear(), ".") - .concat('0', date.getMonth() + 1, ".") - .concat(date.getDate()) - } - } else { - if (date.getDate() < 10) { - return "" - .concat(date.getFullYear(), ".") - .concat(date.getMonth() + 1, ".") - .concat('0', date.getDate()) - } else { - return "" - .concat(date.getFullYear(), ".") - .concat(date.getMonth() + 1, ".") - .concat(date.getDate()) - } - } - }, - } - - // 달력 플러그인 실행 - startDateNum[i].localization = { - placeholder: '시작날짜를 입력하세요', - selectedDateMessage: 'Selected date is', - prevMonthLabel: '이전 달 보기', - nextMonthLabel: '다음 달 보기', - monthSelectLabel: '달 선택', - yearSelectLabel: '년도 선택', - closeLabel: '달력 닫기', - dayNames: ['일', '월', '화', '수', '목', '금', '토'], - monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], - monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], - identifier: "searchStartDt", - name: "searchStartDt" - } - - // 달력 닫았을 때 input, input[type=hidden]에 value 값 넣어주기 - startDateNum[i].addEventListener("duetClose", function (e) { - startDt = e.target; - startDtVal = e.target.value; - startSub = startDtVal.replace(/\-/g, ''); - var inputName = $(this).attr("name"); - $(".startDate").each(function(idx,itm){ - $(this).find(".duet-date__input").attr("id", inputName+idx); - $(this).find(".duet-date__input").attr("name", inputName); - $(this).find(".duet-date__input").attr("value", startSub); - $(this).find(".duet-date__input").next().attr("name", inputName+i+"_submit"); - $(this).find(".duet-date__input").next().attr("value", startSub); + + // 달력 플러그인 실행 + startDateNum[i].localization = { + placeholder: '시작날짜를 입력하세요', + selectedDateMessage: 'Selected date is', + prevMonthLabel: '이전 달 보기', + nextMonthLabel: '다음 달 보기', + monthSelectLabel: '달 선택', + yearSelectLabel: '년도 선택', + closeLabel: '달력 닫기', + dayNames: ['일', '월', '화', '수', '목', '금', '토'], + monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], + monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], + identifier: "searchStartDt", + name: "searchStartDt" + } + + // 달력 닫았을 때 input, input[type=hidden]에 value 값 넣어주기 + startDateNum[i].addEventListener("duetClose", function (e) { + startDt = e.target; + startDtVal = e.target.value; + startSub = startDtVal.replace(/\-/g, ''); + var inputName = $(this).attr("name"); + $(".startDate").each(function(idx,itm){ + $(this).find(".duet-date__input").attr("id", inputName+idx); + $(this).find(".duet-date__input").attr("name", inputName); + $(this).find(".duet-date__input").attr("value", startSub); + $(this).find(".duet-date__input").next().attr("name", inputName+i+"_submit"); + $(this).find(".duet-date__input").next().attr("value", startSub); + }); }); - }); - - //날짜 값 바꼈을 때 시작일, 종료일 찾아 alert 띄우기 - startDateNum[i].addEventListener("duetChange", function (e) { - startDt = e.target; - startDtVal = e.target.value; - var n = i-1; - var endDtVal = $(".endDate"+n).find(".duet-date__input").val(); - endDtVal = endDtVal.replace(/[.]/gi, ''); - startDtVal = startDtVal.replace(/[.]/gi, ''); - if(startDtVal > endDtVal && endDtVal != ""){ - e.target.value = ""; - alert("시작일이 종료일보다 클 수 없습니다."); - }else{} - }); - - setTimeout(function(){ - //$("duet-date-picker .duet-date__input").attr("title","교육희망일을 YYYY.MM.DD 형식으로 입력해주세요11111"); - $("duet-date-picker .duet-date__input").each(function(idx,itm){ - idx+=1; - $(itm).attr("name","searchStartDt"+idx); - $(itm).attr("id","searchStartDt"+idx); + + //날짜 값 바꼈을 때 시작일, 종료일 찾아 alert 띄우기 + startDateNum[i].addEventListener("duetChange", function (e) { + startDt = e.target; + startDtVal = e.target.value; + var n = i-1; + var endDtVal = $(".endDate"+n).find(".duet-date__input").val(); + endDtVal = endDtVal.replace(/[.]/gi, ''); + startDtVal = startDtVal.replace(/[.]/gi, ''); + if(startDtVal > endDtVal && endDtVal != ""){ + e.target.value = ""; + alert("시작일이 종료일보다 클 수 없습니다."); + }else{} }); - $("duet-date-picker .duet-date__input").attr('onkeydown','this.value=dateSetting(this.value);'); - },100) + + setTimeout(function(){ + //$("duet-date-picker .duet-date__input").attr("title","교육희망일을 YYYY.MM.DD 형식으로 입력해주세요11111"); + $("duet-date-picker .duet-date__input").each(function(idx,itm){ + idx+=1; + $(itm).attr("name","searchStartDt"+idx); + $(itm).attr("id","searchStartDt"+idx); + }); + $("duet-date-picker .duet-date__input").attr('onkeydown','this.value=dateSetting(this.value);'); + },100) - startDateNum[i].addEventListener("duetFocus", function (e) { - calendarSetting(); - }); + startDateNum[i].addEventListener("duetFocus", function (e) { + calendarSetting(); + }); + } + + + + + } },1000) @@ -554,103 +561,106 @@ var endDateNum = []; setTimeout(function(){ for (var i = 2; i 0 && arguments[0] !== undefined ? arguments[0] : "" - var createDate = arguments.length > 1 ? arguments[1] : undefined - var matches = value.match(DATE_FORMAT) + if (endDateNum[i]){ + endDateNum[i].dateAdapter = { + parse: function parse() { + var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "" + var createDate = arguments.length > 1 ? arguments[1] : undefined + var matches = value.match(DATE_FORMAT) - if (matches) { - return createDate(matches[3], matches[2], matches[1]) + if (matches) { + return createDate(matches[3], matches[2], matches[1]) + } + }, + format: function format(date) { + if (date.getMonth() < 9) { + if (date.getDate() < 10) { + return "" + .concat(date.getFullYear(), ".") + .concat('0', date.getMonth() + 1, ".") + .concat('0', date.getDate()) + } else { + return "" + .concat(date.getFullYear(), ".") + .concat('0', date.getMonth() + 1, ".") + .concat(date.getDate()) + } + } else { + if (date.getDate() < 10) { + return "" + .concat(date.getFullYear(), ".") + .concat(date.getMonth() + 1, ".") + .concat('0', date.getDate()) + } else { + return "" + .concat(date.getFullYear(), ".") + .concat(date.getMonth() + 1, ".") + .concat(date.getDate()) + } + } + }, } - }, - format: function format(date) { - if (date.getMonth() < 9) { - if (date.getDate() < 10) { - return "" - .concat(date.getFullYear(), ".") - .concat('0', date.getMonth() + 1, ".") - .concat('0', date.getDate()) - } else { - return "" - .concat(date.getFullYear(), ".") - .concat('0', date.getMonth() + 1, ".") - .concat(date.getDate()) - } - } else { - if (date.getDate() < 10) { - return "" - .concat(date.getFullYear(), ".") - .concat(date.getMonth() + 1, ".") - .concat('0', date.getDate()) - } else { - return "" - .concat(date.getFullYear(), ".") - .concat(date.getMonth() + 1, ".") - .concat(date.getDate()) - } + + // 달력 플러그인 실행 + endDateNum[i].localization = { + placeholder: '종료날짜를 입력하세요', + selectedDateMessage: 'Selected date is', + prevMonthLabel: '이전 달 보기', + nextMonthLabel: '다음 달 보기', + monthSelectLabel: '달 선택', + yearSelectLabel: '년도 선택', + closeLabel: '달력 닫기', + dayNames: ['일', '월', '화', '수', '목', '금', '토'], + monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], + monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], + identifier: "searchEndDt", + name: "searchEndDt" } - }, + + // 달력 닫았을 때 input, input[type=hidden]에 value 값 넣어주기 + endDateNum[i].addEventListener("duetClose", function (e) { + endDt = e.target; + endDtVal = e.target.value; + endSub = endDtVal.replace(/\-/g, ''); + var inputName = $(this).attr("name"); + $(".endDate").each(function(idx,itm){ + $(this).find(".duet-date__input").attr("id", inputName+idx); + $(this).find(".duet-date__input").attr("name", inputName); + $(this).find(".duet-date__input").attr("value", endSub); + $(this).find(".duet-date__input").next().attr("name", inputName+i+"_submit"); + $(this).find(".duet-date__input").next().attr("value", endSub); + }); + }); + + //날짜 값 바꼈을 때 시작일, 종료일 찾아 alert 띄우기 + endDateNum[i].addEventListener("duetChange", function (e) { + endDt = e.target; + endDtVal = e.target.value; + var n = i-1 + var startDtVal = $(".startDate"+n).find(".duet-date__input").val(); + startDtVal = startDtVal.replace(/[.]/gi, ''); + endDtVal = endDtVal.replace(/[.]/gi, ''); + //console.log("2",startDtVal,endDtVal); + if(endDtVal < startDtVal){ + e.target.value = ""; + alert("종료일이 시작일보다 작을 수 없습니다."); + }else{} + }); + + setTimeout(function(){ + $("duet-date-picker .duet-date__input").each(function(idx,itm){ + idx+=1; + $(itm).attr("name","searchEndDt"+idx); + $(itm).attr("id","searchEndDt"+idx); + }); + $("duet-date-picker .duet-date__input").attr('onkeydown','this.value=dateSetting(this.value);'); + },100) + + endDateNum[i].addEventListener("duetFocus", function (e) { + calendarSetting(); + }); } - - // 달력 플러그인 실행 - endDateNum[i].localization = { - placeholder: '종료날짜를 입력하세요', - selectedDateMessage: 'Selected date is', - prevMonthLabel: '이전 달 보기', - nextMonthLabel: '다음 달 보기', - monthSelectLabel: '달 선택', - yearSelectLabel: '년도 선택', - closeLabel: '달력 닫기', - dayNames: ['일', '월', '화', '수', '목', '금', '토'], - monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], - monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], - identifier: "searchEndDt", - name: "searchEndDt" - } - - // 달력 닫았을 때 input, input[type=hidden]에 value 값 넣어주기 - endDateNum[i].addEventListener("duetClose", function (e) { - endDt = e.target; - endDtVal = e.target.value; - endSub = endDtVal.replace(/\-/g, ''); - var inputName = $(this).attr("name"); - $(".endDate").each(function(idx,itm){ - $(this).find(".duet-date__input").attr("id", inputName+idx); - $(this).find(".duet-date__input").attr("name", inputName); - $(this).find(".duet-date__input").attr("value", endSub); - $(this).find(".duet-date__input").next().attr("name", inputName+i+"_submit"); - $(this).find(".duet-date__input").next().attr("value", endSub); - }); - }); - //날짜 값 바꼈을 때 시작일, 종료일 찾아 alert 띄우기 - endDateNum[i].addEventListener("duetChange", function (e) { - endDt = e.target; - endDtVal = e.target.value; - var n = i-1 - var startDtVal = $(".startDate"+n).find(".duet-date__input").val(); - startDtVal = startDtVal.replace(/[.]/gi, ''); - endDtVal = endDtVal.replace(/[.]/gi, ''); - //console.log("2",startDtVal,endDtVal); - if(endDtVal < startDtVal){ - e.target.value = ""; - alert("종료일이 시작일보다 작을 수 없습니다."); - }else{} - }); - - setTimeout(function(){ - $("duet-date-picker .duet-date__input").each(function(idx,itm){ - idx+=1; - $(itm).attr("name","searchEndDt"+idx); - $(itm).attr("id","searchEndDt"+idx); - }); - $("duet-date-picker .duet-date__input").attr('onkeydown','this.value=dateSetting(this.value);'); - },100) - - endDateNum[i].addEventListener("duetFocus", function (e) { - calendarSetting(); - }); } },1000) diff --git a/src/main/webapp/visitEdu/usr/publish/style_guide.html b/src/main/webapp/visitEdu/usr/publish/style_guide.html new file mode 100644 index 00000000..18896a94 --- /dev/null +++ b/src/main/webapp/visitEdu/usr/publish/style_guide.html @@ -0,0 +1,535 @@ + + + + + + + Document + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+

+

최종 수정일 : 2025.09.25

+
+ +
+
    +
  • +
  • +
  • +
  • +
  • +
+
+

컬러

+ +
+ + Color +
    +
  • +
    +

    #396ac4

    +
  • +
  • +
    +

    #1e4aa4

    +
  • +
  • +
    +

    #01a3cc

    +
  • +
+ + Text Color +
    +
  • +
    +

    #333333

    +
  • +
  • +
    +

    #555555

    +
  • +
  • +
    +

    #7c7c7c

    +
  • +
  • +
    +

    #2e4677

    +
  • +
  • +
    +

    #dc1818

    +
  • +
+ + Line Color +
    +
  • +
    +

    #858686

    +
  • +
  • +
    +

    #e5e5e5

    +
  • +
  • +
    +

    #eeeeee

    +
  • +
+ + Background Color +
    +
  • +
    +

    #f3f3f4

    +
  • +
  • +
    +

    #f8f9fa

    +
  • +
+ +
+ + +
+ Button +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+ + + +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+ + +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+ + +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+ +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+ +
+
+ + +
+ Line tab +
    +
  • +
  • +
+ + Fill tab +
    +
  • +
  • +
+
+ + +
+ 리스트형 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육구분과정명신청기간교육일자신청자/정원상태교육신청
+

비대면

+
+ [2025-57] 상표권 교육조건부 기소유예 교육 + +

신청기간2025.07.25~2025.07.31

+
+

교육일자2025.08.21

+
+

신청자/정원5/40

+
+

상태접수중

+
+

비대면

+
+ [2025-57] 상표권 교육조건부 기소유예 교육 + +

신청기간2025.07.25~2025.07.31

+
+

교육일자2025.08.21

+
+

신청자/정원5/40

+
+

상태접수중

+
+
+ 리스트 상세 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
교육구분비대면
과정비대면 교육
과정명[2025-57] 상표권 교육조건부 기소유예 교육
신청기간2025.07.21~2025.07.25
교육장소서울특별시 강남구 테헤란로131 (역삼동, 한국지식재산센터 6층)
교육일자2025.08.02
상세교육과정 + 한국과 일본에 진출한 기업의 지재권 역량을 강화하고 협력 기반을 마련하기 위해 + 각국 진출 기업 관계자를 대상으로 지식재산권 교육과정을 운영합니다. + + ㅇ 교육 주제 : 일본진출 한국기업 지식재산권 교육과정 + ㅇ 교육 일시 : 2025년 9월 4일(목), 13:30~16:30 + ㅇ 교육 장소 : 일본 도쿄 JETRO 5A회의실 (대면강의+온라인 송출) + ㅇ 신청 기간 : 2025년 8월 26일 까지 + + 많은 관심과 신청 부탁드립니다. +
정원40
상태접수중
첨부파일상표권 교육조건부 기소유예 교육.hwp
+
+
+
    + Input +
      +
    • +
    • +
    • +
      +
      + + +
      +
      +
    • +
    • +
      +
      + + +
      +
      +
    • +
    • +
      +
      + +
      + + + ~ + + + +
      + + +
      +
      +
    • +
    • +
      +
      + +
      + + + ~ + + + +
      + + +
      +
      +
    • +
    + Select +
      +
    • +
        +
      • +
      • +
      • +
      +
    • +
    • +
        +
      • +
      • +
      • +
      +
    • +
    +
+
+
+
+ + + + + + + \ No newline at end of file