2024-02-20 17:36 기소유예 정렬 순서 변경
This commit is contained in:
parent
db661c2e29
commit
42af207701
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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>
|
||||||
Loading…
Reference in New Issue
Block a user