2023-12-19 18:04 실무역량강화 내용 수정

This commit is contained in:
myname 2023-12-19 18:04:38 +09:00
parent 5fd1a85220
commit f0ae15bff1
10 changed files with 383 additions and 22 deletions

View File

@ -1,5 +1,6 @@
package kcc.let.my.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@ -226,7 +227,7 @@ public class MyPageController {
vEPrcsDetailVO.setRecordCountPerPage(1000000);
vEPrcsDetailVO.setFirstIndex(0);
/*
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsAplctPrdService.findByAprvlList(vEPrcsDetailVO);
// 요청
long cont = vEPrcsDetailVOList.stream().filter(t-> "10".equals(t.getAprvlCd())).count();
@ -241,7 +242,7 @@ public class MyPageController {
model.addAttribute("fndtnMap", fndtnMap);
model.addAttribute("fndtnList", vEPrcsDetailVOList);
*/
//신청중, 수강중, 종료된 수량
Map<String,Object> countMap = vEPrcsAplctPrdService.findAllDashboardCnt(vEPrcsDetailVO);

View File

@ -189,9 +189,61 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String instrFee; //
private String trafficFee; //
private String qustnrQesitmId10Cnt;
private String qustnrQesitmId20Cnt;
private String qustnrQesitmId30Cnt;
private String qestnrId10;
private String qestnrId20;
private String qestnrId30;
private String eduPrcsOrd;
public String getEduPrcsOrd() {
return eduPrcsOrd;
}
public void setEduPrcsOrd(String eduPrcsOrd) {
this.eduPrcsOrd = eduPrcsOrd;
}
public String getQustnrQesitmId10Cnt() {
return qustnrQesitmId10Cnt;
}
public void setQustnrQesitmId10Cnt(String qustnrQesitmId10Cnt) {
this.qustnrQesitmId10Cnt = qustnrQesitmId10Cnt;
}
public String getQustnrQesitmId20Cnt() {
return qustnrQesitmId20Cnt;
}
public void setQustnrQesitmId20Cnt(String qustnrQesitmId20Cnt) {
this.qustnrQesitmId20Cnt = qustnrQesitmId20Cnt;
}
public String getQustnrQesitmId30Cnt() {
return qustnrQesitmId30Cnt;
}
public void setQustnrQesitmId30Cnt(String qustnrQesitmId30Cnt) {
this.qustnrQesitmId30Cnt = qustnrQesitmId30Cnt;
}
public String getQestnrId10() {
return qestnrId10;
}
public void setQestnrId10(String qestnrId10) {
this.qestnrId10 = qestnrId10;
}
public String getQestnrId20() {
return qestnrId20;
}
public void setQestnrId20(String qestnrId20) {
this.qestnrId20 = qestnrId20;
}
public String getQestnrId30() {
return qestnrId30;
}
public void setQestnrId30(String qestnrId30) {
this.qestnrId30 = qestnrId30;
}
public String getSearchDiv() {
return searchDiv;
}

View File

@ -75,6 +75,7 @@
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,

View File

@ -652,6 +652,16 @@
AND a.edu_aplct_ord = lersltD.edu_aplct_ord ) THEN 1
ELSE 0
END AS qestRsltExists
, NVL(qustnr01.QUSTNR_QESITM_ID_10,0) AS qustnrQesitmId10Cnt
, NVL(qustnr01.QUSTNR_QESITM_ID_20, 0) AS qustnrQesitmId20Cnt
, NVL(qustnr01.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
from
VE_EDU_APLCT a
join ve_prcs_aplct_prd vpap
@ -661,6 +671,75 @@
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
LEFT OUTER JOIN (
SELECT
b.EDU_APLCT_ORD AS eduAplctOrd,
max(b.prcs_ord) AS prcsOrd,
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 b.respond_id=#userId#
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 = '50'
GROUP BY
b.EDU_APLCT_ORD
) qustnr01
on(
a.edu_aplct_ord = qustnr01.eduAplctOrd
AND vpap.PRCS_APLCT_PRD_ORD = qustnr01.prcsOrd
)
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 = '10'
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#
and a.user_id = #userId#

View File

@ -133,6 +133,7 @@
AND A.SITE_ID = #siteId#
AND A.site_id_cd=#siteIdCd#
ORDER BY A.QESTNR_ID DESC
LIMIT 1
</select>

View File

@ -452,12 +452,20 @@
<col style="width: 5%">
<col style="width: 180px;">
<col style="width: 180px;">
<col style="width: 180px;">
<col style="width: 180px;">
<col style="width: 180px;">
<col style="width: 180px;">
<col style="width: 180px;">
<col style="width: 210px;">
</colgroup>
<thead>
<tr>
<th><input type="checkbox" name="checkAll" id="checkAll" onclick="chkAll(this);" /><label for="checkAll"></label></th>
<th>신청자</th>
<th>성명</th>
<th>생년월일</th>
<th>소속기업</th>
<th>교육이수여부</th>
<th>교육이수상태변경</th>
<th>설문조사</th>
@ -475,6 +483,16 @@
</td>
<td>
<c:out value="${list.userNm}"/>
</td>
<td>
<c:out value="${list.chrgNm}"/>
</td>
<td>
<c:out value="${list.dBirth}"/>
</td>
<td>
<c:out value="${list.insttNm}"/>
</td>
<td>
<ve:code codeId="VEA003" code="${list.aplctStateCd}"/>
</td>

View File

@ -170,8 +170,7 @@
</script>
</head>
<body>
<form name="listForm" action="<c:url value='/uss/olp/qmc/EgovQustnrManageList.do'/>" method="post">
<form name="listForm" action="<c:url value='/uss/olp/qmc/UserQustnrManageList.do'/>" method="post">
<input name="qestnrId" type="hidden" value="">
<input name="qestnrTmplatId" type="hidden" value="">
<input name="templateUrl" type="hidden" value="">

View File

@ -176,10 +176,12 @@ function fn_egov_save_QustnrItemManage(cmd){
return false;
}
});
/*
if(iemCnCheck){
alert("설문문항정보를 입력해주세요!");
return ;
}
*/
}
varFrom.cmd.value= cmd;

