[관리자] 성인 > 교육배치관리 > 엑셀다운로드

This commit is contained in:
hylee 2023-12-28 15:57:04 +09:00
parent d3c4e7864a
commit a456041cfd
8 changed files with 461 additions and 44 deletions

View File

@ -195,6 +195,17 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
private String docuNmbr; private String docuNmbr;
private String docuNmbrDp; private String docuNmbrDp;
private String yNowEduCnt;
private String yNowMoneEduCnt;
private String yNowMtwoEduCnt;
private String yNowMthreeEduCnt;
private String yNowMfourEduCnt;
private String yNowStsfc;
private String yNowMoneStsfc;
private String yNowMtwoStsfc;
private String yNowMthreeStsfc;
private String yNowMfourStsfc;
public String getDesc1() { public String getDesc1() {
return desc1; return desc1;
@ -972,5 +983,65 @@ public class VEInstrDetailVO extends ComDefaultVO implements Serializable {
public void setDocuNmbrDp(String docuNmbrDp) { public void setDocuNmbrDp(String docuNmbrDp) {
this.docuNmbrDp = docuNmbrDp; this.docuNmbrDp = docuNmbrDp;
} }
public String getyNowEduCnt() {
return yNowEduCnt;
}
public void setyNowEduCnt(String yNowEduCnt) {
this.yNowEduCnt = yNowEduCnt;
}
public String getyNowMoneEduCnt() {
return yNowMoneEduCnt;
}
public void setyNowMoneEduCnt(String yNowMoneEduCnt) {
this.yNowMoneEduCnt = yNowMoneEduCnt;
}
public String getyNowMtwoEduCnt() {
return yNowMtwoEduCnt;
}
public void setyNowMtwoEduCnt(String yNowMtwoEduCnt) {
this.yNowMtwoEduCnt = yNowMtwoEduCnt;
}
public String getyNowMthreeEduCnt() {
return yNowMthreeEduCnt;
}
public void setyNowMthreeEduCnt(String yNowMthreeEduCnt) {
this.yNowMthreeEduCnt = yNowMthreeEduCnt;
}
public String getyNowMfourEduCnt() {
return yNowMfourEduCnt;
}
public void setyNowMfourEduCnt(String yNowMfourEduCnt) {
this.yNowMfourEduCnt = yNowMfourEduCnt;
}
public String getyNowStsfc() {
return yNowStsfc;
}
public void setyNowStsfc(String yNowStsfc) {
this.yNowStsfc = yNowStsfc;
}
public String getyNowMoneStsfc() {
return yNowMoneStsfc;
}
public void setyNowMoneStsfc(String yNowMoneStsfc) {
this.yNowMoneStsfc = yNowMoneStsfc;
}
public String getyNowMtwoStsfc() {
return yNowMtwoStsfc;
}
public void setyNowMtwoStsfc(String yNowMtwoStsfc) {
this.yNowMtwoStsfc = yNowMtwoStsfc;
}
public String getyNowMthreeStsfc() {
return yNowMthreeStsfc;
}
public void setyNowMthreeStsfc(String yNowMthreeStsfc) {
this.yNowMthreeStsfc = yNowMthreeStsfc;
}
public String getyNowMfourStsfc() {
return yNowMfourStsfc;
}
public void setyNowMfourStsfc(String yNowMfourStsfc) {
this.yNowMfourStsfc = yNowMfourStsfc;
}
} }

View File

@ -0,0 +1,153 @@
package kcc.ve.instr.tngrVisitEdu.instrInfo.service;
import java.io.Serializable;
import kcc.com.cmm.ComDefaultVO;
public class VEInstrExcelVO extends ComDefaultVO implements Serializable {
/*
* 강사테이블
* */
private static final long serialVersionUID = 1L;
private String instrNm;
private String apptYr;
private String DBirth;
private String blng;
private String pstn;
private String phone;
private String email;
private String prfsnFld;
private String addr;
private String YNowEduCnt;
private String YNowMoneEduCnt;
private String YNowMtwoEduCnt;
private String YNowMthreeEduCnt;
private String YNowMfourEduCnt;
private String YNowStsfc;
private String YNowMoneStsfc;
private String YNowMtwoStsfc;
private String YNowMthreeStsfc;
private String YNowMfourStsfc;
public String getInstrNm() {
return instrNm;
}
public void setInstrNm(String instrNm) {
this.instrNm = instrNm;
}
public String getApptYr() {
return apptYr;
}
public void setApptYr(String apptYr) {
this.apptYr = apptYr;
}
public String getBlng() {
return blng;
}
public void setBlng(String blng) {
this.blng = blng;
}
public String getPstn() {
return pstn;
}
public void setPstn(String pstn) {
this.pstn = pstn;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPrfsnFld() {
return prfsnFld;
}
public void setPrfsnFld(String prfsnFld) {
this.prfsnFld = prfsnFld;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getDBirth() {
return DBirth;
}
public void setDBirth(String dBirth) {
DBirth = dBirth;
}
public String getYNowEduCnt() {
return YNowEduCnt;
}
public void setYNowEduCnt(String yNowEduCnt) {
YNowEduCnt = yNowEduCnt;
}
public String getYNowMoneEduCnt() {
return YNowMoneEduCnt;
}
public void setYNowMoneEduCnt(String yNowMoneEduCnt) {
YNowMoneEduCnt = yNowMoneEduCnt;
}
public String getYNowMtwoEduCnt() {
return YNowMtwoEduCnt;
}
public void setYNowMtwoEduCnt(String yNowMtwoEduCnt) {
YNowMtwoEduCnt = yNowMtwoEduCnt;
}
public String getYNowMthreeEduCnt() {
return YNowMthreeEduCnt;
}
public void setYNowMthreeEduCnt(String yNowMthreeEduCnt) {
YNowMthreeEduCnt = yNowMthreeEduCnt;
}
public String getYNowMfourEduCnt() {
return YNowMfourEduCnt;
}
public void setYNowMfourEduCnt(String yNowMfourEduCnt) {
YNowMfourEduCnt = yNowMfourEduCnt;
}
public String getYNowStsfc() {
return YNowStsfc;
}
public void setYNowStsfc(String yNowStsfc) {
YNowStsfc = yNowStsfc;
}
public String getYNowMoneStsfc() {
return YNowMoneStsfc;
}
public void setYNowMoneStsfc(String yNowMoneStsfc) {
YNowMoneStsfc = yNowMoneStsfc;
}
public String getYNowMtwoStsfc() {
return YNowMtwoStsfc;
}
public void setYNowMtwoStsfc(String yNowMtwoStsfc) {
YNowMtwoStsfc = yNowMtwoStsfc;
}
public String getYNowMthreeStsfc() {
return YNowMthreeStsfc;
}
public void setYNowMthreeStsfc(String yNowMthreeStsfc) {
YNowMthreeStsfc = yNowMthreeStsfc;
}
public String getYNowMfourStsfc() {
return YNowMfourStsfc;
}
public void setYNowMfourStsfc(String yNowMfourStsfc) {
YNowMfourStsfc = yNowMfourStsfc;
}
}

View File

@ -111,4 +111,6 @@ public interface VEInstrMixService {
int updateInstrDetailSbmtY(VEInstrDetailVO vEInstrDetailVO) throws Exception; int updateInstrDetailSbmtY(VEInstrDetailVO vEInstrDetailVO) throws Exception;
List<VEInstrDetailVO> selectWhereInDetailReport(VEInstrDetailVO vEInstrDetailVO); List<VEInstrDetailVO> selectWhereInDetailReport(VEInstrDetailVO vEInstrDetailVO);
List<VEInstrDetailVO> selectInstrExcelList(VEInstrDetailVO vEInstrDetailVO);
} }

View File

@ -240,4 +240,9 @@ public class VEInstrMixDAO extends EgovAbstractDAO {
List<VEInstrDetailVO> tlist = (List<VEInstrDetailVO>) list("VEInstrMixDAO.selectWhereInDetailReport", vEInstrDetailVO); List<VEInstrDetailVO> tlist = (List<VEInstrDetailVO>) list("VEInstrMixDAO.selectWhereInDetailReport", vEInstrDetailVO);
return tlist; return tlist;
} }
public List<VEInstrDetailVO> selectInstrExcelList(VEInstrDetailVO vEInstrDetailVO) {
List<VEInstrDetailVO> tlist = (List<VEInstrDetailVO>) list("VEInstrMixDAO.selectInstrExcelList", vEInstrDetailVO);
return tlist;
}
} }

