2024-01-15 18:02 체험교실 통계 수정 & 청소년 달력 보기 수정
This commit is contained in:
parent
f2feba81d1
commit
8926800607
@ -270,7 +270,8 @@ public class ScholInfoController {
|
|||||||
}else if (Integer.parseInt(vList.get(i).getTitleF())>=Integer.parseInt(vList.get(i).getTitleB()))
|
}else if (Integer.parseInt(vList.get(i).getTitleF())>=Integer.parseInt(vList.get(i).getTitleB()))
|
||||||
{
|
{
|
||||||
vList.get(i).setColor("#FF0000");
|
vList.get(i).setColor("#FF0000");
|
||||||
vList.get(i).setTitle("가능");
|
//vList.get(i).setTitle("가능");
|
||||||
|
vList.get(i).setTitle("불가능");
|
||||||
|
|
||||||
}else if (Integer.parseInt(vList.get(i).getTitleF())*5>=Integer.parseInt(vList.get(i).getTitleB())*4)
|
}else if (Integer.parseInt(vList.get(i).getTitleF())*5>=Integer.parseInt(vList.get(i).getTitleB())*4)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -114,7 +114,8 @@ public interface VEInstrMixService {
|
|||||||
|
|
||||||
List<VEInstrDetailVO> selectInstrExcelList(VEInstrDetailVO vEInstrDetailVO);
|
List<VEInstrDetailVO> selectInstrExcelList(VEInstrDetailVO vEInstrDetailVO);
|
||||||
|
|
||||||
|
|
||||||
|
//청소년 통계
|
||||||
//교육실정통계- ①월별 횟수/교육인원(그래프 포함)
|
//교육실정통계- ①월별 횟수/교육인원(그래프 포함)
|
||||||
List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception;
|
List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception;
|
||||||
|
|
||||||
@ -133,5 +134,14 @@ public interface VEInstrMixService {
|
|||||||
|
|
||||||
//성인 통계
|
//성인 통계
|
||||||
//교육실정통계- ⑤월별 교육대상별 교육횟수(그래프 포함),⑥월별 교육대상별 교육횟수(그래프 포함),⑦월별 교육대상별 교육인원(그래프 포함)
|
//교육실정통계- ⑤월별 교육대상별 교육횟수(그래프 포함),⑥월별 교육대상별 교육횟수(그래프 포함),⑦월별 교육대상별 교육인원(그래프 포함)
|
||||||
List<VELctrDetailVO> selectEduPrfrmInfo_adult_no5_no6_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception;
|
List<VELctrDetailVO> selectEduPrfrmInfo_adult_no5_no6_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception;
|
||||||
|
|
||||||
|
|
||||||
|
//저작권 체험교실 통계
|
||||||
|
//교육실정통계- 11.① 전체 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함)
|
||||||
|
List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no11(VEInstrDetailVO vEInstrDetailVO) throws Exception;
|
||||||
|
|
||||||
|
//교육실정통계- 12.② 지역별 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함)
|
||||||
|
List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no12(VEInstrDetailVO vEInstrDetailVO) throws Exception;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -283,4 +283,16 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
|
|||||||
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_adult_no5_no6_no7", vEInstrDetailVO);
|
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_adult_no5_no6_no7", vEInstrDetailVO);
|
||||||
return tlist;
|
return tlist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//교육실정통계- 11.① 전체 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함)
|
||||||
|
public List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no11(VEInstrDetailVO vEInstrDetailVO) throws Exception {
|
||||||
|
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_Exprn_no11", vEInstrDetailVO);
|
||||||
|
return tlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
//교육실정통계- 12.② 지역별 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함)
|
||||||
|
public List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no12(VEInstrDetailVO vEInstrDetailVO) throws Exception {
|
||||||
|
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_Exprn_no12", vEInstrDetailVO);
|
||||||
|
return tlist;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -221,4 +221,12 @@ public class VEInstrMixServiceImpl implements VEInstrMixService {
|
|||||||
public List<VELctrDetailVO> selectEduPrfrmInfo_adult_no5_no6_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception{
|
public List<VELctrDetailVO> selectEduPrfrmInfo_adult_no5_no6_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception{
|
||||||
return vEInstrMixDAO.selectEduPrfrmInfo_adult_no5_no6_no7(vEInstrDetailVO);
|
return vEInstrMixDAO.selectEduPrfrmInfo_adult_no5_no6_no7(vEInstrDetailVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no11(VEInstrDetailVO vEInstrDetailVO) throws Exception{
|
||||||
|
return vEInstrMixDAO.selectEduPrfrmInfo_Exprn_no11(vEInstrDetailVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no12(VEInstrDetailVO vEInstrDetailVO) throws Exception{
|
||||||
|
return vEInstrMixDAO.selectEduPrfrmInfo_Exprn_no12(vEInstrDetailVO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,20 +1,23 @@
|
|||||||
package kcc.ve.oprtn.cpyrgExprnClsrm.oprtnStateMng.web;
|
package kcc.ve.oprtn.cpyrgExprnClsrm.oprtnStateMng.web;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.ModelMap;
|
import org.springframework.ui.ModelMap;
|
||||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
|
||||||
@ -22,6 +25,7 @@ import kcc.com.cmm.LoginVO;
|
|||||||
import kcc.com.cmm.service.EgovFileMngService;
|
import kcc.com.cmm.service.EgovFileMngService;
|
||||||
import kcc.com.cmm.service.EgovFileMngUtil;
|
import kcc.com.cmm.service.EgovFileMngUtil;
|
||||||
import kcc.com.cmm.service.FileVO;
|
import kcc.com.cmm.service.FileVO;
|
||||||
|
import kcc.com.cmm.spring.data.util.ExcelUtil;
|
||||||
import kcc.com.cmm.util.StringUtil;
|
import kcc.com.cmm.util.StringUtil;
|
||||||
import kcc.com.uss.ion.fms.service.FmsFileVO;
|
import kcc.com.uss.ion.fms.service.FmsFileVO;
|
||||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||||
@ -39,6 +43,9 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnService;
|
|||||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnVO;
|
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduOprtnVO;
|
||||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
|
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
|
||||||
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
|
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.VEPrcsMIXService;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
|
||||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
|
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
|
||||||
import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRprtVO;
|
import kcc.ve.instr.tngrVisitEdu.rprtInfo.service.VEEduRprtVO;
|
||||||
@ -127,6 +134,14 @@ public class OprtnStateMngController {
|
|||||||
@Resource(name = "egovQustnrRespondManageService")
|
@Resource(name = "egovQustnrRespondManageService")
|
||||||
private EgovQustnrRespondManageService egovQustnrRespondManageService;
|
private EgovQustnrRespondManageService egovQustnrRespondManageService;
|
||||||
|
|
||||||
|
//강의설정 MIX
|
||||||
|
@Resource(name = "vELctrMIXService")
|
||||||
|
private VELctrMIXService vELctrMIXService;
|
||||||
|
|
||||||
|
//강사 관리
|
||||||
|
@Resource(name = "vEInstrMixService")
|
||||||
|
private VEInstrMixService vEInstrMixService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 운영현황 관리 목록 화면
|
* 운영현황 관리 목록 화면
|
||||||
*/
|
*/
|
||||||
@ -526,6 +541,278 @@ public class OprtnStateMngController {
|
|||||||
return modelAndView;
|
return modelAndView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 교육실적통계 화면
|
||||||
|
*/
|
||||||
|
@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<VELctrDetailVO> selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO);
|
||||||
|
model.addAttribute("selectStngYrList", selectStngYrList);
|
||||||
|
|
||||||
|
|
||||||
|
//vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예
|
||||||
|
|
||||||
|
|
||||||
|
//통계- 11.① 전체 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함)
|
||||||
|
{
|
||||||
|
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||||
|
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||||
|
List<VELctrDetailVO> selectAsgnmInfoT2List_no11 = vEInstrMixService.selectEduPrfrmInfo_Exprn_no11(vEInstrDetailVODetail);
|
||||||
|
|
||||||
|
//복호화
|
||||||
|
selectAsgnmInfoT2List_no11 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no11);
|
||||||
|
|
||||||
|
model.addAttribute("list_no11",selectAsgnmInfoT2List_no11);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//통계- 12.② 지역별 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함)
|
||||||
|
{
|
||||||
|
vEInstrDetailVODetail.setNo3("10"); /* 10-횟수, 20-인원 */
|
||||||
|
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||||
|
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||||
|
List<VELctrDetailVO> selectAsgnmInfoT2List_no12 = vEInstrMixService.selectEduPrfrmInfo_Exprn_no12(vEInstrDetailVODetail);
|
||||||
|
|
||||||
|
//복호화
|
||||||
|
selectAsgnmInfoT2List_no12 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no12);
|
||||||
|
|
||||||
|
model.addAttribute("list_no12",selectAsgnmInfoT2List_no12);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return "oprtn/cpyrgExprnClsrm/newEduPrfrmMngList";
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 교육실적통계 Excel - 체험교실 - ① 전체 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함)
|
||||||
|
* @param model
|
||||||
|
* @returncpyrgExprnClsrm
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
|
@RequestMapping(value = "eduPrfrmMngExcelDownLoad_Exprn_no11.do")
|
||||||
|
public ModelAndView eduPrfrmMngExcelDownLoad_Exprn_no11(
|
||||||
|
@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<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_Exprn_no11(vEInstrDetailVODetail);
|
||||||
|
|
||||||
|
//복호화
|
||||||
|
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||||
|
|
||||||
|
System.out.println("out-list-2");
|
||||||
|
|
||||||
|
|
||||||
|
List<Object> excelData = new ArrayList<>();
|
||||||
|
excelData.addAll(selectAsgnmInfoT2List);
|
||||||
|
|
||||||
|
|
||||||
|
// 세팅값
|
||||||
|
String title = "교육실적통계-전체 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수";
|
||||||
|
int[] width = {
|
||||||
|
|
||||||
|
4000, 4000
|
||||||
|
, 4000
|
||||||
|
, 4000, 4000
|
||||||
|
//, 4000
|
||||||
|
, 4000
|
||||||
|
|
||||||
|
}; // 너비
|
||||||
|
|
||||||
|
//33개 항목
|
||||||
|
String[] header = {
|
||||||
|
|
||||||
|
"운영신청 수", "운영확정 수"
|
||||||
|
, "결과보고 수"
|
||||||
|
|
||||||
|
, "운영종료 수", "운영취소 수"
|
||||||
|
, "전체"
|
||||||
|
|
||||||
|
, "운영신청 수(%)", "운영확정 수(%)"
|
||||||
|
, "결과보고 수(%)"
|
||||||
|
|
||||||
|
, "운영종료 수(%)", "운영취소 수(%)"
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
String[] order = {
|
||||||
|
|
||||||
|
"Mnt01", "Mnt02"
|
||||||
|
|
||||||
|
, "Mnt03"
|
||||||
|
, "Mnt04", "Mnt05"
|
||||||
|
, "Mnt06"
|
||||||
|
|
||||||
|
, "AreaCnt01", "AreaCnt02"
|
||||||
|
, "AreaCnt03"
|
||||||
|
, "AreaCnt04", "AreaCnt05"
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
// 호출
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 교육실적통계 Excel - 체험교실 - ② 지역별 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함)
|
||||||
|
* @param model
|
||||||
|
* @returncpyrgExprnClsrm
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("rawtypes")
|
||||||
|
@RequestMapping(value = "eduPrfrmMngExcelDownLoad_Exprn_no12.do")
|
||||||
|
public ModelAndView eduPrfrmMngExcelDownLoad_Exprn_no12(
|
||||||
|
@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<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_Exprn_no12(vEInstrDetailVODetail);
|
||||||
|
|
||||||
|
//복호화
|
||||||
|
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||||
|
|
||||||
|
System.out.println("out-list-2");
|
||||||
|
|
||||||
|
|
||||||
|
List<Object> excelData = new ArrayList<>();
|
||||||
|
excelData.addAll(selectAsgnmInfoT2List);
|
||||||
|
|
||||||
|
|
||||||
|
// 세팅값
|
||||||
|
String title = "교육실적통계-지역별 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수";
|
||||||
|
int[] width = {
|
||||||
|
|
||||||
|
4000, 4000
|
||||||
|
, 4000
|
||||||
|
, 4000, 4000
|
||||||
|
//, 4000
|
||||||
|
, 4000
|
||||||
|
|
||||||
|
}; // 너비
|
||||||
|
|
||||||
|
//33개 항목
|
||||||
|
String[] header = {
|
||||||
|
|
||||||
|
"지역"
|
||||||
|
, "운영신청 수", "운영확정 수"
|
||||||
|
, "결과보고 수"
|
||||||
|
|
||||||
|
, "운영종료 수", "운영취소 수"
|
||||||
|
, "전체"
|
||||||
|
|
||||||
|
, "운영신청 수(%)", "운영확정 수(%)"
|
||||||
|
, "결과보고 수(%)"
|
||||||
|
|
||||||
|
, "운영종료 수(%)", "운영취소 수(%)"
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
String[] order = {
|
||||||
|
|
||||||
|
"CodeNm",
|
||||||
|
"Mnt01", "Mnt02"
|
||||||
|
|
||||||
|
, "Mnt03"
|
||||||
|
, "Mnt04", "Mnt05"
|
||||||
|
, "Mnt06"
|
||||||
|
|
||||||
|
, "AreaCnt01", "AreaCnt02"
|
||||||
|
, "AreaCnt03"
|
||||||
|
, "AreaCnt04", "AreaCnt05"
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
// 호출
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// private function
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
|
//페이징을 위한 처리 step1 - 페이징 기본 정보 설정
|
||||||
private PaginationInfo setPagingStep1(
|
private PaginationInfo setPagingStep1(
|
||||||
VEEduAplctVO p_vEEduAplctVO
|
VEEduAplctVO p_vEEduAplctVO
|
||||||
@ -572,4 +859,26 @@ public class OprtnStateMngController {
|
|||||||
|
|
||||||
return p_paginationInfo;
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1275,5 +1275,114 @@
|
|||||||
, DECODE(aaaa.div_cd,'99','00',aaaa.div_cd)
|
, DECODE(aaaa.div_cd,'99','00',aaaa.div_cd)
|
||||||
|
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<!-- 교육실정통계 -11.① 전체 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함) -->
|
||||||
|
<select id="VESttstMixDAO.selectEduPrfrmInfo_Exprn_no11" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
|
||||||
|
/* VESttstMixDAO.selectEduPrfrmInfo_Exprn_no11 */
|
||||||
|
|
||||||
|
SELECT aa.lctrDivCd
|
||||||
|
, sum(decode(aa.aprvlcd,10,aa.cnt,11,aa.cnt,13,aa.cnt,0)) AS mnt01
|
||||||
|
, round(sum(decode(aa.aprvlcd,10,aa.cnt,11,aa.cnt,13,aa.cnt,0.0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt01
|
||||||
|
|
||||||
|
, sum(decode(aa.aprvlcd,12,aa.cnt,0)) AS mnt02
|
||||||
|
, round(sum(decode(aa.aprvlcd,12,aa.cnt,0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt02
|
||||||
|
|
||||||
|
, sum(decode(aa.aprvlcd,20,aa.cnt,30,aa.cnt,40,aa.cnt,50,aa.cnt,0)) AS mnt03
|
||||||
|
, round(sum(decode(aa.aprvlcd,20,aa.cnt,30,aa.cnt,40,aa.cnt,50,aa.cnt,0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt03
|
||||||
|
|
||||||
|
, sum(decode(aa.aprvlcd,60,aa.cnt,70,aa.cnt,0)) AS mnt04
|
||||||
|
, round(sum(decode(aa.aprvlcd,60,aa.cnt,70,aa.cnt,0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt04
|
||||||
|
|
||||||
|
, sum(decode(aa.aprvlcd,80,aa.cnt,0)) AS mnt05
|
||||||
|
, round(sum(decode(aa.aprvlcd,80,aa.cnt,0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt05
|
||||||
|
|
||||||
|
, sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0 end) AS mnt06
|
||||||
|
FROM (
|
||||||
|
SELECT a.LCTR_DIV_CD AS lctrDivCd
|
||||||
|
, a.APRVL_CD AS aprvlCd
|
||||||
|
, count(*) AS cnt
|
||||||
|
from VE_EDU_APLCT a
|
||||||
|
WHERE a.LCTR_DIV_CD =#lctrDivCd#
|
||||||
|
AND a.SBMT_YN ='Y'
|
||||||
|
AND TO_CHAR(a.SBMT_PNTTM ,'YYYY')=#mngNmbrYr#
|
||||||
|
GROUP BY rollup(a.LCTR_DIV_CD ,a.APRVL_CD)
|
||||||
|
)aa
|
||||||
|
WHERE aa.lctrDivCd=#lctrDivCd#
|
||||||
|
GROUP BY aa.lctrDivCd
|
||||||
|
/*
|
||||||
|
* 운영취소 = 12
|
||||||
|
* 20 > 운영신청 and != 12
|
||||||
|
* 60 > 운영확정 >=20
|
||||||
|
* 80 > 결과보고 >=60
|
||||||
|
* 운영종료 =80
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<!-- 교육실정통계 -11.① 전체 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수(그래프, 비율 포함) -->
|
||||||
|
<select id="VESttstMixDAO.selectEduPrfrmInfo_Exprn_no12" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
|
||||||
|
/* VESttstMixDAO.selectEduPrfrmInfo_Exprn_no12 */
|
||||||
|
SELECT
|
||||||
|
NVL(aaa.mnt01,0) AS mnt01, NVL(aaa.areaCnt01,0) AS areaCnt01
|
||||||
|
, NVL(aaa.mnt02,0) AS mnt02, NVL(aaa.areaCnt02,0) AS areaCnt02
|
||||||
|
, NVL(aaa.mnt03,0) AS mnt03, NVL(aaa.areaCnt03,0) AS areaCnt03
|
||||||
|
, NVL(aaa.mnt04,0) AS mnt04, NVL(aaa.areaCnt04,0) AS areaCnt04
|
||||||
|
, NVL(aaa.mnt05,0) AS mnt05, NVL(aaa.areaCnt05,0) AS areaCnt05
|
||||||
|
|
||||||
|
, NVL(aaa.mnt06,0) AS mnt06
|
||||||
|
|
||||||
|
, bbb.code_nm AS codeNm
|
||||||
|
FROM (
|
||||||
|
SELECT code, code_nm
|
||||||
|
FROM LETTCCMMNDETAILCODE bbb
|
||||||
|
WHERE code_id='VE0008'
|
||||||
|
AND code !='400'
|
||||||
|
UNION ALL
|
||||||
|
SELECT '999', '합계'
|
||||||
|
FROM dual
|
||||||
|
) bbb
|
||||||
|
LEFT OUTER JOIN (
|
||||||
|
|
||||||
|
SELECT aa.lctrDivCd
|
||||||
|
, nvl(aa.eduSlctAreaCd,'999') AS eduSlctAreaCd
|
||||||
|
, sum(decode(aa.aprvlcd,10,aa.cnt,11,aa.cnt,13,aa.cnt,0)) AS mnt01
|
||||||
|
, round(sum(decode(aa.aprvlcd,10,aa.cnt,11,aa.cnt,13,aa.cnt,0.0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt01
|
||||||
|
|
||||||
|
, sum(decode(aa.aprvlcd,12,aa.cnt,0)) AS mnt02
|
||||||
|
, round(sum(decode(aa.aprvlcd,12,aa.cnt,0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt02
|
||||||
|
|
||||||
|
, sum(decode(aa.aprvlcd,20,aa.cnt,30,aa.cnt,40,aa.cnt,50,aa.cnt,0)) AS mnt03
|
||||||
|
, round(sum(decode(aa.aprvlcd,20,aa.cnt,30,aa.cnt,40,aa.cnt,50,aa.cnt,0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt03
|
||||||
|
|
||||||
|
, sum(decode(aa.aprvlcd,60,aa.cnt,70,aa.cnt,0)) AS mnt04
|
||||||
|
, round(sum(decode(aa.aprvlcd,60,aa.cnt,70,aa.cnt,0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt04
|
||||||
|
|
||||||
|
, sum(decode(aa.aprvlcd,80,aa.cnt,0)) AS mnt05
|
||||||
|
, round(sum(decode(aa.aprvlcd,80,aa.cnt,0))*100/sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0.0 end),2) AS areaCnt05
|
||||||
|
|
||||||
|
, sum(CASE WHEN aa.aprvlcd IS NULL THEN aa.cnt ELSE 0 end) AS mnt06
|
||||||
|
FROM (
|
||||||
|
SELECT a.LCTR_DIV_CD AS lctrDivCd
|
||||||
|
, a.APRVL_CD AS aprvlCd
|
||||||
|
, a.edu_slct_area_cd AS eduSlctAreaCd
|
||||||
|
, count(*) cnt
|
||||||
|
from VE_EDU_APLCT a
|
||||||
|
WHERE a.LCTR_DIV_CD =#lctrDivCd#
|
||||||
|
AND a.SBMT_YN ='Y'
|
||||||
|
AND TO_CHAR(a.SBMT_PNTTM ,'YYYY')=#mngNmbrYr#
|
||||||
|
GROUP BY rollup(a.LCTR_DIV_CD, a.edu_slct_area_cd, a.APRVL_CD)
|
||||||
|
)aa
|
||||||
|
WHERE aa.lctrDivCd IS NOT null
|
||||||
|
GROUP BY aa.lctrDivCd
|
||||||
|
, aa.eduSlctAreaCd
|
||||||
|
|
||||||
|
)aaa
|
||||||
|
ON(bbb.code=aaa.eduSlctAreaCd)
|
||||||
|
WHERE 1=1
|
||||||
|
AND 999>bbb.code
|
||||||
|
ORDER BY decode(bbb.code,'999','희희',bbb.code_nm)
|
||||||
|
|
||||||
|
</select>
|
||||||
</sqlMap>
|
</sqlMap>
|
||||||
|
|||||||
@ -0,0 +1,500 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<%@ 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" %>
|
||||||
|
<un:useConstants var="VeConstants" className="kcc.ve.cmm.VeConstants" />
|
||||||
|
<%
|
||||||
|
/**
|
||||||
|
* @Class Name : newEduPrfrmMngList.jsp
|
||||||
|
* @Description : 교육신청관리 > 교육실적통계 (new 2024-01-10)
|
||||||
|
* @Modification Information
|
||||||
|
* @
|
||||||
|
* @ 수정일 수정자 수정내용
|
||||||
|
* @ ------- -------- ---------------------------
|
||||||
|
* @ 2021.12.14 조용준 최초 생성
|
||||||
|
* @author 조용준
|
||||||
|
* @since 2021.12.14
|
||||||
|
* @version 1.0
|
||||||
|
* @see
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
%>
|
||||||
|
<html lang="ko">
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<style>
|
||||||
|
input:read-only{
|
||||||
|
background-color: #ededed;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script src="<c:url value='/js/echarts.min.js' />"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready(function(){
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
function press(event) {
|
||||||
|
if (event.keyCode==13) {
|
||||||
|
fncGoList();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncReset(thisObj){
|
||||||
|
var targetObj = $(thisObj).closest('.list_top').find('select,input');
|
||||||
|
$.each(targetObj, function(){
|
||||||
|
if($(this).prop('tagName') == 'SELECT'){
|
||||||
|
if($(this).attr('name').indexOf('Month') != -1){
|
||||||
|
$(this).val(new Date().getMonth()+1);
|
||||||
|
}else if($(this).attr('name').indexOf('Year') != -1){
|
||||||
|
$(this).val(new Date().getFullYear());
|
||||||
|
}else{
|
||||||
|
$(this).prop("selectedIndex", 0);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$(this).val('');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function linkPage(pageNo){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.pageIndex.value = pageNo ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/newEduPrfrmMngList.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncGoList(){
|
||||||
|
linkPage(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function fncGoDetail(eduAplctOrd){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.eduAplctOrd.value = eduAplctOrd ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/adultVisitEdu/eduAsgnmCnfrmMngDetail.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad_no1(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no1.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad_no2_no3(p_no3){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.no3.value = p_no3;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no2_no3.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad_no4(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no4.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad_no5_no6_no7(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/adultVisitEdu/eduPrfrmMngExcelDownLoad_adult_no5_no6_no7.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad_no8(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no8.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad_no9(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no9.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad_no11(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/eduPrfrmMngExcelDownLoad_Exprn_no11.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoad_no12(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/cpyrgExprnClsrm/eduPrfrmMngExcelDownLoad_Exprn_no12.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
function excelDownLoadArea(){
|
||||||
|
var listForm = document.listForm ;
|
||||||
|
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduAreaExcelDownLoad.do'/>";
|
||||||
|
listForm.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 강사 거리계산
|
||||||
|
function fncInstrDstncInfo() {
|
||||||
|
var form = document.listForm ;
|
||||||
|
|
||||||
|
form.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/popup/instrAsgnmDstncPopup.do'/>";
|
||||||
|
|
||||||
|
window.open("#", "_dstncPop", "scrollbars = no, top=100px, left=100px, height=750px, width=1200px");
|
||||||
|
form.target = "_dstncPop";
|
||||||
|
form.submit();
|
||||||
|
form.target = "_self";
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<title>교육확정관리</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO" method="post" onsubmit="return false;">
|
||||||
|
<input type="hidden" name="pageIndex" value="<c:out value='${vEEduAplctVO.pageIndex}' default='1' />"/>
|
||||||
|
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEEduAplctVO.searchSortCnd}" />" />
|
||||||
|
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEEduAplctVO.searchSortOrd}" />" />
|
||||||
|
<input type="hidden" name="eduAplctOrd" value="" />
|
||||||
|
<input type="hidden" name="no3" value="" />
|
||||||
|
<input type="hidden" name="lctrDivCd" value="30" />
|
||||||
|
<div class="cont_wrap">
|
||||||
|
<div class="box">
|
||||||
|
<!-- cont_tit -->
|
||||||
|
<div class="cont_tit">
|
||||||
|
<h2>교육실적통계</h2>
|
||||||
|
<ul class="cont_nav">
|
||||||
|
<li class="home"><a href="/"><i></i></a></li>
|
||||||
|
<li>
|
||||||
|
<p>청소년 찾아가는 저작권 교육</p>
|
||||||
|
</li>
|
||||||
|
<li><span class="cur_nav">교육실적통계</span></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- //cont_tit -->
|
||||||
|
|
||||||
|
<div class="cont">
|
||||||
|
<!-- list_top -->
|
||||||
|
<div class="list_top">
|
||||||
|
<div class="list_top_1">
|
||||||
|
<div class="util_left">
|
||||||
|
<p>구분</p>
|
||||||
|
</div>
|
||||||
|
<div class="util_right">
|
||||||
|
<select class="sel_type1" name="mngNmbrYr" id="mngNmbrYr" title="줄 선택" style="width: 140px">
|
||||||
|
|
||||||
|
<c:forEach var="list" items="${selectStngYrList}" varStatus="status">
|
||||||
|
<c:if test="${list.stngYr eq vEEduAplctVO.mngNmbrYr
|
||||||
|
or (empty vEEduAplctVO.mngNmbrYr and list.useYn eq '1')}">
|
||||||
|
<option value='${list.stngYr}' selected>${list.stngYr*1}년</option>
|
||||||
|
</c:if>
|
||||||
|
<c:if test="${list.stngYr ne vEEduAplctVO.mngNmbrYr}">
|
||||||
|
<option value='${list.stngYr}'>${list.stngYr*1}년</option>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- //list_top -->
|
||||||
|
|
||||||
|
<c:if test="${not empty vEEduAplctVO.mngNmbrYr}">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- list util -->
|
||||||
|
<div class="list_util">
|
||||||
|
<!--
|
||||||
|
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
|
||||||
|
-->
|
||||||
|
<p class="list_util_p"></p>
|
||||||
|
<div>
|
||||||
|
*교육신청과 강사배정이 모두 확정된 데이터 기준
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- list util -->
|
||||||
|
<div class="list_util">
|
||||||
|
<!--
|
||||||
|
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
|
||||||
|
-->
|
||||||
|
<p class="list_util_p">
|
||||||
|
① 전체 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수
|
||||||
|
</p>
|
||||||
|
<div>
|
||||||
|
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoadArea();">엑셀 다운로드(강의지역)</button> -->
|
||||||
|
<button type="button" class="btn_down_excel" onclick="excelDownLoad_no11();">엑셀 다운로드</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- list -->
|
||||||
|
<div class="tb_type01">
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<%-- <col style="width: 10%"> --%>
|
||||||
|
|
||||||
|
<col style="width: 16%">
|
||||||
|
<col style="width: 16%">
|
||||||
|
<col style="width: 16%">
|
||||||
|
<col style="width: 16%">
|
||||||
|
<col style="width: 16%">
|
||||||
|
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<!-- <th>대상</th> -->
|
||||||
|
|
||||||
|
<th>운영신청 수</th>
|
||||||
|
<th>운영확정 수</th>
|
||||||
|
<th>결과보고 수</th>
|
||||||
|
<th>운영종료 수</th>
|
||||||
|
<th>운영취소 수</th>
|
||||||
|
<th>전체</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:set var="title1" value="" />
|
||||||
|
<c:set var="title2" value="" />
|
||||||
|
<c:forEach var="list" items="${list_no11}" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<!--
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${list.divCd eq title1}">
|
||||||
|
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out value="${list.divCd}"/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt01}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt02}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt03}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt04}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt05}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt05}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt06}" pattern="#,###"/></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</c:forEach>
|
||||||
|
<c:if test="${empty list_no11}">
|
||||||
|
<tr><td colspan="6"><spring:message code="common.nodata.msg" /></td></tr>
|
||||||
|
</c:if>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<!-- //list -->
|
||||||
|
|
||||||
|
<!-- 월별 횟수/교육인원 차트 -->
|
||||||
|
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
|
||||||
|
<c:forEach var="list" items="${list_no11}" varStatus="status">
|
||||||
|
<c:if test="${status.count eq '1'}">
|
||||||
|
<script type="text/javascript">
|
||||||
|
var dataNOT = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}'];
|
||||||
|
var dataNOTSum = 0;
|
||||||
|
for(var i = 0; i<6; i++){
|
||||||
|
dataNOTSum = parseInt(dataNOT[5]);
|
||||||
|
}
|
||||||
|
if(isNaN(dataNOTSum)){
|
||||||
|
dataNOTSum = 0;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</c:if>
|
||||||
|
</c:forEach>
|
||||||
|
<!-- 횟수 차트 -->
|
||||||
|
<div id="chartContainer" style="display:flex; width:100%;">
|
||||||
|
<div id="chartNumOfTime" style="float:left; width: 50%; height:600px;">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
<!-- 차트 선언 -->
|
||||||
|
var chartNOT = echarts.init(document.getElementById('chartNumOfTime'))
|
||||||
|
var month = ['운영신청 수', '운영확정 수', '결과보고 수', '운영종료 수', '운영취소 수','전체'];
|
||||||
|
<!-- 차트 옵션 지정하기 -->
|
||||||
|
var optionNOT = {
|
||||||
|
// 차트 제목
|
||||||
|
title: {
|
||||||
|
text: '월별 횟수 차트 (총합 :' + dataNOTSum +')',
|
||||||
|
},
|
||||||
|
// x축 라벨
|
||||||
|
xAxis: {
|
||||||
|
data: month,
|
||||||
|
},
|
||||||
|
yAxis: {},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '개수',
|
||||||
|
type: 'bar', // 막대 그래프
|
||||||
|
data: dataNOT,
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: 'top'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
<!-- 차트 옵션 적용 -->
|
||||||
|
chartNOT.setOption(optionNOT);
|
||||||
|
</script>
|
||||||
|
<!-- /횟수 차트 -->
|
||||||
|
|
||||||
|
<!-- 인원 차트 -->
|
||||||
|
<div id="chartNumOfPeople" style="float:right; width: 50%; height:600px;">
|
||||||
|
</div>
|
||||||
|
<script type="text/javascript">
|
||||||
|
<!-- 차트 선언 -->
|
||||||
|
var chartNOP = echarts.init(document.getElementById('chartNumOfPeople'))
|
||||||
|
<!-- 차트 옵션 지정하기 -->
|
||||||
|
var optionNOP = {
|
||||||
|
// 차트 제목
|
||||||
|
title: {
|
||||||
|
text: '월별 인원 차트(총합 :' + dataNOPSum +')',
|
||||||
|
},
|
||||||
|
// x축 라벨
|
||||||
|
xAxis: {
|
||||||
|
data: month,
|
||||||
|
},
|
||||||
|
yAxis: {},
|
||||||
|
series: [
|
||||||
|
{
|
||||||
|
name: '개수',
|
||||||
|
type: 'bar', // 막대 그래프
|
||||||
|
data: dataNOP,
|
||||||
|
label: {
|
||||||
|
show: true,
|
||||||
|
position: 'top'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
|
||||||
|
<!-- 차트 옵션 적용 -->
|
||||||
|
chartNOP.setOption(optionNOP);
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
<!-- /인원 차트 -->
|
||||||
|
<!-- /월별 횟수/교육인원 차트 -->
|
||||||
|
|
||||||
|
|
||||||
|
<!-- list util -->
|
||||||
|
<div class="list_util">
|
||||||
|
<!--
|
||||||
|
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
|
||||||
|
-->
|
||||||
|
<p class="list_util_p">
|
||||||
|
②지역별 운영신청 수, 운영확정 수, 운영진행 수, 결과보고 수, 운영종료 수, 운영취소 수
|
||||||
|
</p>
|
||||||
|
<div>
|
||||||
|
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoadArea();">엑셀 다운로드(강의지역)</button> -->
|
||||||
|
<button type="button" class="btn_down_excel" onclick="excelDownLoad_no12();">엑셀 다운로드</button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- list -->
|
||||||
|
<div class="tb_type01">
|
||||||
|
<table>
|
||||||
|
<colgroup>
|
||||||
|
<%-- <col style="width: 10%"> --%>
|
||||||
|
|
||||||
|
<col style="width: 12%">
|
||||||
|
<col style="width: 12%">
|
||||||
|
<col style="width: 12%">
|
||||||
|
<col style="width: 12%">
|
||||||
|
<col style="width: 12%">
|
||||||
|
<col style="width: 12%">
|
||||||
|
|
||||||
|
<col style="width: auto;">
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<!-- <th>대상</th> -->
|
||||||
|
|
||||||
|
<th>지역</th>
|
||||||
|
<th>운영신청 수</th>
|
||||||
|
<th>운영확정 수</th>
|
||||||
|
<th>결과보고 수</th>
|
||||||
|
<th>운영종료 수</th>
|
||||||
|
<th>운영취소 수</th>
|
||||||
|
<th>전체</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<c:set var="title1" value="" />
|
||||||
|
<c:set var="title2" value="" />
|
||||||
|
<c:forEach var="list" items="${list_no12}" varStatus="status">
|
||||||
|
<tr>
|
||||||
|
<!--
|
||||||
|
<td>
|
||||||
|
<c:choose>
|
||||||
|
<c:when test="${list.divCd eq title1}">
|
||||||
|
|
||||||
|
</c:when>
|
||||||
|
<c:otherwise>
|
||||||
|
<c:out value="${list.divCd}"/>
|
||||||
|
</c:otherwise>
|
||||||
|
</c:choose>
|
||||||
|
</td>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<td><c:out value="${list.codeNm}"/></td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt01}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt02}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt03}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt04}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt05}" pattern="#,###"/>
|
||||||
|
(<fmt:formatNumber value="${list.areaCnt05}" pattern="#,###.#"/>%)
|
||||||
|
</td>
|
||||||
|
<td><fmt:formatNumber value="${list.mnt06}" pattern="#,###"/></td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</c:forEach>
|
||||||
|
<c:if test="${empty list_no12}">
|
||||||
|
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
|
||||||
|
</c:if>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<!-- //list -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</c:if>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form:form>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@ -150,13 +150,15 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (info.event._def.title=="불가능"){
|
if (info.event._def.title=="불가능"){
|
||||||
alert("해당 일자는 관리자가 교육 불가 일자로 설정하여 시수 설정이 불가능 합니다.");
|
//alert("해당 일자는 관리자가 교육 불가 일자로 설정하여 시수 설정이 불가능 합니다.");
|
||||||
}else{
|
}else{
|
||||||
|
/*
|
||||||
dtPsblTmQnttyPop(
|
dtPsblTmQnttyPop(
|
||||||
info.event._def.extendedProps.dtPsblTmQnttyOrd
|
info.event._def.extendedProps.dtPsblTmQnttyOrd
|
||||||
, info.event._def.extendedProps.rndsNm
|
, info.event._def.extendedProps.rndsNm
|
||||||
);
|
);
|
||||||
}
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user