View File

@ -341,7 +341,7 @@
<div class="t_best">체험교실</div>
</div>
<div class="btn_wrap1">
<button type="button" title="실무역량강화 교육 더보기" class="con_more" onclick="location.href='<c:url value="/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndList.do" />'">더보기</button>
<button type="button" title="실무역량강화 교육 더보기" class="con_more" onclick="location.href='<c:url value="/web/ve/aplct/cpyrgExprnClsrm/exprnClsrmEnd/exprnClsrmEndList.do" />'">더보기</button>
</div>
</div>
<table>

View File

@ -24,9 +24,10 @@
}
function fncGoDetail(eduAplctOrd){
var listForm = document.listForm ;
listForm.eduAplctOrd.value = eduAplctOrd ;
$("#listForm").attr("action","${pageContext.request.contextPath}/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetail.do").submit();
var viewForm = document.viewForm ;
viewForm.prcsAplctPrdOrd.value = eduAplctOrd ;
viewForm.action = "<c:url value='/web/ve/aplct/fndtnEnhanceTrn/eduAplctDetail.do'/>";
viewForm.submit();
}
function fncGoList(){
@ -105,15 +106,97 @@
form.submit();
}
// 설문조사 버튼 클릭 이벤트
function selectQestnInfo(id, action){
$('#eduAplctOrd').val(id);
if(action == 'insert'){
$('#popupUpdate').hide();
$('#popupInsert').show();
}
else if(action == 'update'){
$('#popupUpdate').show();
$('#popupInsert').hide();
}
$.ajax({
type:"POST"
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/selectQustnrCommonAjax.do"
,data: {
"lctrDivCd" : "50" // 기반강화 -> 기소유예(60)도 같이써야함
// ,"eduChasiOrd" : chId
}
,dataType:'json'
,success:function(returnData){
console.log('returnData : ', returnData);
fn_makeQestnTbody(returnData);
// update면 선택한 목록 가져오기
if(action == 'update'){
fn_selectQestnTbody();
}
}
,error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
// 설문조사 문항 가져오기
function fn_makeQestnTbody(returnData){
$('#qustnrTmplatId').val(returnData.qustnrTmplatId);
$('#qestnrId').val(returnData.qestnrId);
var data = returnData.Comtnqustnrqesitm; // 이 변수에 AJAX를 통해 가져온 데이터가 저장되어 있다고 가정
$('#qestmInfoSize').val(data.length);
// tbody에 새로운 행들을 추가
var $tbody = $("#qestnTbody");
$tbody.empty(); // 기존의 tbody 내용을 비웁니다.
$.each(data, function(index, item) {
var $row = $("<tr></tr>");
// hiddem값 셋팅
$row.append('<input type="hidden" name="resultList[' + index + '].qestnrId" value="' + item.qestnrId + '">');
$row.append('<input type="hidden" name="resultList[' + index + '].qestnrQesitmId" value="' + item.qestnrQesitmId + '">');
$row.append('<input type="hidden" id="qustnrRsltId_'+index+'" name="resultList[' + index + '].qustnrRsltId" value="">');
// 첫 번째 열: 설문 문항
$row.append('<th scope="row" class="t_left">' + (index + 1) + ') ' + item.qestnCn + '</th>');
// 평가 옵션 열 추가
var inputTypes = ['verySatisfied', 'satisfied', 'neither', 'dissatisfied', 'veryDissatisfied'];
$.each(inputTypes, function(i, type) {
var inputId = type + '_' + index;
var $cell = $('<td></td>');
var $label = $('<label for="' + inputId + '" class="label">' + type + '</label>');
var $input = $('<input type="radio" class="popupInput" id="' + inputId + '" name="resultList[' + index + '].responseRadio" value="' + type + '">');
$cell.append($label).append($input);
$row.append($cell);
});
$tbody.append($row);
});
}
</script>
<!-- content -->
<div class="cont_wrap" id="sub">
<form id="goListForm" name="goListForm" action="<c:url value="/web/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctList.do" />" method="post">
<input type="hidden" id="searchStatus" name="searchStatus" />
</form>
<form name="viewForm" id="viewForm">
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd">
</form>
<form:form id="listForm" name="listForm" commandName="vEEduAplctVO">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
@ -163,8 +246,8 @@
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr>
<%-- <td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;"> --%>
<td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdOrd}"/>');" style="cursor:pointer;">
<!-- <td> -->
<c:out value="${list.prcsNm}"/>(<c:out value="${list.prcsAplctPrdOrd}"/>)
</td>
<td>
@ -172,25 +255,52 @@
</td>
<td><kc:code codeId="VE0003" code="${list.aprvlCd}"/></td>
<td>
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
<c:choose>
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }">
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
<c:when test="${list.qustnrQesitmId10Cnt gt 0 and list.aprvlCd eq 20 and list.dateChk eq 1}">
<!--
<button type="button" class="btnType02" data-tooltip="sub37_pop20"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduPrcsOrd}','10','select'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문완료</button>
-->
<button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','update')" title="팝업 열림">설문완료</button>
</c:when>
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
설문완료
<c:when test="${not empty list.qestnrId10 and list.aprvlCd eq 20 and list.dateChk eq 1}">
<!--
<button type="button" class="btnType01" data-tooltip="sub37_pop20"
onclick="fncQustnrList('${list.eduAplctOrd}','${list.eduPrcsOrd}','10','insert'
,'${list.qustnrTmplatId}','${list.qestnrId10}',''
)" title="팝업 열림">설문등록</button>
-->
<button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','insert')" title="팝업 열림">설문등록</button>
</c:when>
<c:otherwise>
-
해당설문없음
</c:otherwise>
</c:choose>
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
<%-- <c:choose> --%>
<%-- <c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }"> --%>
<!-- <button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button> -->
<%-- </c:when> --%>
<%-- <c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }"> --%>
<!-- 설문완료 -->
<%-- </c:when> --%>
<%-- <c:otherwise> --%>
<!-- - -->
<%-- </c:otherwise> --%>
<%-- </c:choose> --%>
</td>
<td>
<c:choose>
<c:when test="${list.qestRsltExists }">
<button type="button" title="출력" class="btnType03">출력</button>
</c:when>
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
<c:when test="${list.qustnrQesitmId10Cnt gt 0 and list.aprvlCd eq 20 and list.dateChk eq 1}">
<button type="button" title="출력" class="btnType03" onclick="fncCmpltCrtfc('<c:out value="${list.prcsOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');">출력</button>
</c:when>
<c:when test="${list.qustnrQesitmId10Cnt gt 0 and list.aprvlCd eq 20}">
교육완료
</c:when>
<c:otherwise>
@ -313,4 +423,102 @@
</div>
</div>
<!--// 신청 클릭 > 기소유예 대상자 확인 팝업 -->
</form>
</form>
<!-- 강의만족도 결과 등록 팝업 -->
<form id="srvyPopupForm" name="srvyPopupForm" method="post" >
<input type="hidden" name="lctrDivCd" id="lctrDivCd" value="50">
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="">
<input type="hidden" name="qustnrTmplatId" id="qustnrTmplatId" value="${qustnrTmplatId}">
<input type="hidden" name="qestnrId" id="qestnrId" value="${qestnrId}">
<input type="hidden" id="qestmInfoSize" value="${fn:length(Comtnqustnrqesitm)}">
<input type="hidden" name="qestnrRespondId" id="qestnrRespondId" value="">
<input type="hidden" name="qustnrIemType" id="qustnrIemType" value="">
<div class="tooltip-wrap">
<div class="popup_wrap popType05" tabindex="0" data-tooltip-con="sub37_pop01" data-focus="sub37_pop01" data-focus-prev="sub37_pop01_close">
<div class="popup_tit">
<p>강의만족도 결과 등록</p>
<button class="btn_popup_close tooltip-close" data-focus="sub37_pop01_close" title="팝업 닫기"><i></i></button>
</div>
<div class="popup_cont">
<div class="cont_body">
<div class="pop_tb_type02">
<table>
<caption>평가문항, 매우만족, 만족, 보통, 불만족, 매우 불만족 입력</caption>
<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 id="qestnTbody">
</tbody>
</table>
</div>
<div class="pop_btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
<button type="button" class="btnType05" id="popupInsert" onclick="srvySendSubmit('i');">제출</button>
<button type="button" class="btnType05" id="popupUpdate" onclick="srvySendSubmit('u');">수정</button>
<button type="button" class="btnType02 tooltip-close" data-focus-next="sub37_pop01" data-focus="sub37_pop01_close">취소</button>
</div>
<div class="btn_right">
</div>
</div>
</div>
</div>
</div>
</div>
</form>
<!--// 강의만족도 결과 등록 팝업-->
<script src="http://119.193.215.98:8093/ReportingServer/html5/js/crownix-viewer.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://119.193.215.98:8093/ReportingServer/html5/css/crownix-viewer.min.css">
<script>
/*
* 오버레이 방식
*/
function fncCmpltCrtfc(p_prcsAplctPrdOrd, p_eduAplctOrd){
console.log('p_eduAplctOrd : ', p_eduAplctOrd);
console.log('p_prcsAplctPrdOrd : ', p_prcsAplctPrdOrd);
var viewer = new m2soft.crownix.Viewer('http://119.193.215.98:8093/ReportingServer/service');
viewer.hideToolbarItem(["save"]);
viewer.showToolbarItem(["print_pdf"]);
viewer.useWebFont(true);
//viewer.openFile('cmplt_crtfc_20231030.mrd');
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rfn [cmplt_crtfc_20231030.json]');
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='+p_prcsAplctPrdOrd+'&eduAplctOrd='+p_eduAplctOrd+']');
/*
viewer.openFile('cmplt_crtfc_20231030.mrd', '/rf [http://192.168.0.59:3080/offedu/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='+p_prcsAplctPrdOrd+'&eduAplctOrd='+p_eduAplctOrd+']'
, {clientSidePdf: {embeddedFont: true}});
*/
//viewer.openFile('cmplt_crtfc_20231030.mrd', '/rf [http://192.168.0.59:3080/offedu/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='+p_prcsAplctPrdOrd+'&eduAplctOrd='+p_eduAplctOrd+']');
viewer.openFile('cmplt_crtfc_20231030.mrd', '/rf [http://119.193.215.98:9989/offedu/ve/aplct/fndtnEnhanceTrn/fndtnEduAplctCmpltCrtfcAjax.do?prcsAplctPrdOrd='+p_prcsAplctPrdOrd+'&eduAplctOrd='+p_eduAplctOrd+']');
}
</script>