View File

@ -191,4 +191,9 @@ public class VEInstrMixServiceImpl implements VEInstrMixService {
public List<VEInstrDetailVO> selectWhereInDetailReport(VEInstrDetailVO vEInstrDetailVO) { public List<VEInstrDetailVO> selectWhereInDetailReport(VEInstrDetailVO vEInstrDetailVO) {
return vEInstrMixDAO.selectWhereInDetailReport(vEInstrDetailVO); return vEInstrMixDAO.selectWhereInDetailReport(vEInstrDetailVO);
} }
@Override
public List<VEInstrDetailVO> selectInstrExcelList(VEInstrDetailVO vEInstrDetailVO) {
return vEInstrMixDAO.selectInstrExcelList(vEInstrDetailVO);
}
} }

View File

@ -1,6 +1,7 @@
package kcc.ve.oprtn.instr.adultVisitEdu.instrInfo.web; package kcc.ve.oprtn.instr.adultVisitEdu.instrInfo.web;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.Year;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -51,6 +52,7 @@ import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoService;
import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoVO; import kcc.ve.aplct.cpyrgExprnClsrm.exprnClsrmAplct.service.ScholInfoVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrExcelVO;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService;
import kcc.ve.instr.tngrVisitEdu.instrInfo.web.InstrPrflController; import kcc.ve.instr.tngrVisitEdu.instrInfo.web.InstrPrflController;
@ -1087,66 +1089,112 @@ public class OprtnInstrAdultPrflContoller {
@ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO
, ModelMap model) throws Exception { , ModelMap model) throws Exception {
vEInstrDetailVO.setRecordCountPerPage(10000000); System.out.println("userIdList :: "+ vEInstrDetailVO.getUserIdList().toString());
// vEInstrDetailVO.setRecordCountPerPage(10000000);
//
// //1.pageing step1
// PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO);
//
//
// //2. pageing step2
// vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo);
//
// //3. SelectPagingListQuery set 조건 설정
// String selectCondition = new String();
// //3.1 제출 완료 사용중인 데이터 조회
// //selectCondition += "AND a.sbmt_yn='Y' AND a.use_yn = 'Y'";
// selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'";
// //3.2 강사 테이블 성인강사여부 Y인것만 조회
// //selectCondition += "AND (b.adult_instr_yn ='Y' OR a.qlfct_end_yn = 'Y') ";
// selectCondition += "AND (b0.adult_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') ";
// //3.3 이름 검색
// if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){
// //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
// //이름 암호화 - comDefaultVO 검색단어 공통 암호화
// ComDefaultVO comDefaultVO = new ComDefaultVO();
// comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword());
// comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO);
// vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
// //selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
// selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'";
// comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO);
// vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
// }
// //3.4 요청일 시작일 검색
// if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){
// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')";
// }
// //3.5 요청일 종료일 검색
// if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){
// selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')";
// }
// vEInstrDetailVO.setSelectPagingListQuery(selectCondition);
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEInstrDetailVO);
vEInstrDetailVO.setInstrDiv("20");
List<VEInstrDetailVO> vEInstrDetailVOList = vEInstrMixService.selectInstrExcelList(vEInstrDetailVO);
//2. pageing step2 // List<VEInstrDetailVO> vEInstrDetailsVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO);
vEInstrDetailVO = this.setPagingStep2(vEInstrDetailVO, paginationInfo);
//3. SelectPagingListQuery set 조건 설정
String selectCondition = new String();
//3.1 제출 완료 사용중인 데이터 조회
//selectCondition += "AND a.sbmt_yn='Y' AND a.use_yn = 'Y'";
selectCondition += "AND a0.sbmt_yn='Y' AND a0.use_yn = 'Y'";
//3.2 강사 테이블 성인강사여부 Y인것만 조회
//selectCondition += "AND (b.adult_instr_yn ='Y' OR a.qlfct_end_yn = 'Y') ";
selectCondition += "AND (b0.adult_instr_yn ='Y' OR a0.qlfct_end_yn = 'Y') ";
//3.3 이름 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchKeyword())){
//selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
//이름 암호화 - comDefaultVO 검색단어 공통 암호화
ComDefaultVO comDefaultVO = new ComDefaultVO();
comDefaultVO.setSearchKeyword(vEInstrDetailVO.getSearchKeyword());
comDefaultVO = egovCryptoUtil.encryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
//selectCondition += "AND a.instr_nm LIKE CONCAT ('%', '" +vEInstrDetailVO.getSearchKeyword() + "', '%')";
selectCondition += "AND a0.instr_nm LIKE '%'||'" +vEInstrDetailVO.getSearchKeyword() + "'||'%'";
comDefaultVO = egovCryptoUtil.decryptComDefaultVO(comDefaultVO);
vEInstrDetailVO.setSearchKeyword(comDefaultVO.getSearchKeyword());
}
//3.4 요청일 시작일 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchStartDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') >= REPLACE('"+vEInstrDetailVO.getSearchStartDt()+"', '.', '')";
}
//3.5 요청일 종료일 검색
if(StringUtil.isNotEmpty(vEInstrDetailVO.getSearchEndDt())){
selectCondition += "AND TO_CHAR(a.sbmt_pnttm, 'YYYYMMDD') <= REPLACE('"+vEInstrDetailVO.getSearchEndDt()+"', '.', '')";
}
vEInstrDetailVO.setInstrDiv("20");
vEInstrDetailVO.setSelectPagingListQuery(selectCondition);
List<VEInstrDetailVO> vEInstrDetailVOList = vEInstrMixService.selectPagingDetailList(vEInstrDetailVO);
vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList); vEInstrDetailVOList = egovCryptoUtil.decryptVEInstrDetailVOList(vEInstrDetailVOList);
List<VEInstrExcelVO> vEInstrExcelVOList = new ArrayList<>();
for(VEInstrDetailVO aa : vEInstrDetailVOList) {
VEInstrExcelVO vEInstrExcelVO = new VEInstrExcelVO();
vEInstrExcelVO.setInstrNm( aa.getInstrNm());
vEInstrExcelVO.setApptYr( aa.getApptYr());
vEInstrExcelVO.setDBirth( aa.getdBirth());
vEInstrExcelVO.setBlng( aa.getBlng());
vEInstrExcelVO.setPstn( aa.getPstn());
vEInstrExcelVO.setPhone( aa.getPhone());
vEInstrExcelVO.setEmail( aa.getEmail());
vEInstrExcelVO.setPrfsnFld( aa.getPrfsnFld());
vEInstrExcelVO.setAddr( aa.getAddr());
vEInstrExcelVO.setYNowEduCnt( aa.getyNowEduCnt());
vEInstrExcelVO.setYNowMoneEduCnt( aa.getyNowMoneEduCnt());
vEInstrExcelVO.setYNowMtwoEduCnt( aa.getyNowMtwoEduCnt());
vEInstrExcelVO.setYNowMthreeEduCnt( aa.getyNowMthreeEduCnt());
vEInstrExcelVO.setYNowMfourEduCnt( aa.getyNowMfourEduCnt());
vEInstrExcelVO.setYNowStsfc( aa.getyNowStsfc());
vEInstrExcelVO.setYNowMoneStsfc( aa.getyNowMoneStsfc());
vEInstrExcelVO.setYNowMtwoStsfc( aa.getyNowMtwoStsfc());
vEInstrExcelVO.setYNowMthreeStsfc( aa.getyNowMthreeStsfc());
vEInstrExcelVO.setYNowMfourStsfc( aa.getyNowMfourStsfc());
vEInstrExcelVOList.add(vEInstrExcelVO);
}
List<Object> excelData = new ArrayList<>(); List<Object> excelData = new ArrayList<>();
excelData.addAll(vEInstrDetailVOList); excelData.addAll(vEInstrExcelVOList);
// 세팅값 // 세팅값
String title = "성인 찾아가는 저작권 교육 - 강사 목록"; String title = "성인 찾아가는 저작권 교육 - 강사 목록";
int[] width = { int[] width = {
4000, 4000, 4000, 4000, 4000 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000
, 4000, 4000, 4000, 4000, 4000
}; // 너비 }; // 너비
// 현재년도
int currentYear = Year.now().getValue();
String[] header = { String[] header = {
"강사명", "거주지", "휴대전화", "이메일", "주소" "강사명", "위촉년도", "생년월일", "소속", "직함"
,"연락처", "이메일", "전문분야", "주소"
, "교육횟수("+currentYear+")", "교육횟수("+(currentYear-1)+")", "교육횟수("+(currentYear-2)+")", "교육횟수("+(currentYear-3)+")", "교육횟수("+(currentYear-4)+")"
, "교육만족도("+currentYear+")", "교육만족도("+(currentYear-1)+")", "교육만족도("+(currentYear-2)+")", "교육만족도("+(currentYear-3)+")", "교육만족도("+(currentYear-4)+")"
}; };
String[] order = { String[] order = {
"InstrNm", "Rsdne", "Phone", "Email", "Addr" "InstrNm", "ApptYr", "DBirth", "Blng", "Pstn"
, "Phone", "Email", "PrfsnFld", "Addr"
, "YNowEduCnt", "YNowMoneEduCnt", "YNowMtwoEduCnt", "YNowMthreeEduCnt", "YNowMfourEduCnt"
, "YNowStsfc", "YNowMoneStsfc", "YNowMtwoStsfc", "YNowMthreeStsfc", "YNowMfourStsfc"
}; };
// 호출 // 호출
@ -1160,6 +1208,7 @@ public class OprtnInstrAdultPrflContoller {
modelAndView.addObject(model); modelAndView.addObject(model);
return modelAndView; return modelAndView;
} }

