2023-12-05 강사 설문 화면 수정

This commit is contained in:
myname 2023-12-05 11:33:40 +09:00
parent a701feaf16
commit a290c7a047
6 changed files with 336 additions and 350 deletions

View File

@ -261,7 +261,12 @@ public class VEFndtnAsgnmController {
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
vEEduChasiVO.setEduChasiOrd(vEPrcsDetailVO.getEduChasiOrd());
vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_50);
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_50);
vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_20);
vEEduChasiVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
vEEduChasiVO.setPageIndex(0);
vEEduChasiVO.setSiteId("50"); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
@ -270,7 +275,7 @@ public class VEFndtnAsgnmController {
//List<VEEduChasiVO> vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO);
List<VEEduChasiVO> vEEduChasiVOList = vEEduMIXService.selectChasiList202312Instr(vEEduChasiVO);
List<VEEduChasiVO> vEEduChasiVOList = vEEduMIXService.selectChasiList202312EAInstr(vEEduChasiVO);
//복호화
vEEduChasiVOList = egovCryptoUtil.decryptVEEduChasiVOList(vEEduChasiVOList);

View File

@ -17,8 +17,10 @@ import kcc.com.cmm.LoginVO;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.cmm.VeConstants;
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO;
@ -253,6 +255,33 @@ public class VESspnIdtmtAsgnmController {
model.addAttribute("instrAsgnmList", instrAsgnmList);
}
//사용자 교육신청 차시 리스트 - 설문정보
{
//사용자 교육신청 차시 리스트
VEEduChasiVO vEEduChasiVO = new VEEduChasiVO();
vEEduChasiVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd());
vEEduChasiVO.setEduChasiOrd(vEPrcsDetailVO.getEduChasiOrd());
vEEduChasiVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_60);
vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_20);
vEEduChasiVO.setPrcsAplctPrdOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
vEEduChasiVO.setPageIndex(0);
vEEduChasiVO.setSiteId("60"); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
//대상 설문의 점수대상 확인에 필요하다.
vEEduChasiVO.setSiteIdCd("'10','20'"); //site id cd 10-기본설문, 20-신청자설문, 30-강사설문
//List<VEEduChasiVO> vEEduChasiVOList = vEEduMIXService.selectChasiList(vEEduChasiVO);
List<VEEduChasiVO> vEEduChasiVOList = vEEduMIXService.selectChasiList202312EAInstr(vEEduChasiVO);
//복호화
vEEduChasiVOList = egovCryptoUtil.decryptVEEduChasiVOList(vEEduChasiVOList);
model.addAttribute("chasiList", vEEduChasiVOList);
}
return "/web/ve/instr/sspnIdtmtVisitEdu/endInfo/instrAsgnmEndDetail";
}

View File

