2024-01-11 15:31 청소년 통계 페이지 작업

This commit is contained in:
myname 2024-01-11 15:31:28 +09:00
parent a6026c9262
commit 0ee7d7aa58
7 changed files with 915 additions and 69 deletions

View File

@ -139,7 +139,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
if (cndtnTrgtMngVOList==null || cndtnTrgtMngVOList.size()<=0) { //step3.기존 이력이 없으면 관리자에게 문의 하도록 한다.
result = "fail";
msg = "대상자 정보가 없습니다. 관리자에게 문의 바랍니다.";
msg = "대상자 정보가 없습니다. 자세한 사항은 담당자에게 문의 바랍니다.";
next = "Y"; //?
}else if (cndtnTrgtMngVOList.size()>0) {
@ -148,7 +148,7 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
msg = "기존 이력을 전달한다.------";
if ("20".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) {
msg = "이미 이수한 이력이 있습니다. 관리자에게 문의 바랍니다.";
msg = "이미 이수한 이력이 있습니다. 자세한 사항은 담당자에게 문의 바랍니다.";
next = "Y"; //?
}else if ("25".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) {
@ -160,11 +160,11 @@ public class SspnIdtmtServiceImpl implements SspnIdtmtService {
next = ""; //?
}else if ("40".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) {
msg = "미이수한 이력이 있습니다. 관리자에게 문의 바랍니다.";
msg = "미이수 상태입니다. 자세한 사항은 담당자에게 문의 바랍니다.";
next = "Y"; //?
}else if ("60".equals(cndtnTrgtMngVOList.get(0).getEduStateCd())) {
msg = "교육취소 이력이 있습니다. 관리자에게 문의 바랍니다.";
msg = "교육취소 이력이 있습니다. 자세한 사항은 담당자에게 문의 바랍니다.";
next = "Y"; //?
}

View File

@ -120,4 +120,13 @@ public interface VEInstrMixService {
//교육실정통계- 월별 지역별 교육횟수/교육인원(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no2_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//교육실정통계- 월별 강사종류별,강사별 교육횟수(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//교육실정통계- 인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no8(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//교육실정통계- 도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no9(VEInstrDetailVO vEInstrDetailVO) throws Exception;
}

View File

@ -258,4 +258,22 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no2_no3", vEInstrDetailVO);
return tlist;
}
//교육실정통계- 월별 강사종류별,강사별 교육횟수(그래프 포함)
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no4", vEInstrDetailVO);
return tlist;
}
//교육실정통계- 인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함)
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no8(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no8", vEInstrDetailVO);
return tlist;
}
//교육실정통계- 도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함)
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no9(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_tngr_no9", vEInstrDetailVO);
return tlist;
}
}

View File