View File

@ -1076,6 +1076,122 @@
</select> </select>
<select id="VEInstrMixDAO.selectInstrExcelList" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
/*VEInstrMixDAO.selectInstrExcelList*/
SELECT
vid.USER_ID as userId /*강사ID*/
, vid.INSTR_NM as instrNm /*강사명*/
, vid.APPT_YR as apptYr /*위촉년도*/
, vid.D_BIRTH as dBirth /*생년월일*/
, vid.BLNG as blng /*소속*/
, vid.PSTN as pstn /*직함*/
, vid.PHONE as phone /*연락처*/
, vid.EMAIL as email /*이메일*/
, vid.PRFSN_FLD as prfsnFld /*분야*/
, CASE
WHEN vid.POST IS NOT NULL THEN '(' || vid.POST || ')'
ELSE ''
END || vid.ADDR || ' ' || vid.ADDR_DETAIL AS addr /* 주소 */
, aaa.yNowEduCnt
, aaa.yNowMoneEduCnt
, aaa.yNowMtwoEduCnt
, aaa.yNowMthreeEduCnt
, aaa.yNowMfourEduCnt
, ddd.yNowStsfc
, ddd.yNowMoneStsfc
, ddd.yNowMtwoStsfc
, ddd.yNowMthreeStsfc
, ddd.yNowMfourStsfc
FROM
ve_instr_detail vid
LEFT JOIN (
SELECT aa.cc
, sum(decode(aa.bb,to_char(sysdate,'YYYY'),aa.aa,0)) AS yNowEduCnt
, sum(decode(aa.bb,to_char(sysdate,'YYYY')-1,aa.aa,0)) AS yNowMoneEduCnt
, sum(decode(aa.bb,to_char(sysdate,'YYYY')-2,aa.aa,0)) AS yNowMtwoEduCnt
, sum(decode(aa.bb,to_char(sysdate,'YYYY')-3,aa.aa,0)) AS yNowMthreeEduCnt
, sum(decode(aa.bb,to_char(sysdate,'YYYY')-4,aa.aa,0)) AS yNowMfourEduCnt
FROM (
SELECT
COUNT(EC.edu_chasi_ord) AS AA
, SUBSTRING(EC.EDU_HOPE_DT, 0, 4) AS bb
, ECI.USER_ID AS cc
FROM
ve_edu_chasi EC
JOIN
ve_edu_chasi_instr_asgnm ECI
ON
EC.edu_chasi_ord = ECI.edu_chasi_ord
AND EC.EDU_APLCT_ORD = ECI.EDU_APLCT_ORD
WHERE
1=1
GROUP BY
SUBSTRING(EC.EDU_HOPE_DT, 0, 4)
,
ECI.USER_ID
)aa
GROUP BY aa.cc
) aaa
ON aaa.cc = vid.USER_ID
LEFT JOIN (
SELECT
COUNT(*)
, ccc.userId
, TRUNC(sum(decode(ccc.eduHopeDt, to_char(sysdate, 'YYYY'), ccc.ave, 0))/ COUNT(*), 1) AS yNowStsfc
, TRUNC(sum(decode(ccc.eduHopeDt,to_char(sysdate,'YYYY')-1,ccc.ave,0))/COUNT(*), 1) AS yNowMoneStsfc
, TRUNC(sum(decode(ccc.eduHopeDt,to_char(sysdate,'YYYY')-2,ccc.ave,0))/COUNT(*), 1) AS yNowMtwoStsfc
, TRUNC(sum(decode(ccc.eduHopeDt,to_char(sysdate,'YYYY')-3,ccc.ave,0))/COUNT(*), 1) AS yNowMthreeStsfc
, TRUNC(sum(decode(ccc.eduHopeDt,to_char(sysdate,'YYYY')-4,ccc.ave,0))/COUNT(*), 1) AS yNowMfourStsfc
FROM
(
SELECT
count(*)
, aa.EDU_CHASI_ORD
, aa.EDU_APLCT_ORD
, ECI.USER_ID AS userId
, SUBSTRING(CA.EDU_HOPE_DT, 0, 4) AS eduHopeDt
, (SUM(aa.VERY_SATISFIED) * 100 + SUM(aa.SATISFIED) * 80 + SUM(aa.NEITHER) * 60 + SUM(aa.DISSATISFIED) * 40 + SUM(aa.VERY_DISSATISFIED) * 20)
/ (SUM(aa.VERY_SATISFIED) + SUM(aa.SATISFIED) + SUM(aa.NEITHER) + SUM(aa.DISSATISFIED) + SUM(aa.VERY_DISSATISFIED)) AS ave
from
lettnqestnrrsltDetail aa
JOIN
ve_edu_chasi_instr_asgnm ECI
ON aa.EDU_CHASI_ORD =ECI.EDU_CHASI_ORD
AND aa.EDU_APLCT_ORD =ECI.EDU_APLCT_ORD
JOIN
VE_EDU_CHASI CA
ON aa.EDU_CHASI_ORD =CA.EDU_CHASI_ORD
AND aa.EDU_APLCT_ORD =CA.EDU_APLCT_ORD
GROUP BY
ECI.USER_ID
, aa.EDU_CHASI_ORD
, aa.EDU_APLCT_ORD
, SUBSTRING(CA.EDU_HOPE_DT, 0, 4)
) ccc
GROUP BY ccc.userId
) ddd
ON ddd.userId = vid.USER_ID
WHERE vid.USE_YN ='Y'
and vid.INSTR_DIV =#instrDiv#
AND vid.USER_ID IN
<iterate property="userIdList" open="(" close=")" conjunction=",">
#userIdList[]#
</iterate>
</select>
<!-- 강사 디테일 정보 L page --> <!-- 강사 디테일 정보 L page -->
<select id="VEInstrMixDAO.selectPagingDetailList4Asgnm" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO"> <select id="VEInstrMixDAO.selectPagingDetailList4Asgnm" parameterClass="VEInstrDetailVO" resultClass="VEInstrDetailVO">
/* VEInstrMixDAO.selectPagingDetailList4Asgnm 현재 강사들의 일별 가능 수 파악 */ /* VEInstrMixDAO.selectPagingDetailList4Asgnm 현재 강사들의 일별 가능 수 파악 */

