This commit is contained in:
myname 2025-11-07 11:25:30 +09:00
commit 986b400838
12 changed files with 336 additions and 175 deletions

View File

@ -134,4 +134,6 @@ public interface VEEduMIXService {
List<VEEduAplctVO> selectExprnRsltFileDownList(VEEduAplctVO paramVO) throws Exception; List<VEEduAplctVO> selectExprnRsltFileDownList(VEEduAplctVO paramVO) throws Exception;
void updateCnclStatus(VEEduAplctVO vEEduAplctVO); void updateCnclStatus(VEEduAplctVO vEEduAplctVO);
List<VEEduAplctVO> selectCrtfcMngList( VEEduAplctVO paramVO );
} }

View File

@ -322,4 +322,8 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectExprnRsltFileDownList", paramVO); List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectExprnRsltFileDownList", paramVO);
return tlist; return tlist;
} }
public List<VEEduAplctVO> selectCrtfcMngList(VEEduAplctVO paramVO) {
return (List<VEEduAplctVO>) list("VEEduMIXDAO.selectCrtfcMngList", paramVO);
}
} }

View File

@ -293,4 +293,9 @@ public class VEEduMIXServiceImpl implements VEEduMIXService {
vEEduMIXDAO.updateCnclStatus(paramVO); vEEduMIXDAO.updateCnclStatus(paramVO);
} }
@Override
public List<VEEduAplctVO> selectCrtfcMngList( VEEduAplctVO paramVO ) {
return vEEduMIXDAO.selectCrtfcMngList(paramVO);
}
} }

View File

@ -8,6 +8,9 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import kcc.com.cmm.LoginVO;
import kcc.let.uat.uia.service.SsoLoginVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -665,23 +668,23 @@ public class CndtnInstrMngController {
*/ */
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.do") @RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/instrActvtHstrySignAndCmpltCrtfcMngList.do")
public String instrActvtHstrySignAndCmpltCrtfcMngList( public String instrActvtHstrySignAndCmpltCrtfcMngList(
@ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO @ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model , ModelMap model
, HttpServletRequest request , HttpServletRequest request
) throws Exception { ) throws Exception {
//로그인 처리==================================== //로그인 처리====================================
//로그인 정보 가져오기 //로그인 정보 가져오기
//LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
//SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
// if (loginVO == null || ssoLoginVO == null) { if (loginVO == null || ssoLoginVO == null) {
// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다.
// } }
//로그인 처리==================================== //로그인 처리====================================
//1.pageing step1 //1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO); /*PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO);
//2. pageing step2 //2. pageing step2
vEInstrDetailActvtHstryVO = this.setPagingStep2_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO, paginationInfo); vEInstrDetailActvtHstryVO = this.setPagingStep2_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO, paginationInfo);
vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword()));
@ -697,8 +700,54 @@ public class CndtnInstrMngController {
// 검색어 복호화 // 검색어 복호화
vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword()));
//대상 리스트, 페이징 정보 전달 //대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEInstrDetailActvtHstryVOList); model.addAttribute("list", vEInstrDetailActvtHstryVOList);*/
VEEduAplctVO paramVO = new VEEduAplctVO();
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(paramVO.getPageIndex());
paginationInfo.setRecordCountPerPage(paramVO.getPageUnit());
paginationInfo.setPageSize(paramVO.getPageSize());
paramVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
paramVO.setLastIndex(paginationInfo.getLastRecordIndex());
paramVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
if("".equals(paramVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
paramVO.setSearchSortCnd("a.frst_regist_pnttm");
paramVO.setSearchSortOrd("ASC");
}
//과정 신청자 정보 가져오기
//해당 과정을 제출한 사용자 정보를 가져온다.
paramVO.setSbmtYn("Y");
// 검색 - 날짜
paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt());
paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt());
// 검색 - 검색어
paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus());
paramVO.setSearchSelStatus(vEPrcsDetailVO.getSearchSelStatus());
if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) {
String searchQuery = "AND vsit.edu_state_cd = '"+vEPrcsDetailVO.getSearchStatus()+"' ";
paramVO.setSearchQuery(searchQuery);
}
paramVO.setLctrDivCd(LCTR_DIV_CD); //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectCrtfcMngList(paramVO);
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
int totCnt = 0;
if(vEPrcsDetailVOList.size() > 0) totCnt = vEPrcsDetailVOList.get(0).getTotCnt();
paginationInfo.setTotalRecordCount(totCnt);
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEPrcsDetailVOList);
model.addAttribute("paginationInfo", paginationInfo);
// return "oprtn/cmm/instrActvtHstrySignMngList"; // return "oprtn/cmm/instrActvtHstrySignMngList";

