2025-10-29 10:12 시정명령 통계 작업

This commit is contained in:
myname 2025-10-29 10:12:22 +09:00
parent 147b60d242
commit 3967238bed
6 changed files with 592 additions and 9 deletions

View File

@ -192,4 +192,28 @@ public interface VEInstrMixService {
//예방교육
//교육실정통계- 월별 교육 이수 현황(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_csi_prevent_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//시정명령 통계
//교육실정통계- 검찰청별 교육 의뢰 현황(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//교육실정통계- 월별 교육 의뢰 현황(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no2(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//교육실정통계- 3.대상별 교육 의뢰 현황(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//조건부기소유예관리 통계
//교육실정통계- 검찰청별 교육 의뢰 현황(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//교육실정통계- 월별 교육 이수 현황(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//교육실정통계- 대상별 교육 이수 현황(그래프 포함)
List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception;
//교육실정통계- 월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계
List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception;
}

View File

@ -364,8 +364,47 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
return tlist;
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_prevent_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_csi_prevent_no5", vEInstrDetailVO);
return tlist;
}
//통계정보-조건부기소유예관리-검찰청별 교육 의뢰 현황(그래프 포함)
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no1", vEInstrDetailVO);
return tlist;
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no2(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no2", vEInstrDetailVO);
return tlist;
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no3", vEInstrDetailVO);
return tlist;
}
//통계정보-조건부기소유예관리-검찰청별 교육 의뢰 현황(그래프 포함)
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no4", vEInstrDetailVO);
return tlist;
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no5", vEInstrDetailVO);
return tlist;
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no6", vEInstrDetailVO);
return tlist;
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception {
List<VELctrDetailVO> tlist = (List<VELctrDetailVO>) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no7", vEInstrDetailVO);
return tlist;
}
}

View File

