2024-02-20 17:36 기소유예 정렬 순서 변경

This commit is contained in:
myname 2024-02-20 17:37:18 +09:00
parent db661c2e29
commit 42af207701
7 changed files with 1227 additions and 2 deletions

View File

@ -144,4 +144,8 @@ public interface VEInstrMixService {
//교육실정통계- 12. 지역별 운영신청 , 운영확정 , 운영진행 , 결과보고 , 운영종료 , 운영취소 (그래프, 비율 포함) //교육실정통계- 12. 지역별 운영신청 , 운영확정 , 운영진행 , 결과보고 , 운영종료 , 운영취소 (그래프, 비율 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no12(VEInstrDetailVO vEInstrDetailVO) throws Exception; List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no12(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//조건부기소유예관리 통계
//교육실정통계- 검찰청별 교육 의뢰 현황(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_csi_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception;
} }

View File

@ -295,4 +295,11 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_Exprn_no12", vEInstrDetailVO); List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_Exprn_no12", vEInstrDetailVO);
return tlist; return tlist;
} }
//통계정보-조건부기소유예관리-검찰청별 교육 의뢰 현황(그래프 포함)
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_csi_no1", vEInstrDetailVO);
return tlist;
}
} }

View File

@ -229,4 +229,9 @@ public class VEInstrMixServiceImpl implements VEInstrMixService {
public List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no12(VEInstrDetailVO vEInstrDetailVO) throws Exception{ public List<VELctrDetailVO> selectEduPrfrmInfo_Exprn_no12(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_Exprn_no12(vEInstrDetailVO); return vEInstrMixDAO.selectEduPrfrmInfo_Exprn_no12(vEInstrDetailVO);
} }
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_csi_no1(vEInstrDetailVO);
}
} }

View File

@ -33,6 +33,9 @@ import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
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.VEAPrcsAplctPrdInstrAsgnmService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
@ -141,6 +144,14 @@ public class CndtnInstrMngController {
@Resource(name = "vEInstrFeeService") @Resource(name = "vEInstrFeeService")
private VEInstrFeeService vEInstrFeeService; private VEInstrFeeService vEInstrFeeService;
//rkdtk 관리
@Resource(name = "vEInstrMixService")
private VEInstrMixService vEInstrMixService;
//강의설정 MIX
@Resource(name = "vELctrMIXService")
private VELctrMIXService vELctrMIXService;
/* /*
// 교육신청 서비스단 // 교육신청 서비스단
@ -500,6 +511,223 @@ public class CndtnInstrMngController {
return modelAndView; return modelAndView;
} }
/**
* 교육실적통계 화면
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/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-기소유예
//통계- 월별 횟수/교육인원(그래프 포함)
{
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> 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<VELctrDetailVO> 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<VELctrDetailVO> 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<VELctrDetailVO> 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<VELctrDetailVO> 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<VELctrDetailVO> selectAsgnmInfoT2List_no8 = vEInstrMixService.selectEduPrfrmInfo_tngr_no8(vEInstrDetailVODetail);
//복호화
selectAsgnmInfoT2List_no8 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no8);
model.addAttribute("list_no8",selectAsgnmInfoT2List_no8);
}
*/
//통계- 도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨
/*
{
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no9 = vEInstrMixService.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVODetail);
//복호화
selectAsgnmInfoT2List_no9 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no9);
model.addAttribute("list_no9",selectAsgnmInfoT2List_no9);
}
*/
return "oprtn/cndtnSspnIdtmt/newEduPrfrmMngList";
}
/**
* 교육실적통계 Excel - 조건부기소유예 - 검찰청별 교육 의뢰 현황(그래프 포함)
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "/kccadr/oprtn/cndtnSspnIdtmt/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<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_tngr_no1(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
, 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 = {
"EduSlctCd"
, "Chasi"
, "Mnt01"
//, "wCnt"
, "Mnt02"
, "Mnt03", "Mnt04", "Mnt05", "Mnt06", "Mnt07"
, "Mnt08", "Mnt09", "Mnt10", "Mnt11", "Mnt12"
, "MntSum"
};
excelDown(
excelData,
title,
width,
header,
order,
model
);
}catch(Exception ep) {
ep.getStackTrace();
}
modelAndView.addObject(model);
return modelAndView;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// //
@ -617,4 +845,26 @@ public class CndtnInstrMngController {
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();
}
}
} }

View File

@ -429,7 +429,7 @@
ORDER BY ORDER BY
a.req_pnttm DESC a.req_pnttm DESC
, NVL(a.prcs_aplct_prd_ord_cmplt, a.sspn_idtmt_trgt_ord) , a.sspn_idtmt_trgt_ord DESC
, a.prcs_aplct_prd_ord_cmplt DESC , a.prcs_aplct_prd_ord_cmplt DESC
, a.frst_regist_pnttm desc , a.frst_regist_pnttm desc
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY; OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;

View File

@ -1385,4 +1385,38 @@
ORDER BY decode(bbb.code,'999','희희',bbb.code_nm) ORDER BY decode(bbb.code,'999','희희',bbb.code_nm)
</select> </select>
<!-- 교육실정통계- ①검찰청별 교육 의뢰 현황(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_csi_no1" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_csi_no1 */
SELECT aaa.code, aaa.cnt
, bbb.code_nm
FROM (
SELECT bb.code, sum(aa.cnt) AS cnt
FROM (
SELECT a.CMPTNT_ATHRT, count(*) AS cnt
FROM vea_sspn_idmt_trgt a
WHERE to_char(a.REQ_PNTTM,'YYYY')=#mngNmbrYr#
GROUP BY a.CMPTNT_ATHRT
)aa
,(
SELECT code, code_nm
FROM LETTCCMMNDETAILCODE b
WHERE b.code_id='VEA008'
AND b.use_at='Y'
)bb
WHERE aa.cmptnt_athrt=bb.code
GROUP BY rollup(bb.code)
)aaa
LEFT OUTER JOIN LETTCCMMNDETAILCODE bbb
on(aaa.code=bbb.code)
ORDER BY SUBSTRING(bbb.code_nm,1,2)
, instr(bbb.code_nm,'-')
, bbb.code_nm
</select>
</sqlMap> </sqlMap>

