2024-04-16 16:03 기소유예 통계 작업 완료
This commit is contained in:
parent
4d546bf138
commit
da40101b47
@ -584,18 +584,25 @@ public class CndtnInstrMngController {
|
||||
//통계- ④검찰청별 교육 수료 현황(그래프 포함)
|
||||
{
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
List<VELctrDetailVO> selectAsgnmInfoT4List_no4 = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail);
|
||||
|
||||
model.addAttribute("list_no4",selectAsgnmInfoT4List_no4);
|
||||
}
|
||||
|
||||
// ⑤월별 교육수료현황(그래프 포함) - 대상이 없어서 제공안됨
|
||||
// ⑤월별 교육이수현황(그래프 포함) - 대상이 없어서 제공안됨
|
||||
{
|
||||
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
List<VELctrDetailVO> selectAsgnmInfoT5List = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail);
|
||||
model.addAttribute("list_no5",selectAsgnmInfoT5List);
|
||||
}
|
||||
// ⑥대상별 교육수료현황(그래프 포함) - 대상이 없어서 제공안됨
|
||||
// ⑥대상별 교육이수현황(그래프 포함) - 대상이 없어서 제공안됨
|
||||
{
|
||||
|
||||
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
List<VELctrDetailVO> selectAsgnmInfoT6List = vEInstrMixService.selectEduPrfrmInfo_csi_no3(vEInstrDetailVODetail);
|
||||
model.addAttribute("list_no6",selectAsgnmInfoT6List);
|
||||
}
|
||||
// ⑦월별 교육대상별 교육인원(그래프 포함) - 대상이 없어서 제공안됨
|
||||
{
|
||||
@ -833,7 +840,7 @@ public class CndtnInstrMngController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육실적통계 Excel - 조건부기소유예 - ①검찰청별 교육 의뢰 현황(그래프 포함)
|
||||
* 교육실적통계 Excel - 조건부기소유예 - 2검찰청별 교육 의뢰 현황(그래프 포함)
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
@ -988,6 +995,241 @@ public class CndtnInstrMngController {
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육실적통계 Excel - 조건부기소유예 - 4검찰청별 교육 이수 현황(그래프 포함)
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
@RequestMapping(value = "/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no4.do")
|
||||
public ModelAndView eduPrfrmMngExcelDownLoad_csi_no4(
|
||||
@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);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_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
|
||||
|
||||
}; // 너비
|
||||
|
||||
//33개 항목
|
||||
String[] header = {
|
||||
|
||||
"구분"
|
||||
, "이수(명)"
|
||||
|
||||
};
|
||||
|
||||
String[] order = {
|
||||
|
||||
"CodeNm"
|
||||
, "Cnt"
|
||||
|
||||
};
|
||||
|
||||
excelDown(
|
||||
excelData,
|
||||
title,
|
||||
width,
|
||||
header,
|
||||
order,
|
||||
model
|
||||
);
|
||||
|
||||
}catch(Exception ep) {
|
||||
ep.getStackTrace();
|
||||
}
|
||||
|
||||
|
||||
modelAndView.addObject(model);
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육실적통계 Excel - 조건부기소유예 - 5검찰청별 교육 이수 현황(그래프 포함)
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
@RequestMapping(value = "/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no5.do")
|
||||
public ModelAndView eduPrfrmMngExcelDownLoad_csi_no5(
|
||||
@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);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||
|
||||
System.out.println("out-list-2");
|
||||
|
||||
|
||||
selectAsgnmInfoT2List.get(12).setCodeNm("합계");
|
||||
|
||||
List<Object> excelData = new ArrayList<>();
|
||||
excelData.addAll(selectAsgnmInfoT2List);
|
||||
|
||||
|
||||
// 세팅값
|
||||
String title = "교육실적통계-월별 교육 이수 현황";
|
||||
int[] width = {
|
||||
|
||||
4000, 4000
|
||||
|
||||
}; // 너비
|
||||
|
||||
//33개 항목
|
||||
String[] header = {
|
||||
|
||||
"월"
|
||||
, "이수(명)"
|
||||
|
||||
};
|
||||
|
||||
String[] order = {
|
||||
|
||||
"CodeNm"
|
||||
, "Cnt"
|
||||
|
||||
};
|
||||
|
||||
excelDown(
|
||||
excelData,
|
||||
title,
|
||||
width,
|
||||
header,
|
||||
order,
|
||||
model
|
||||
);
|
||||
|
||||
}catch(Exception ep) {
|
||||
ep.getStackTrace();
|
||||
}
|
||||
|
||||
|
||||
modelAndView.addObject(model);
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* 교육실적통계 Excel - 조건부기소유예 - 3대상별 교육 이수 현황(그래프 포함)
|
||||
* @param model
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
@RequestMapping(value = "/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no6.do")
|
||||
public ModelAndView eduPrfrmMngExcelDownLoad_csi_no6(
|
||||
@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);
|
||||
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||
List<VELctrDetailVO> selectAsgnmInfoT3List = vEInstrMixService.selectEduPrfrmInfo_csi_no3(vEInstrDetailVODetail);
|
||||
|
||||
//복호화
|
||||
//selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List);
|
||||
|
||||
System.out.println("out-list-2");
|
||||
|
||||
|
||||
selectAsgnmInfoT3List.get(2).setCodeNm("합계");
|
||||
|
||||
List<Object> excelData = new ArrayList<>();
|
||||
excelData.addAll(selectAsgnmInfoT3List);
|
||||
|
||||
|
||||
// 세팅값
|
||||
String title = "교육실적통계-대상별 교육 이수 현황";
|
||||
int[] width = {
|
||||
|
||||
4000, 4000
|
||||
|
||||
}; // 너비
|
||||
|
||||
//33개 항목
|
||||
String[] header = {
|
||||
|
||||
"대상"
|
||||
, "이수(명)"
|
||||
|
||||
};
|
||||
|
||||
String[] order = {
|
||||
|
||||
"CodeNm"
|
||||
, "Cnt"
|
||||
|
||||
};
|
||||
|
||||
excelDown(
|
||||
excelData,
|
||||
title,
|
||||
width,
|
||||
header,
|
||||
order,
|
||||
model
|
||||
);
|
||||
|
||||
}catch(Exception ep) {
|
||||
ep.getStackTrace();
|
||||
}
|
||||
|
||||
|
||||
modelAndView.addObject(model);
|
||||
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
|
||||
@ -2142,6 +2142,11 @@
|
||||
/* 병합제거시 주석 제거 할것
|
||||
AND a.prcs_aplct_prd_ord_cmplt IS null
|
||||
*/
|
||||
|
||||
<isNotEmpty property="searchEduStateCd">
|
||||
AND a.edu_state_cd = #searchEduStateCd#
|
||||
</isNotEmpty>
|
||||
|
||||
GROUP BY a.CMPTNT_ATHRT
|
||||
)aa LEFT OUTER JOIN
|
||||
(
|
||||
@ -2201,6 +2206,10 @@
|
||||
/* 병합제거시 주석 제거 할것
|
||||
AND a.prcs_aplct_prd_ord_cmplt IS null */
|
||||
|
||||
<isNotEmpty property="searchEduStateCd">
|
||||
AND a.edu_state_cd = #searchEduStateCd#
|
||||
</isNotEmpty>
|
||||
|
||||
GROUP BY
|
||||
TO_CHAR(a.req_pnttm, 'MM' ) )aa
|
||||
|
||||
@ -2246,6 +2255,10 @@
|
||||
/* 병합제거시 주석 제거 할것
|
||||
AND a.prcs_aplct_prd_ord_cmplt IS null */
|
||||
|
||||
<isNotEmpty property="searchEduStateCd">
|
||||
AND a.edu_state_cd = #searchEduStateCd#
|
||||
</isNotEmpty>
|
||||
|
||||
GROUP BY
|
||||
substring(req_nmbr,0,1) )aa
|
||||
|
||||
|
||||
@ -102,25 +102,19 @@
|
||||
|
||||
function excelDownLoad_no4(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no4.do'/>";
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no4.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function excelDownLoad_no5_no6_no7(){
|
||||
function excelDownLoad_no5(){
|
||||
var listForm = document.listForm ;
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_adult_no5_no6_no7.do'/>";
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no5.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
function excelDownLoad_no8(){
|
||||
function excelDownLoad_no6(){
|
||||
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.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no6.do'/>";
|
||||
listForm.submit();
|
||||
}
|
||||
|
||||
@ -709,6 +703,508 @@
|
||||
</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>
|
||||
|
||||
<!-- 월별 횟수/교육인원 차트 -->
|
||||
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
|
||||
|
||||
<script type="text/javascript">
|
||||
var dataNOT_4 = [];
|
||||
//var dataNOP = [];
|
||||
|
||||
var month_4 = [];
|
||||
</script>
|
||||
|
||||
<c:forEach var="list" items="${list_no4}" varStatus="status">
|
||||
<script type="text/javascript">
|
||||
dataNOT_4.push('${list.cnt}');
|
||||
//dataNOP.push('${list.cnt}');
|
||||
|
||||
month_4.push('${list.codeNm}');
|
||||
</script>
|
||||
</c:forEach>
|
||||
<script type="text/javascript">
|
||||
dataNOT_4.pop();
|
||||
//dataNOP.pop();
|
||||
|
||||
month_4.pop();
|
||||
</script>
|
||||
|
||||
<div id="chartContainer" style="display:flex; width:100%;">
|
||||
<div id="chartAll_4" style="float:left; width: 100%; height:600px;">
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var chartAll_4 = echarts.init(document.getElementById('chartAll_4'));
|
||||
//var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월'];
|
||||
//alert(dataNOT);
|
||||
//alert(month);
|
||||
var optionAll_4 = {
|
||||
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_4,
|
||||
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_4
|
||||
}
|
||||
]
|
||||
}
|
||||
//차트 옵션 적용
|
||||
chartAll_4.setOption(optionAll_4);
|
||||
</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_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.codeNm}"/></td>
|
||||
<td><fmt:formatNumber value="${list.cnt}" pattern="#,###"/></td>
|
||||
|
||||
|
||||
</tr>
|
||||
|
||||
</c:forEach>
|
||||
<c:if test="${empty list_no4}">
|
||||
<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_no5();">엑셀 다운로드</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 월별 횟수/교육인원 차트 -->
|
||||
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
|
||||
|
||||
<script type="text/javascript">
|
||||
var dataNOT_5 = [];
|
||||
//var dataNOP = [];
|
||||
|
||||
var month_5 = [];
|
||||
</script>
|
||||
|
||||
<c:forEach var="list" items="${list_no5}" varStatus="status">
|
||||
<script type="text/javascript">
|
||||
dataNOT_5.push('${list.cnt}');
|
||||
//dataNOP.push('${list.cnt}');
|
||||
|
||||
month_5.push('${list.codeNm}월');
|
||||
</script>
|
||||
</c:forEach>
|
||||
<script type="text/javascript">
|
||||
dataNOT_5.pop();
|
||||
//dataNOP.pop();
|
||||
|
||||
month_5.pop();
|
||||
</script>
|
||||
|
||||
<div id="chartContainer" style="display:flex; width:100%;">
|
||||
<div id="chartAll_5" style="float:left; width: 100%; height:600px;">
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var chartAll_5 = echarts.init(document.getElementById('chartAll_5'));
|
||||
//var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월'];
|
||||
//alert(dataNOT);
|
||||
//alert(month);
|
||||
var optionAll_5 = {
|
||||
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_5,
|
||||
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_5
|
||||
}
|
||||
]
|
||||
}
|
||||
//차트 옵션 적용
|
||||
chartAll_5.setOption(optionAll_5);
|
||||
</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_no5}" 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_no5}" varStatus="status">
|
||||
<td><fmt:formatNumber value="${list.cnt}" pattern="#,###"/></td>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
|
||||
|
||||
<c:if test="${empty list_no5}">
|
||||
<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">
|
||||
⑥대상별 교육 이수 현황
|
||||
</p>
|
||||
<div>
|
||||
<!-- <button type="button" class="btn_down_excel" onclick="excelDownLoadArea();">엑셀 다운로드(강의지역)</button> -->
|
||||
<button type="button" class="btn_down_excel" onclick="excelDownLoad_no6();">엑셀 다운로드</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 월별 횟수/교육인원 차트 -->
|
||||
<!-- 횟수합계 - dataNOT / 인원합계 = dataNOP -->
|
||||
|
||||
<script type="text/javascript">
|
||||
var dataNOT_6 = [];
|
||||
//var dataNOP = [];
|
||||
|
||||
var month_6 = [];
|
||||
</script>
|
||||
|
||||
<c:forEach var="list" items="${list_no6}" varStatus="status">
|
||||
<script type="text/javascript">
|
||||
dataNOT_6.push('${list.cnt}');
|
||||
//dataNOP.push('${list.cnt}');
|
||||
|
||||
month_6.push('${list.codeNm}');
|
||||
</script>
|
||||
</c:forEach>
|
||||
<script type="text/javascript">
|
||||
dataNOT_6.pop();
|
||||
//dataNOP.pop();
|
||||
|
||||
month_6.pop();
|
||||
</script>
|
||||
|
||||
<div id="chartContainer" style="display:flex; width:100%;">
|
||||
<div id="chartAll_6" style="float:left; width: 100%; height:600px;">
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
var chartAll_6 = echarts.init(document.getElementById('chartAll_6'));
|
||||
//var month = ['1월', '2월', '3월', '4월', '5월','6월','7월','8월', '9월','10월','11월', '12월'];
|
||||
//alert(dataNOT);
|
||||
//alert(month);
|
||||
var optionAll_6 = {
|
||||
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_6,
|
||||
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_6
|
||||
}
|
||||
]
|
||||
}
|
||||
//차트 옵션 적용
|
||||
chartAll_6.setOption(optionAll_6);
|
||||
</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_no6}" 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_no6}" varStatus="status">
|
||||
<td><fmt:formatNumber value="${list.cnt}" pattern="#,###"/></td>
|
||||
</c:forEach>
|
||||
</tr>
|
||||
|
||||
|
||||
<c:if test="${empty list_no6}">
|
||||
<tr><td colspan="4"><spring:message code="common.nodata.msg" /></td></tr>
|
||||
</c:if>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<!-- //list -->
|
||||
</c:if>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user