@ -295,4 +295,33 @@ public class VEInstrMixServiceImpl implements VEInstrMixService {
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_prevent_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_csi_prevent_no5(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no1(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no2(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no2(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no3(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no4(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no5(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no6(vEInstrDetailVO);
}
public List<VELctrDetailVO> selectEduPrfrmInfo_csi_cmdTrgt_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception{
return vEInstrMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no7(vEInstrDetailVO);
}
}

View File

@ -554,7 +554,7 @@ public class CmdInstrMngController {
{
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no1(vEInstrDetailVODetail);
//복호화
//selectAsgnmInfoT2List_no1 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no1);
@ -568,7 +568,7 @@ public class CmdInstrMngController {
//vEInstrDetailVODetail.setNo3("10"); /* 10-횟수, 20-인원 */
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no2 = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no2 = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no2(vEInstrDetailVODetail);
//복호화
//selectAsgnmInfoT2List_no2 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no2);
@ -582,7 +582,7 @@ public class CmdInstrMngController {
//vEInstrDetailVODetail.setNo3("20"); /* 10-횟수, 20-인원 */
//vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword());
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no3 = vEInstrMixService.selectEduPrfrmInfo_csi_no3(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT2List_no3 = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no3(vEInstrDetailVODetail);
//복호화
//selectAsgnmInfoT2List_no3 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no3);
@ -595,7 +595,7 @@ public class CmdInstrMngController {
{
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
List<VELctrDetailVO> selectAsgnmInfoT4List_no4 = vEInstrMixService.selectEduPrfrmInfo_csi_no4(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT4List_no4 = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no4(vEInstrDetailVODetail);
model.addAttribute("list_no4",selectAsgnmInfoT4List_no4);
}
@ -604,21 +604,21 @@ public class CmdInstrMngController {
{
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
List<VELctrDetailVO> selectAsgnmInfoT5List = vEInstrMixService.selectEduPrfrmInfo_csi_no5(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT5List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no5(vEInstrDetailVODetail);
model.addAttribute("list_no5",selectAsgnmInfoT5List);
}
// 대상별 교육이수현황(그래프 포함) - 대상이 없어서 제공안됨
{
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
List<VELctrDetailVO> selectAsgnmInfoT6List = vEInstrMixService.selectEduPrfrmInfo_csi_no6(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT6List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no6(vEInstrDetailVODetail);
model.addAttribute("list_no6",selectAsgnmInfoT6List);
}
// 월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계
{
vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail);
//vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기
List<VELctrDetailVO> selectAsgnmInfoT7List = vEInstrMixService.selectEduPrfrmInfo_csi_no7(vEInstrDetailVODetail);
List<VELctrDetailVO> selectAsgnmInfoT7List = vEInstrMixService.selectEduPrfrmInfo_csi_cmdTrgt_no7(vEInstrDetailVODetail);
model.addAttribute("list_no7",selectAsgnmInfoT7List);
}
//통계- 인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨

View File

@ -2678,5 +2678,496 @@
on(aaa.mnt=bbb.codeNm)
ORDER BY aaa.mnt
</select>
<!-- 교육실정통계- ①검찰청별 교육 의뢰 현황(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no1" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no1 */
SELECT aaa.code AS code
, aaa.cnt AS cnt
, coalesce(bbb.code_nm, aaa.code) AS codeNm
FROM (
SELECT coalesce(bb.code,aa.CMPTNT_ATHRT) AS code
, sum(aa.cnt) AS cnt
FROM (
SELECT coalesce(a.CMPTNT_ATHRT,'미정') AS CMPTNT_ATHRT
, count(*) AS cnt
FROM
vea_cmd_trgt_info a
/*
,
ve_edu_aplct b ,
ve_prcs_aplct_prd c ,
vea_aplct_detail_info d
*/
WHERE
TO_CHAR(a.req_pnttm, 'YYYY')=#mngNmbrYr#
/*
SUBSTRING(c.edu_strt_pnttm, 1, 4)=mngNmbrYr
AND b.aprvl_cd = '60'
AND b.prcs_ord = c.prcs_aplct_prd_ord
AND a.sspn_idtmt_trgt_ord = b.rnds_ord
*/
/* 병합제거시 주석 제거 할것
AND a.prcs_aplct_prd_ord_cmplt IS null */
<isNotEmpty property="searchEduStateCd">
AND a.edu_state_cd = #searchEduStateCd#
</isNotEmpty>
/*
AND b.EDU_APLCT_ORD = d.EDU_APLCT_ORD
AND d.aplct_state_cd = '20'
*/
GROUP BY a.CMPTNT_ATHRT
)aa LEFT OUTER JOIN
(
SELECT code, code_nm
FROM LETTCCMMNDETAILCODE b
WHERE b.code_id='VEA008'
AND b.use_at='Y'
)bb
ON aa.cmptnt_athrt = bb.code
GROUP BY rollup(coalesce(bb.code,aa.CMPTNT_ATHRT))
)aaa
LEFT OUTER JOIN LETTCCMMNDETAILCODE bbb
on(aaa.code=bbb.code)
ORDER BY SUBSTRING(bbb.code_nm,1,2)
/*
, instr(bbb.code_nm,'-')
*/
, position('-' in bbb.code_nm)
, bbb.code_nm
</select>
<!-- 교육실정통계- ①월별 교육 의뢰 현황(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no2" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no2 */
SELECT aaa.mnt AS codeNm
, coalesce(bbb.cnt,0) AS cnt
FROM (
SELECT '01' AS mnt
UNION ALL SELECT '02' AS mnt
UNION ALL SELECT '03' AS mnt
UNION ALL SELECT '04' AS mnt
UNION ALL SELECT '05' AS mnt
UNION ALL SELECT '06' AS mnt
UNION ALL SELECT '07' AS mnt
UNION ALL SELECT '08' AS mnt
UNION ALL SELECT '09' AS mnt
UNION ALL SELECT '10' AS mnt
UNION ALL SELECT '11' AS mnt
UNION ALL SELECT '12' AS mnt
UNION ALL SELECT '13' AS mnt
)aaa
LEFT OUTER JOIN
(
SELECT
coalesce(aa.CMPTNT_ATHRT,'13') AS codeNm,
sum(aa.cnt) AS cnt
FROM
(
SELECT
TO_CHAR(a.req_pnttm, 'MM' ) AS CMPTNT_ATHRT ,
count(*) AS cnt
FROM
vea_cmd_trgt_info a
WHERE to_char(a.REQ_PNTTM,'YYYY')=#mngNmbrYr#
/* 병합제거시 주석 제거 할것
AND a.prcs_aplct_prd_ord_cmplt IS null */
<isNotEmpty property="searchEduStateCd">
AND a.edu_state_cd = #searchEduStateCd#
</isNotEmpty>
GROUP BY
TO_CHAR(a.req_pnttm, 'MM' ) )aa
GROUP BY
ROLLUP(aa.CMPTNT_ATHRT)
)bbb
on(aaa.mnt=bbb.codeNm)
ORDER BY aaa.mnt
</select>
<!-- 교육실정통계- ①월별 교육 의뢰 현황(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no3" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no3 */
SELECT
CASE WHEN aaa.mnt='A' THEN '성인'
WHEN aaa.mnt='Y' THEN '미성년자'
ELSE aaa.mnt
END
AS codeNm
, coalesce(bbb.cnt,0) AS cnt
FROM (
SELECT 'A' AS mnt
UNION ALL SELECT 'Y' AS mnt
UNION ALL SELECT 'ZZ' AS mnt
)aaa
LEFT OUTER JOIN
(
SELECT
coalesce(aa.CMPTNT_ATHRT,'ZZ') AS codeNm,
sum(aa.cnt) AS cnt
FROM
(
SELECT
substring(req_nmbr,1,1) AS CMPTNT_ATHRT ,
count(*) AS cnt
FROM
vea_cmd_trgt_info a
/*
,
ve_edu_aplct b ,
ve_prcs_aplct_prd c ,
vea_aplct_detail_info d
*/
WHERE
TO_CHAR(a.req_pnttm, 'YYYY')=#mngNmbrYr#
AND substring(req_nmbr, 1, 1) in ('A','Y')
/*
SUBSTRING(c.edu_strt_pnttm, 1, 4)=mngNmbrYr
AND b.aprvl_cd = '60'
AND b.prcs_ord = c.prcs_aplct_prd_ord
AND a.sspn_idtmt_trgt_ord = b.rnds_ord
*/
/* 병합제거시 주석 제거 할것
AND a.prcs_aplct_prd_ord_cmplt IS null */
<isNotEmpty property="searchEduStateCd">
AND a.edu_state_cd = #searchEduStateCd#
</isNotEmpty>
/*
AND b.EDU_APLCT_ORD = d.EDU_APLCT_ORD
AND d.aplct_state_cd = '20'
*/
GROUP BY
substring(req_nmbr,1,1) )aa
GROUP BY
ROLLUP(aa.CMPTNT_ATHRT)
)bbb
on(aaa.mnt=bbb.codeNm)
ORDER BY aaa.mnt
</select>
<!-- 교육실정통계- ④검찰청별 교육 이수 현황(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no4" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no4 */
SELECT aaa.code AS code
, aaa.cnt AS cnt
, coalesce(bbb.code_nm, aaa.code) AS codeNm
FROM (
SELECT coalesce(bb.code,aa.CMPTNT_ATHRT) AS code
, sum(aa.cnt) AS cnt
FROM (
SELECT coalesce(a.CMPTNT_ATHRT,'미정') AS CMPTNT_ATHRT
, count(*) AS cnt
FROM
vea_cmd_trgt_info a
,
ve_edu_aplct b ,
ve_prcs_aplct_prd c ,
vea_aplct_detail_info d
WHERE
SUBSTRING(c.edu_strt_pnttm, 1, 4)=#mngNmbrYr#
AND b.aprvl_cd = '60'
AND b.prcs_ord = c.prcs_aplct_prd_ord
AND a.cmd_trgt_info_ord = b.rnds_ord
/* 병합제거시 주석 제거 할것
AND a.prcs_aplct_prd_ord_cmplt IS null */
<isNotEmpty property="searchEduStateCd">
AND a.edu_state_cd = #searchEduStateCd#
</isNotEmpty>
AND b.EDU_APLCT_ORD = d.EDU_APLCT_ORD
AND d.aplct_state_cd = '20'
GROUP BY a.CMPTNT_ATHRT
)aa LEFT OUTER JOIN
(
SELECT code, code_nm
FROM LETTCCMMNDETAILCODE b
WHERE b.code_id='VEA008'
AND b.use_at='Y'
)bb
ON aa.cmptnt_athrt = bb.code
GROUP BY rollup(coalesce(bb.code,aa.CMPTNT_ATHRT))
)aaa
LEFT OUTER JOIN LETTCCMMNDETAILCODE bbb
on(aaa.code=bbb.code)
ORDER BY SUBSTRING(bbb.code_nm,1,2)
/*
, instr(bbb.code_nm,'-')
*/
, position('-' in bbb.code_nm)
, bbb.code_nm
</select>
<!-- 교육실정통계- ⑤월별 교육 이수 현황(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no5" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no5 */
SELECT aaa.mnt AS codeNm
, coalesce(bbb.cnt,0) AS cnt
, coalesce(bbb.cnt2,0) AS cnt2
FROM (
SELECT '01' AS mnt
UNION ALL SELECT '02' AS mnt
UNION ALL SELECT '03' AS mnt
UNION ALL SELECT '04' AS mnt
UNION ALL SELECT '05' AS mnt
UNION ALL SELECT '06' AS mnt
UNION ALL SELECT '07' AS mnt
UNION ALL SELECT '08' AS mnt
UNION ALL SELECT '09' AS mnt
UNION ALL SELECT '10' AS mnt
UNION ALL SELECT '11' AS mnt
UNION ALL SELECT '12' AS mnt
UNION ALL SELECT '13' AS mnt
)aaa
LEFT OUTER JOIN
(
SELECT
coalesce(aa.CMPTNT_ATHRT,'13') AS codeNm
, sum(aa.cnt) AS cnt
, sum(aa.cnt2) AS cnt2
FROM
(
SELECT CMPTNT_ATHRT
, sum(cnt) cnt
, count(*) cnt2
FROM (
SELECT
SUBSTRING(c.edu_strt_pnttm,6,2) AS CMPTNT_ATHRT ,
count(*) AS cnt
FROM
vea_cmd_trgt_info a
, ve_edu_aplct b
, ve_prcs_aplct_prd c
, vea_aplct_detail_info d
WHERE SUBSTRING(c.edu_strt_pnttm,1,4)=#mngNmbrYr#
AND b.aprvl_cd='60'
AND b.prcs_ord=c.prcs_aplct_prd_ord
AND a.cmd_trgt_info_ord=b.rnds_ord
/* 병합제거시 주석 제거 할것
AND a.prcs_aplct_prd_ord_cmplt IS null */
<isNotEmpty property="searchEduStateCd">
AND a.edu_state_cd = #searchEduStateCd#
</isNotEmpty>
AND b.EDU_APLCT_ORD =d.EDU_APLCT_ORD
AND d.aplct_state_cd = '20'
GROUP BY
SUBSTRING(c.edu_strt_pnttm,6,2)
, b.prcs_ord
)z0
GROUP BY CMPTNT_ATHRT
)aa
GROUP BY
ROLLUP(aa.CMPTNT_ATHRT)
)bbb
on(aaa.mnt=bbb.codeNm)
ORDER BY aaa.mnt
</select>
<!-- 교육실정통계- ①월별 교육 의뢰 현황(그래프 포함) -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no6" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no6 */
SELECT
CASE WHEN aaa.mnt='A' THEN '성인'
WHEN aaa.mnt='Y' THEN '미성년자'
ELSE aaa.mnt
END
AS codeNm
, coalesce(bbb.cnt,0) AS cnt
FROM (
SELECT 'A' AS mnt
UNION ALL SELECT 'Y' AS mnt
UNION ALL SELECT 'ZZ' AS mnt
)aaa
LEFT OUTER JOIN
(
SELECT
coalesce(aa.CMPTNT_ATHRT,'ZZ') AS codeNm,
sum(aa.cnt) AS cnt
FROM
(
SELECT
substring(req_nmbr,1,1) AS CMPTNT_ATHRT ,
count(*) AS cnt
FROM
vea_sspn_idmt_trgt a
,
ve_edu_aplct b ,
ve_prcs_aplct_prd c ,
vea_aplct_detail_info d
WHERE
/*
TO_CHAR(a.req_pnttm, 'YYYY')=mngNmbrYr
*/
substring(req_nmbr, 1, 1) in ('A','Y')
AND SUBSTRING(c.edu_strt_pnttm, 1, 4)=#mngNmbrYr#
AND b.aprvl_cd = '60'
AND b.prcs_ord = c.prcs_aplct_prd_ord
AND a.sspn_idtmt_trgt_ord = b.rnds_ord
/* 병합제거시 주석 제거 할것
AND a.prcs_aplct_prd_ord_cmplt IS null */
<isNotEmpty property="searchEduStateCd">
AND a.edu_state_cd = #searchEduStateCd#
</isNotEmpty>
AND b.EDU_APLCT_ORD = d.EDU_APLCT_ORD
AND d.aplct_state_cd = '20'
GROUP BY
substring(req_nmbr,1,1) )aa
GROUP BY
ROLLUP(aa.CMPTNT_ATHRT)
)bbb
on(aaa.mnt=bbb.codeNm)
ORDER BY aaa.mnt
</select>
<!-- 교육실정통계- ⑦월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계 -->
<select id="VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no7" parameterClass="VEInstrDetailVO" resultClass="VELctrDetailVO">
/* VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no7 */
SELECT aaa.mnt AS codeNm
, coalesce(ccc.title,'ZZZ') AS codeNm2
, coalesce(ccc.title,coalesce(bbb.cnt::character,0::character)) AS codeNm3
, case
when aaa.mnt='13' then '합계'
when ccc.title is null then aaa.mnt||'월 합계'
else aaa.mnt||'월'
end as codeNm4
, coalesce(bbb.edu_cd_20,0) AS eduCd20
, coalesce(bbb.edu_cd_40,0) AS eduCd40
, coalesce(bbb.edu_cd_50,0) AS eduCd50
, coalesce(bbb.cnt,0) AS cnt
FROM (
SELECT '01' AS mnt
UNION ALL SELECT '02' AS mnt
UNION ALL SELECT '03' AS mnt
UNION ALL SELECT '04' AS mnt
UNION ALL SELECT '05' AS mnt
UNION ALL SELECT '06' AS mnt
UNION ALL SELECT '07' AS mnt
UNION ALL SELECT '08' AS mnt
UNION ALL SELECT '09' AS mnt
UNION ALL SELECT '10' AS mnt
UNION ALL SELECT '11' AS mnt
UNION ALL SELECT '12' AS mnt
UNION ALL SELECT '13' AS mnt
)aaa
LEFT OUTER JOIN
(
SELECT
coalesce(aa.CMPTNT_ATHRT,'13') AS codeNm
, coalesce(aa.prcs_ord,'13') AS codeNm2
, sum(aa.edu_cd_20) AS edu_cd_20
, sum(aa.edu_cd_40) AS edu_cd_40
, sum(aa.edu_cd_50) AS edu_cd_50
, count(*) cnt
FROM
(
SELECT CMPTNT_ATHRT
, prcs_ord
, sum(edu_cd_20) edu_cd_20
, sum(edu_cd_40) edu_cd_40
, sum(edu_cd_50) edu_cd_50
FROM (
SELECT
SUBSTRING(c.edu_strt_pnttm,6,2) AS CMPTNT_ATHRT
, count(*) AS cnt
, b.prcs_ord
, sum(CASE WHEN a.edu_state_cd='20' AND d.aplct_state_cd = '20' THEN 1 ELSE 0 END) AS edu_cd_20
, sum(CASE WHEN d.aplct_state_cd='10' THEN 1 ELSE 0 END) AS edu_cd_40
, sum(CASE WHEN d.aplct_state_cd='60' THEN 1 ELSE 0 END) AS edu_cd_50
FROM
vea_sspn_idmt_trgt a
, ve_edu_aplct b
, ve_prcs_aplct_prd c
, vea_aplct_detail_info d
WHERE SUBSTRING(c.edu_strt_pnttm,1,4)=#mngNmbrYr#
AND b.aprvl_cd='60'
AND b.prcs_ord=c.prcs_aplct_prd_ord
AND a.sspn_idtmt_trgt_ord=b.rnds_ord
/* 병합제거시 주석 제거 할것
AND a.prcs_aplct_prd_ord_cmplt IS null */
/* 20-이수 40-미이수 50-연기
AND a.edu_state_cd IN ('20','40','50') */
AND b.EDU_APLCT_ORD =d.EDU_APLCT_ORD
AND d.aplct_state_cd = '20'
GROUP BY
SUBSTRING(c.edu_strt_pnttm,6,2)
, b.prcs_ord
)z0
GROUP BY CMPTNT_ATHRT
, prcs_ord
)aa
GROUP BY
ROLLUP(aa.CMPTNT_ATHRT, aa.prcs_ord)
)bbb
on(aaa.mnt=bbb.codeNm)
LEFT OUTER JOIN ve_prcs_aplct_prd ccc
on(bbb.codeNm2=ccc.prcs_aplct_prd_ord)
ORDER BY aaa.mnt, ccc.title
</select>
</sqlMap>

View File

@ -216,7 +216,7 @@
<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> -->
@ -717,7 +717,7 @@
<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> -->