2024-01-19 15:17 청소년 강사만족도 다운로드 수정

This commit is contained in:
myname 2024-01-19 15:17:59 +09:00
parent df49a0bbce
commit 14260c93e2
9 changed files with 601 additions and 3 deletions

View File

@ -24,6 +24,15 @@ public class VEEduSatisfactionExcelVO {
private String srt; //정렬순서
private String qestnSn; //정렬순서
private String qestnCn; //정렬순서
private String verySatisfied; //정렬순서
private String satisfied; //정렬순서
private String neither; //정렬순서
private String disSatisfied; //정렬순서
private String veryDisSatisfied; //정렬순서
public String getEduHopeDt() {
return eduHopeDt;
}
@ -152,4 +161,60 @@ public class VEEduSatisfactionExcelVO {
this.srt = srt;
}
public String getQestnSn() {
return qestnSn;
}
public void setQestnSn(String qestnSn) {
this.qestnSn = qestnSn;
}
public String getQestnCn() {
return qestnCn;
}
public void setQestnCn(String qestnCn) {
this.qestnCn = qestnCn;
}
public String getVerySatisfied() {
return verySatisfied;
}
public void setVerySatisfied(String verySatisfied) {
this.verySatisfied = verySatisfied;
}
public String getSatisfied() {
return satisfied;
}
public void setSatisfied(String satisfied) {
this.satisfied = satisfied;
}
public String getNeither() {
return neither;
}
public void setNeither(String neither) {
this.neither = neither;
}
public String getDisSatisfied() {
return disSatisfied;
}
public void setDisSatisfied(String disSatisfied) {
this.disSatisfied = disSatisfied;
}
public String getVeryDisSatisfied() {
return veryDisSatisfied;
}
public void setVeryDisSatisfied(String veryDisSatisfied) {
this.veryDisSatisfied = veryDisSatisfied;
}
}

View File

@ -165,6 +165,8 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
private List<String> eduAplctOrdList; //교육신청순번
private List<String> sspnIdtmtTrgtOrdList; //교육신청순번
private String siteIdCd; //10-학생, 20-선생, 30-강사
public int getChasi() {
return chasi;
}
@ -2058,6 +2060,12 @@ public class VEEduAplctVO extends ComDefaultVO implements Serializable {
public void setMberId(String mberId) {
this.mberId = mberId;
}
public String getSiteIdCd() {
return siteIdCd;
}
public void setSiteIdCd(String siteIdCd) {
this.siteIdCd = siteIdCd;
}
}

View File