View File

@ -100,7 +100,22 @@
} }
function excelDownLoad(){ function excelDownLoad(){
var listForm = document.listForm ;
var userIdList = [];
// "chk" 이름을 가진 체크박스가 체크된 항목들을 순회
$("input[name='chk']:checked").each(function() {
var eduAplctOrdValue = $(this).val();
userIdList.push(eduAplctOrdValue);
});
if (userIdList.length === 0) {
alert("선택된 항목이 없습니다. 선택 후 다시 시도하세요.");
return false;
}
listForm.userIdList.value=userIdList;
listForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/eduAplctExcelDownLoad.do'/>"; listForm.action = "<c:url value='/ve/oprtn/instr/adultVisitEdu/instrInfo/eduAplctExcelDownLoad.do'/>";
listForm.submit(); listForm.submit();
} }
@ -123,6 +138,7 @@
<input type="hidden" name="instrDiv" value="" /> <input type="hidden" name="instrDiv" value="" />
<input type="hidden" name="instrDetailOrd" value="" /> <input type="hidden" name="instrDetailOrd" value="" />
<input type="hidden" name="rqstCnt" value="" /> <input type="hidden" name="rqstCnt" value="" />
<input type="hidden" name="userIdList" value="" />
<%-- <input type="hidden" name="rsdne" value="<c:out value='${vEInstrDetailVO.rsdne}'/>" /> --%> <%-- <input type="hidden" name="rsdne" value="<c:out value='${vEInstrDetailVO.rsdne}'/>" /> --%>
<div class="cont_wrap"> <div class="cont_wrap">