View File

@ -0,0 +1,925 @@
<!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/cndtnSspnIdtmt/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/cndtnSspnIdtmt/eduAsgnmCnfrmMngDetail.do'/>";
listForm.submit();
}
function excelDownLoad_no1(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/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/cndtnSspnIdtmt/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 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="20" />
<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>
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoadArea();">엑셀 다운로드(강의지역)</button> -->
<button type="button" class="btn_down_excel" onclick="excelDownLoad_no1();">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<%-- <col style="width: 10%"> --%>
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<!-- <th>대상</th> -->
<th>구분</th>
<th>횟수/인원</th>
<th>1월</th>
<th>2월</th>
<th>3월</th>
<th>4월</th>
<th>5월</th>
<th>6월</th>
<th>7월</th>
<th>8월</th>
<th>9월</th>
<th>10월</th>
<th>11월</th>
<th>12월</th>
<th>합계</th>
</tr>
</thead>
<tbody>
<c:set var="title1" value="" />
<c:set var="title2" value="" />
<c:forEach var="list" items="${list_no1}" 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:choose>
<c:when test="${list.eduSlctCd eq title2}">
</c:when>
<c:otherwise>
<c:out value="${list.eduSlctCd}"/>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${list.chasi}"/></td>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt05}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt06}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt07}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt08}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt09}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt10}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt11}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt12}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mntSum}" pattern="#,###"/></td>
</tr>
<c:set var="title1" value="${list.divCd}" />
<c:set var="title2" value="${list.eduSlctCd}" />
</c:forEach>
<c:if test="${empty list_no1}">
<tr><td colspan="15"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- 월별 횟수/교육인원 차트 -->
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
<c:forEach var="list" items="${list_no1}" varStatus="status">
<c:if test="${status.count eq '3'}">
<script type="text/javascript">
var dataNOT = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var maxNOT = Number(dataNOT[0]);
var dataNOTSum = 0;
for(var i = 0; i<12; i++){
var NOTs = Number(dataNOT[i]);
if(!isNaN(NOTs)){
if(NOTs > maxNOT){
maxNOT = NOTs
}
}
dataNOTSum += parseInt(dataNOT[i]);
}
maxNOT = Math.ceil(maxNOT / 10) * 10;
if(isNaN(dataNOTSum)){
dataNOTSum = 0;
}
</script>
</c:if>
<c:if test="${status.count eq '6'}">
<script type="text/javascript">
var dataNOP = ['${list.mnt01}', '${list.mnt02}', '${list.mnt03}', '${list.mnt04}', '${list.mnt05}', '${list.mnt06}', '${list.mnt07}', '${list.mnt08}', '${list.mnt09}', '${list.mnt10}', '${list.mnt11}', '${list.mnt12}'];
var dataNOPSum = 0;
var maxNOP = Number(dataNOP[0]);
for(var x = 0; x<12; x++){
var NOPs = Number(dataNOP[x]);
if(!isNaN(NOPs)){
if(NOPs > maxNOP){
maxNOP = NOPs
}
}
dataNOPSum += parseInt(dataNOP[x]);
}
maxNOP = Math.ceil(maxNOP / 100) * 100;
if(isNaN(dataNOPSum)){
dataNOPSum = 0;
}
</script>
</c:if>
</c:forEach>
<div id="chartContainer" style="display:flex; width:100%;">
<div id="chartAll" style="float:left; width: 100%; height:600px;">
</div>
<script type="text/javascript">
var chartAll = echarts.init(document.getElementById('chartAll'));
var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월'];
var optionAll = {
toolbox: {
feature: {
//dataView: { show: true, readOnly: false },
magicType: { show: true, type: ['line', 'bar'] },
restore: { show: true },
saveAsImage: { show: true }
}
},
legend: {
data: ['횟수', '인원']
},
xAxis: [
{
type: 'category',
data: month,
axisPointer: {
type: 'shadow'
}
}
],
yAxis: [
{
type: 'value',
name: '횟수',
interval: 50,
/* max : maxNOT, */
alignTicks: true,
axisLabel: {
formatter: '{value}회'
}
},
{
type: 'value',
name: '인원',
interval: 50,
/* max : maxNOP, */
alignTicks: true,
axisLabel: {
formatter: '{value}명'
}
}
],
series: [
{
name: '횟수',
type: 'bar',
tooltip: {
valueFormatter: function (value) {
return value + '회';
}
},
label: {
show: true,
position: 'top'
},
data: dataNOT
},
{
name: '인원',
type: 'line',
yAxisIndex: 1,
tooltip: {
valueFormatter: function (value) {
return value + '명';
}
},
label: {
show: true,
position: 'top'
},
data: dataNOP
}
]
}
//차트 옵션 적용
chartAll.setOption(optionAll);
</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_no2_no3('10');">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<%-- <col style="width: 10%"> --%>
<col style="width: 6%">
<col style="width: 10%">
<%-- <col style="width: 6%"> --%>
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<!-- <th>대상</th> -->
<th>구분</th>
<th>지역</th>
<!-- <th>횟수/인원</th> -->
<th>1월</th>
<th>2월</th>
<th>3월</th>
<th>4월</th>
<th>5월</th>
<th>6월</th>
<th>7월</th>
<th>8월</th>
<th>9월</th>
<th>10월</th>
<th>11월</th>
<th>12월</th>
<th>합계</th>
</tr>
</thead>
<tbody>
<c:set var="title1" value="" />
<c:set var="title2" value="" />
<c:forEach var="list" items="${list_no2}" 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:choose>
<c:when test="${list.eduSlctCd eq title2}">
<c:out value="${list.eduSlctCd}"/>
</c:when>
<c:otherwise>
<c:out value="${list.eduSlctCd}"/>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${list.divCd}"/></td>
<%-- <td><c:out value="${list.chasi}"/></td> --%>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt05}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt06}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt07}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt08}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt09}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt10}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt11}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt12}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mntSum}" pattern="#,###"/></td>
</tr>
<c:set var="title1" value="${list.divCd}" />
<c:set var="title2" value="${list.eduSlctCd}" />
</c:forEach>
<c:if test="${empty list_no2}">
<tr><td colspan="15"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- 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_no2_no3('20');">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<%-- <col style="width: 10%"> --%>
<col style="width: 6%">
<col style="width: 10%">
<%-- <col style="width: 6%"> --%>
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<!-- <th>대상</th> -->
<th>구분</th>
<th>지역</th>
<!-- <th>횟수/인원</th> -->
<th>1월</th>
<th>2월</th>
<th>3월</th>
<th>4월</th>
<th>5월</th>
<th>6월</th>
<th>7월</th>
<th>8월</th>
<th>9월</th>
<th>10월</th>
<th>11월</th>
<th>12월</th>
<th>합계</th>
</tr>
</thead>
<tbody>
<c:set var="title1" value="" />
<c:set var="title2" value="" />
<c:forEach var="list" items="${list_no3}" 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:choose>
<c:when test="${list.eduSlctCd eq title2}">
<c:out value="${list.eduSlctCd}"/>
</c:when>
<c:otherwise>
<c:out value="${list.eduSlctCd}"/>
</c:otherwise>
</c:choose>
</td>
<td><c:out value="${list.divCd}"/></td>
<%-- <td><c:out value="${list.chasi}"/></td> --%>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt05}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt06}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt07}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt08}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt09}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt10}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt11}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt12}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mntSum}" pattern="#,###"/></td>
</tr>
<c:set var="title1" value="${list.divCd}" />
<c:set var="title2" value="${list.eduSlctCd}" />
</c:forEach>
<c:if test="${empty list_no3}">
<tr><td colspan="15"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- 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_no4();">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<%-- <col style="width: 10%"> --%>
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: 10%">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<!-- <th>대상</th> -->
<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_no4}" 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.instrNm}"/></td>
<td><c:out value="${list.codeNm}"/></td>
<%-- <td><c:out value="${list.chasi}"/></td> --%>
<td><fmt:formatNumber value="${list.lctrAreaCnt}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mntSum}" pattern="#,###"/></td>
</tr>
</c:forEach>
<c:if test="${empty list_no4}">
<tr><td colspan="15"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- 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_no5_no6_no7();">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<%-- <col style="width: 10%"> --%>
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: 6%">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<!-- <th>대상</th> -->
<th>구분</th>
<th>횟수/인원</th>
<th>1월</th>
<th>2월</th>
<th>3월</th>
<th>4월</th>
<th>5월</th>
<th>6월</th>
<th>7월</th>
<th>8월</th>
<th>9월</th>
<th>10월</th>
<th>11월</th>
<th>12월</th>
<th>합계</th>
</tr>
</thead>
<tbody>
<c:set var="title1" value="" />
<c:set var="title2" value="" />
<c:forEach var="list" items="${list_no5_no6_no7}" 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:choose>
<c:when test="${list.eduSlctCd eq title2}">
</c:when>
<c:otherwise>
<c:out value="${list.eduSlctCd}"/>
</c:otherwise>
</c:choose>
</td>
-->
<td><c:out value="${list.divCd}"/></td>
<td><c:out value="${list.chasi}"/></td>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt03}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt04}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt05}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt06}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt07}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt08}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt09}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt10}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt11}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt12}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mntSum}" pattern="#,###"/></td>
</tr>
<c:set var="title1" value="${list.divCd}" />
<c:set var="title2" value="${list.eduSlctCd}" />
</c:forEach>
<c:if test="${empty list_no5_no6_no7}">
<tr><td colspan="15"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- 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_no8();">엑셀 다운로드</button> -->
</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_no9();">엑셀 다운로드</button> -->
</div>
</div>
</c:if>
</div>
</div>
</div>
</form:form>
</body>
</html>