@ -69,6 +69,8 @@ public interface VEEduMIXService {
List<VEEduSatisfactionExcelVO> selectSatisfactionExcelList(VEEduAplctVO vEEduAplctVO) throws Exception;
List<VEEduSatisfactionExcelVO> selectSatisfaction202401ExcelList(VEEduAplctVO vEEduAplctVO) throws Exception;
List<VEEduExcelVO> selectOprtnExcelList(VEEduAplctVO vEEduAplctVO) throws Exception;
void insertExprnClsrmEndInfo(VEEduAplctVO vEEduAplctVO) throws Exception;

View File

@ -173,6 +173,12 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
return tlist;
}
public List<VEEduSatisfactionExcelVO> selectSatisfaction202401ExcelList(VEEduAplctVO vEEduAplctVO) throws Exception {
@SuppressWarnings("unchecked")
List<VEEduSatisfactionExcelVO> tlist = (List<VEEduSatisfactionExcelVO>) list("VEEduMIXDAO.selectSatisfaction202401ExcelList", vEEduAplctVO);
return tlist;
}
public List<VEEduExcelVO> selectOprtnExcelList(VEEduAplctVO vEEduAplctVO) throws Exception {
@SuppressWarnings("unchecked")
List<VEEduExcelVO> tlist = (List<VEEduExcelVO>) list("VEEduMIXDAO.selectOprtnExcelList", vEEduAplctVO);

View File

@ -146,6 +146,11 @@ public class VEEduMIXServiceImpl implements VEEduMIXService {
return vEEduMIXDAO.selectSatisfactionExcelList(vEEduAplctVO);
}
@Override
public List<VEEduSatisfactionExcelVO> selectSatisfaction202401ExcelList(VEEduAplctVO vEEduAplctVO) throws Exception {
return vEEduMIXDAO.selectSatisfaction202401ExcelList(vEEduAplctVO);
}
@Override
public List<VEEduExcelVO> selectOprtnExcelList(VEEduAplctVO vEEduAplctVO) throws Exception {
return vEEduMIXDAO.selectOprtnExcelList(vEEduAplctVO);

View File

@ -1671,6 +1671,67 @@ public class EduRsltMngTngrController {
return modelAndView;
}
//강사만족도 excel download
@SuppressWarnings("rawtypes")
@RequestMapping(value = "eduRsltSatisfaction202401ExcelDownLoad.do")
public ModelAndView eduRsltSatisfaction202401ExcelDownLoad(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model) throws Exception {
try {
// 요청, 반려건
vEEduAplctVO.setSearchNotStatusArr(new String[]{"60"});
// 청소년
vEEduAplctVO.setLctrDivCd(VeConstants.LCTR_DIV_CD_10);
vEEduAplctVO.setMode(VeConstants.MODE_EXCEL);
vEEduAplctVO.setSiteId("10");
vEEduAplctVO.setSiteIdCd("10");
vEEduAplctVO.setInstrDiv("10");
List<VEEduSatisfactionExcelVO> list = vEEduMIXService.selectSatisfaction202401ExcelList(vEEduAplctVO);
// 복호화
list = egovCryptoUtil.decryptVEEduSatisfactionExcelVOList(list);
System.out.println("out-list-2");
List<Object> excelData = new ArrayList<>();
excelData.addAll(list);
// 세팅값
String title = "청소년 찾아가는 저작권 교육 강사만족도";
int[] width = {
4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000
}; // 너비
//33개 항목
String[] header = {
"교육일자", "학교명", "강사명", "순번", "질문"
, "매우만족", "만족", "보통", "불만족", "매우불만족"
};
String[] order = {
"EduHopeDt", "ScholInsttNm", "InstrNm", "QestnSn", "QestnCn"
, "VerySatisfied", "Satisfied", "Neither", "DisSatisfied", "VeryDisSatisfied"
};
// 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(excelData , header, order, width, title);
model.addAttribute("locale", Locale.KOREA);
model.addAttribute("workbook", workbook);
model.addAttribute("workbookName", title);
}catch(Exception ep) {
ep.getStackTrace();
}
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView");
modelAndView.addObject(model);
return modelAndView;
}
/**
* 교육설문 삭제 - 청소년, 성인 공통 - 사용자 개인별 만족도 등록자 삭제
*/

View File

@ -6516,6 +6516,451 @@ VALUES
, srt
</select>
<!-- 강사만족도 excel-->
<select id="VEEduMIXDAO.selectSatisfaction202401ExcelList" parameterClass="VEEduAplctVO" resultClass="VEEduSatisfactionExcelVO">
/* VEEduMIXDAO.selectSatisfaction202401ExcelList */
SELECT
AA.*,
NVL(BB.qustnrRsltCnt,0) AS qustnrRsltCnt ,
2
, cc.qestn_sn AS qestnSn
, cc.qestn_ty_code AS qestnTyCode
, cc.qestn_cn AS qestnCn
, cc.verySatisfied
, cc.satisfied
, cc.neither
, cc.dissatisfied
, cc.veryDissatisfied
FROM (
SELECT
a.edu_aplct_ord AS eduAplctOrd ,
TO_CHAR(a.aprvl_pnttm,'YYYY-MM-DD') AS aprvlPnttm ,
a.edu_slct_cd AS eduSlctCd ,
a.edu_slct_area_cd AS eduSlctAreaCd ,
a.schol_instt_nm AS scholInsttNm ,
a.instt_div_cd AS insttDivCd ,
a.instt_nm AS insttNm ,
a.addr AS addr ,
a.strt_oprtn_dt AS strtOprtnDt ,
a.end_oprtn_dt AS endOprtnDt ,
a.chrg_nm AS chrgNm ,
a.schol_div_cd AS scholDivCd ,
a.stndrd_schol_cd AS stndrdScholCd ,
a.edu_trgt AS eduTrgt ,
a.clphone AS clphone ,
a.email AS email ,
a.hope_sbjct AS hopeSbjct,
a.phone AS phone,
a.edu_md AS eduMd,
a.edu_md_cd AS eduMdCd,
b.edu_chasi_ord AS eduChasiOrd ,
b.lrn_tm AS lrnTm ,
b.edu_hope_dt AS eduHopeDt ,
b.instr_cnfrm_cd AS instrCnfrmCd ,
b.strt_tm AS strtTm ,
b.end_tm AS endTm ,
b.trgt AS trgt ,
b.prsnl AS eduPrsnl ,
b.div_cd AS lctrDivCd ,
NVL(b.chasi, 0) AS chasi,
c.sbmt_yn AS sbmtYn ,
d.user_id AS userId ,
d.asgnm_aprvl_cd AS asgnmAprvlCd,
e.instr_nm AS instrNm,
e.phone AS instrPhone,
e.email AS instrEmail,
e.appt_div AS apptDiv,
g.atch_file_id AS atchFileId,
g.APRVL_CD AS acmdtAprvlCd,
d.rmrks AS rmrks,
c.atch_file_id AS rprtAtchFileId,
(select
count(1)
from
ve_edu_rslt_rprt
where 1=1
AND edu_aplct_ord = a.edu_aplct_ord
AND edu_chasi_ord = b.edu_chasi_ord
AND frst_register_id = d.user_id
AND sbmt_yn = 'Y') as cnt
<isEqual property="asgnmAprvlCd" compareValue="30">
,
f.sbmt_yn AS feeSbmtYn,
f.aprvl_cd AS feeAprvlCd,
NVL(TO_NUMBER(IF(f.instr_fee='',0,f.instr_fee)),0)
+ NVL(TO_NUMBER(IF(f.bsns_trip_fee='',0,f.bsns_trip_fee)),0)
+ NVL(TO_NUMBER(IF(f.spare_fee='',0,f.spare_fee)),0)
+ NVL(TO_NUMBER(IF(f.special_work_allow='',0,f.special_work_allow)),0)
+ NVL(TO_NUMBER(IF(f.distance_allow='',0,f.distance_allow)),0)
+ NVL(TO_NUMBER(IF(f.traffic_fee='',0,f.traffic_fee)),0)
- NVL(TO_NUMBER(IF(f.income_tax='',0,f.income_tax)),0)
- NVL(TO_NUMBER(IF(f.local_income_tax='',0,f.local_income_tax)),0)
AS totFee
</isEqual>
, (
SELECT COUNT(1)
FROM ve_new_noti e
WHERE (b.edu_aplct_ord = e.tbl_uniq_ord OR b.edu_chasi_ord = e.tbl_uniq_ord)
AND e.menu_no = #menuNo#
AND e.frst_register_id = #notiUserId#
)
AS notiCnt
, h.oneway_dstnc AS onewayDstnc
,NVL((
SELECT
COUNT(1)
FROM
ve_instr a
INNER JOIN ve_instr_detail e
ON (
a.user_id = e.user_id
AND e.use_yn = 'Y'
AND e.instr_div = '10'
)
INNER JOIN ve_edu_chasi_instr_asgnm_hstry i
ON(
/* 추가 강사 인원은 선정완료(20), 선정제외(30), 강의신청(50) 모두 나와야 한다. */
e.user_id = i.user_id
AND i.hstry_cd in ('20', '30', '50')
/*
AND i.hstry_cd in ('50')
*/
)
WHERE 1=1
AND e.instr_div ='10'
AND b.edu_aplct_ord = i.edu_aplct_ord
AND b.edu_chasi_ord = i.edu_chasi_ord
GROUP BY i.edu_aplct_ord , i.edu_chasi_ord
),0) AS rowNo
, e.rsdne as rsdne
, o.vea_rslt_rprt_ord AS veaRsltRprtOrd
FROM ve_edu_aplct a
, ve_edu_chasi b
LEFT OUTER JOIN ve_edu_rslt_rprt c
ON( b.edu_aplct_ord=c.edu_aplct_ord
AND b.edu_chasi_ord=c.edu_chasi_ord)
LEFT OUTER JOIN ve_edu_chasi_instr_asgnm d
ON( b.edu_aplct_ord=d.edu_aplct_ord
AND b.edu_chasi_ord=d.edu_chasi_ord)
<isNotEmpty property="searchTableJoin">
<isEqual property="searchTableJoin" compareValue="tngrResult">
INNER JOIN ve_instr_detail e
</isEqual>
</isNotEmpty>
<isEmpty property="searchTableJoin">
LEFT OUTER JOIN ve_instr_detail e
</isEmpty>
ON( d.user_id=e.user_id
AND e.instr_div=#instrDiv#
AND e.use_yn='Y'
)
<isEqual property="asgnmAprvlCd" compareValue="30">
LEFT OUTER JOIN ve_instr_fee f
ON( b.edu_aplct_ord = f.edu_aplct_ord
AND b.edu_chasi_ord = f.edu_chasi_ord
)
</isEqual>
/*
LEFT OUTER JOIN ve_acmdt_aplct g
*/
LEFT OUTER JOIN (
SELECT B00.*
FROM (
SELECT edu_aplct_ord, edu_chasi_ord, MAX(acmdt_aplct_ord) acmdt_aplct_ord
FROM ve_acmdt_aplct
GROUP BY edu_aplct_ord, edu_chasi_ord
)A00
, ve_acmdt_aplct B00
WHERE 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 d.user_id = h.user_id
LEFT OUTER JOIN vea_rslt_rprt o
ON b.edu_aplct_ord = o.edu_aplct_ord
WHERE 1=1
AND a.edu_aplct_ord=b.edu_aplct_ord
AND NVL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
<isNotEmpty property="lctrDivCd">
AND a.LCTR_DIV_CD = #lctrDivCd#
</isNotEmpty>
<isNotEmpty property="aprvlCd">
AND a.aprvl_cd = #aprvlCd#
</isNotEmpty>
<isNotEmpty property="instrCnfrmCd">
AND b.instr_cnfrm_cd = #instrCnfrmCd#
</isNotEmpty>
<isNotEmpty property="searchInsttDivCd">
AND a.instt_div_cd = #searchInsttDivCd#
</isNotEmpty>
<isNotEmpty property="searchEduSlctCd">
AND a.edu_slct_cd = #searchEduSlctCd#
</isNotEmpty>
<isNotEmpty property="feeSbmtYn">
AND f.sbmt_yn = #feeSbmtYn#
</isNotEmpty>
<isNotEmpty property="selectPagingListQuery">
$selectPagingListQuery$
</isNotEmpty>
<isNotEmpty property="searchAsgnmAprvlCd">
<isEqual property="searchAsgnmAprvlCd" compareValue="90">
AND d.asgnm_aprvl_cd is null
</isEqual>
<isNotEqual property="searchAsgnmAprvlCd" compareValue="90">
AND d.asgnm_aprvl_cd = #searchAsgnmAprvlCd#
</isNotEqual>
</isNotEmpty>
<isNotEmpty property="searchStartDt">
/*
AND b.EDU_HOPE_DT <![CDATA[ >= ]]> REPLACE(searchStartDt, '.' , '')
*/
AND b.EDU_HOPE_DT <![CDATA[ >= ]]> #searchStartDt#
</isNotEmpty>
<isNotEmpty property="searchEndDt">
/*
AND b.EDU_HOPE_DT <![CDATA[ <= ]]> REPLACE(searchEndDt, '.' , '')
*/
AND b.EDU_HOPE_DT <![CDATA[ <= ]]> #searchEndDt#
</isNotEmpty>
<isEmpty property="searchStartDt">
<isEmpty property="searchEndDt">
AND 1=1
</isEmpty>
</isEmpty>
) AA
,
(
SELECT b0.EDU_APLCT_ORD
, b0.EDU_CHASI_ORD
, count(*) qustnrRsltCnt
FROM LETTNQESTNRRSLTDETAIL b0
GROUP BY b0.EDU_APLCT_ORD
, b0.EDU_CHASI_ORD
)bb
,(
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
, e.QESTNR_RESPONDENT_COUNT AS qestnrParticipant
, e.QESTNR_PARTICIPANT_COUNT AS qestnrRespondent
, d.QUSTNR_RESPOND_ID AS qestnrRespondId
, g.qestn_sn
, g.qestn_ty_code
, g.qestn_cn
, c.EDU_APLCT_ORD
, c.EDU_CHASI_ORD
FROM LETTNQESTNRINFO a
, LETTNQUSTNRQESITM b
LEFT OUTER join LETTNQESTNRRSLTDetail 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 (
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
)
, LETTNQUSTNRQESITM G
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
AND b.QUSTNR_QESITM_ID = g.QUSTNR_QESITM_ID
)cc
WHERE 1=1
AND aa.eduAplctOrd = bb.edu_aplct_ord
AND aa.eduChasiOrd = bb.edu_chasi_ord
AND aa.eduAplctOrd = cc.edu_aplct_ord
AND aa.eduChasiOrd = cc.edu_chasi_ord
<isNotEmpty property="checkListQuery">
$checkListQuery$
</isNotEmpty>
<isNotEmpty property="selectRsdneQuery">
$selectRsdneQuery$
</isNotEmpty>
<isEqual property="searchSubmitYn" compareValue="Y">
AND AA.CNT <![CDATA[ >= ]]> 1
</isEqual>
<isEqual property="searchSubmitYn" compareValue="N">
AND AA.CNT = 0
</isEqual>
<isNotEmpty property="searchScholDivCd">
AND AA.scholDivCd = #searchScholDivCd#
</isNotEmpty>
<isNotEmpty property="searchEduSlctAreaCd">
AND (
(
AA.eduSlctAreaCd = #searchEduSlctAreaCd#
AND AA.eduSlctCd = '20'
)
OR
(
'400' = #searchEduSlctAreaCd#
AND AA.eduSlctCd = '10'
)
)
</isNotEmpty>
<isNotEmpty property="searchScholNm">
AND AA.scholInsttNm LIKE '%' || #searchScholNm# || '%'
</isNotEmpty>
<isNotEmpty property="searchInsttNm">
AND AA.insttNm LIKE '%' || #searchInsttNm# || '%'
</isNotEmpty>
<isNotEmpty property="searchInstrNm">
AND AA.instrNm LIKE '%' || #searchInstrNm# || '%'
</isNotEmpty>
<isEmpty property="searchCondition">
<isNotEmpty property="searchKeyword">
AND (
A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# || '%' OR
A.INSTT_NM LIKE '%' || #searchKeyword# || '%'
)
</isNotEmpty>
</isEmpty>
<isNotEmpty property="searchKeyword">
<isEqual property="searchCondition" compareValue="0">
AND (AA.scholInsttNm LIKE '%' || #searchKeyword# || '%' OR AA.instrNm LIKE '%' || #instrNm# || '%')
</isEqual>
<isEqual property="searchCondition" compareValue="1">
AND AA.scholInsttNm LIKE '%' || #searchKeyword# || '%'
</isEqual>
<isEqual property="searchCondition" compareValue="2">
AND AA.instrNm LIKE '%' || #instrNm# || '%'
</isEqual>
<isEqual property="searchCondition" compareValue="3">
AND (AA.insttNm LIKE '%' || #searchKeyword# || '%' OR AA.instrNm LIKE '%' || #searchKeyword# || '%')
</isEqual>
<isEqual property="searchCondition" compareValue="4">
AND AA.insttNm LIKE '%' || #searchKeyword# || '%'
</isEqual>
</isNotEmpty>
ORDER BY 1
<isEmpty property="orderByQuery">
, eduhopedt
, scholinsttnm
, cc.edu_chasi_ord
, cc.qestnSn
</isEmpty>
<isNotEmpty property="orderByQuery">
, $orderByQuery$
</isNotEmpty>
</select>
<insert id="VEEduMIXDAO.updateRsltRprtFileIdNull" parameterClass="VEEduAplctVO">

View File

@ -213,8 +213,8 @@
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 = d.EDU_APLCT_ORD
AND d.EDU_CHASI_ORD = d.EDU_CHASI_ORD
AND d.EDU_APLCT_ORD = e.EDU_APLCT_ORD
AND d.EDU_CHASI_ORD = e.EDU_CHASI_ORD
)
LEFT OUTER JOIN (

View File

@ -279,6 +279,12 @@
listForm.submit();
}
function fncSatisfaction202401ExcelDownLoad(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/tngrVisitEdu/eduRsltSatisfaction202401ExcelDownLoad.do'/>";
listForm.submit();
}
//숙박영수증 첨부파일 일괄 다운로드(zip) - 파일ID 다름, SN 동일 : type A
function fnAcmdtFileZipDownload(){
var frm = document.listForm;
@ -546,7 +552,7 @@
<div class="btn_wrap btn_layout01">
<div class="btn_left">
<button type="button" class="btn_type06" onclick="fncSatisfactionExcelDownLoad();return false;">강사만족도다운로드</button>
<button type="button" class="btn_type06" onclick="fncSatisfaction202401ExcelDownLoad();return false;">강사만족도다운로드</button>
(*교육일자 조건만 지원)
</div>