@ -206,4 +206,15 @@ public class VEInstrMixServiceImpl implements VEInstrMixService {
return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no4(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no8(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no8(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_tngr_no9(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVO);
}
}

View File

@ -1328,28 +1328,20 @@ public class EduAsgnmCnfrmMngTngrController {
, ModelMap model
) throws Exception {
LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
//LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
//설정 리스트(과거~올해+1)
List<VELctrDetailVO> selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO);
model.addAttribute("selectStngYrList", selectStngYrList);
/*
//1.pageing step1
//vEInstrDetailVODetail.setPageUnit(10);
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo = vEPagingUtil.setPagingStep1_VEInstrDetailVO(paginationInfo, vEInstrDetailVODetail);
//vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예
//2. pageing step2
vEInstrDetailVODetail = vEPagingUtil.setPagingStep2_VEInstrDetailVO(vEInstrDetailVODetail, paginationInfo);
*/
vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예
//통계- 월별 횟수/교육인원(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
{
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_tngr_no1(vEInstrDetailVODetail);
@ -1357,12 +1349,13 @@ public class EduAsgnmCnfrmMngTngrController {
selectAsgnmInfoT2List_no1 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no1);
model.addAttribute("list_no1",selectAsgnmInfoT2List_no1);
}
/* 10-횟수, 20-인원 */
vEInstrDetailVODetail.setNo3("10");
//통계- 월별 지역별 교육횟수(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
{
vEInstrDetailVODetail.setNo3("10"); /* 10-횟수, 20-인원 */
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no2 = vEInstrMixService.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVODetail);
@ -1370,12 +1363,13 @@ public class EduAsgnmCnfrmMngTngrController {
selectAsgnmInfoT2List_no2 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no2);
model.addAttribute("list_no2",selectAsgnmInfoT2List_no2);
}
/* 10-횟수, 20-인원 */
vEInstrDetailVODetail.setNo3("20");
//통계- 월별 지역별 교육인원(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
{
vEInstrDetailVODetail.setNo3("20"); /* 10-횟수, 20-인원 */
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no3 = vEInstrMixService.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVODetail);
@ -1383,18 +1377,49 @@ public class EduAsgnmCnfrmMngTngrController {
selectAsgnmInfoT2List_no3 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no3);
model.addAttribute("list_no3",selectAsgnmInfoT2List_no3);
}
/*
//3.pageing step3
paginationInfo = vEPagingUtil.setPagingStep3_VELctrDetailVO(selectAsgnmInfoT2List, paginationInfo);
//통계- 월별 강사종류별,강사별 교육횟수(그래프 포함)
{
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no4 = vEInstrMixService.selectEduPrfrmInfo_tngr_no4(vEInstrDetailVODetail);
model.addAttribute("paginationInfo", paginationInfo);
*/
//복호화
selectAsgnmInfoT2List_no4 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no4);
model.addAttribute("list_no4",selectAsgnmInfoT2List_no4);
}
// 월별 교육대상별 교육횟수(그래프 포함) - 대상이 없어서 제공안됨
// 월별 교육대상별 교육횟수(그래프 포함) - 대상이 없어서 제공안됨
// 월별 교육대상별 교육인원(그래프 포함) - 대상이 없어서 제공안됨
//통계- 인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함)
{
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/tngrVisitEdu/newEduPrfrmMngList";
}
/**
@ -1688,7 +1713,7 @@ public class EduAsgnmCnfrmMngTngrController {
//통계- 월별 횟수/교육인원(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_tngr_no1(vEInstrDetailVODetail);
@ -1803,7 +1828,7 @@ public class EduAsgnmCnfrmMngTngrController {
}
//통계- 월별 횟수/교육인원(그래프 포함)
vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_tngr_no2_no3(vEInstrDetailVODetail);
@ -1816,14 +1841,15 @@ public class EduAsgnmCnfrmMngTngrController {
//String title = "교육실적통계-월별 횟수.교육인원";
int[] width = {
4000, 4000
4000
, 4000
, 4000
, 4000, 4000
//, 4000
, 4000
, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000
, 4000
}; // 너비
@ -1831,7 +1857,7 @@ public class EduAsgnmCnfrmMngTngrController {
String[] header = {
"구분"
, "지역", "횟수/인원"
, "지역"
, "1월"
//, "요일"
, "2월"
@ -1845,7 +1871,7 @@ public class EduAsgnmCnfrmMngTngrController {
String[] order = {
"EduSlctCd"
, "divCd", "Chasi"
, "DivCd"
, "Mnt01"
//, "wCnt"
, "Mnt02"
@ -1878,6 +1904,269 @@ public class EduAsgnmCnfrmMngTngrController {
}
modelAndView.addObject(model);
return modelAndView;
}
/**
* 교육실적통계 Excel - 청소년
* 월별 강사종류별,강사별 교육횟수(그래프 포함)
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "eduPrfrmMngExcelDownLoad_tngr_no4.do")
public ModelAndView eduPrfrmMngExcelDownLoad_tngr_no4(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail
, ModelMap model
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView");
try {
String s_no3 = vEInstrDetailVODetail.getNo3();
String title = "교육실적통계-월별 강사종류별,강사별 교육횟수";
//통계- 월별 횟수/교육인원(그래프 포함)
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT4List = vEInstrMixService.selectEduPrfrmInfo_tngr_no4(vEInstrDetailVODetail);
//복호화
selectAsgnmInfoT4List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT4List);
List<Object> excelData = new ArrayList<>();
excelData.addAll(selectAsgnmInfoT4List);
// 세팅값
//String title = "교육실적통계-월별 횟수.교육인원";
int[] width = {
4000
, 4000
, 4000, 4000, 4000, 4000, 4000
, 4000
}; // 너비
//33개 항목
String[] header = {
"강사명"
, "구분"
, "교육횟수", "강사료", "수당", "교통비", "숙박비"
, ""
};
String[] order = {
"InstrNm"
, "CodeNm"
, "LctrAreaCnt", "Mnt01", "Mnt02", "Mnt03", "Mnt04"
, "MntSum"
};
excelDown(
excelData,
title,
width,
header,
order,
model
);
}catch(Exception ep) {
ep.getStackTrace();
}
modelAndView.addObject(model);
return modelAndView;
}
/**
* 교육실적통계 Excel - 청소년
* 인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함)
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "eduPrfrmMngExcelDownLoad_tngr_no8.do")
public ModelAndView eduPrfrmMngExcelDownLoad_tngr_no8(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail
, ModelMap model
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView");
try {
String s_no3 = vEInstrDetailVODetail.getNo3();
String title = "교육실적통계-인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자";
//통계- 월별 횟수/교육인원(그래프 포함)
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT8List = vEInstrMixService.selectEduPrfrmInfo_tngr_no8(vEInstrDetailVODetail);
//복호화
selectAsgnmInfoT8List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT8List);
List<Object> excelData = new ArrayList<>();
excelData.addAll(selectAsgnmInfoT8List);
// 세팅값
//String title = "교육실적통계-월별 횟수.교육인원";
int[] width = {
4000
, 4000, 4000, 4000
, 4000
}; // 너비
//33개 항목
String[] header = {
"지역1"
, "지역2", "교육횟수", "교육인원"
, "학교수(중복제거)"
};
String[] order = {
"AreaCnt01"
, "AreaCnt02", "AreaCnt03", "AreaCnt04"
, "AreaCnt05"
};
excelDown(
excelData,
title,
width,
header,
order,
model
);
}catch(Exception ep) {
ep.getStackTrace();
}
modelAndView.addObject(model);
return modelAndView;
}
/**
* 교육실적통계 Excel - 청소년
* 도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함)
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "eduPrfrmMngExcelDownLoad_tngr_no9.do")
public ModelAndView eduPrfrmMngExcelDownLoad_tngr_no9(
@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO
, @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail
, ModelMap model
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView");
try {
String s_no3 = vEInstrDetailVODetail.getNo3();
String title = "교육실적통계-도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자";
//통계- 월별 횟수/교육인원(그래프 포함)
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT9List = vEInstrMixService.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVODetail);
//복호화
selectAsgnmInfoT9List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT9List);
List<Object> excelData = new ArrayList<>();
excelData.addAll(selectAsgnmInfoT9List);
// 세팅값
//String title = "교육실적통계-월별 횟수.교육인원";
int[] width = {
4000
, 4000, 4000, 4000, 4000, 4000
, 4000
}; // 너비
//33개 항목
String[] header = {
"교육일자"
, "지역", "학교명", "교육대상", "교육시간", "학교주소"
, "교육인원"
};
String[] order = {
"AreaCnt01"
, "AreaCnt02", "AreaCnt03", "AreaCnt04", "AreaCnt05", "AreaCnt06"
, "AreaCnt07"
};
excelDown(
excelData,
title,
width,
header,
order,
model
);
}catch(Exception ep) {
ep.getStackTrace();
}
modelAndView.addObject(model);
return modelAndView;

View File

@ -685,6 +685,7 @@
WHERE aaaa.div_cd='99' /* 필터를 위한 고정값 */
AND aaaa.no3 = #no3# /* 10-횟수, 20-인원 */
AND NVL(cccc.code,'999')!='400' /* 지역코드 온라인 제외 */
AND (
(
/* 온라인 오프라인 데이터를 위한 필터 */
@ -699,10 +700,221 @@
)
ORDER BY aaaa.edu_hope_yr
, aaaa.no3
, aaaa.edu_slct_cd
, cccc.code_nm
, DECODE(aaaa.div_cd,'99','00',aaaa.div_cd)
, DECODE(aaaa.edu_slct_cd,'99','00',DECODE(aaaa.edu_slct_cd,'20','05',aaaa.edu_slct_cd)) DESC
</select>
<!-- 교육실정통계 -④월별 강사종류별,강사별 교육횟수(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_tngr_no4" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_tngr_no4 */
SELECT aa.user_id AS userId
, aa.div_cd AS divCd
, (
SELECT a0.code_nm
FROM LETTCCMMNDETAILCODE a0
WHERE a0.code_id='VE0018'
AND a0.code=aa.div_cd
) AS codeNm
, aa.instr_nm AS instrNm
, COUNT(*) AS lctrAreaCnt
, NVL(sum(aa.instr_fee), 0) AS mnt01
, NVL(sum(
aa.special_work_allow
+aa.distance_allow
+aa.food_expenses), 0) AS mnt02
, NVL(sum(aa.traffic_fee), 0) AS mnt03
, NVL(sum(aa.acmdt_fee), 0) AS mnt04
, nvl(sum(aa.instr_fee),0)
+ nvl(sum(
aa.special_work_allow
+aa.distance_allow
+aa.food_expenses
),0)
+ nvl(sum(aa.traffic_fee),0)
+ nvl(sum(aa.acmdt_fee),0) AS mntSum
FROM (
SELECT
d.user_id,
b.EDU_HOPE_DT,
d.edu_aplct_ord,
d.edu_chasi_ord
, e.div_cd
, e.instr_nm
, f.*
, g.*
FROM
ve_edu_aplct a ,
ve_edu_chasi b ,
ve_instr_detail e ,
ve_edu_chasi_instr_asgnm d
LEFT OUTER JOIN ve_instr_fee f
on(
1=1
AND d.edu_aplct_ord = f.edu_aplct_ord
AND d.edu_chasi_ord = f.edu_chasi_ord
/* 확정처리 */
AND f.sbmt_yn='Y'
)
LEFT OUTER JOIN ve_acmdt_aplct g
on(
1=1
AND d.edu_aplct_ord = g.edu_aplct_ord
AND d.edu_chasi_ord = g.edu_chasi_ord
/* 확정처리 */
AND g.aprvl_cd='10'
AND g.sbmt_yn='Y'
AND g.use_yn='Y'
)
WHERE
1 = 1
AND b.EDU_HOPE_DT LIKE #mngNmbrYr#||'%'
AND a.edu_aplct_ord = b.edu_aplct_ord
AND NVL(A.USE_YN,
'Y') != 'N'
AND a.LCTR_DIV_CD = #lctrDivCd#
AND a.aprvl_cd = '60'
AND 1 = 1
AND d.asgnm_aprvl_cd = '30'
AND b.edu_aplct_ord = d.edu_aplct_ord
AND b.edu_chasi_ord = d.edu_chasi_ord
AND d.user_id = e.user_id
AND e.use_yn = 'Y'
)aa
GROUP BY aa.user_id, aa.div_cd, aa.instr_nm
</select>
<!-- 교육실정통계 -⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_tngr_no8" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_tngr_no8 */
SELECT aa.area1 AS areaCnt01
, aa.area2 AS areaCnt02
, count(*) AS areaCnt03
, sum(aa.prsnl) AS areaCnt04
, count(DISTINCT aa.schol_nm) AS areaCnt05
FROM (
SELECT
b.EDU_HOPE_DT
, a.ADDR
, substring(a.addr,0,instr (a.Addr,' ')-1) AS area1
, substring(substring(a.addr,instr (a.Addr,' ')+1),0,instr (substring(a.addr,instr (a.Addr,' ')+1),' ')-1) AS area2
, d.schol_nm
, b.strt_tm
, b.end_tm
, b.prsnl
, b.trgt
FROM
/* ve_lctr_stng d, */
ve_edu_chasi_instr_asgnm c ,
ve_edu_chasi b ,
ve_edu_aplct a ,
ve_schol d
WHERE
1 = 1
AND b.edu_aplct_ord = c.edu_aplct_ord
AND b.edu_chasi_ord = c.edu_chasi_ord
AND b.edu_aplct_ord = a.edu_aplct_ord
AND NVL(a.use_yn,'Y') = 'Y'
AND a.aprvl_cd = '60'
AND c.asgnm_aprvl_cd = '30'
AND a.stndrd_schol_cd=d.stndrd_schol_cd
/* 인구감소지역 */
AND NVL(d.PPLTN_REDUC_AREA_YN,'N') ='Y'
AND a.lctr_div_cd = #lctrDivCd#
AND SUBSTR(b.edu_hope_dt,1,4)= #mngNmbrYr#
)aa
GROUP BY aa.area1
, aa.area2
ORDER BY aa.area1
, aa.area2
</select>
<!-- 교육실정통계 -⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_tngr_no9" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_tngr_no9 */
SELECT
b.EDU_HOPE_DT AS areaCnt01
, substring(a.addr,0,instr (a.Addr,' ')-1) AS areaCnt02
, d.schol_nm AS areaCnt03
, b.trgt AS areaCnt04
, decode(
LENGTH(b.strt_tm),4
,substring(b.strt_tm,0,2)||':'||substring(b.strt_tm,3,2)
,b.strt_tm
)
||
'~'
||
decode(
LENGTH(b.end_tm),4
,substring(b.end_tm,0,2)||':'||substring(b.end_tm,3,2)
,b.end_tm
)
AS areaCnt05
, a.ADDR AS areaCnt06
, b.prsnl AS areaCnt07
FROM
/* ve_lctr_stng d, */
ve_edu_chasi_instr_asgnm c ,
ve_edu_chasi b ,
ve_edu_aplct a ,
ve_schol d
WHERE
1 = 1
AND b.edu_aplct_ord = c.edu_aplct_ord
AND b.edu_chasi_ord = c.edu_chasi_ord
AND b.edu_aplct_ord = a.edu_aplct_ord
AND NVL(a.use_yn,'Y') = 'Y'
AND a.aprvl_cd = '60'
AND c.asgnm_aprvl_cd = '30'
AND a.stndrd_schol_cd=d.stndrd_schol_cd
/* 도서벽지별 */
AND NVL(d.isltn_YN,'N') ='Y'
AND NVL(d.isltn2_YN,'N') ='Y'
AND NVL(d.isltn3_YN,'N') ='Y'
AND a.lctr_div_cd = #lctrDivCd#
AND SUBSTR(b.edu_hope_dt,1,4)= #mngNmbrYr#
ORDER BY
b.EDU_HOPE_DT
, substring(a.addr,0,instr (a.Addr,' ')-1)
, d.schol_nm
, b.strt_tm
</select>
</sqlMap>

View File

@ -94,6 +94,24 @@
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_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'/>";
@ -322,7 +340,7 @@
<%-- <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%">
@ -344,7 +362,7 @@
<!-- <th>대상</th> -->
<th>구분</th>
<th>지역</th>
<th>횟수/인원</th>
<!-- <th>횟수/인원</th> -->
<th>1월</th>
<th>2월</th>
@ -389,7 +407,7 @@
</c:choose>
</td>
<td><c:out value="${list.divCd}"/></td>
<td><c:out value="${list.chasi}"/></td>
<%-- <td><c:out value="${list.chasi}"/></td> --%>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
@ -444,7 +462,7 @@
<%-- <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%">
@ -466,7 +484,7 @@
<!-- <th>대상</th> -->
<th>구분</th>
<th>지역</th>
<th>횟수/인원</th>
<!-- <th>횟수/인원</th> -->
<th>1월</th>
<th>2월</th>
@ -511,7 +529,7 @@
</c:choose>
</td>
<td><c:out value="${list.divCd}"/></td>
<td><c:out value="${list.chasi}"/></td>
<%-- <td><c:out value="${list.chasi}"/></td> --%>
<td><fmt:formatNumber value="${list.mnt01}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.mnt02}" pattern="#,###"/></td>
@ -541,6 +559,295 @@
<!-- //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_no4();">엑셀 다운로드</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_no4();">엑셀 다운로드</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_no4();">엑셀 다운로드</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_no8();">엑셀 다운로드</button>
</div>
</div>
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<%-- <col style="width: 10%"> --%>
<col style="width: 20%">
<col style="width: 20%">
<col style="width: 20%">
<col style="width: 20%">
<col style="width: auto;">
</colgroup>
<thead>
<tr>
<th>지역1</th>
<th>지역2</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_no8}" 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.areaCnt01}"/></td>
<td><c:out value="${list.areaCnt02}"/></td>
<%-- <td><c:out value="${list.chasi}"/></td> --%>
<td><fmt:formatNumber value="${list.areaCnt03}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.areaCnt04}" pattern="#,###"/></td>
<td><fmt:formatNumber value="${list.areaCnt05}" pattern="#,###"/></td>
</tr>
</c:forEach>
<c:if test="${empty list_no8}">
<tr><td colspan="5"><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_no9();">엑셀 다운로드</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: auto;">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<!-- <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_no9}" 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.areaCnt01}"/></td>
<td><c:out value="${list.areaCnt02}"/></td>
<td><c:out value="${list.areaCnt03}"/></td>
<td><c:out value="${list.areaCnt04}"/></td>
<td><c:out value="${list.areaCnt05}"/></td>
<td><c:out value="${list.areaCnt06}"/></td>
<%-- <td><c:out value="${list.chasi}"/></td> --%>
<td><fmt:formatNumber value="${list.areaCnt07}" pattern="#,###"/></td>
</tr>
</c:forEach>
<c:if test="${empty list_no9}">
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
</c:if>
</div>