From 0ee7d7aa586981bfb6e184924dc662a2bd738874 Mon Sep 17 00:00:00 2001 From: myname Date: Thu, 11 Jan 2024 15:31:28 +0900 Subject: [PATCH] =?UTF-8?q?2024-01-11=2015:31=20=EC=B2=AD=EC=86=8C?= =?UTF-8?q?=EB=85=84=20=ED=86=B5=EA=B3=84=20=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EC=9E=91=EC=97=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SspnIdtmtServiceImpl.java | 8 +- .../instrInfo/service/VEInstrMixService.java | 11 +- .../instrInfo/service/impl/VEInstrMixDAO.java | 18 + .../service/impl/VEInstrMixServiceImpl.java | 11 + .../web/EduAsgnmCnfrmMngTngrController.java | 401 +++++++++++++++--- .../ve/instr/VESttst_MIX_SQL_Tibero.xml | 216 +++++++++- .../oprtn/tngrVisitEdu/newEduPrfrmMngList.jsp | 319 +++++++++++++- 7 files changed, 915 insertions(+), 69 deletions(-) diff --git a/src/main/java/kcc/ve/aplct/sspnIdtmt/service/impl/SspnIdtmtServiceImpl.java b/src/main/java/kcc/ve/aplct/sspnIdtmt/service/impl/SspnIdtmtServiceImpl.java index fbb9cf69..c8234b64 100644 --- a/src/main/java/kcc/ve/aplct/sspnIdtmt/service/impl/SspnIdtmtServiceImpl.java +++ b/src/main/java/kcc/ve/aplct/sspnIdtmt/service/impl/SspnIdtmtServiceImpl.java @@ -139,7 +139,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService { if (cndtnTrgtMngVOList==null || cndtnTrgtMngVOList.size()<=0) { //step3.기존 이력이 없으면 관리자에게 문의 하도록 한다. result = "fail"; - msg = "대상자 정보가 없습니다. 관리자에게 문의 바랍니다."; + msg = "대상자 정보가 없습니다. 자세한 사항은 담당자에게 문의 바랍니다."; next = "Y"; //? }else if (cndtnTrgtMngVOList.size()>0) { @@ -148,7 +148,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService { msg = "기존 이력을 전달한다.------"; if ("20".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) { - msg = "이미 이수한 이력이 있습니다. 관리자에게 문의 바랍니다."; + msg = "이미 이수한 이력이 있습니다. 자세한 사항은 담당자에게 문의 바랍니다."; next = "Y"; //? }else if ("25".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) { @@ -160,11 +160,11 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService { next = ""; //? }else if ("40".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) { - msg = "미이수한 이력이 있습니다. 관리자에게 문의 바랍니다."; + msg = "미이수 상태입니다. 자세한 사항은 담당자에게 문의 바랍니다."; next = "Y"; //? }else if ("60".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) { - msg = "교육취소 이력이 있습니다. 관리자에게 문의 바랍니다."; + msg = "교육취소 이력이 있습니다. 자세한 사항은 담당자에게 문의 바랍니다."; next = "Y"; //? } 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 8787f84b..e6e26b26 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 @@ -119,5 +119,14 @@ public interface VEInstrMixService { List selectEduPrfrmInfo_tngr_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception; //교육실정통계- ②월별 지역별 교육횟수/③교육인원(그래프 포함) - List selectEduPrfrmInfo_tngr_no2_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception; + List selectEduPrfrmInfo_tngr_no2_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //교육실정통계- ④월별 강사종류별,강사별 교육횟수(그래프 포함) + List selectEduPrfrmInfo_tngr_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //교육실정통계- ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함) + List selectEduPrfrmInfo_tngr_no8(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //교육실정통계- ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함) + List selectEduPrfrmInfo_tngr_no9(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 ea88e2b2..184836b5 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 @@ -258,4 +258,22 @@ public class VEInstrMixDAO extends EgovAbstractDAO { List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no2_no3", vEInstrDetailVO); return tlist; } + + //교육실정통계- ④월별 강사종류별,강사별 교육횟수(그래프 포함) + public List selectEduPrfrmInfo_tngr_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no4", vEInstrDetailVO); + return tlist; + } + + //교육실정통계- ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함) + public List selectEduPrfrmInfo_tngr_no8(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no8", vEInstrDetailVO); + return tlist; + } + + //교육실정통계- ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함) + public List selectEduPrfrmInfo_tngr_no9(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no9", 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 bd19b50d..414a5e50 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 @@ -205,5 +205,16 @@ public class VEInstrMixServiceImpl implements VEInstrMixService { public List selectEduPrfrmInfo_tngr_no2_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception{ return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVO); } + + public List selectEduPrfrmInfo_tngr_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception{ + return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no4(vEInstrDetailVO); + } + public List selectEduPrfrmInfo_tngr_no8(VEInstrDetailVO vEInstrDetailVO) throws Exception{ + return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no8(vEInstrDetailVO); + } + + public List selectEduPrfrmInfo_tngr_no9(VEInstrDetailVO vEInstrDetailVO) throws Exception{ + return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVO); + } } diff --git a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngTngrController.java b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngTngrController.java index ede4f72c..f4124ced 100644 --- a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngTngrController.java +++ b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduAsgnmCnfrmMng/web/EduAsgnmCnfrmMngTngrController.java @@ -1328,73 +1328,98 @@ public class EduAsgnmCnfrmMngTngrController { , ModelMap model ) throws Exception { - LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + //LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; //설정 년 리스트(과거~올해+1) List selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO); model.addAttribute("selectStngYrList", selectStngYrList); - /* - //1.pageing step1 - //vEInstrDetailVODetail.setPageUnit(10); - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo = vEPagingUtil.setPagingStep1_VEInstrDetailVO(paginationInfo, vEInstrDetailVODetail); + + //vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예 - //2. pageing step2 - vEInstrDetailVODetail = vEPagingUtil.setPagingStep2_VEInstrDetailVO(vEInstrDetailVODetail, paginationInfo); - */ + //통계- ①월별 횟수/교육인원(그래프 포함) + { + //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.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); - - - /* 10-횟수, 20-인원 */ - vEInstrDetailVODetail.setNo3("10"); - //통계- ②월별 지역별 교육횟수(그래프 포함) - 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("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); + } - /* 10-횟수, 20-인원 */ - vEInstrDetailVODetail.setNo3("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.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); + } + - - /* - //3.pageing step3 - paginationInfo = vEPagingUtil.setPagingStep3_VELctrDetailVO(selectAsgnmInfoT2List, paginationInfo); + //통계- ④월별 강사종류별,강사별 교육횟수(그래프 포함) + { + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT2List_no4 = vEInstrMixService.selectEduPrfrmInfo_tngr_no4(vEInstrDetailVODetail); + + //복호화 + selectAsgnmInfoT2List_no4 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no4); + + model.addAttribute("list_no4",selectAsgnmInfoT2List_no4); + } - model.addAttribute("paginationInfo", paginationInfo); - */ + // ⑤월별 교육대상별 교육횟수(그래프 포함) - 대상이 없어서 제공안됨 + // ⑥월별 교육대상별 교육횟수(그래프 포함) - 대상이 없어서 제공안됨 + // ⑦월별 교육대상별 교육인원(그래프 포함) - 대상이 없어서 제공안됨 - + //통계- ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함) + { + 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/tngrVisitEdu/newEduPrfrmMngList"; + + } /** @@ -1688,7 +1713,7 @@ public class EduAsgnmCnfrmMngTngrController { //통계- ①월별 횟수/교육인원(그래프 포함) - vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); List selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_tngr_no1(vEInstrDetailVODetail); @@ -1803,7 +1828,7 @@ public class EduAsgnmCnfrmMngTngrController { } //통계- ①월별 횟수/교육인원(그래프 포함) - vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); List selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVODetail); @@ -1816,14 +1841,15 @@ public class EduAsgnmCnfrmMngTngrController { //String title = "교육실적통계-월별 횟수.교육인원"; int[] width = { - 4000, 4000 + 4000 + , 4000 , 4000 - , 4000, 4000 //, 4000 , 4000 , 4000, 4000, 4000, 4000, 4000 , 4000, 4000, 4000, 4000, 4000 + , 4000 }; // 너비 @@ -1831,7 +1857,7 @@ public class EduAsgnmCnfrmMngTngrController { String[] header = { "구분" - , "지역", "횟수/인원" + , "지역" , "1월" //, "요일" , "2월" @@ -1845,7 +1871,7 @@ public class EduAsgnmCnfrmMngTngrController { String[] order = { "EduSlctCd" - , "divCd", "Chasi" + , "DivCd" , "Mnt01" //, "wCnt" , "Mnt02" @@ -1878,6 +1904,269 @@ public class EduAsgnmCnfrmMngTngrController { } + modelAndView.addObject(model); + + return modelAndView; + } + + /** + * 교육실적통계 Excel - 청소년 + * ④월별 강사종류별,강사별 교육횟수(그래프 포함) + * @param model + * @return + * @throws Exception + */ + @SuppressWarnings("rawtypes") + @RequestMapping(value = "eduPrfrmMngExcelDownLoad_tngr_no4.do") + public ModelAndView eduPrfrmMngExcelDownLoad_tngr_no4( + @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO + , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail + , ModelMap model + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("excelDownloadView"); + + try { + String s_no3 = vEInstrDetailVODetail.getNo3(); + String title = "교육실적통계-월별 강사종류별,강사별 교육횟수"; + + //통계- ①월별 횟수/교육인원(그래프 포함) + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT4List = vEInstrMixService.selectEduPrfrmInfo_tngr_no4(vEInstrDetailVODetail); + + //복호화 + selectAsgnmInfoT4List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT4List); + + List excelData = new ArrayList<>(); + excelData.addAll(selectAsgnmInfoT4List); + + + // 세팅값 + //String title = "교육실적통계-월별 횟수.교육인원"; + int[] width = { + + 4000 + , 4000 + + , 4000, 4000, 4000, 4000, 4000 + + , 4000 + + }; // 너비 + + //33개 항목 + String[] header = { + + "강사명" + , "구분" + + , "교육횟수", "강사료", "수당", "교통비", "숙박비" + + , "계" + + }; + + String[] order = { + + "InstrNm" + , "CodeNm" + + , "LctrAreaCnt", "Mnt01", "Mnt02", "Mnt03", "Mnt04" + , "MntSum" + + }; + + + excelDown( + excelData, + title, + width, + header, + order, + model + ); + + }catch(Exception ep) { + ep.getStackTrace(); + } + + + modelAndView.addObject(model); + + return modelAndView; + } + + /** + * 교육실적통계 Excel - 청소년 + * ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함) + * @param model + * @return + * @throws Exception + */ + @SuppressWarnings("rawtypes") + @RequestMapping(value = "eduPrfrmMngExcelDownLoad_tngr_no8.do") + public ModelAndView eduPrfrmMngExcelDownLoad_tngr_no8( + @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO + , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail + , ModelMap model + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("excelDownloadView"); + + try { + String s_no3 = vEInstrDetailVODetail.getNo3(); + String title = "교육실적통계-인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자"; + + //통계- ①월별 횟수/교육인원(그래프 포함) + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT8List = vEInstrMixService.selectEduPrfrmInfo_tngr_no8(vEInstrDetailVODetail); + + //복호화 + selectAsgnmInfoT8List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT8List); + + List excelData = new ArrayList<>(); + excelData.addAll(selectAsgnmInfoT8List); + + + // 세팅값 + //String title = "교육실적통계-월별 횟수.교육인원"; + int[] width = { + + 4000 + + , 4000, 4000, 4000 + + , 4000 + + }; // 너비 + + //33개 항목 + String[] header = { + + "지역1" + + , "지역2", "교육횟수", "교육인원" + + , "학교수(중복제거)" + + }; + + String[] order = { + + "AreaCnt01" + + , "AreaCnt02", "AreaCnt03", "AreaCnt04" + + , "AreaCnt05" + + }; + + + excelDown( + excelData, + title, + width, + header, + order, + model + ); + + }catch(Exception ep) { + ep.getStackTrace(); + } + + + modelAndView.addObject(model); + + return modelAndView; + } + + /** + * 교육실적통계 Excel - 청소년 + * ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함) + * @param model + * @return + * @throws Exception + */ + @SuppressWarnings("rawtypes") + @RequestMapping(value = "eduPrfrmMngExcelDownLoad_tngr_no9.do") + public ModelAndView eduPrfrmMngExcelDownLoad_tngr_no9( + @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO + , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail + , ModelMap model + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("excelDownloadView"); + + try { + String s_no3 = vEInstrDetailVODetail.getNo3(); + String title = "교육실적통계-도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자"; + + //통계- ①월별 횟수/교육인원(그래프 포함) + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT9List = vEInstrMixService.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVODetail); + + //복호화 + selectAsgnmInfoT9List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT9List); + + List excelData = new ArrayList<>(); + excelData.addAll(selectAsgnmInfoT9List); + + + // 세팅값 + //String title = "교육실적통계-월별 횟수.교육인원"; + int[] width = { + + 4000 + + , 4000, 4000, 4000, 4000, 4000 + + , 4000 + + }; // 너비 + + //33개 항목 + String[] header = { + + "교육일자" + + , "지역", "학교명", "교육대상", "교육시간", "학교주소" + + , "교육인원" + + }; + + String[] order = { + + "AreaCnt01" + + , "AreaCnt02", "AreaCnt03", "AreaCnt04", "AreaCnt05", "AreaCnt06" + + , "AreaCnt07" + + }; + + + excelDown( + excelData, + title, + width, + header, + order, + model + ); + + }catch(Exception ep) { + ep.getStackTrace(); + } + + modelAndView.addObject(model); return modelAndView; 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 9abf0a68..eb3c6414 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 @@ -685,6 +685,7 @@ WHERE aaaa.div_cd='99' /* 필터를 위한 고정값 */ AND aaaa.no3 = #no3# /* 10-횟수, 20-인원 */ + AND NVL(cccc.code,'999')!='400' /* 지역코드 온라인 제외 */ AND ( ( /* 온라인 오프라인 데이터를 위한 필터 */ @@ -699,10 +700,221 @@ ) ORDER BY aaaa.edu_hope_yr - , aaaa.no3 + , aaaa.edu_slct_cd + , cccc.code_nm , DECODE(aaaa.div_cd,'99','00',aaaa.div_cd) , DECODE(aaaa.edu_slct_cd,'99','00',DECODE(aaaa.edu_slct_cd,'20','05',aaaa.edu_slct_cd)) DESC - + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/newEduPrfrmMngList.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/newEduPrfrmMngList.jsp index ab7bfe92..fcda2b5e 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/newEduPrfrmMngList.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/newEduPrfrmMngList.jsp @@ -93,6 +93,24 @@ listForm.action = ""; listForm.submit(); } + + function excelDownLoad_no4(){ + var listForm = document.listForm ; + listForm.action = ""; + listForm.submit(); + } + + function excelDownLoad_no8(){ + var listForm = document.listForm ; + listForm.action = ""; + listForm.submit(); + } + + function excelDownLoad_no9(){ + var listForm = document.listForm ; + listForm.action = ""; + listForm.submit(); + } function excelDownLoadArea(){ var listForm = document.listForm ; @@ -322,7 +340,7 @@ <%-- --%> - +<%-- --%> @@ -344,7 +362,7 @@ 구분 지역 - 횟수/인원 + 1월 2월 @@ -389,7 +407,7 @@ - +<%-- --%> @@ -444,7 +462,7 @@ <%-- --%> - +<%-- --%> @@ -466,7 +484,7 @@ 구분 지역 - 횟수/인원 + 1월 2월 @@ -511,7 +529,7 @@ - +<%-- --%> @@ -541,7 +559,296 @@ + +
+ +

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

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

+ ⑤월별 교육대상별 교육횟수 - 대상이 없어서 제공안됨 +

+
+ + + +
+
+ + +
+ +

+ ⑥월별 교육대상별 교육횟수 - 대상이 없어서 제공안됨 +

+
+ + + +
+
+ + +
+ +

+ ⑦월별 교육대상별 교육인원 - 대상이 없어서 제공안됨 +

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

+ ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자 +

+
+ + + +
+
+ + +
+ + +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + +<%-- --%> + + + + + + + + + + + +
지역1지역2교육횟수교육인원학교수(중복제거)
+
+ + + + + +
+ +

+ ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자 +

+
+ + + +
+
+ + + + +
+ + +<%-- --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +<%-- --%> + + + + + + + + + + +
교육일자지역학교명교육대상교육시간학교주소교육인원
+
+ +