2025-10-22 17:41 설문 이수증 수정

This commit is contained in:
myname 2025-10-22 17:42:09 +09:00
parent 8d2ae77dee
commit 49ed77bd98
4 changed files with 719 additions and 5 deletions

View File

@ -38,8 +38,11 @@ import kcc.com.cmm.spring.data.util.ExcelUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.com.utl.user.service.QustnrCommonUtil;
import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.uss.notify.service.NotifyManageService;
import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService;
import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.let.utl.fcc.service.ITNotiUtil;
import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService;
@ -57,6 +60,7 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService;
import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO;
import kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.service.ExcelVO;
import kcc.ve.oprtn.qestnr.service.VEALettnQestnrMIXService;
/**
* 기반강화연수(관리자)
@ -170,6 +174,17 @@ public class CndtnPrcsInfoMngController {
@Resource(name="eduAplctGnrService")
private EgovIdGnrService eduAplctGnrService;
// 설문 util
@Resource(name = "qustnrCommonUtil")
private QustnrCommonUtil qustnrCommonUtil;
// 설문 복합 VEA_
@Resource(name = "vEALettnQestnrMIXService")
private VEALettnQestnrMIXService vEALettnQestnrMIXService;
@Resource(name = "egovQustnrRespondInfoService")
private EgovQustnrRespondInfoService egovQustnrRespondInfoService;
/**
* 기반강화연수 과정 관리 목록 화면
*/
@ -1324,6 +1339,92 @@ public class CndtnPrcsInfoMngController {
model.addAttribute("instrAsgnmList", instrAsgnmList);
}
//설문 문항 정보
try {
model = qustnrCommonUtil._qustnrQesItm(
model
, LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
, "QTMPLA_0000000000001"
, vEALettnQestnrMIXService
, egovQustnrRespondInfoService
, vEPrcsDetailVO.getPrcsAplctPrdOrd()
, ""
//, vEEduAplctVO.getEduAplctOrd()
//, vEEduAplctVO.getEduChasiOrd()
);
}catch(Exception ex) {
ex.printStackTrace();
}
/*
// 설문조사 정보
QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO();
qustnrRespondInfoVO.setSiteId(VeConstants.LCTR_DIV_CD_20);
QustnrRespondInfoVO info = egovQustnrRespondInfoService.selectSiteIdQustnrTmplat(qustnrRespondInfoVO);
// 설문조사 문항리스트 조회
Map <String, Object> commandMap =new HashMap<String, Object>();
commandMap.put("qestnrTmplatId", "QTMPLA_0000000000001");
commandMap.put("qestnrId",info.getQestnrId()); //문제 ID
model.addAttribute("Comtnqustnrqesitm", egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap));
*/
try{
model = qustnrCommonUtil._chasiSrvyList(
model
, LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
, vEPrcsDetailVO.getPrcsAplctPrdOrd()
, ""
//, vEEduAplctVO.getEduAplctOrd()
//, vEEduAplctVO.getEduChasiOrd()
, vEALettnQestnrMIXService
);
}catch(Exception ex) {
ex.printStackTrace();
}
//개인별 만족도 관리 - chasiSrvyEAList
try{
model = qustnrCommonUtil._chasiSrvyEAList(
model
, LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
, vEPrcsDetailVO.getPrcsAplctPrdOrd()
, ""
//, vEEduAplctVO.getEduAplctOrd()
//, vEEduAplctVO.getEduChasiOrd()
, vEALettnQestnrMIXService
);
}catch(Exception ex) {
ex.printStackTrace();
}
//주관식 답변 정보
try {
QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO();
//qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd());
qustnrRespondInfoVO.setEduChasiOrd("");
List<QustnrRespondInfoVO> subjList = egovQustnrRespondInfoService.selectSubjList(qustnrRespondInfoVO);
if (subjList.size()>=0) {
model.addAttribute("subjInfo", subjList.get(0));
}
}catch(Exception ex) {
System.out.println("Exception vEEduAplctOnlnService.updateBulk");
}
System.out.println("=============================================chasiSrvyEAList=============================================");
return "/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngDetail";
}

