2024-04-12 15:11 기소유예 통계 작업
This commit is contained in:
parent
9ccd71d757
commit
2d72bee2ba
@ -35,6 +35,9 @@ public interface VEPrcsAplctPrdService {
|
||||
//기반강화, 기소유예 - 사용자용
|
||||
List<VEPrcsDetailVO> selectPagingList4Fndth4User(VEPrcsDetailVO paramVO) throws Exception;
|
||||
|
||||
//기반강화, 기소유예
|
||||
List<VEPrcsDetailVO> selectPagingList4Fndth4Stts(VEPrcsDetailVO paramVO) throws Exception;
|
||||
|
||||
//R
|
||||
VEPrcsDetailVO selectDetailNewOne(VEPrcsDetailVO paramVO) throws Exception;
|
||||
|
||||
|
||||
@ -84,6 +84,11 @@ public class VEPrcsAplctPrdDAO extends EgovAbstractDAO {
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> selectPagingList4Fndth4Stts(VEPrcsDetailVO paramVO) throws Exception {
|
||||
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectPagingList4Fndth4Stts", paramVO);
|
||||
return tlist;
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> selectCfnPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception {
|
||||
List<VEPrcsDetailVO> tlist = (List<VEPrcsDetailVO>) list("VEPrcsAplctPrdDAO.selectCfnPagingList4Fndth", paramVO);
|
||||
return tlist;
|
||||
|
||||
@ -81,7 +81,11 @@ public class VEPrcsAplctPrdServiceImpl implements VEPrcsAplctPrdService {
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> selectPagingList4Fndth4User(VEPrcsDetailVO paramVO) throws Exception{
|
||||
return vEPrcsAplctPrdDAO.selectPagingList4Fndth4User(paramVO);
|
||||
return vEPrcsAplctPrdDAO.selectPagingList4Fndth4User(paramVO);
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> selectPagingList4Fndth4Stts(VEPrcsDetailVO paramVO) throws Exception{
|
||||
return vEPrcsAplctPrdDAO.selectPagingList4Fndth4Stts(paramVO);
|
||||
}
|
||||
|
||||
public List<VEPrcsDetailVO> selectCfnPagingList4Fndth(VEPrcsDetailVO paramVO) throws Exception{
|
||||
|
||||
@ -513,7 +513,7 @@ public class CndtnInstrMngController {
|
||||
|
||||
/**
|
||||
* 교육실적통계 화면
|
||||
*/
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/newEduPrfrmMngList.do")
|
||||
public String newEduPrfrmMngList(
|
||||
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
|
||||
@ -531,6 +531,11 @@ public class CndtnInstrMngController {
|
||||
List<VELctrDetailVO> selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO);
|
||||
model.addAttribute("selectStngYrList", selectStngYrList);
|
||||
|
||||
//차시별 정보
|
||||
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth4Stts(vEPrcsDetailVO);
|
||||
model.addAttribute("vEPrcsDetailVOList", vEPrcsDetailVOList);
|
||||
|
||||
|
||||
//vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예
|
||||
|
||||
@ -629,6 +634,131 @@ public class CndtnInstrMngController {
|
||||
return "oprtn/cndtnSspnIdtmt/newEduPrfrmMngList";
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육실적통계 화면-개별
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/newEduPrfrmEAMngList.do")
|
||||
public String newEduPrfrmEAMngList(
|
||||
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
|
||||
, @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO
|
||||
, @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail
|
||||
|
||||
, HttpSession session
|
||||
, ModelMap model
|
||||
) throws Exception {
|
||||
|
||||
//LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
|
||||
|
||||
|
||||
//설정 년 리스트(과거~올해+1)
|
||||
List<VELctrDetailVO> selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO);
|
||||
model.addAttribute("selectStngYrList", selectStngYrList);
|
||||
|
||||
//차시별 정보
|
||||
VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO();
|
||||
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth4Stts(vEPrcsDetailVO);
|
||||
model.addAttribute("vEPrcsDetailVOList", vEPrcsDetailVOList);
|
||||
|
||||
|
||||
//vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예
|
||||
|
||||
|
||||
//통계- ①검찰청별 교육 의뢰 현황(그래프 포함)
|
||||
{
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List_no1 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no1);
|
||||
|
||||
model.addAttribute("list_no1",selectAsgnmInfoT2List_no1);
|
||||
}
|
||||
|
||||
|
||||
//통계- ②월별 교육의뢰현황(그래프 포함)
|
||||
{
|
||||
//vEInstrDetailVODetail.setNo3("10"); /* 10-횟수, 20-인원 */
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List_no2 = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List_no2 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no2);
|
||||
|
||||
model.addAttribute("list_no2",selectAsgnmInfoT2List_no2);
|
||||
}
|
||||
|
||||
|
||||
//통계- ③월별 지역별 교육인원(그래프 포함)
|
||||
{
|
||||
//vEInstrDetailVODetail.setNo3("20"); /* 10-횟수, 20-인원 */
|
||||
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List_no3 = vEInstrMixService.selectEduPrfrmInfo_csi_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/newEduPrfrmEAMngList";
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -596,6 +596,37 @@
|
||||
*/
|
||||
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 기반강화, 기소유예 L page -->
|
||||
<select id="VEPrcsAplctPrdDAO.selectPagingList4Fndth4Stts" parameterClass="VEPrcsDetailVO" resultClass="VEPrcsDetailVO">
|
||||
/* VEPrcsAplctPrdDAO.selectPagingList4Fndth4Stts */
|
||||
SELECT
|
||||
COUNT(1) OVER() AS totCnt ,
|
||||
<include refid="VEPrcsAplctPrdDAO.select_column_name"/>
|
||||
, b.prcs_nm as prcsNm
|
||||
|
||||
FROM
|
||||
<include refid="VEPrcsAplctPrdDAO.table_name"/> a
|
||||
, ve_prcs b
|
||||
|
||||
WHERE
|
||||
1=1
|
||||
AND a.prcs_ord=b.prcs_ord
|
||||
|
||||
|
||||
<isNotEmpty property="lctrDivCd">
|
||||
AND a.lctr_div_cd=#lctrDivCd#
|
||||
</isNotEmpty>
|
||||
|
||||
<isEqual property="lctrDivCd" compareValue="60">
|
||||
AND NVL(a.use_yn,'Y')='Y'
|
||||
</isEqual>
|
||||
|
||||
|
||||
ORDER BY 1, b.prcs_nm ASC
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 기반강화, 기소유예 확정 L page -->
|
||||
|
||||
@ -0,0 +1,720 @@
|
||||
<!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 : newEduPrfrmEAMngList.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/newEduPrfrmEAMngList.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_csi_no1.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function excelDownLoad_no2(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no2.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function excelDownLoad_no3(){
|
||||
/*
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no2.do'/>";
|
||||
listForm.submit();
|
||||
*/
|
||||
alert("준비중입니다.");
|
||||
}
|
||||
|
||||
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>
|
||||
<select class="sel_type1" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" title="줄 선택" style="width: 440px">
|
||||
|
||||
<c:forEach var="list" items="${vEPrcsDetailVOList}" varStatus="status">
|
||||
<c:if test="${list.prcsAplctPrdOrd eq vEEduAplctVO.prcsAplctPrdOrd}">
|
||||
<option value='${list.prcsAplctPrdOrd}' selected>${list.prcsNm}(${list.prcsAplctPrdOrd})</option>
|
||||
</c:if>
|
||||
<c:if test="${list.prcsAplctPrdOrd ne vEEduAplctVO.prcsAplctPrdOrd}">
|
||||
<option value='${list.prcsAplctPrdOrd}'>${list.prcsNm}(${list.prcsAplctPrdOrd})</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>
|
||||
|
||||
<!-- 월별 횟수/교육인원 차트 -->
|
||||
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
|
||||
|
||||
<script type="text/javascript">
|
||||
var dataNOT = [];
|
||||
//var dataNOP = [];
|
||||
|
||||
var month = [];
|
||||
</script>
|
||||
|
||||
<c:forEach var="list" items="${list_no1}" varStatus="status">
|
||||
<script type="text/javascript">
|
||||
dataNOT.push('${list.cnt}');
|
||||
//dataNOP.push('${list.cnt}');
|
||||
|
||||
month.push('${list.codeNm}');
|
||||
</script>
|
||||
</c:forEach>
|
||||
<script type="text/javascript">
|
||||
dataNOT.pop();
|
||||
//dataNOP.pop();
|
||||
|
||||
month.pop();
|
||||
</script>
|
||||
|
||||
<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월'];
|
||||
//alert(dataNOT);
|
||||
//alert(month);
|
||||
var optionAll = {
|
||||
toolbox: {
|
||||
feature: {
|
||||
//dataView: { show: true, readOnly: false },
|
||||
magicType: { show: true, type: ['line', 'bar'] },
|
||||
restore: { show: true },
|
||||
saveAsImage: { show: true }
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
data: ['명']
|
||||
},
|
||||
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
data: month,
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
|
||||
},
|
||||
axisLabel: {
|
||||
rotate: 90,
|
||||
}
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '명',
|
||||
interval: 50,
|
||||
/* max : maxNOT, */
|
||||
alignTicks: true,
|
||||
axisLabel: {
|
||||
formatter: '{value}명'
|
||||
}
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '명',
|
||||
type: 'bar',
|
||||
tooltip: {
|
||||
valueFormatter: function (value) {
|
||||
return value + '명';
|
||||
}
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
},
|
||||
data: dataNOT
|
||||
}
|
||||
]
|
||||
}
|
||||
//차트 옵션 적용
|
||||
chartAll.setOption(optionAll);
|
||||
</script>
|
||||
</div>
|
||||
<!-- /월별 횟수/교육인원 차트 -->
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<%-- <col style="width: 10%"> --%>
|
||||
<col style="width: 200px">
|
||||
<col style="width: 200px">
|
||||
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- <th>대상</th> -->
|
||||
<th>구분</th>
|
||||
<th>의뢰(명)</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<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:out value="${list.codeNm}"/></td>
|
||||
<td><fmt:formatNumber value="${list.cnt}" pattern="#,###"/></td>
|
||||
|
||||
|
||||
</tr>
|
||||
|
||||
</c:forEach>
|
||||
<c:if test="${empty list_no1}">
|
||||
<tr><td colspan="2"><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();">엑셀 다운로드</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 월별 횟수/교육인원 차트 -->
|
||||
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
|
||||
|
||||
<script type="text/javascript">
|
||||
var dataNOT_2 = [];
|
||||
//var dataNOP = [];
|
||||
|
||||
var month_2 = [];
|
||||
</script>
|
||||
|
||||
<c:forEach var="list" items="${list_no2}" varStatus="status">
|
||||
<script type="text/javascript">
|
||||
dataNOT_2.push('${list.cnt}');
|
||||
//dataNOP.push('${list.cnt}');
|
||||
|
||||
month_2.push('${list.codeNm}월');
|
||||
</script>
|
||||
</c:forEach>
|
||||
<script type="text/javascript">
|
||||
dataNOT_2.pop();
|
||||
//dataNOP.pop();
|
||||
|
||||
month_2.pop();
|
||||
</script>
|
||||
|
||||
<div id="chartContainer" style="display:flex; width:100%;">
|
||||
<div id="chartAll_2" style="float:left; width: 100%; height:600px;">
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var chartAll_2 = echarts.init(document.getElementById('chartAll_2'));
|
||||
//var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월'];
|
||||
//alert(dataNOT);
|
||||
//alert(month);
|
||||
var optionAll_2 = {
|
||||
toolbox: {
|
||||
feature: {
|
||||
//dataView: { show: true, readOnly: false },
|
||||
magicType: { show: true, type: ['line', 'bar'] },
|
||||
restore: { show: true },
|
||||
saveAsImage: { show: true }
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
data: ['명']
|
||||
},
|
||||
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
data: month_2,
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
|
||||
},
|
||||
axisLabel: {
|
||||
rotate: 0,
|
||||
}
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '명',
|
||||
interval: 50,
|
||||
/* max : maxNOT, */
|
||||
alignTicks: true,
|
||||
axisLabel: {
|
||||
formatter: '{value}명'
|
||||
}
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '명',
|
||||
type: 'bar',
|
||||
tooltip: {
|
||||
valueFormatter: function (value) {
|
||||
return value + '명';
|
||||
}
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
},
|
||||
data: dataNOT_2
|
||||
}
|
||||
]
|
||||
}
|
||||
//차트 옵션 적용
|
||||
chartAll_2.setOption(optionAll_2);
|
||||
</script>
|
||||
</div>
|
||||
<!-- /월별 횟수/교육인원 차트 -->
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<%-- <col style="width: 10%"> --%>
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- <th>대상</th> -->
|
||||
<th>구분</th>
|
||||
<c:forEach var="list" items="${list_no2}" varStatus="status">
|
||||
<th>
|
||||
<c:choose>
|
||||
<c:when test="${list.codeNm eq '13'}">합계</c:when>
|
||||
<c:otherwise>${list.codeNm}월</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</th>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td>의뢰(명)</td>
|
||||
<c:forEach var="list" items="${list_no2}" varStatus="status">
|
||||
<td><fmt:formatNumber value="${list.cnt}" pattern="#,###"/></td>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
|
||||
|
||||
<c:if test="${empty list_no2}">
|
||||
<tr><td colspan="8"><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">
|
||||
3.대상별 교육 의뢰 현황
|
||||
</p>
|
||||
<div>
|
||||
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoadArea();">엑셀 다운로드(강의지역)</button> -->
|
||||
<button type="button" class="btn_down_excel" onclick="excelDownLoad_no3();">엑셀 다운로드</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 월별 횟수/교육인원 차트 -->
|
||||
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
|
||||
|
||||
<script type="text/javascript">
|
||||
var dataNOT_3 = [];
|
||||
//var dataNOP = [];
|
||||
|
||||
var month_3 = [];
|
||||
</script>
|
||||
|
||||
<c:forEach var="list" items="${list_no3}" varStatus="status">
|
||||
<script type="text/javascript">
|
||||
dataNOT_3.push('${list.cnt}');
|
||||
//dataNOP.push('${list.cnt}');
|
||||
|
||||
month_3.push('${list.codeNm}');
|
||||
</script>
|
||||
</c:forEach>
|
||||
<script type="text/javascript">
|
||||
dataNOT_3.pop();
|
||||
//dataNOP.pop();
|
||||
|
||||
month_3.pop();
|
||||
</script>
|
||||
|
||||
<div id="chartContainer" style="display:flex; width:100%;">
|
||||
<div id="chartAll_3" style="float:left; width: 100%; height:600px;">
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var chartAll_3 = echarts.init(document.getElementById('chartAll_3'));
|
||||
//var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월'];
|
||||
//alert(dataNOT);
|
||||
//alert(month);
|
||||
var optionAll_3 = {
|
||||
toolbox: {
|
||||
feature: {
|
||||
//dataView: { show: true, readOnly: false },
|
||||
magicType: { show: true, type: ['line', 'bar'] },
|
||||
restore: { show: true },
|
||||
saveAsImage: { show: true }
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
data: ['명']
|
||||
},
|
||||
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
data: month_3,
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
|
||||
},
|
||||
axisLabel: {
|
||||
rotate: 0,
|
||||
}
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '명',
|
||||
interval: 50,
|
||||
/* max : maxNOT, */
|
||||
alignTicks: true,
|
||||
axisLabel: {
|
||||
formatter: '{value}명'
|
||||
}
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '명',
|
||||
type: 'bar',
|
||||
tooltip: {
|
||||
valueFormatter: function (value) {
|
||||
return value + '명';
|
||||
}
|
||||
},
|
||||
label: {
|
||||
show: true,
|
||||
position: 'top'
|
||||
},
|
||||
data: dataNOT_3
|
||||
}
|
||||
]
|
||||
}
|
||||
//차트 옵션 적용
|
||||
chartAll_3.setOption(optionAll_3);
|
||||
</script>
|
||||
</div>
|
||||
<!-- /월별 횟수/교육인원 차트 -->
|
||||
|
||||
<!-- list -->
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
<colgroup>
|
||||
<%-- <col style="width: 10%"> --%>
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
<col style="width: 100px">
|
||||
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- <th>대상</th> -->
|
||||
<th>구분</th>
|
||||
<c:forEach var="list" items="${list_no3}" varStatus="status">
|
||||
<th>
|
||||
<c:choose>
|
||||
<c:when test="${list.codeNm eq 'ZZ'}">합계</c:when>
|
||||
<c:otherwise>${list.codeNm}</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
</th>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<td>의뢰(명)</td>
|
||||
<c:forEach var="list" items="${list_no3}" varStatus="status">
|
||||
<td><fmt:formatNumber value="${list.cnt}" pattern="#,###"/></td>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
|
||||
|
||||
<c:if test="${empty list_no3}">
|
||||
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- //list -->
|
||||
</c:if>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form:form>
|
||||
</body>
|
||||
</html>
|
||||
@ -188,9 +188,22 @@
|
||||
<c:if test="${list.stngYr ne vEEduAplctVO.mngNmbrYr}">
|
||||
<option value='${list.stngYr}'>${list.stngYr*1}년</option>
|
||||
</c:if>
|
||||
</c:forEach>
|
||||
</c:forEach>
|
||||
|
||||
</select>
|
||||
<!-- <select class="sel_type1" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" title="줄 선택" style="width: 440px"> -->
|
||||
<!-- <option value=''>전체</option> -->
|
||||
|
||||
<%-- <c:forEach var="list" items="${vEPrcsDetailVOList}" varStatus="status"> --%>
|
||||
<%-- <c:if test="${list.prcsAplctPrdOrd eq vEEduAplctVO.prcsAplctPrdOrd}"> --%>
|
||||
<%-- <option value='${list.prcsAplctPrdOrd}' selected>${list.prcsNm}(${list.prcsAplctPrdOrd})</option> --%>
|
||||
<%-- </c:if> --%>
|
||||
<%-- <c:if test="${list.prcsAplctPrdOrd ne vEEduAplctVO.prcsAplctPrdOrd}"> --%>
|
||||
<%-- <option value='${list.prcsAplctPrdOrd}'>${list.prcsNm}(${list.prcsAplctPrdOrd})</option> --%>
|
||||
<%-- </c:if> --%>
|
||||
<%-- </c:forEach> --%>
|
||||
|
||||
<!-- </select> -->
|
||||
|
||||
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user