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 e6e26b26..45691dc2 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 @@ -115,6 +115,7 @@ public interface VEInstrMixService { List selectInstrExcelList(VEInstrDetailVO vEInstrDetailVO); + //청소년 통계 //교육실정통계- ①월별 횟수/교육인원(그래프 포함) List selectEduPrfrmInfo_tngr_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception; @@ -129,4 +130,9 @@ public interface VEInstrMixService { //교육실정통계- ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함) List selectEduPrfrmInfo_tngr_no9(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + + //성인 통계 + //교육실정통계- ⑤월별 교육대상별 교육횟수(그래프 포함),⑥월별 교육대상별 교육횟수(그래프 포함),⑦월별 교육대상별 교육인원(그래프 포함) + List selectEduPrfrmInfo_adult_no5_no6_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 184836b5..ba90d976 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 @@ -275,5 +275,12 @@ public class VEInstrMixDAO extends EgovAbstractDAO { public List selectEduPrfrmInfo_tngr_no9(VEInstrDetailVO vEInstrDetailVO) throws Exception { List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no9", vEInstrDetailVO); return tlist; - } + } + + //교육실정통계- ⑤월별 교육대상별 교육횟수(그래프 포함),⑥월별 교육대상별 교육횟수(그래프 포함),⑦월별 교육대상별 교육인원(그래프 포함) + public List selectEduPrfrmInfo_adult_no5_no6_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_adult_no5_no6_no7", vEInstrDetailVO); + return tlist; + } + } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixServiceImpl.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixServiceImpl.java index 414a5e50..2f644bb0 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixServiceImpl.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixServiceImpl.java @@ -201,7 +201,7 @@ public class VEInstrMixServiceImpl implements VEInstrMixService { public List selectEduPrfrmInfo_tngr_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception{ return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no1(vEInstrDetailVO); } - + public List selectEduPrfrmInfo_tngr_no2_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception{ return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVO); } @@ -217,4 +217,8 @@ public class VEInstrMixServiceImpl implements VEInstrMixService { public List selectEduPrfrmInfo_tngr_no9(VEInstrDetailVO vEInstrDetailVO) throws Exception{ return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVO); } + + public List selectEduPrfrmInfo_adult_no5_no6_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception{ + return vEInstrMixDAO.selectEduPrfrmInfo_adult_no5_no6_no7(vEInstrDetailVO); + } } diff --git a/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngAdultController.java b/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngAdultController.java index 1a907df4..1df35596 100644 --- a/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngAdultController.java +++ b/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngAdultController.java @@ -801,6 +801,126 @@ public class EduAsgnmCnfrmMngAdultController { return "oprtn/adultVisitEdu/eduPrfrmMngList"; } + /** + * 교육실적통계 화면 + */ + @RequestMapping("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); + + + //vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예 + + + //통계- ①월별 횟수/교육인원(그래프 포함) + { + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_tngr_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_tngr_no2_no3(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_tngr_no2_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/adultVisitEdu/newEduPrfrmMngList"; + + + } + /** * 교육실적통계 Excel * @param model @@ -904,6 +1024,124 @@ public class EduAsgnmCnfrmMngAdultController { modelAndView.addObject(model); return modelAndView; } + + /** + * 교육실적통계 Excel - 청소년 - ⑤월별 교육대상별 교육횟수(그래프 포함)/ ⑥월별 교육대상별 교육횟수(그래프 포함)/ ⑦월별 교육대상별 교육인원(그래프 포함) + * @param model + * @return + * @throws Exception + */ + @SuppressWarnings("rawtypes") + @RequestMapping(value = "eduPrfrmMngExcelDownLoad_adult_no5_no6_no7.do") + public ModelAndView eduPrfrmMngExcelDownLoad_tngr_no1( + @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO + , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail + , ModelMap model + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("excelDownloadView"); + + try { + + /* + //1.pageing step1 + //vEInstrDetailVODetail.setPageUnit(10); + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo = vEPagingUtil.setPagingStep1_VEInstrDetailVO(paginationInfo, vEInstrDetailVODetail); + + + //2. pageing step2 + vEInstrDetailVODetail = vEPagingUtil.setPagingStep2_VEInstrDetailVO(vEInstrDetailVODetail, paginationInfo); + */ + + + //통계- ①월별 횟수/교육인원(그래프 포함) + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT2List_no5_no6_no7 = vEInstrMixService.selectEduPrfrmInfo_adult_no5_no6_no7(vEInstrDetailVODetail); + + //복호화 + //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); + + System.out.println("out-list-2"); + + + List excelData = new ArrayList<>(); + excelData.addAll(selectAsgnmInfoT2List_no5_no6_no7); + + + // 세팅값 + String title = "교육실적통계-월별 교육대상별 교육횟수.교육인원"; + int[] width = { + + 4000, 4000 + , 4000 + , 4000, 4000 + //, 4000 + , 4000 + + , 4000, 4000, 4000, 4000, 4000 + , 4000, 4000, 4000, 4000, 4000 + + }; // 너비 + + //33개 항목 + String[] header = { + + "구분" + , "횟수/인원" + , "1월" + //, "요일" + , "2월" + + , "3월", "4월", "5월", "6월", "7월" + , "8월", "9월", "10월", "11월", "12월" + , "합계" + + }; + + String[] order = { + + "DivCd" + , "Chasi" + , "Mnt01" + //, "wCnt" + , "Mnt02" + + , "Mnt03", "Mnt04", "Mnt05", "Mnt06", "Mnt07" + , "Mnt08", "Mnt09", "Mnt10", "Mnt11", "Mnt12" + , "MntSum" + + }; + + /* + // 호출 + SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title); + model.addAttribute("locale", Locale.KOREA); + model.addAttribute("workbook", workbook); + model.addAttribute("workbookName", title); + */ + + excelDown( + excelData, + title, + width, + header, + order, + model + ); + + }catch(Exception ep) { + ep.getStackTrace(); + } + + + modelAndView.addObject(model); + + return modelAndView; + } + ////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // @@ -957,4 +1195,26 @@ public class EduAsgnmCnfrmMngAdultController { 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/sqlmap/ve/instr/VESttst_MIX_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Tibero.xml index eb3c6414..47974a85 100644 --- a/src/main/resources/egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/ve/instr/VESttst_MIX_SQL_Tibero.xml @@ -36,19 +36,19 @@ ELSE '합계' END AS chasi - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt01 ELSE bbbb.cnt01 END mnt01 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt02 ELSE bbbb.cnt02 END mnt02 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt03 ELSE bbbb.cnt03 END mnt03 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt04 ELSE bbbb.cnt04 END mnt04 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt05 ELSE bbbb.cnt05 END mnt05 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt06 ELSE bbbb.cnt06 END mnt06 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt07 ELSE bbbb.cnt07 END mnt07 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt08 ELSE bbbb.cnt08 END mnt08 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt09 ELSE bbbb.cnt09 END mnt09 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt10 ELSE bbbb.cnt10 END mnt10 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt11 ELSE bbbb.cnt11 END mnt11 - , CASE WHEN aaaa.no3='20' THEN bbbb.mnt12 ELSE bbbb.cnt12 END mnt12 - , CASE WHEN aaaa.no3='20' THEN bbbb.mntSum ELSE bbbb.cntSum END mntSum + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt01 ELSE bbbb.cnt01 END, 0) mnt01 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt02 ELSE bbbb.cnt02 END, 0) mnt02 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt03 ELSE bbbb.cnt03 END, 0) mnt03 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt04 ELSE bbbb.cnt04 END, 0) mnt04 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt05 ELSE bbbb.cnt05 END, 0) mnt05 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt06 ELSE bbbb.cnt06 END, 0) mnt06 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt07 ELSE bbbb.cnt07 END, 0) mnt07 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt08 ELSE bbbb.cnt08 END, 0) mnt08 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt09 ELSE bbbb.cnt09 END, 0) mnt09 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt10 ELSE bbbb.cnt10 END, 0) mnt10 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt11 ELSE bbbb.cnt11 END, 0) mnt11 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mnt12 ELSE bbbb.cnt12 END, 0) mnt12 + , NVL(CASE WHEN aaaa.no3='20' THEN bbbb.mntSum ELSE bbbb.cntSum END, 0) mntSum FROM ( @@ -916,5 +916,364 @@ , d.schol_nm , b.strt_tm - + + + + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/newEduPrfrmMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/newEduPrfrmMngList.jsp new file mode 100644 index 00000000..01edadc1 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/newEduPrfrmMngList.jsp @@ -0,0 +1,807 @@ + +<%@ 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 + * + */ +%> + + + + + +교육확정관리 + + + + + " /> + " /> + + + +
+
+ +
+

교육실적통계

+
    +
  • +
  • +

    청소년 찾아가는 저작권 교육

    +
  • +
  • 교육실적통계
  • +
+
+ + +
+ +
+
+
+

구분

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

+
+ *교육신청과 강사배정이 모두 확정된 데이터 기준 +
+
+ + +
+ +

+ ①월별 횟수/교육인원 +

+
+ + + +
+
+ + +
+ + +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
구분횟수/인원1월2월3월4월5월6월7월8월9월10월11월12월합계
+ + + + + + + + +
+
+ + + + + + +
+ +

+ ②월별 지역별 교육횟수 +

+
+ + + +
+
+ + +
+ + +<%-- --%> + + +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + +
구분지역1월2월3월4월5월6월7월8월9월10월11월12월합계
+ + + + + + + + +
+
+ + + + + + + +
+ +

+ ③월별 지역별 교육인원 +

+
+ + + +
+
+ + +
+ + +<%-- --%> + + +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + +
구분지역1월2월3월4월5월6월7월8월9월10월11월12월합계
+ + + + + + + + +
+
+ + + + +
+ +

+ ④월별 강사종류별,강사별 교육횟수 +

+
+ + + +
+
+ + +
+ + +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<%-- --%> + + + + + + + + + + + + + + + +
강사명구분교육횟수강사료수당교통비숙박비
+
+ + + +
+ +

+ ⑤월별 교육대상별 교육횟수/⑥월별 교육대상별 교육횟수/⑦월별 교육대상별 교육인원 +

+
+ + + +
+
+ + +
+ + +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
구분횟수/인원1월2월3월4월5월6월7월8월9월10월11월12월합계
+
+ + + +
+ +

+ ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자 - 대상이 없어서 제공안됨 +

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

+ ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자 - 대상이 없어서 제공안됨 +

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