View File

@ -35,5 +35,7 @@
<sqlMap resource="egovframework/sqlmap/ve/instr/VEInstr_SQL_Postgresql.xml"/><!-- 강사테이블 -->
<sqlMap resource="egovframework/sqlmap/ve/tngr/VEAInstrHstryMng_SQL_Postgresql.xml"/> <!-- 강사이력관리 -->
<sqlMap resource="egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Postgresql.xml"/> <!-- 설문지 MIX 쿼리 -->
</sqlMapConfig>

View File

@ -0,0 +1,372 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<!-- 설문지 정보 테이블 -->
<sqlMap namespace="VEALettnQestnrMIX">
<typeAlias alias="VEAQestnrVO" type="kcc.ve.oprtn.qestnr.service.VEAQestnrVO"/>
<!-- 설문지 양식리스트 L page -->
<select id="VEALettnQestnrMIXDAO.selectPagingList_LQI" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
/* VEALettnQestnrMIXDAO.selectPagingList_LQI */
<![CDATA[
select
count(a.qestnr_id) over() as totcnt
, a.qestnr_id qestnrId
, a.qustnr_sj qustnrSj
, a.qustnr_purps qustnrPurps
, a.qustnr_writng_guidance_cn qustnrWritngGuidanceCn
, a.qustnr_bgnde qustnrBgnde
, a.qustnr_endde qustnrEndde
, a.qustnr_trget qustnrTrget
, a.qustnr_tmplat_id qustnrTmplatId
, TO_CHAR(a.frst_regist_pnttm,'YYYY-MM-DD') frstRegistPnttm
, a.frst_register_id
, (select user_nm from comvnusermaster where esntl_id = a.frst_register_id ORDER BY USER_NM DESC LIMIT 1) frstRegisterNm
, a.last_updt_pnttm
, a.last_updusr_id
, a.site_id siteId
, a.site_id_cd siteIdCd
, a.before_and_after beforeAndAfter
, a.atch_file_id
, ( select count(*) from lettnqustnrqesitm where qestnr_id = a.qestnr_id ) qustnrQesitmCnt
, ( select count(*) from lettnqustnrrespondinfo where qestnr_id = a.qestnr_id ) rrspnsResultCnt
, case
when a.qustnr_endde < TO_CHAR(SYSDATE, 'YYYYMMDD') then '2' /* */
else a.sttus
end as sttus
, (select qustnr_tmplat_path_nm from lettnqustnrtmplat where qustnr_tmplat_id = a.qustnr_tmplat_id ) template_url
from
lettnqestnrinfo a
where 1=1
]]>
<isNotEmpty property="searchKeyword">
<isNotEqual property="searchKeyword" compareValue="">
<isEqual property="searchCondition" compareValue="">
AND ( QUSTNR_SJ LIKE '%'||#searchKeyword#||'%'
OR FRST_REGISTER_ID IN (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_NM LIKE '%'||#searchKeyword#||'%'
)
)
</isEqual>
<isEqual property="searchCondition" compareValue="QUSTNR_SJ">
AND QUSTNR_SJ LIKE '%'||#searchKeyword#||'%'
</isEqual>
<isEqual property="searchCondition" compareValue="FRST_REGISTER_ID">
AND FRST_REGISTER_ID IN (SELECT ESNTL_ID FROM COMVNUSERMASTER WHERE USER_NM LIKE '%'||#searchKeyword#||'%' )
</isEqual>
</isNotEqual>
</isNotEmpty>
<isNotEmpty property="searchConditionSite">
AND a.site_id = #searchConditionSite#
</isNotEmpty>
ORDER BY 1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
<isNotEqual property="pageIndex" compareValue="0">
/*
LIMIT recordCountPerPage OFFSET firstIndex
*/
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
</isNotEqual>
</select>
<!-- //설문지 양식 상세 L page -->
<select id="VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_01" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
/* VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_01 */
<![CDATA[
SELECT
A.QESTNR_ID AS qestnrId,
A.QUSTNR_SJ AS qustnrSj,
A.QUSTNR_PURPS AS qustnrPurps,
A.QUSTNR_WRITNG_GUIDANCE_CN AS qustnrWritngGuidanceCn,
/*
TO_DATE(A.QUSTNR_BGNDE,'YYYY-MM-DD') AS qustnrBgnde,
TO_DATE(A.QUSTNR_ENDDE,'YYYY-MM-DD') AS qustnrEndde,
*/
A.QUSTNR_BGNDE AS qustnrBgnde,
A.QUSTNR_ENDDE AS qustnrEndde,
A.QUSTNR_TRGET,
A.QUSTNR_TMPLAT_ID,
(SELECT QUSTNR_TMPLAT_TY FROM LETTNQUSTNRTMPLAT WHERE QUSTNR_TMPLAT_ID = A.QUSTNR_TMPLAT_ID) QUSTNR_TMPLAT_TY,
TO_CHAR(A.FRST_REGIST_PNTTM,'YYYY-MM-DD HH24') FRST_REGIST_PNTTM,
(SELECT USER_NM FROM LETTNEMPLYRINFO
WHERE ESNTL_ID = A.FRST_REGISTER_ID) FRST_REGISTER_ID,
TO_CHAR(A.LAST_UPDT_PNTTM,'YYYY-MM-DD HH24') LAST_UPDT_PNTTM,
A.LAST_UPDUSR_ID,
( SELECT COUNT(*) FROM LETTNQUSTNRQESITM WHERE QESTNR_ID = A.QESTNR_ID ) QUSTNRQESITM_CNT ,
( SELECT COUNT(*) FROM LETTNQUSTNRRSPNSRESULT WHERE QESTNR_ID = A.QESTNR_ID ) RRSPNSRESULT_CNT,
( SELECT COUNT(*) FROM LETTNQUSTNRRESPONDINFO WHERE QESTNR_ID = A.QESTNR_ID ) rrspnsResultCnt,
CASE
WHEN A.STTUS = '1' THEN
CASE
WHEN TO_DATE(A.QUSTNR_ENDDE,'YYYYMMDD') < TO_CHAR(SYSDATE, 'YYYYMMDD') THEN '2'
ELSE '1'
END
ELSE A.STTUS
END AS STTUS,
A.SITE_ID AS siteId,
A.SITE_ID_CD AS siteIdCd,
A.QUSTNR_VIEW_TRGET,
A.BEFORE_AND_AFTER,
A.ATCH_FILE_ID
FROM LETTNQESTNRINFO A
WHERE 1=1
AND QESTNR_ID = #qestnrId#
]]>
</select>
<!-- //설문지 정보 조건에 맞는 R -->
<select id="VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_02" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
/* VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_02 */
SELECT A.QUSTNR_TMPLAT_ID AS qustnrTmplatId
/*
, A.QESTNR_ID AS qestnrId
*/
, COALESCE(B.QESTNR_ID,A.QESTNR_ID) AS qestnrId
, A.SITE_ID AS siteId
, A.site_id_cd AS siteIdCd
FROM LETTNQESTNRINFO A
LEFT OUTER JOIN (
SELECT
a.QUSTNR_TMPLAT_ID ,
a.QESTNR_ID
FROM
(
SELECT
b.QUSTNR_TMPLAT_ID ,
b.QESTNR_ID
FROM
lettnqustnrrespondinfo b
WHERE
b.edu_aplct_ord=#eduAplctOrd#
AND b.edu_chasi_ord=#eduChasiOrd#
GROUP BY
b.QUSTNR_TMPLAT_ID ,
b.QESTNR_ID
) b ,
LETTNQESTNRINFO a
WHERE
a.QUSTNR_TMPLAT_ID = b.QUSTNR_TMPLAT_ID
AND a.QESTNR_ID = b.QESTNR_ID
AND a.site_id = #siteId#
AND a.site_id_cd = #siteIdCd#
)b
on(1=1)
WHERE 1 =1
AND to_char(NOW(), 'YYYY.MM.DD') BETWEEN
COALESCE(a.qustnr_bgnde,'2000.01.01') AND COALESCE(a.qustnr_endde,'9999.12.31')
AND A.SITE_ID = #siteId#
AND COALESCE(A.site_id_cd, '10')=#siteIdCd#
ORDER BY A.QESTNR_ID DESC
LIMIT 1
</select>
<!-- //설문지 정보 조건에 맞는 R -->
<select id="VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_02_bak" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
/* VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_02_bak */
SELECT A.QUSTNR_TMPLAT_ID AS qustnrTmplatId
, A.QESTNR_ID AS qestnrId
, A.SITE_ID AS siteId
, A.site_id_cd AS siteIdCd
FROM LETTNQESTNRINFO A
WHERE 1 =1
AND to_char(sysdate, 'YYYY.MM.DD') BETWEEN
NVL(a.qustnr_bgnde,'2000.01.01') AND NVL(a.qustnr_endde,'9999.12.31')
AND A.SITE_ID = #siteId#
AND A.site_id_cd=#siteIdCd#
ORDER BY A.QESTNR_ID DESC
LIMIT 1
</select>
<!-- //관리자 청소년/성인 만족도 평가 R -->
<select id="VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
/* VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03 */
SELECT
b.QUSTNR_QESITM_ID AS qestnrQesitmId
, c.QUSTNR_RSLT_ID AS qustnrRsltId
, NVL(c.VERY_SATISFIED, cVERY_SATISFIED) AS verySatisfied
, NVL(c.SATISFIED, cSATISFIED) AS satisfied
, NVL(c.NEITHER, cNEITHER) AS neither
, NVL(c.DISSATISFIED, cDISSATISFIED) AS dissatisfied
, NVL(c.VERY_DISSATISFIED, cVERY_DISSATISFIED) AS veryDissatisfied
, c.ANSWER AS answer
, c.QUSTNR_IEM_ID AS qustnrIemId
, b.qestn_sn AS qestnSn
/*
, d.QESTNR_RESPONDENT_COUNT AS qestnrParticipant
, d.QESTNR_PARTICIPANT_COUNT AS qestnrRespondent
*/
, e.QESTNR_RESPONDENT_COUNT AS qestnrParticipant
, e.QESTNR_PARTICIPANT_COUNT AS qestnrRespondent
, d.QUSTNR_RESPOND_ID AS qestnrRespondId
FROM LETTNQESTNRINFO a
, LETTNQUSTNRQESITM b
LEFT OUTER join (
SELECT c02.*
FROM (
SELECT
c00.qustnr_tmplat_id
, c00.qestnr_id
, c00.qustnr_qesitm_id
, max(c00.qustnr_rslt_id) AS qustnr_rslt_id
FROM
LETTNQESTNRRSLTDetail c00
WHERE
c00.EDU_APLCT_ORD = #eduAplctOrd#
AND c00.EDU_CHASI_ORD = #eduChasiOrd#
GROUP BY
c00.qustnr_tmplat_id
, c00.qestnr_id
, c00.qustnr_qesitm_id
)c01
, LETTNQESTNRRSLTDetail c02
WHERE c01.qustnr_tmplat_id=c02.qustnr_tmplat_id
AND c01.qestnr_id=c02.qestnr_id
AND c01.qustnr_qesitm_id=c02.qustnr_qesitm_id
AND c01.qustnr_rslt_id=c02.qustnr_rslt_id
) c
on(
b.QUSTNR_TMPLAT_ID =c.QUSTNR_TMPLAT_ID
AND b.QESTNR_ID =c.QESTNR_ID
AND b.QUSTNR_QESITM_ID =c.QUSTNR_QESITM_ID
)
/*
LEFT OUTER JOIN LETTNQUSTNRRESPONDINFO d
ON ( c.QESTNR_ID = d.QESTNR_ID
AND c.EDU_APLCT_ORD = d.EDU_APLCT_ORD
AND c.EDU_CHASI_ORD = d.EDU_CHASI_ORD )
*/
/* 중복답변 처리 */
LEFT OUTER JOIN (
SELECT d0.QUSTNR_TMPLAT_ID
, d0.QESTNR_ID
, d0.EDU_APLCT_ORD
, d0.EDU_CHASI_ORD
, MAX(d0.QUSTNR_RESPOND_ID) AS QUSTNR_RESPOND_ID
FROM LETTNQUSTNRRESPONDINFO d0
GROUP BY d0.QUSTNR_TMPLAT_ID
, d0.QESTNR_ID
, d0.EDU_APLCT_ORD
, d0.EDU_CHASI_ORD
) d
ON (
c.QESTNR_ID = d.QESTNR_ID
AND c.EDU_APLCT_ORD = d.EDU_APLCT_ORD
AND c.EDU_CHASI_ORD = d.EDU_CHASI_ORD
)
LEFT OUTER JOIN LETTNQUSTNRRESPONDINFO e
on
(
d.QUSTNR_TMPLAT_ID =e.QUSTNR_TMPLAT_ID
AND d.QESTNR_ID =e.QESTNR_ID
AND d.QUSTNR_RESPOND_ID =e.QUSTNR_RESPOND_ID
AND d.EDU_APLCT_ORD = e.EDU_APLCT_ORD
AND d.EDU_CHASI_ORD = e.EDU_CHASI_ORD
)
LEFT OUTER JOIN (
SELECT
c.QUSTNR_TMPLAT_ID
, c.QESTNR_ID
, c.QUSTNR_QESITM_ID
, c.EDU_APLCT_ORD
, c.EDU_CHASI_ORD
, sum(c.very_satisfied) AS cvery_satisfied
, sum(c.satisfied) AS csatisfied
, sum(c.neither) AS cneither
, sum(c.dissatisfied) AS cdissatisfied
, sum(c.very_dissatisfied) AS cvery_dissatisfied
FROM LETTNQESTNRRSLTEADetail c
GROUP BY
c.QUSTNR_TMPLAT_ID
, c.QESTNR_ID
, c.QUSTNR_QESITM_ID
, c.EDU_APLCT_ORD
, c.EDU_CHASI_ORD
)F
on(
b.QUSTNR_TMPLAT_ID =f.QUSTNR_TMPLAT_ID
AND b.QESTNR_ID =f.QESTNR_ID
AND b.QUSTNR_QESITM_ID =f.QUSTNR_QESITM_ID
AND f.EDU_APLCT_ORD = #eduAplctOrd#
AND f.EDU_CHASI_ORD = #eduChasiOrd#
)
WHERE a.site_id=#siteId#
AND a.SITE_ID_CD =#siteIdCd#
AND b.QUSTNR_TMPLAT_ID =a.QUSTNR_TMPLAT_ID
AND b.QESTNR_ID =a.QESTNR_ID
</select>
<!-- //관리자 청소년/성인 만족도 평가 R -->
<select id="VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
/* VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04 */
SELECT a.qustnr_tmplat_id AS qustnrTmplatId
, a.qestnr_id AS qestnrId
, a.qustnr_nm AS qustnrNm
, a.qustnr_birth AS qustnrBirth
, count(*) AS rrspnsResultCnt
, ROUND(SUM(a.VERY_SATISFIED * 100
+ a.SATISFIED * 80
+ a.NEITHER * 60
+ a.dissatisfied * 40
+ a.very_dissatisfied * 20)
/
count(*),1) AS qustnrScore
FROM LETTNQESTNRRSLTEADetail a
WHERE 1=1
AND a.EDU_APLCT_ORD = #eduAplctOrd#
AND a.EDU_CHASI_ORD = #eduChasiOrd#
AND a.QESTNR_ID = #qestnrId#
AND a.QUSTNR_TMPLAT_ID = #qustnrTmplatId#
GROUP BY a.qustnr_tmplat_id
, a.qestnr_id
, a.qustnr_nm
, a.qustnr_birth
</select>
</sqlMap>

View File

@ -964,12 +964,16 @@
</td>
<td>
<c:choose>
<c:when test="${list.qestRsltExists}">
<!-- 설문노출대상(승인처리를 받았음(20) && 교육기간이 지났음 list.qestRsltExists=true && 미이수가 아닌것(10) ) -->
<c:choose>
<c:when test="${list.aplctStateCd eq 20 and list.qestnrId10Cnt gt 0}">
<!-- 작성된 설문이 있다 -->
<button type="button" class="btnType02" data-info="${list.eduAplctOrd}" data-tooltip="sub36_pop02"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduChasiOrd}','10','select'
<button type="button" class="btn_type04" data-tooltip="sub37_pop20"
onclick="fncInstrCostNewInfo('${list.eduAplctOrd}','${list.eduChasiOrd}','10','select'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문완료</button>
</c:when>
@ -977,12 +981,24 @@
<c:when test="${empty list.qestnrId10 and list.aprvlCd eq 20}">
<!-- 대상 설문이 없다 -->
대상설문없음
</c:when>
<c:when test="${empty list.qestnrId10Cnt or list.qestnrId10Cnt eq 0}">
<!-- 작성된 설문이 없다 -->
등록된 설문없음
</c:when>
<c:otherwise>
-
</c:otherwise>
</c:choose>
</c:choose>
</c:when>
<c:otherwise>
<!-- 설문노출대상 아님 -->
-
</c:otherwise>
</c:choose>
<button type="button" class="btn_type04" onclick="fncPrintCert('${list.eduAplctOrd}','${list.eduChasiOrd}','10','insert','${list.qustnrTmplatId}','${list.qestnrId10}','')"/>이수증</button>
@ -1069,7 +1085,230 @@
<%-- <button type="button" class="btn_type03" onclick="location.href='<c:url value="/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsAplctCfnMngList.do" />'; return false;">교육확정목록</button> --%>
</div>
</div>
</div>
<!-- 문항리스트_상세 -->
<div class="tb_tit01">
<p>교육 내용에 대한 전반적 만족도 평가</p>
</div>
<div class="tb_type01">
<table>
<c:if test="${!empty chasiSrvyList}">
<colgroup>
<col style="width: 120px;">
<col style="width: auto;">
<col style="width: 120px;">
<col style="width: auto;">
</colgroup>
<tbody class="ta_con">
<tr>
<th scope="row">
<p>참석자</p>
</th>
<td>
<input type="hidden" class="popupInput" id="qestnrParticipant" name="qestnrParticipant" value="<c:out value="${qestnrParticipant}"/>">
<c:out value="${qestnrParticipant}"/>
</td>
<th scope="row">
<p>응답율</p>
</th>
<td id="responseRate">-</td>
</tr>
<tr>
<th scope="row">
<p>응답자</p>
</th>
<td>
<input type="hidden" class="popupInput" id="qestnrRespondent" name="qestnrRespondent" value="<c:out value="${qestnrRespondent}"/>">
<c:out value="${qestnrRespondent}"/>
</td>
<th scope="row">
<p>무응답</p>
</th>
<td id="noResponse">-</td>
</tr>
</tbody>
</c:if>
<c:if test="${empty chasiSrvyList}">
<tr>
<td colspan="2">등록된 평가문항이 없습니다.</td>
</tr>
</c:if>
</table>
</div>
<c:if test="${!empty chasiSrvyList}">
<div class="tb_type01 list2">
<table>
<colgroup>
<col style="width: auto;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 12%;">
<col style="width: 12%;">
</colgroup>
<thead>
<tr>
<th scope="col">평가문항</th>
<th scope="col">매우만족</th>
<th scope="col">만족</th>
<th scope="col">보통</th>
<th scope="col">불만족</th>
<th scope="col">매우불만족</th>
</tr>
</thead>
<tbody>
<c:forEach items="${Comtnqustnrqesitm}" var="QestmInfo" varStatus="status1">
<c:forEach items="${chasiSrvyList}" var="chasiSrvyInfo" varStatus="">
<c:if test="${QestmInfo.qestnrQesitmId eq chasiSrvyInfo.qestnrQesitmId}">
<tr>
<th scope="row" class="t_left">
${status1.count}) <c:out value="${QestmInfo.qestnCn}" escapeXml="true" />
</th>
<td>
<c:out value="${chasiSrvyInfo.verySatisfied}"/>
</td>
<td>
<c:out value="${chasiSrvyInfo.satisfied}"/>
</td>
<td>
<c:out value="${chasiSrvyInfo.neither}"/>
</td>
<td>
<c:out value="${chasiSrvyInfo.dissatisfied}"/>
</td>
<td>
<c:out value="${chasiSrvyInfo.veryDissatisfied}"/>
</td>
</tr>
</c:if>
</c:forEach>
</c:forEach>
</tbody>
</table>
</div>
</c:if>
<!-- 기타의견이 있으면 보여준다. -->
<c:if test="${not empty subjInfo}">
<div class="tb_type01 list2">
<table>
<caption>기타의견</caption>
<colgroup>
<col style="auto;">
</colgroup>
<thead>
<tr>
<th scope="col">기타의견</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">
<br/>
<c:out value="${fn:replace(subjInfo.qustnrCn , crlf , '<br/>')}" escapeXml="false" />
<br/>
<br/>
</th>
</tr>
</tbody>
</table>
<br/>
<br/>
<br/>
</div>
</c:if>
<!-- btn_wrap -->
<!--
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<c:if test="${!empty chasiSrvyList}">
<button class="btn_type02" onclick="fncExcelDown(); return false;">엑셀 다운로드</button>
</c:if>
</div>
<div class="btn_center">
</div>
<div class="btn_right">
</div>
</div>
<br/>
<br/>
-->
<c:choose>
<%-- <c:when test="${chasiSrvyList[0].neither ne '' and chasiSrvyList[0].neither ne null}"> --%>
<c:when test="${qestnrParticipant ne '' and qestnrParticipant ne null}">
<div class="btn_wrap">
<div class="btn_right">
<c:forEach var="list" items="${chasiQr}" varStatus="status">
<c:choose>
<c:when test="${not empty list.qestnrId10}">
<button type="button" class="btn_type04" data-info="${list.eduChasiOrd}" data-tooltip="sub37_pop20"
onclick="fn_chasiQRPop('${list.eduAplctOrd}','${list.eduChasiOrd}','10','print'
,'${list.qustnrTmplatId}','${list.qestnrId10}','${list.qustnrRespondId10}'
)" title="팝업 열림">설문QR</button>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</c:forEach>
<button type="button" class="btn_type06" onclick="fn_chasiStatusPop(); return false;">수정</button>
<button type="button" class="btn_type01" onclick="fn_delete(); return false;">삭제</button>
</div>
</div>
</c:when>
<c:otherwise>
<!-- 등록버튼 추가 필요 -->
<div class="btn_wrap">
<div class="btn_right">
<c:forEach var="list" items="${chasiQr}" varStatus="status">
<c:choose>
<c:when test="${not empty list.qestnrId10}">
<button type="button" class="btn_type04" data-info="${list.eduChasiOrd}" data-tooltip="sub37_pop20"
onclick="fn_chasiQRPop('${list.eduAplctOrd}','${list.eduChasiOrd}','10','print'
,'${list.qustnrTmplatId}','${list.qestnrId10}','${list.qustnrRespondId10}'
)" title="팝업 열림">설문QR</button>
</c:when>
<c:otherwise>
</c:otherwise>
</c:choose>
</c:forEach>
<button type="button" class="btn_type06" onclick="fn_chasiStatusPop(); return false;">등록</button>
</div>
</div>
</c:otherwise>
</c:choose>
</div>
</div>