@ -132,6 +132,9 @@ public class VEEduChasiVO extends ComDefaultVO implements Serializable {
private String siteIdCd; //사이트ID 구분 10-기본, 20-신청자, 30-강사
private String prcsAplctPrdOrd; //기간과정신청정보
public String getQustnrQesitmId10Cnt() {
return qustnrQesitmId10Cnt;
@ -699,5 +702,11 @@ public class VEEduChasiVO extends ComDefaultVO implements Serializable {
public void setSiteIdCd(String siteIdCd) {
this.siteIdCd = siteIdCd;
}
public String getPrcsAplctPrdOrd() {
return prcsAplctPrdOrd;
}
public void setPrcsAplctPrdOrd(String prcsAplctPrdOrd) {
this.prcsAplctPrdOrd = prcsAplctPrdOrd;
}
}

View File

@ -4519,358 +4519,199 @@
<!-- 차시별 강사배치 리스트 page + 설문 응답 정보 & 설문지 정보 추가 -->
<select id="VEEduMIXDAO.selectChasiList202312EAInstr" parameterClass="VEEduChasiVO" resultClass="VEEduChasiVO">
/* VEEduMIXDAO.selectChasiList202312EAInstr */
SELECT COUNT(1) OVER() AS totCnt ,
ROWNUM AS rowNo ,
A.EDU_APLCT_ORD AS eduAplctOrd
, A.LCTR_DIV_CD AS lctrDivCd
, A.addr AS sAddr
, D.ADDR AS iAddr
, A.EDU_PRSNL AS eduPrsnl
, A.schol_instt_nm AS scholInsttNm
, A.edu_place AS eduPlace
, A.INSTT_NM AS InsttNm
, A.hope_sbjct AS hopeSbjct
, A.INSTT_DIV_CD AS insttDivCd
, A.EDU_SLCT_CD AS eduSlctCd
, B.EDU_CHASI_ORD AS eduChasiOrd
/*
, TO_CHAR(B.EDU_HOPE_DT,'YYYY.MM.DD') AS eduHopeDt
*/
, B.EDU_HOPE_DT AS eduHopeDt
, B.STRT_TM AS strtTm
, B.END_TM AS endTm
, B.LRN_TM AS lrnTm
, B.DIV_CD AS divCd
, B.TRGT AS trgt
, B.PRSNL AS prsnl
, TO_CHAR(B.FRST_REGIST_PNTTM,'YYYY-MM-DD') AS frstRegistPnttm
, B.FRST_REGISTER_ID AS frstRegisterId
, TO_CHAR(B.LAST_UPDT_PNTTM,'YYYY-MM-DD') AS lastUpdtPnttm
, B.LAST_UPDUSR_ID AS lastUpdusrId
, B.LRN_SBJCT AS lrnSbjct
, B.LRN_CN AS lrnCn
, B.RMRKS AS rmrks
, B.INSTR_CNFRM_CD AS instrCnfrmCd
, B.INSTR_CNFRM_PNTTM AS instrCnfrmPnttm
, B.INSTR_CNFRM_ID AS instrCnfrmId
, D.INSTR_DETAIL_ORD AS instrDetailOrd
, D.USER_ID AS userId
, D.INSTR_NM AS instrNm
, D.PHONE AS phone
, D.EMAIL AS email
, D.POST AS post
, D.ADDR AS addr
, D.ADDR_DETAIL AS addrDetail
, D.RSDNE AS rsdne
, D.D_BIRTH AS dBirth
, D.FINAL_SCHOL AS finalSchol
, D.MJR AS mjr
, D.APPT_YR AS apptYr
, D.APPT_DIV AS apptDiv
, D.ACTVT_CARER AS actvtCarer
, D.MN_LCTR_CN AS mnLctrCn
, D.PHT_ATCH_FILE_ID AS PhtAtchFileId
, D.BLNG AS blng
, D.PSTN AS pstn
, D.PRFSN_FLD AS prfsnFld
, D.SBMT_YN AS sbmtYn
, D.SBMT_PNTTM AS sbmtPnttm
, D.APRVL_CD AS aprvlCd
, D.APRVL_PNTTM AS aprvlPnttm
, D.APRVL_ID AS aprvlId
, E.prfrn_fld_cd AS prfrnFldCd
, E.APRVL_CN AS aprvlCn
/*
, F.qustnr_respond_id AS qustnrRespondId
*/
, F.QUSTNR_RESPOND_ID_10 AS qustnrRespondId10
, F.QUSTNR_RESPOND_ID_20 AS qustnrRespondId20
, F.QUSTNR_RESPOND_ID_30 AS qustnrRespondId30
, NVL(F.QESTNR_PARTICIPANT_COUNT,0) AS qestnrParticipantCnt
SELECT aaa.prcsAplctPrdOrd
, NVL(sum(aaa.cnt),0) AS cnt
, sum(aaa.sumScore) AS sumScore
, sum(aaa.sumScore)/sum(aaa.cnt) AS avgScore
FROM (
SELECT COUNT(1) OVER() AS totCnt ,
ROWNUM AS rowNo ,
A.EDU_APLCT_ORD AS eduAplctOrd ,
A.prcs_ord AS prcsAplctPrdOrd,
/*
b.prcs_aplct_prd_ord AS ,
*/
A.LCTR_DIV_CD AS lctrDivCd ,
A.addr AS sAddr ,
D.ADDR AS iAddr ,
A.EDU_PRSNL AS eduPrsnl ,
A.schol_instt_nm AS scholInsttNm ,
A.edu_place AS eduPlace ,
A.INSTT_NM AS InsttNm ,
A.hope_sbjct AS hopeSbjct ,
A.INSTT_DIV_CD AS insttDivCd ,
A.EDU_SLCT_CD AS eduSlctCd ,
, NVL(F0.QUSTNR_QESITM_ID_10,0) AS qustnrQesitmId10Cnt
, NVL(F0.QUSTNR_QESITM_ID_20,0) AS qustnrQesitmId20Cnt
, NVL(F0.QUSTNR_QESITM_ID_30,0) AS qustnrQesitmId30Cnt
D.INSTR_DETAIL_ORD AS instrDetailOrd ,
D.USER_ID AS userId ,
D.INSTR_NM AS instrNm ,
D.PHONE AS phone ,
D.EMAIL AS email ,
D.POST AS post ,
D.ADDR AS addr ,
D.ADDR_DETAIL AS addrDetail ,
D.RSDNE AS rsdne ,
D.D_BIRTH AS dBirth ,
D.FINAL_SCHOL AS finalSchol ,
D.MJR AS mjr ,
D.APPT_YR AS apptYr ,
D.APPT_DIV AS apptDiv ,
D.ACTVT_CARER AS actvtCarer ,
D.MN_LCTR_CN AS mnLctrCn ,
D.PHT_ATCH_FILE_ID AS PhtAtchFileId ,
D.BLNG AS blng ,
D.PSTN AS pstn ,
D.PRFSN_FLD AS prfsnFld ,
D.SBMT_YN AS sbmtYn ,
D.SBMT_PNTTM AS sbmtPnttm ,
D.APRVL_CD AS aprvlCd ,
D.APRVL_PNTTM AS aprvlPnttm ,
D.APRVL_ID AS aprvlId ,
E.prfrn_fld_cd AS prfrnFldCd ,
E.APRVL_CN AS aprvlCn ,
, G.sbmt_yn AS acmdtSbmtYn
, G.aprvl_cd AS acmdtAprvlCd
, H.oneway_dstnc AS onewayDstnc
, A.rslt_atch_file_id AS rsltAtchFileId
NVL(F0.QUSTNR_QESITM_ID_10,0) AS qustnrQesitmId10Cnt ,
NVL(F0.QUSTNR_QESITM_ID_20,0) AS qustnrQesitmId20Cnt ,
NVL(F0.QUSTNR_QESITM_ID_30,0) AS qustnrQesitmId30Cnt ,
I.qustnr_tmplat_id AS qustnrTmplatId ,
i.qestnr_id_10 AS qestnrId10 ,
i.qestnr_id_20 AS qestnrId20 ,
i.qestnr_id_30 AS qestnrId30 ,
j.cnt ,
j.sumScore ,
ROUND(j.avgScore,1) avgScore
FROM VE_EDU_APLCT A
LEFT OUTER JOIN
(
/* 현재 응답한 설문 정보(기본, 선생님, 강사) */
SELECT b.EDU_APLCT_ORD ,
b.prcs_ord ,
COUNT(DECODE(a.site_id_cd,'10',b.QUSTNR_QESITM_ID)) AS QUSTNR_QESITM_ID_10 ,
COUNT(DECODE(a.site_id_cd,'20',b.QUSTNR_QESITM_ID)) AS QUSTNR_QESITM_ID_20 ,
COUNT(DECODE(a.site_id_cd,'30',b.QUSTNR_QESITM_ID)) AS QUSTNR_QESITM_ID_30
FROM (
SELECT a.EDU_APLCT_ORD ,
a.prcs_ord ,
b.QUSTNR_TMPLAT_ID ,
b.QESTNR_ID ,
b.QUSTNR_QESITM_ID
/* , b.QUSTNR_RESPOND_ID */
FROM ve_edu_aplct a ,
LETTNQESTNRRSLTDETAIL b
WHERE 1 =1
AND a.edu_aplct_ord = b.edu_aplct_ord
)
b ,
LETTNQESTNRINFO a
WHERE a.QUSTNR_TMPLAT_ID =b.QUSTNR_TMPLAT_ID
AND a.QESTNR_ID =b.QESTNR_ID
AND a.site_id =#siteId#
GROUP BY b.EDU_APLCT_ORD ,
b.prcs_ord
)
F0
ON (
A.edu_aplct_ord = F0.edu_aplct_ord
)
LEFT OUTER JOIN
(
SELECT aa.edu_aplct_ord ,
aa.prcs_ord ,
SUM(aa.cnt) cnt ,
SUM(aa.cnt*aa.avgscore) sumScore ,
SUM(aa.cnt*aa.avgscore)/SUM(aa.cnt) AS avgScore
FROM (
SELECT b.QUSTNR_TMPLAT_ID ,
b.QESTNR_ID ,
a.EDU_APLCT_ORD ,
a.PRCS_ORD ,
SUM( NVL(b.VERY_SATISFIED,0) + NVL(b.SATISFIED,0) + NVL(b.NEITHER,0) + NVL(b.DISSATISFIED,0) + NVL(b.VERY_DISSATISFIED,0) ) cnt ,
( SUM(NVL(b.VERY_SATISFIED,0)*100) + SUM(NVL(b.SATISFIED,0)*80) + SUM(NVL(b.NEITHER,0)*60) + SUM(NVL(b.DISSATISFIED,0)*40) + SUM(NVL(b.VERY_DISSATISFIED,0)*20) ) / SUM( NVL(b.VERY_SATISFIED,0) + NVL(b.SATISFIED,0) + NVL(b.NEITHER,0) + NVL(b.DISSATISFIED,0) + NVL(b.VERY_DISSATISFIED,0) ) AS avgScore
FROM ve_edu_aplct a ,
LETTNQESTNRRSLTDETAIL b
WHERE 1 =1
AND a.edu_aplct_ord = b.edu_aplct_ord
AND a.LCTR_DIV_CD =#lctrDivCd#
GROUP BY b.QUSTNR_TMPLAT_ID ,
b.QESTNR_ID ,
a.EDU_APLCT_ORD ,
a.PRCS_ORD
)
aa ,
lettnqestnrinfo bb
WHERE 1 =1
AND aa.qustnr_tmplat_id=bb.qustnr_tmplat_id
AND aa.qestnr_id =bb.qestnr_id
AND bb.site_id_cd IN ($siteIdCd$)
GROUP BY aa.edu_aplct_ord ,
aa.prcs_ord
)
J
ON (
A.edu_aplct_ord = j.edu_aplct_ord
)
LEFT OUTER JOIN vea_prcs_aplct_prd_instr_asgnm D0
ON (
a.PRCS_ORD =D0.prcs_aplct_prd_ord
AND d0.asgnm_aprvl_cd='30'
/* 강사가 교육확정한 경우만 보여짐 */
)
LEFT OUTER JOIN VE_INSTR_DETAIL D
ON (
D0.user_id = D.USER_ID
AND D.instr_div = #instrDiv#
AND D.USE_YN = 'Y'
)
LEFT OUTER JOIN VE_LCTR_STNG E
ON (
D0.user_id = E.user_id
AND E.instr_div = #instrDiv#
AND E.USE_YN = 'Y'
)
, I.qustnr_tmplat_id AS qustnrTmplatId
, i.qestnr_id_10 AS qestnrId10
, i.qestnr_id_20 AS qestnrId20
, i.qestnr_id_30 AS qestnrId30
, j.cnt
, j.sumScore
, round(j.avgScore,1) avgScore
FROM
VE_EDU_APLCT A
, VE_EDU_CHASI B
LEFT OUTER JOIN
(
/* 현재 진행가능한 설문 정보(기본, 선생님, 강사) */
SELECT a.QUSTNR_TMPLAT_ID ,
a.SITE_ID ,
MAX(DECODE(a.site_id_cd,'10',a.QESTNR_ID)) AS QESTNR_ID_10 ,
MAX(DECODE(a.site_id_cd,'20',a.QESTNR_ID)) AS QESTNR_ID_20 ,
MAX(DECODE(a.site_id_cd,'30',a.QESTNR_ID)) AS QESTNR_ID_30
FROM LETTNQESTNRINFO a
WHERE a.SITE_ID =#siteId#
AND a.SITE_ID_CD IN ('10',
'20',
'30')
AND TO_CHAR(SYSDATE, 'YYYY.MM.DD') BETWEEN NVL(a.qustnr_bgnde,'2000.01.01') AND NVL(a.qustnr_endde,'9999.12.31')
GROUP BY a.QUSTNR_TMPLAT_ID ,
a.SITE_ID
)
I
ON (
1=1
)
WHERE a.LCTR_DIV_CD =#lctrDivCd#
LEFT OUTER JOIN ve_edu_chasi_instr_asgnm D0
ON (
B.EDU_APLCT_ORD=D0.EDU_APLCT_ORD
AND b.edu_chasi_ord=d0.edu_chasi_ord
AND d0.asgnm_aprvl_cd='30' /* 강사가 교육확정한 경우만 보여짐 */
)
LEFT OUTER JOIN VE_INSTR_DETAIL D
ON (
D0.user_id = D.USER_ID
AND D.instr_div = #instrDiv#
AND D.USE_YN = 'Y'
)
LEFT OUTER JOIN VE_LCTR_STNG E
ON (D0.user_id = E.user_id
AND E.instr_div = #instrDiv#
AND E.USE_YN = 'Y'
)
/*
LEFT OUTER JOIN lettnqustnrrespondinfo F
ON (
B.edu_aplct_ord = F.edu_aplct_ord
AND B.edu_chasi_ord = F.edu_chasi_ord
)
*/
LEFT OUTER JOIN (
/* 현재 응답한 설문 정보(기본, 선생님, 강사) */
SELECT
b.EDU_APLCT_ORD
, b.EDU_CHASI_ORD
, max(decode(a.site_id_cd,'10',b.QUSTNR_RESPOND_ID)) AS QUSTNR_RESPOND_ID_10
, max(decode(a.site_id_cd,'20',b.QUSTNR_RESPOND_ID)) AS QUSTNR_RESPOND_ID_20
, max(decode(a.site_id_cd,'30',b.QUSTNR_RESPOND_ID)) AS QUSTNR_RESPOND_ID_30
, max(b.qestnr_participant_count) AS QESTNR_PARTICIPANT_COUNT
FROM
(
SELECT a.EDU_APLCT_ORD
, a.EDU_CHASI_ORD
, b.QUSTNR_TMPLAT_ID
, b.QESTNR_ID
, b.QUSTNR_RESPOND_ID
, b.qestnr_participant_count
FROM ve_edu_chasi a
, lettnqustnrrespondinfo b
WHERE 1=1
AND A.EDU_CHASI_ORD = #eduChasiOrd#
AND A.EDU_APLCT_ORD = #eduAplctOrd#
AND a.edu_aplct_ord = b.edu_aplct_ord
AND a.edu_chasi_ord = b.edu_chasi_ord
) b
, LETTNQESTNRINFO a
WHERE a.QUSTNR_TMPLAT_ID =b.QUSTNR_TMPLAT_ID
AND a.QESTNR_ID =b.QESTNR_ID
AND a.site_id=#siteId#
GROUP BY
b.EDU_APLCT_ORD
, b.EDU_CHASI_ORD
) F
ON (
B.edu_aplct_ord = F.edu_aplct_ord
AND B.edu_chasi_ord = F.edu_chasi_ord
)
LEFT OUTER JOIN (
/* 현재 응답한 설문 정보(기본, 선생님, 강사) */
SELECT
b.EDU_APLCT_ORD
, b.EDU_CHASI_ORD
, COUNT(DECODE(a.site_id_cd,'10',b.QUSTNR_QESITM_ID)) AS QUSTNR_QESITM_ID_10
, COUNT(DECODE(a.site_id_cd,'20',b.QUSTNR_QESITM_ID)) AS QUSTNR_QESITM_ID_20
, COUNT(DECODE(a.site_id_cd,'30',b.QUSTNR_QESITM_ID)) AS QUSTNR_QESITM_ID_30
FROM
(
SELECT a.EDU_APLCT_ORD
, a.EDU_CHASI_ORD
, b.QUSTNR_TMPLAT_ID
, b.QESTNR_ID
, b.QUSTNR_QESITM_ID
/*
, b.QUSTNR_RESPOND_ID
*/
FROM ve_edu_chasi a
, LETTNQESTNRRSLTDETAIL b
WHERE 1=1
AND A.EDU_CHASI_ORD = #eduChasiOrd#
AND A.EDU_APLCT_ORD = #eduAplctOrd#
AND a.edu_aplct_ord = b.edu_aplct_ord
AND a.edu_chasi_ord = b.edu_chasi_ord
) b
, LETTNQESTNRINFO a
WHERE a.QUSTNR_TMPLAT_ID =b.QUSTNR_TMPLAT_ID
AND a.QESTNR_ID =b.QESTNR_ID
AND a.site_id=#siteId#
GROUP BY
b.EDU_APLCT_ORD
, b.EDU_CHASI_ORD
) F0
ON (
B.edu_aplct_ord = F0.edu_aplct_ord
AND B.edu_chasi_ord = F0.edu_chasi_ord
)
/*
LEFT OUTER JOIN ve_acmdt_aplct G
ON (
B.edu_aplct_ord = g.edu_aplct_ord
AND B.edu_chasi_ord = g.edu_chasi_ord
)
*/
LEFT OUTER JOIN (
SELECT b00.*
FROM (
SELECT edu_aplct_ord, edu_chasi_ord, MAX(acmdt_aplct_ord) AS acmdt_aplct_ord
FROM ve_acmdt_aplct
WHERE sbmt_yn='Y'
AND use_yn='Y'
GROUP BY edu_aplct_ord, edu_chasi_ord
) a00
, ve_acmdt_aplct b00
WHERE 1=1
AND a00.edu_aplct_ord=b00.edu_aplct_ord
AND a00.edu_chasi_ord=b00.edu_chasi_ord
AND a00.acmdt_aplct_ord=b00.acmdt_aplct_ord
) G
ON (
B.edu_aplct_ord = g.edu_aplct_ord
AND B.edu_chasi_ord = g.edu_chasi_ord
)
LEFT OUTER JOIN ve_edu_instr_dstnc H
ON (
B.edu_aplct_ord = h.edu_aplct_ord
AND D0.user_id = h.user_id
)
LEFT OUTER JOIN (
/* 현재 진행가능한 설문 정보(기본, 선생님, 강사) */
SELECT a.QUSTNR_TMPLAT_ID
, a.SITE_ID
, max(decode(a.site_id_cd,'10',a.QESTNR_ID)) AS QESTNR_ID_10
, max(decode(a.site_id_cd,'20',a.QESTNR_ID)) AS QESTNR_ID_20
, max(decode(a.site_id_cd,'30',a.QESTNR_ID)) AS QESTNR_ID_30
FROM LETTNQESTNRINFO a
WHERE a.SITE_ID =#siteId#
AND a.SITE_ID_CD IN ('10','20','30')
AND TO_CHAR(SYSDATE, 'YYYY.MM.DD') BETWEEN NVL(a.qustnr_bgnde,'2000.01.01') AND NVL(a.qustnr_endde,'9999.12.31')
GROUP BY a.QUSTNR_TMPLAT_ID
, a.SITE_ID
) I
on(1=1)
LEFT OUTER JOIN (
SELECT aa.edu_aplct_ord
, aa.edu_chasi_ord
, sum(aa.cnt) cnt
, sum(aa.cnt*aa.avgscore) sumScore
, sum(aa.cnt*aa.avgscore)/sum(aa.cnt) AS avgScore
FROM (
SELECT b.QUSTNR_TMPLAT_ID
, b.QESTNR_ID
, b.EDU_APLCT_ORD
, b.EDU_CHASI_ORD
, sum(
b.VERY_SATISFIED + b.SATISFIED + b.NEITHER + b.DISSATISFIED + b.VERY_DISSATISFIED
) cnt
, (
sum(b.VERY_SATISFIED*100) + sum(b.SATISFIED*80) + sum(b.NEITHER*60) + sum(b.DISSATISFIED*40) + sum(b.VERY_DISSATISFIED*20)
)
/
sum(
b.VERY_SATISFIED + b.SATISFIED + b.NEITHER + b.DISSATISFIED + b.VERY_DISSATISFIED
) AS avgScore
FROM ve_edu_chasi a ,
LETTNQESTNRRSLTDETAIL b
WHERE 1 =1
AND a.edu_aplct_ord = b.edu_aplct_ord
AND a.edu_chasi_ord = b.edu_chasi_ord
GROUP BY b.QUSTNR_TMPLAT_ID
, b.QESTNR_ID
, b.EDU_APLCT_ORD
, b.EDU_CHASI_ORD
)aa
, lettnqestnrinfo bb
WHERE 1=1
AND aa.qustnr_tmplat_id=bb.qustnr_tmplat_id
AND aa.qestnr_id=bb.qestnr_id
AND bb.site_id_cd IN ($siteIdCd$)
GROUP BY aa.edu_aplct_ord
, aa.edu_chasi_ord
) J
ON (
B.edu_aplct_ord = j.edu_aplct_ord
AND B.edu_chasi_ord = j.edu_chasi_ord
)
WHERE 1=1
AND NVL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
AND A.EDU_APLCT_ORD = B.EDU_APLCT_ORD
<isNotEmpty property="eduAplctOrd">
AND A.EDU_APLCT_ORD = #eduAplctOrd#
</isNotEmpty>
<isNotEmpty property="eduChasiOrd">
AND B.EDU_CHASI_ORD = #eduChasiOrd#
</isNotEmpty>
<isNotEmpty property="lctrDivCd">
AND A.LCTR_DIV_CD = #lctrDivCd#
</isNotEmpty>
<isNotEmpty property="aprvlCd">
AND A.APRVL_CD=#aprvlCd#
</isNotEmpty>
<isNotEmpty property="userId">
AND A.USER_ID = #userId#
</isNotEmpty>
<isNotEmpty property="searchStartDt">
AND b.EDU_HOPE_DT <![CDATA[ >= ]]> REPLACE(#searchStartDt#, '.' , '')
</isNotEmpty>
<isNotEmpty property="searchEndDt">
AND b.EDU_HOPE_DT <![CDATA[ <= ]]> REPLACE(#searchEndDt#, '.' , '')
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, A.EDU_APLCT_ORD DESC
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
<isNotEqual property="pageIndex" compareValue="0">
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</isNotEqual>
<isNotEmpty property="prcsAplctPrdOrd">
AND a.prcs_ord = #prcsAplctPrdOrd#
</isNotEmpty>
)aaa
GROUP BY aaa.prcsAplctPrdOrd
</select>
<!-- 청소년 차시별 동반강사 리스트 page -->

View File

@ -279,6 +279,57 @@
</td>
</tr>
</c:if>
<c:forEach var="list" items="${chasiList}" varStatus="status">
<tr>
<th scope="row">
<p>강사설문</p>
</th>
<td>
<c:choose>
<c:when test="${not empty list.qustnrRespondId30 and list.qestnrParticipantCnt gt 0 and list.qustnrQesitmId30Cnt gt 0}">
<button type="button" class="btnType02 m_btn_block" data-tooltip="sub37_pop30"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','30','select'
,'${list.qustnrTmplatId}','${list.qestnrId30}','${list.qustnrRespondId30}'
)" title="팝업 열림" style="height:40px;width:120px;">설문완료</button>
</c:when>
<c:when test="${not empty list.qestnrId30}">
<button type="button" class="btnType01" data-tooltip="sub37_pop30"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','30','insert'
,'${list.qustnrTmplatId}','${list.qestnrId30}','${list.qustnrRespondId30}'
)" title="팝업 열림">설문등록</button>
</c:when>
<c:otherwise>
해당설문없음
<!--
<button type="button" class="btnType01" data-tooltip="sub37_pop20"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','20','insert'
,'${list.qustnrTmplatId}','${list.qestnrId20}','${list.qustnrRespondId20}'
)" title="팝업 열림">설문등록</button>
-->
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th scope="row">
<p>강의평균만족도</p>
</th>
<td>
<c:choose>
<c:when test="${not empty list.avgScore}">
<c:out value="${list.avgScore}" />점
</c:when>
<c:otherwise>
등록된 설문없음
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>

View File

@ -255,6 +255,57 @@
</th>
<td colspan="3"><ve:code codeId="VEA004" code="${info.ddlnCd}"/></td>
</tr>
<c:forEach var="list" items="${chasiList}" varStatus="status">
<tr>
<th scope="row">
<p>강사설문</p>
</th>
<td>
<c:choose>
<c:when test="${not empty list.qustnrRespondId30 and list.qestnrParticipantCnt gt 0 and list.qustnrQesitmId30Cnt gt 0}">
<button type="button" class="btnType02 m_btn_block" data-tooltip="sub37_pop30"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','30','select'
,'${list.qustnrTmplatId}','${list.qestnrId30}','${list.qustnrRespondId30}'
)" title="팝업 열림" style="height:40px;width:120px;">설문완료</button>
</c:when>
<c:when test="${not empty list.qestnrId30}">
<button type="button" class="btnType01" data-tooltip="sub37_pop30"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','30','insert'
,'${list.qustnrTmplatId}','${list.qestnrId30}','${list.qustnrRespondId30}'
)" title="팝업 열림">설문등록</button>
</c:when>
<c:otherwise>
해당설문없음
<!--
<button type="button" class="btnType01" data-tooltip="sub37_pop20"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','20','insert'
,'${list.qustnrTmplatId}','${list.qestnrId20}','${list.qustnrRespondId20}'
)" title="팝업 열림">설문등록</button>
-->
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th scope="row">
<p>강의평균만족도</p>
</th>
<td>
<c:choose>
<c:when test="${not empty list.avgScore}">
<c:out value="${list.avgScore}" />점
</c:when>
<c:otherwise>
등록된 설문없음
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>