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 = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
|
||||||
|
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
|
||||||
List<VELctrDetailVO> selectAsgnmInfoT4List_no4 = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail);
|
List<VELctrDetailVO> selectAsgnmInfoT4List_no4 = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail);
|
||||||
|
|
||||||
model.addAttribute("list_no4",selectAsgnmInfoT4List_no4);
|
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
|
* @param model
|
||||||
* @return
|
* @return
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
@ -988,6 +995,241 @@ public class CndtnInstrMngController {
|
|||||||
return modelAndView;
|
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
|
AND a.prcs_aplct_prd_ord_cmplt IS null
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEduStateCd">
|
||||||
|
AND a.edu_state_cd = #searchEduStateCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
GROUP BY a.CMPTNT_ATHRT
|
GROUP BY a.CMPTNT_ATHRT
|
||||||
)aa LEFT OUTER JOIN
|
)aa LEFT OUTER JOIN
|
||||||
(
|
(
|
||||||
@ -2201,6 +2206,10 @@
|
|||||||
/* 병합제거시 주석 제거 할것
|
/* 병합제거시 주석 제거 할것
|
||||||
AND a.prcs_aplct_prd_ord_cmplt IS null */
|
AND a.prcs_aplct_prd_ord_cmplt IS null */
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEduStateCd">
|
||||||
|
AND a.edu_state_cd = #searchEduStateCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
TO_CHAR(a.req_pnttm, 'MM' ) )aa
|
TO_CHAR(a.req_pnttm, 'MM' ) )aa
|
||||||
|
|
||||||
@ -2246,6 +2255,10 @@
|
|||||||
/* 병합제거시 주석 제거 할것
|
/* 병합제거시 주석 제거 할것
|
||||||
AND a.prcs_aplct_prd_ord_cmplt IS null */
|
AND a.prcs_aplct_prd_ord_cmplt IS null */
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEduStateCd">
|
||||||
|
AND a.edu_state_cd = #searchEduStateCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
GROUP BY
|
GROUP BY
|
||||||
substring(req_nmbr,0,1) )aa
|
substring(req_nmbr,0,1) )aa
|
||||||
|
|
||||||
|
|||||||
@ -99,28 +99,22 @@
|
|||||||
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no3.do'/>";
|
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no3.do'/>";
|
||||||
listForm.submit();
|
listForm.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function excelDownLoad_no4(){
|
function excelDownLoad_no4(){
|
||||||
var listForm = document.listForm ;
|
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();
|
listForm.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function excelDownLoad_no5_no6_no7(){
|
function excelDownLoad_no5(){
|
||||||
var listForm = document.listForm ;
|
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();
|
listForm.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function excelDownLoad_no8(){
|
function excelDownLoad_no6(){
|
||||||
var listForm = document.listForm ;
|
var listForm = document.listForm ;
|
||||||
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no8.do'/>";
|
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/eduPrfrmMngExcelDownLoad_csi_no6.do'/>";
|
||||||
listForm.submit();
|
|
||||||
}
|
|
||||||
|
|
||||||
function excelDownLoad_no9(){
|
|
||||||
var listForm = document.listForm ;
|
|
||||||
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduPrfrmMngExcelDownLoad_tngr_no9.do'/>";
|
|
||||||
listForm.submit();
|
listForm.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -708,7 +702,509 @@
|
|||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<!-- //list -->
|
<!-- //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>
|
</c:if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user