View File

@ -10523,4 +10523,154 @@ VALUES
</iterate> </iterate>
</select> </select>
<select id="VEEduMIXDAO.selectCrtfcMngList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
SELECT
ROW_NUMBER() OVER ( ORDER BY a.frst_regist_pnttm ASC) AS rowNo
, count(*) over () AS totCnt
, vpap.TITLE AS title
, vsit.CMPTNT_ATHRT AS cmptntAthrt
, vsit.VNT_YEAR AS vntYear
, vsit.VNT_NMBR AS vntNmbr
, vsit.PRSCTR_NM AS prsctrNm
, vsit.req_nmbr AS reqNmbr
, CASE WHEN vsit.sex = 'M' THEN '남성' WHEN vsit.sex = 'F' THEN '여성' ELSE '' END trgtSex
, qe.QESTNR_ID AS qestnrId
, /* 설문했으면 ID가 있음 */ vadi.APLCT_STATE_CD AS aplctStateCd
, /* 이수 상태 */ vadi.CNCL_CN AS cnclCn
, /* 취소사유 */ vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId
, /* 취소요청파일 */ vsit.edu_state_cd AS eduStateCd
, le.MBER_NM AS userNm
, le.MBER_ID AS mberId
, a.edu_aplct_ord AS eduAplctOrd
, a.lctr_div_cd AS lctrDivCd
, a.user_id AS userId
, a.prcs_ord AS prcsOrd
, a.edu_slct_cd AS eduSlctCd
, a.edu_slct_area_cd AS eduSlctAreaCd
, a.schol_instt_nm AS scholInsttNm
, a.schol_div_cd AS scholDivCd
, a.isltn_schol_yn AS isltnScholYn
, a.addr AS addr
, a.addr_detail AS addrDetail
, a.chrg_nm AS chrgNm
, a.d_birth AS dBirth
, a.clphone AS clphone
, a.phone AS phone
, a.email AS email
, a.edu_place AS eduPlace
, a.sbmt_yn AS sbmtYn
, TO_CHAR(a.sbmt_pnttm, 'YYYY-MM-DD') AS sbmtPnttm
, a.aprvl_cd AS aprvlCd
, TO_CHAR(a.aprvl_pnttm, 'YYYY-MM-DD') AS aprvlPnttm
, a.aprvl_cn AS aprvlCn
, a.instt_nm AS insttNm
, a.instt_div_cd AS insttDivCd
, a.hope_sbjct AS hopeSbjct
, a.rqst_cn AS rqstCn
, TO_CHAR(a.frst_regist_pnttm, 'YYYY-MM-DD') AS frstRegistPnttm
, a.frst_register_id AS frstRegisterId
, TO_CHAR(a.last_updt_pnttm, 'YYYY-MM-DD') AS lastUpdtPnttm
, a.last_updusr_id AS lastUpdusrId
, a.schol_seal_atch_file_id AS scholSealAtchFileId
, a.edu_trgt AS eduTrgt
, a.edu_prsnl AS eduPrsnl
, a.edu_cn AS eduCn
, a.strt_oprtn_dt AS strtOprtnDt
, a.end_oprtn_dt AS endOprtnDt
, a.rprt_sbmt_dt AS rprtSbmtDt
, a.trans_atch_file_id AS transAtchFileId
, a.use_yn AS useYn
, a.aplct_cn AS aplctCn
, a.rslt_atch_file_id AS rsltAtchFileId
, vsit.trgt_nm AS trgtNm
, vsit.sspn_idtmt_trgt_ord AS sspnIdtmtTrgtOrd
, vsit.clphone AS vs_clphone
, vsit.d_birth AS dBirth
, CASE
WHEN TO_CHAR(NOW(), 'YYYY.MM.DD') > COALESCE(vpap.edu_ddln_pnttm, vpap.edu_strt_pnttm) THEN 1
ELSE 0 END AS qestRsltExists
, /* 설문지 정보 */ I.qustnr_tmplat_id AS qustnrTmplatId
, COALESCE(qustnr01.QESTNR_ID_10, i.qestnr_id_10) AS qestnrId10
, COALESCE(qustnr01.QESTNR_ID_20, i.qestnr_id_20) AS qestnrId20
, COALESCE(qustnr01.QESTNR_ID_30, i.qestnr_id_30) AS qestnrId30
, /* 답변 정보 */ qustnr01.QESTNR_ID_10_CNT AS qestnrId10Cnt
, qustnr01.QESTNR_ID_20_CNT AS qestnrId20Cnt
, qustnr01.QESTNR_ID_30_CNT AS qestnrId30Cnt
FROM
ve_edu_aplct a
JOIN ve_prcs_aplct_prd vpap ON a.PRCS_ORD = vpap.PRCS_APLCT_PRD_ORD
LEFT JOIN VEA_APLCT_DETAIL_INFO vadi ON a.EDU_APLCT_ORD = vadi.EDU_APLCT_ORD /*
AND vpap.PRCS_APLCT_PRD_ORD = vadi.PRCS_APLCT_PRD_ORD */
JOIN LETTNGNRLMBER le ON /* a.USER_ID = le.MBER_ID */ a.USER_ID = le.esntl_id
LEFT JOIN LETTNQESTNRINFO qe ON a.USER_ID = qe.FRST_REGISTER_ID
LEFT JOIN VEA_SSPN_IDMT_TRGT vsit ON (a.rnds_ord = vsit.SSPN_IDTMT_TRGT_ORD)
LEFT OUTER JOIN (SELECT
aa.EDU_APLCT_ORD
, aa.prcs_ord
, aa.QUSTNR_TMPLAT_ID
, aa.user_id
, MAX(CASE WHEN bb.site_id_cd = '10' THEN aa.QESTNR_ID ELSE NULL END) AS QESTNR_ID_10
, MAX(CASE WHEN bb.site_id_cd = '20' THEN aa.QESTNR_ID ELSE NULL END) AS QESTNR_ID_20
, MAX(CASE WHEN bb.site_id_cd = '30' THEN aa.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30
, SUM(CASE WHEN bb.site_id_cd = '10' THEN 1 ELSE 0 END) AS QESTNR_ID_10_CNT
, SUM(CASE WHEN bb.site_id_cd = '20' THEN 1 ELSE 0 END) AS QESTNR_ID_20_CNT
, SUM(CASE WHEN bb.site_id_cd = '30' THEN 1 ELSE 0 END) AS QESTNR_ID_30_CNT
FROM
(SELECT
a.EDU_APLCT_ORD
, a.prcs_ord
, b.QUSTNR_TMPLAT_ID
, b.QESTNR_ID
, a.user_id
FROM
ve_edu_aplct a
, LETTNQESTNRRSLTDETAIL b
WHERE
1 = 1 /*
AND b.respond_id = a.user_id */
AND a.edu_aplct_ord = b.edu_aplct_ord
AND (b.EDU_CHASI_ORD IS NULL OR b.EDU_CHASI_ORD = '')) aa
, lettnqestnrinfo bb
WHERE /* aa.qustnr_tmplat_id = bb.qustnr_tmplat_id */
1 = 1
AND aa.qestnr_id = bb.qestnr_id
GROUP BY aa.EDU_APLCT_ORD, aa.prcs_ord, aa.QUSTNR_TMPLAT_ID, aa.user_id) qustnr01
ON (a.edu_aplct_ord = qustnr01.edu_Aplct_Ord
AND a.PRCS_ORD = qustnr01.prcs_Ord)
LEFT OUTER JOIN (SELECT
a.QUSTNR_TMPLAT_ID
, a.SITE_ID
, a.QESTNR_ID AS QESTNR_ID_10
, NULL AS QESTNR_ID_20
, NULL AS QESTNR_ID_30
, a.qustnr_bgnde
, a.qustnr_endde /* MAX(CASE WHEN a.site_id_cd = '10' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_10, MAX(CASE WHEN a.site_id_cd = '20' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_20, MAX(CASE WHEN a.site_id_cd = '30' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30 */
FROM
LETTNQESTNRINFO a
WHERE
a.SITE_ID = '60'
AND a.SITE_ID_CD IN ('10', '20', '30') /*
AND TO_CHAR(NOW(), 'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde, '2000.01.01')
AND COALESCE(a.qustnr_endde, '9999.12.31')
GROUP BY a.QUSTNR_TMPLAT_ID , a.SITE_ID */ ) I
ON (vpap.edu_strt_pnttm BETWEEN COALESCE(I.qustnr_bgnde, '20000101')
AND COALESCE(I.qustnr_endde, '99991231'))
WHERE
1 = 1
AND a.sbmt_yn = 'Y'
AND a.use_yn = 'Y' /* 승인(20), 취소요청(35), 취소승인(40), 확정(60)된 사람만 보여줌 old */
AND a.aprvl_cd IN ('20', '35', '40', '60') /* 요청(10), 승인(20), 반려(30), 확정(60) 이건 교육확정된 것 이므로 확정된 사람기준으로 보여줌 */
AND a.aprvl_cd IN ('60')
AND a.lctr_div_cd = #lctrDivCd#
ORDER BY 1=1
<isNotEmpty property="searchSortCnd">
,$searchSortCnd$
</isNotEmpty>
<isNotEmpty property="searchSortOrd">
$searchSortOrd$
</isNotEmpty>
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY
</select>
</sqlMap> </sqlMap>

View File

@ -2045,7 +2045,8 @@
ON a.prcs_aplct_prd_ord = c.prcs_ord ON a.prcs_aplct_prd_ord = c.prcs_ord
AND c.aprvl_cd = '60' AND c.aprvl_cd = '60'
WHERE WHERE
a.prcs_aplct_prd_ord = #prcsAplctPrdOrd# a.prcs_aplct_prd_ord = #prcsAplctPrdOrd#
AND a.aplct_state_cd = '20';
</select> </select>
<select id="selectMainContent" resultClass="VEPrcsDetailVO"> <select id="selectMainContent" resultClass="VEPrcsDetailVO">

View File

@ -191,6 +191,8 @@
<!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern> <!-- <pattern>*/tngrVisitEdu/popup/*Popup.do</pattern>
<pattern>*/adultVisitEdu/popup/*Popup.do</pattern> --> <pattern>*/adultVisitEdu/popup/*Popup.do</pattern> -->
<pattern>/kccadr/oprtn/cndtnSspnIdtmt/popup/printCertPopup.do</pattern>
</excludes> </excludes>
</decorators> </decorators>

View File

@ -211,7 +211,6 @@
// form.action = "<c:url value='/kccadr/oprtn/cmdTrgt/popup/fndthInstrAsgnmPopup.do'/>"; // form.action = "<c:url value='/kccadr/oprtn/cmdTrgt/popup/fndthInstrAsgnmPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cmdTrgt/popup/cndtnInstrAsgnmPopup.do'/>"; form.action = "<c:url value='/kccadr/oprtn/cmdTrgt/popup/cndtnInstrAsgnmPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnInstrAsgnmPopup.do'/>";
window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px"); window.open("#", "_securityPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px");
form.target = "_securityPop"; form.target = "_securityPop";
@ -536,20 +535,8 @@
<div class="cont_wrap"> <div class="cont_wrap">
<div class="box"> <div class="box">
<!-- cont_tit -->
<!-- 메뉴에 등록된 URL을 넣으면 해당 메뉴명까지 자동 노출 해줌 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 1 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 2 -->
<!-- 메뉴에 등록되지 않은 메뉴를 마지막에 넣을떄 3 -->
<c:import url="/cmm/navi/adminContNav.do">
<c:param name="url" value="/kccadr/oprtn/cmdTrgt/cndtnEduPrcsMngList.do"/>
<c:param name="name1" value="확정과정관리"/>
<c:param name="name2" value="확정과정 상세"/>
<c:param name="name3" value=""/>
</c:import>
<!-- cont_tit --> <!-- cont_tit -->
<!--
<div class="cont_tit"> <div class="cont_tit">
<h2>교육확정상세</h2> <h2>교육확정상세</h2>
<ul class="cont_nav"> <ul class="cont_nav">
@ -560,7 +547,6 @@
<li><span class="cur_nav">교육확정상세</span></li> <li><span class="cur_nav">교육확정상세</span></li>
</ul> </ul>
</div> </div>
-->
<!-- //cont_tit --> <!-- //cont_tit -->
<div class="cont"> <div class="cont">
@ -834,10 +820,8 @@
<input type="text" id="email_${status.count}" name="email_${status.count}" <input type="text" id="email_${status.count}" name="email_${status.count}"
placeholder="이메일을 입력하세요." class="search_input" placeholder="이메일을 입력하세요." class="search_input"
value="<c:out value='${list.email}'/>"> value="<c:out value='${list.email}'/>">
<!--
<button type="button" class="btn_type04" <button type="button" class="btn_type04"
onclick="fn_emailChg('<c:out value="${list.eduAplctOrd }" />', 'email_${status.count}')">저장</button> onclick="fn_emailChg('<c:out value="${list.eduAplctOrd }" />', 'email_${status.count}')">저장</button>
-->
</td> </td>
<td> <td>
<c:out value="${list.phone}"/> <c:out value="${list.phone}"/>

View File

@ -491,10 +491,9 @@
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd; form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
// form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/fndthInstrAsgnmPopup.do'/>";
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/printCertPopup.do'/>"; form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/printCertPopup.do'/>";
window.open("#", "_printCertPop", "scrollbars = no, top=100px, left=100px, height=750px, width=950px"); window.open("#", "_printCertPop", "scrollbars = no, top=10px, left=10px, height=1500px, width=1200px");
form.target = "_printCertPop"; form.target = "_printCertPop";
form.submit(); form.submit();
} }
@ -1009,7 +1008,7 @@
<c:when test="${list.qestRsltExists and list.aprvlCd eq '60' and list.aplctStateCd eq '20' and list.qestnrId10Cnt gt 0}"> <c:when test="${list.qestRsltExists and list.aprvlCd eq '60' and list.aplctStateCd eq '20' and list.qestnrId10Cnt gt 0}">
<!-- 교육 기간 종료 & 교육신청은 확정(60) & 교육상태는 이슈(20) & 수료증 출력 가능 --> <!-- 교육 기간 종료 & 교육신청은 확정(60) & 교육상태는 이슈(20) & 수료증 출력 가능 -->
<button type="button" class="btn_type04" <button type="button" class="btn_type04"
onclick="fncPrintCert('${list.eduAplctOrd}','${list.eduChasiOrd}','10','insert','${list.qustnrTmplatId}','${list.qestnrId10}','')"/>출력</button> onclick="fncPrintCert('<c:out value="${info.prcsAplctPrdOrd }" />')"/>출력</button>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -

View File

@ -87,9 +87,9 @@
<input type="hidden" name="instrDetailActvtHstryOrd" id="instrDetailActvtHstryOrd" value=""/> <input type="hidden" name="instrDetailActvtHstryOrd" id="instrDetailActvtHstryOrd" value=""/>
</form> </form>
<form id="listForm" name="listForm" method="post"> <form id="listForm" name="listForm" method="post">
<input type="hidden" name="pageIndex" value="<c:out value='${vEInstrActvtHstryVO.pageIndex}' default='1' />"/> <input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEInstrActvtHstryVO.searchSortCnd}" />" /> <input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEInstrActvtHstryVO.searchSortOrd}" />" /> <input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<div class="cont_wrap"> <div class="cont_wrap">
<div class="box"> <div class="box">
@ -110,40 +110,27 @@
<div class="cont"> <div class="cont">
<!-- list_top --> <!-- list_top -->
<div class="list_top"> <div class="list_top">
<!-- <%--<div class="list_top_2">
<div class="list_top_1">
<div class="util_left">
<p>구분</p>
</div>
<div class="util_right">
<ve:select codeId="VEA011" name="searchSelStatus" id="searchSelStatus" css="class='sel_type1'"
selectedValue="${vEInstrActvtHstryVO.searchSelStatus}" defaultValue=''
defaultText='전체'
/>
</div>
</div>
-->
<div class="list_top_2">
<div class="util_left"> <div class="util_left">
<p>발급일자</p> <p>발급일자</p>
</div> </div>
<div class="util_right"> <div class="util_right">
<div class="calendar_wrap"> <div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="searchStartDt" name="searchStartDt" value="<c:out value='${vEInstrActvtHstryVO.searchStartDt}'/>"> <input type="text" class="calendar" title="시작일 선택" id="searchStartDt" name="searchStartDt" value="<c:out value='${vEPrcsDetailVO.searchStartDt}'/>">
</div> </div>
~ ~
<div class="calendar_wrap"> <div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="searchEndDt" name="searchEndDt" value="<c:out value='${vEInstrActvtHstryVO.searchEndDt}'/>"> <input type="text" class="calendar" title="종료일 선택" id="searchEndDt" name="searchEndDt" value="<c:out value='${vEPrcsDetailVO.searchEndDt}'/>">
</div> </div>
</div> </div>
</div> </div>--%>
<div class="list_top_2"> <div class="list_top_2">
<div class="util_left"> <div class="util_left">
<p>성명</p> <p>성명</p>
</div> </div>
<div class="util_right"> <div class="util_right">
<input type="text" id=searchKeyword name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${vEInstrActvtHstryVO.searchKeyword}'/>" onkeyDown="press(event);"> <input type="text" id=searchKeyword name="searchKeyword" class="search_input" placeholder="검색어를 입력하세요" value="<c:out value='${vEPrcsDetailVO.searchKeyword}'/>" onkeyDown="press(event);">
<button class="btn_type08" onclick="fncGoList(); return false;">검색</button> <button class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button> <button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div> </div>
@ -156,10 +143,10 @@
<p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p> <p class="list_util_p">총 건수 : <span><c:out value="${paginationInfo.totalRecordCount}" /></span>건</p>
<div> <div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px"> <select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px">
<option value='10' <c:if test="${vEInstrActvtHstryVO.pageUnit == '10' or vEInstrActvtHstryVO.pageUnit == ''}">selected</c:if>>10줄</option> <option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEInstrActvtHstryVO.pageUnit == '20'}">selected</c:if>>20줄</option> <option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEInstrActvtHstryVO.pageUnit == '30'}">selected</c:if>>30줄</option> <option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEInstrActvtHstryVO.pageUnit == '100'}">selected</c:if>>100줄</option> <option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select> </select>
</div> </div>
</div> </div>
@ -173,53 +160,39 @@
<col style="width: 120px;"> <col style="width: 120px;">
<col style="width: 120px;"> <col style="width: 120px;">
<col style="width: 120px;"> <col style="width: 120px;">
<col style="width: 120px;">
<col style="width: 120px;">
</colgroup> </colgroup>
<thead> <thead>
<tr> <tr>
<th>번호</th> <th>번호</th>
<th>항목</th>
<th>문서번호</th>
<th>과정명</th> <th>과정명</th>
<th>교육일시</th> <th>이름</th>
<th>성명</th> <th>생년월일</th>
<th>발급일자</th> <th>이수증 출력</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<c:forEach var="list" items="${list}" varStatus="status"> <c:forEach var="list" items="${list}" varStatus="status">
<%-- <tr onclick="fn_goDetail('${list.instrDetailActvtHstryOrd}')" style="cursor:pointer;"> --%>
<!-- VE0011 -->
<tr> <tr>
<td> <td>
<c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/> <c:out value="${ ( paginationInfo.totalRecordCount - ((paginationInfo.currentPageNo -1)*paginationInfo.recordCountPerPage) ) - status.index }"/>
</td> </td>
<td> <td>
<ve:code codeId="VE0011" code="${list.lctrDivCd }"/> <c:out value="${list.title }" />
</td> </td>
<td> <td>
<c:if test="${list.lctrDivCd eq '50'}">실무역량-</c:if> <c:out value="${list.chrgNm}"/>
<c:if test="${list.lctrDivCd eq '60'}">기소유예-</c:if>
<c:out value="${list.eduCmpltCrtfcNmbr }" />
</td> </td>
<td> <td>
<c:out value="${list.prcsNm }" /> <c:out value="${list.dBirth}"/>
</td> </td>
<td> <td>
<c:out value="${list.eduStrtPnttm }" /> <button type="button" class="btn_type06" onclick="fncGoDetail('prcsAplctPrd_0000210');">출력</button>
</td>
<td>
<c:out value="${list.mberNm }" />
</td>
<td>
<c:out value="${list.lastUpdtPnttm }" />
</td> </td>
</tr> </tr>
</c:forEach> </c:forEach>
<c:if test="${empty list}"> <c:if test="${empty list}">
<tr><td colspan="7"><spring:message code="common.nodata.msg" /></td></tr> <tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if> </c:if>
</tbody> </tbody>
</table> </table>

View File

@ -27,8 +27,52 @@
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- 찾교 공통 시작-->
<link rel="stylesheet" href="/ipedu/visitEdu/usr/publish/css/reset.css">
<link rel="stylesheet" href="/ipedu/visitEdu/usr/publish/css/font.css">
<link rel="stylesheet" href="/ipedu/visitEdu/usr/publish/css/common.css">
<link rel="stylesheet" href="/ipedu/visitEdu/usr/publish/css/content.css">
<link rel="stylesheet" href="/ipedu/visitEdu/usr/publish/css/popup.css">
<link rel="stylesheet" href="/ipedu/visitEdu/usr/publish/datepicker/classic.css">
<link rel="stylesheet" href="/ipedu/visitEdu/usr/publish/datepicker/classic.date.css">
<link rel="stylesheet" href="/ipedu/visitEdu/usr/publish/css/swiper.min.css">
<!-- 찾교 공통 종료-->
<!-- 파비콘 -->
<link rel="shortcut icon" href="/ipedu/visitEdu/usr/publish/images/favicon/favicon.ico">
<link rel="apple-touch-icon" sizes="57x57" href="/ipedu/visitEdu/usr/publish/images/favicon/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/ipedu/visitEdu/usr/publish/images/favicon/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/ipedu/visitEdu/usr/publish/images/favicon/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/ipedu/visitEdu/usr/publish/images/favicon/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/ipedu/visitEdu/usr/publish/images/favicon/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/ipedu/visitEdu/usr/publish/images/favicon/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/ipedu/visitEdu/usr/publish/images/favicon/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/ipedu/visitEdu/usr/publish/images/favicon/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/ipedu/visitEdu/usr/publish/images/favicon/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/ipedu/visitEdu/usr/publish/images/favicon/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/ipedu/visitEdu/usr/publish/images/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/ipedu/visitEdu/usr/publish/images/favicon/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/ipedu/visitEdu/usr/publish/images/favicon/favicon-16x16.png">
<!-- // 파비콘 -->
<!-- script -->
<script src="/ipedu/visitEdu/usr/publish/script/jquery-3.5.0.js"></script>
<script src="/ipedu/visitEdu/usr/publish/script/common.js"></script>
<script src="/ipedu/visitEdu/usr/publish/script/popup.js"></script>
<script src="/ipedu/visitEdu/usr/publish/script/postcode.js"></script>
<script src="/ipedu/visitEdu/usr/publish/script/visitEduCom.js"></script>
<script src="/ipedu/visitEdu/usr/publish/script/visitEduConstants.js"></script>
<script src="/ipedu/visitEdu/usr/publish/script/content.js"></script>
<script src="/ipedu/js/antdatepicker/moment.min.js"></script>
<script src="/ipedu/js/year-select.js"></script>
<script src="/ipedu/visitEdu/usr/publish/script/jquery.bxslider.js"></script>
<script src="/ipedu/visitEdu/usr/publish/script/swiper.min.js"></script>
<script src="/ipedu/visitEdu/usr/publish/script/main.js"></script>
<script type="module" src="/ipedu/visitEdu/usr/datapicker/duet.esm.js"></script>
<script nomodule="" src="/ipedu/visitEdu/usr/datapicker/duet.js"></script>
<%-- <script type="text/javascript" src="<c:url value='/js/ve/tmapJS.js'/>"></script> --%>
<script type="text/javascript"> <script type="text/javascript">
</script> </script>
@ -36,13 +80,6 @@
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
$(document).ready(function(){ $(document).ready(function(){
// ID를 alpreah_input로 가지는 곳에서 키를 누를 경우
$("#instrNm").keydown(function(key) {
if (key.keyCode == 13) {
linkPage(1);
return false;
}
});
fncPrintCert_aft('${vEPrcsDetailVO.prcsAplctPrdOrd}'); fncPrintCert_aft('${vEPrcsDetailVO.prcsAplctPrdOrd}');
}); });
@ -51,81 +88,23 @@
self.close(); self.close();
} }
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
if($('#searchEduSlctAreaCd option:selected').text() != '전체'){
listForm.rsdne.value = $('#searchEduSlctAreaCd option:selected').text();
}
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cndtnInstrAsgnmPopup.do'/>";
listForm.submit();
}
function fncInstrAsgnm(p_id) {
$("#userId").val(p_id);
var data1 = new FormData(document.getElementById("createForm"));
if(confirm("강사를 선택 하시겠습니까?")){
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnInstrAsgnmAjax.do",
data: data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == 'success'){
alert("저장 되었습니다.");
opener.location.reload();
fncPopClose();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
}
//이수증 출력 //이수증 출력
function fncPrintCert_aft( function fncPrintCert_aft(
id //aplctOrd prcsAplctPrdOrd //aplctOrd
, chId //chasiOrd ){
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
){
paramObj = { paramObj = {
"eduAplctOrd" : id "prcsAplctPrdOrd" : prcsAplctPrdOrd
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"siteId" : "60" //설문정보를 위해서 설문지의 대상값을 넣는다. VE0011 10-청소년, 20-성인,30-체험, 40-외부, 50-기반, 60-기소
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
}; };
commonPopLayeropen( commonPopLayeropen(
//"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrPopList.do"
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/certPopList.do" "${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/certPopList.do"
, 800 , 800
, 700 , 870
, paramObj , paramObj
, "Y" , "Y"
, "QustnrList" , "QustnrList"
); );
} }
</script> </script>

View File

@ -485,6 +485,19 @@
vForm.action = "<c:url value='/kccadr/oprtn/prevent/trgtEduAplctCnfrmExcel.do'/>"; vForm.action = "<c:url value='/kccadr/oprtn/prevent/trgtEduAplctCnfrmExcel.do'/>";
vForm.submit(); vForm.submit();
} }
// 이수증
function fncPrintCert(prcsAplctPrdOrd) {
var form = document.popForm;
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/printCertPopup.do'/>";
window.open("#", "_printCertPop", "scrollbars = no, top=10px, left=10px, height=1500px, width=1200px");
form.target = "_printCertPop";
form.submit();
}
</script> </script>
</head> </head>
@ -930,7 +943,7 @@
<c:when test="${list.qestRsltExists and list.aprvlCd eq '60' and list.aplctStateCd eq '20' and list.qestnrId10Cnt gt 0}"> <c:when test="${list.qestRsltExists and list.aprvlCd eq '60' and list.aplctStateCd eq '20' and list.qestnrId10Cnt gt 0}">
<!-- 교육 기간 종료 & 교육신청은 확정(60) & 교육상태는 이슈(20) & 수료증 출력 가능 --> <!-- 교육 기간 종료 & 교육신청은 확정(60) & 교육상태는 이슈(20) & 수료증 출력 가능 -->
<button type="button" class="btn_type04" <button type="button" class="btn_type04"
onclick="fncPrintCert('${list.eduAplctOrd}','${list.eduChasiOrd}','10','insert','${list.qustnrTmplatId}','${list.qestnrId10}','')"/>출력</button> onclick="fncPrintCert('<c:out value="${info.prcsAplctPrdOrd }" />')"/>출력</button>
</c:when> </c:when>
<c:otherwise> <c:otherwise>
- -