Merge branch 'hylee' into advc
This commit is contained in:
commit
ef4b387b49
@ -6,6 +6,7 @@ import java.util.Map;
|
||||
import kcc.com.cmm.ComDefaultVO;
|
||||
import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
/**
|
||||
* 설문조사 Service Class 구현
|
||||
* @author 공통서비스 장동한
|
||||
@ -164,4 +165,8 @@ public interface EgovQustnrRespondInfoService {
|
||||
void deleteChasiStatus(VEEduAplctVO vEEduAplctVO);
|
||||
|
||||
public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO);
|
||||
|
||||
public List<QustnrRespondInfoVO> selectQustnr5060(VEPrcsDetailVO vEPrcsDetailVO);
|
||||
|
||||
public void deleteStatusFormlettnqestnrrslt(QustnrRespondInfoVO item);
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@ import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService;
|
||||
import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
|
||||
import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@ -249,5 +250,13 @@ public class EgovQustnrRespondInfoServiceImpl extends EgovAbstractServiceImpl im
|
||||
public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO) {
|
||||
return dao.selectQustnrDetail(qustnrVO);
|
||||
}
|
||||
@Override
|
||||
public List<QustnrRespondInfoVO> selectQustnr5060(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return dao.selectQustnr5060(vEPrcsDetailVO);
|
||||
}
|
||||
@Override
|
||||
public void deleteStatusFormlettnqestnrrslt(QustnrRespondInfoVO item) {
|
||||
dao.deleteStatusFormlettnqestnrrslt(item);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -8,6 +8,7 @@ import kcc.com.cmm.ComDefaultVO;
|
||||
import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
|
||||
import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
/**
|
||||
@ -214,4 +215,12 @@ public class QustnrRespondInfoDao extends EgovAbstractDAO {
|
||||
public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO) {
|
||||
return (List<QustnrRespondInfoVO>) list("QustnrRespondInfo.selectQustnrDetail", qustnrVO);
|
||||
}
|
||||
|
||||
public List<QustnrRespondInfoVO> selectQustnr5060(VEPrcsDetailVO vEPrcsDetailVO) {
|
||||
return (List<QustnrRespondInfoVO>) list("QustnrRespondInfo.selectQustnr5060", vEPrcsDetailVO);
|
||||
}
|
||||
|
||||
public void deleteStatusFormlettnqestnrrslt(QustnrRespondInfoVO item) {
|
||||
delete("QustnrRespondInfo.deleteStatusFormlettnqestnrrslt", item);
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,6 +47,8 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsMIXService;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
|
||||
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.qestnr.service.VEALettnQestnrMIXService;
|
||||
|
||||
/**
|
||||
@ -168,6 +170,9 @@ public class FndtnEnhanceTrnController {
|
||||
@Resource(name = "egovQustnrRespondInfoService")
|
||||
private EgovQustnrRespondInfoService egovQustnrRespondInfoService;
|
||||
|
||||
//기소 대상자 관리
|
||||
@Resource(name = "cndtnTrgtInfoMngService")
|
||||
private CndtnTrgtMngService cndtnTrgtInfoMngService;
|
||||
|
||||
|
||||
// 설문 util
|
||||
@ -780,7 +785,6 @@ public class FndtnEnhanceTrnController {
|
||||
modelAndView.addObject("msg", "로그인 해주세요.");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
qustnrRespondInfoVO.getResultList().stream()
|
||||
.forEach(item -> {
|
||||
|
||||
|
||||
@ -160,7 +160,8 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
|
||||
private String chrgNm;
|
||||
private String insttNm;
|
||||
private String instrNm;
|
||||
|
||||
private String respondId;
|
||||
|
||||
private String lctrPlanRsltAtchFileId; //강의계획서 첨부파일 아이디
|
||||
|
||||
@ -789,18 +790,22 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
|
||||
public void setInsttNm(String insttNm) {
|
||||
this.insttNm = insttNm;
|
||||
}
|
||||
public String getInstrNm() {
|
||||
return instrNm;
|
||||
public String getRespondId() {
|
||||
return respondId;
|
||||
}
|
||||
public void setInstrNm(String instrNm) {
|
||||
this.instrNm = instrNm;
|
||||
public void setRespondId(String respondId) {
|
||||
this.respondId = respondId;
|
||||
}
|
||||
<<<<<<< HEAD
|
||||
public String getLctrPlanRsltAtchFileId() {
|
||||
return lctrPlanRsltAtchFileId;
|
||||
}
|
||||
public void setLctrPlanRsltAtchFileId(String lctrPlanRsltAtchFileId) {
|
||||
this.lctrPlanRsltAtchFileId = lctrPlanRsltAtchFileId;
|
||||
}
|
||||
=======
|
||||
|
||||
>>>>>>> refs/heads/hylee
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -57,7 +57,6 @@ public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
|
||||
public int findCntreqNmber(String reqNmbrTemp) {
|
||||
return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
|
||||
}
|
||||
|
||||
/*
|
||||
//C
|
||||
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {
|
||||
|
||||
@ -28,7 +28,12 @@ import kcc.com.cmm.service.impl.CmmUseDAO;
|
||||
import kcc.com.cmm.util.StringUtil;
|
||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||
import kcc.let.uat.uia.service.SsoLoginVO;
|
||||
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.ve.cmm.VeConstants;
|
||||
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrFeeAcmdtVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
|
||||
@ -137,6 +142,9 @@ public class FndthPrcsAplctPrdMngController {
|
||||
//과정신청기간순번
|
||||
@Resource(name="vePrcsAplctPrdEtcGnrService")
|
||||
private EgovIdGnrService vePrcsAplctPrdEtcGnrService;
|
||||
|
||||
@Resource(name = "egovQustnrRespondInfoService")
|
||||
private EgovQustnrRespondInfoService egovQustnrRespondInfoService;
|
||||
/*
|
||||
|
||||
// 교육신청 서비스단
|
||||
@ -344,7 +352,7 @@ public class FndthPrcsAplctPrdMngController {
|
||||
paramVO.setSbmtYn("Y");
|
||||
|
||||
if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) {
|
||||
|
||||
// 20 이수
|
||||
String searchQuery = "AND vadi.APLCT_STATE_CD = "+vEPrcsDetailVO.getSearchStatus();
|
||||
paramVO.setSearchQuery(searchQuery);
|
||||
}
|
||||
@ -1028,6 +1036,211 @@ public class FndthPrcsAplctPrdMngController {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @methodName : instrCostPopup
|
||||
* @author : 이호영
|
||||
* @date : 2023.11.27
|
||||
* @description :
|
||||
* @param vEPrcsDetailVO
|
||||
* @param model
|
||||
* @param request
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/popup/lctrEvalPopup.do")
|
||||
public String instrCostPopup(
|
||||
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||
, ModelMap model
|
||||
, HttpServletRequest request
|
||||
) throws Exception {
|
||||
|
||||
// List<QustnrRespondInfoVO> vEPrcsDetailVOList = egovQustnrRespondInfoService.selectQustnr5060(vEPrcsDetailVO);
|
||||
//해당 과정을 제출한 사용자 정보를 가져온다.
|
||||
VEEduAplctVO paramVO = new VEEduAplctVO();
|
||||
paramVO.setPrcsOrd(vEPrcsDetailVO.getPrcsAplctPrdOrd());
|
||||
paramVO.setSbmtYn("Y");
|
||||
|
||||
// 20 이수
|
||||
String searchQuery = "AND vadi.APLCT_STATE_CD = 20";
|
||||
paramVO.setSearchQuery(searchQuery);
|
||||
// 검색 - 날짜
|
||||
paramVO.setSearchSmbtStartDt(vEPrcsDetailVO.getSearchSmbtStartDt());
|
||||
paramVO.setSearchSmbtEndDt(vEPrcsDetailVO.getSearchSmbtEndDt());
|
||||
// 검색 - 검색어
|
||||
paramVO.setSearchStatus(vEPrcsDetailVO.getSearchStatus());
|
||||
|
||||
|
||||
List<VEEduAplctVO> vEPrcsDetailVOList = vEEduMIXService.selectList(paramVO);
|
||||
vEPrcsDetailVOList = egovCryptoUtil.decryptVeEduAplctList(vEPrcsDetailVOList);
|
||||
|
||||
long totalParticipants = vEPrcsDetailVOList.size();
|
||||
long respondents = vEPrcsDetailVOList.stream().filter(vo -> vo.getQestRsltExists()).count();
|
||||
long nonRespondents = totalParticipants - respondents;
|
||||
double responseRate = ((double) respondents / totalParticipants) * 100;
|
||||
|
||||
model.addAttribute("totalParticipants", totalParticipants);
|
||||
model.addAttribute("respondents", respondents);
|
||||
model.addAttribute("nonRespondents", nonRespondents);
|
||||
model.addAttribute("responseRate", String.format("%.2f", responseRate) + "%");
|
||||
|
||||
|
||||
return "/oprtn/fndthEnhanceTrn/popup/lctrEvalPopup";
|
||||
}
|
||||
|
||||
|
||||
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/selectSrvyInfoAjax.do")
|
||||
public ModelAndView fndtnInAdminSelectSrvyInfoAjax( HttpServletRequest request
|
||||
, ModelMap model
|
||||
, VEEduAplctVO veEduAplctVO
|
||||
, QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception {
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
try {
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||
if (loginVO == null) {
|
||||
modelAndView.addObject("result", "fail");
|
||||
modelAndView.addObject("msg", "로그인 해주세요.");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
List<QustnrRespondInfoVO> qustnrRespondInfoVOList = egovQustnrRespondInfoService.selectQustnrDetail(qustnrRespondInfoVO);
|
||||
|
||||
modelAndView.addObject("data", qustnrRespondInfoVOList);
|
||||
modelAndView.addObject("respondId", qustnrRespondInfoVOList.get(0).getRespondId());
|
||||
modelAndView.addObject("result", "success");
|
||||
}catch(Exception ex) {
|
||||
System.out.println("Exception vEEduAplctOnlnService.updateBulk");
|
||||
modelAndView.addObject("result", "fail");
|
||||
modelAndView.addObject("msg", "관리자에게 문의해 주세요");
|
||||
}
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @methodName : adminMergeSrvyInfoAjax
|
||||
* @author : 이호영
|
||||
* @date : 2023.11.27
|
||||
* @description : 관리자 설문결과 update
|
||||
* @param request
|
||||
* @param model
|
||||
* @param veEduAplctVO
|
||||
* @param qustnrRespondInfoVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/mergeSrvyInfoAjax.do")
|
||||
public ModelAndView adminMergeSrvyInfoAjax( HttpServletRequest request
|
||||
, ModelMap model
|
||||
, VEEduAplctVO veEduAplctVO
|
||||
, QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception {
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
try {
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||
if (loginVO == null) {
|
||||
modelAndView.addObject("result", "fail");
|
||||
modelAndView.addObject("msg", "로그인 해주세요.");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
qustnrRespondInfoVO.getResultList().stream()
|
||||
.forEach(item -> {
|
||||
|
||||
item.setQustnrTmplatId(qustnrRespondInfoVO.getQustnrTmplatId());
|
||||
item.setRespondId(qustnrRespondInfoVO.getRespondId());
|
||||
item.setFrstRegisterId(qustnrRespondInfoVO.getRespondId());
|
||||
item.setLastUpdusrId(loginVO.getId());
|
||||
item.setEduAplctOrd(veEduAplctVO.getEduAplctOrd());
|
||||
|
||||
if("verySatisfied".equals(item.getResponseRadio())) {
|
||||
item.setVerySatisfied("1");
|
||||
}
|
||||
if("satisfied".equals(item.getResponseRadio())) {
|
||||
item.setSatisfied("1");
|
||||
}
|
||||
if("neither".equals(item.getResponseRadio())) {
|
||||
item.setNeither("1");
|
||||
}
|
||||
if("dissatisfied".equals(item.getResponseRadio())) {
|
||||
item.setDissatisfied("1");
|
||||
}
|
||||
if("veryDissatisfied".equals(item.getResponseRadio())) {
|
||||
item.setVeryDissatisfied("1");
|
||||
}
|
||||
|
||||
try {
|
||||
egovQustnrRespondInfoService.updateSrvyInfo(item);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
}catch(Exception ex) {
|
||||
System.out.println("Exception vEEduAplctOnlnService.updateBulk");
|
||||
}
|
||||
modelAndView.addObject("result", "success");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* @methodName : adminDelSrvyInfoAjax
|
||||
* @author : 이호영
|
||||
* @date : 2023.11.27
|
||||
* @description : 관리자 설문결과 del
|
||||
* @param request
|
||||
* @param model
|
||||
* @param veEduAplctVO
|
||||
* @param qustnrRespondInfoVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/kccadr/oprtn/fndthEnhanceTrn/delSrvyInfoAjax.do")
|
||||
public ModelAndView adminDelSrvyInfoAjax( HttpServletRequest request
|
||||
, ModelMap model
|
||||
, VEEduAplctVO veEduAplctVO
|
||||
, QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception {
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
try {
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||
if (loginVO == null) {
|
||||
modelAndView.addObject("result", "fail");
|
||||
modelAndView.addObject("msg", "로그인 해주세요.");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
qustnrRespondInfoVO.getResultList().stream()
|
||||
.forEach(item -> {
|
||||
|
||||
item.setQustnrTmplatId(qustnrRespondInfoVO.getQustnrTmplatId());
|
||||
item.setRespondId(qustnrRespondInfoVO.getRespondId());
|
||||
item.setFrstRegisterId(qustnrRespondInfoVO.getRespondId());
|
||||
item.setLastUpdusrId(loginVO.getId());
|
||||
item.setEduAplctOrd(veEduAplctVO.getEduAplctOrd());
|
||||
|
||||
try {
|
||||
egovQustnrRespondInfoService.deleteStatusFormlettnqestnrrslt(item);
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
|
||||
}catch(Exception ex) {
|
||||
System.out.println("Exception vEEduAplctOnlnService.updateBulk");
|
||||
}
|
||||
modelAndView.addObject("result", "success");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
<typeAlias alias="vEEduAplctVO" type="kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO"/>
|
||||
<typeAlias alias="QustnrRespondInfoVO" type="kcc.let.uss.olp.qri.service.QustnrRespondInfoVO"/>
|
||||
<typeAlias alias="qustnrRespondManageVO" type="kcc.let.uss.olp.qrm.service.QustnrRespondManageVO"/>
|
||||
<typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
|
||||
|
||||
|
||||
<select id="QustnrRespondInfo.selectSiteIdQustnrTmplat" parameterClass="QustnrRespondInfoVO" resultClass="QustnrRespondInfoVO">
|
||||
@ -720,11 +721,45 @@
|
||||
AND edu_chasi_ord = #eduChasiOrd#
|
||||
</delete>
|
||||
|
||||
<delete id="QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt_bak" parameterClass="vEEduAplctVO">
|
||||
<delete id="QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt_bak" parameterClass="VEPrcsDetailVO">
|
||||
/* QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt_bak */
|
||||
DELETE FROM lettnqestnrrslt
|
||||
WHERE 1=1
|
||||
AND edu_aplct_ord = #eduAplctOrd#
|
||||
AND edu_chasi_ord = #eduChasiOrd#
|
||||
</delete>
|
||||
|
||||
<select id="QustnrRespondInfo.selectQustnr5060" parameterClass="VEPrcsDetailVO" resultClass="QustnrRespondInfoVO">
|
||||
/* QustnrRespondInfo.selectQustnr5060 */
|
||||
SELECT
|
||||
a.qustnr_tmplat_id AS qustnrTmplatId,
|
||||
a.qestnr_id AS qestnrId,
|
||||
a.qustnr_qesitm_id AS qustnrQesitmId,
|
||||
a.qustnr_rslt_id AS qustnrRsltId,
|
||||
a.edu_aplct_ord AS eduAplctOrd,
|
||||
a.edu_chasi_ord AS eduChasiOrd,
|
||||
a.respond_id AS respondId,
|
||||
a.very_satisfied AS verySatisfied,
|
||||
a.satisfied AS satisfied,
|
||||
a.neither AS neither,
|
||||
a.dissatisfied AS dissatisfied,
|
||||
a.very_dissatisfied AS veryDissatisfied,
|
||||
a.answer AS answer,
|
||||
a.qustnr_iem_id AS qustnrIemId
|
||||
FROM
|
||||
LETTNQESTNRRSLTDETAIL a
|
||||
WHERE
|
||||
RESPOND_ID = #respondId#
|
||||
AND EDU_APLCT_ORD = #eduAplctOrd#
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<delete id="QustnrRespondInfo.deleteStatusFormlettnqestnrrslt" parameterClass="QustnrRespondInfoVO">
|
||||
/* QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt */
|
||||
DELETE FROM lettnqestnrrsltDetail
|
||||
WHERE 1=1
|
||||
AND edu_aplct_ord = #eduAplctOrd#
|
||||
AND respond_id = #respondId#
|
||||
</delete>
|
||||
</sqlMap>
|
||||
@ -128,7 +128,6 @@
|
||||
AND sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 강사 수정 C -->
|
||||
<update id="cndtnTrgtInfoMngDAO.update" parameterClass="CndtnPrcsInfoMngVO">
|
||||
|
||||
|
||||
@ -28,6 +28,7 @@
|
||||
<head>
|
||||
<title>교육과정관리</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<script type="text/javascript" src="<c:url value='/js/web/popup.js'/>" ></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function(){
|
||||
@ -191,10 +192,39 @@
|
||||
|
||||
}
|
||||
|
||||
//설문조사 결과
|
||||
function fncInstrCostInfo(eduId, userId) { //메뉴생성 화면 호출
|
||||
var form = document.popupForm;
|
||||
|
||||
form.eduAplctOrd.value = eduId;
|
||||
form.respondId.value = userId;
|
||||
// form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
|
||||
form.action = "<c:url value='/kccadr/oprtn/fndthEnhanceTrn/popup/lctrEvalPopup.do'/>";
|
||||
openPopupAndSubmitForm('popupForm', 'popupForm', 900, 1200);
|
||||
}
|
||||
|
||||
/*
|
||||
function fnCnclPopup(eduAplctOrd, prcsAplctPrdOrd) {
|
||||
|
||||
var form = document.cnclPopupForm;
|
||||
|
||||
form.eduAplctOrd.value = eduAplctOrd;
|
||||
form.prcsAplctPrdOrd.value = prcsAplctPrdOrd;
|
||||
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/popup/cnclPopup.do'/>";
|
||||
openPopupAndSubmitForm('cnclPopupForm', 'cnclPopupForm', 700, 380);
|
||||
|
||||
}
|
||||
*/
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<form id="popupForm" name="popupForm" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd"/>
|
||||
<input type="hidden" name="respondId" id="respondId"/>
|
||||
</form>
|
||||
<form id="instrForm" name="instrForm" method="post">
|
||||
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
|
||||
<input type="hidden" name="userId" id="userId"/>
|
||||
@ -453,7 +483,8 @@
|
||||
<td>
|
||||
<c:choose>
|
||||
<c:when test="${list.qestRsltExists }">
|
||||
<button type="button" class="btn_type04" onclick="fn_qestnr('<c:out value="${list.qestnrId }"/>');">설문결과</button>
|
||||
<%-- <button type="button" class="btn_type04" onclick="fncInstrCostInfo('<c:out value="${list.qestnrId }"/>');">설문결과</button> --%>
|
||||
<button type="button" class="btn_type04" onclick="fncInstrCostInfo('${list.eduAplctOrd }', '${list.userId }');">설문결과</button>
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
미입력
|
||||
|
||||
@ -520,7 +520,7 @@
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<tr>
|
||||
<td colspan="7">신청자가 없습니다.</td>
|
||||
<td colspan="5">신청자가 없습니다.</td>
|
||||
</tr>
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
|
||||
@ -32,110 +32,277 @@
|
||||
<title>강의배정팝업</title>
|
||||
<script type="text/javaScript" language="javascript">
|
||||
$(document).ready(function(){
|
||||
numberSum();
|
||||
$.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);
|
||||
|
||||
$("input:text[numberOnly]").on("keyup", function() {
|
||||
$(this).val($(this).val().replace(/[^0-9]/g,""));
|
||||
$(this).val($(this).val().replace(/\B(?=(\d{3})+(?!\d))/g, ','));
|
||||
numberSum();
|
||||
// update면 선택한 목록 가져오기
|
||||
// if(action == 'update'){
|
||||
fn_selectQestnTbody();
|
||||
// }
|
||||
}
|
||||
,error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function numberSum(){
|
||||
// 강사료 계산 [시작]
|
||||
var instrFee = $("#instrFee").val();
|
||||
instrFee = instrFee.replaceAll(",", "");
|
||||
|
||||
var trafficFee = $("#trafficFee").val();
|
||||
trafficFee = trafficFee.replaceAll(",", "");
|
||||
// 설문조사 문항 가져오기
|
||||
function fn_makeQestnTbody(returnData){
|
||||
|
||||
var instrFeeSum = Number(instrFee) + Number(trafficFee);
|
||||
$('#qustnrTmplatId').val(returnData.qustnrTmplatId);
|
||||
$('#qestnrId').val(returnData.qestnrId);
|
||||
|
||||
$("#instrFeeSum").val(instrFeeSum);
|
||||
$("#instrFeeSum").val($("#instrFeeSum").val().replace(/\B(?=(\d{3})+(?!\d))/g, ','));
|
||||
|
||||
// 강사료 계산 [끝]
|
||||
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);
|
||||
});
|
||||
|
||||
// 전체 계산 [시작]
|
||||
var totalSum;
|
||||
$("#totalSum").val(instrFeeSum);
|
||||
$("#totalSum").val($("#totalSum").val().replace(/\B(?=(\d{3})+(?!\d))/g, ','));
|
||||
// 전체 계산 [끝]
|
||||
}
|
||||
|
||||
function fnSaveFee(flag){
|
||||
var msg = "";
|
||||
var msgDetail = "";
|
||||
function fn_selectQestnTbody(){
|
||||
|
||||
$("#instrFee").val($("#instrFee").val().replaceAll(',',''));
|
||||
$("#trafficFee").val($("#trafficFee").val().replaceAll(',',''));
|
||||
var data = new FormData(document.getElementById("createForm"));
|
||||
|
||||
if(flag == 'Y') {
|
||||
msg = "확정";
|
||||
msgDetail = "(확정 후에는 수정이 불가능합니다.)"
|
||||
} else {
|
||||
msg = "저장(미확정)"
|
||||
}
|
||||
$.ajax({
|
||||
type:"POST"
|
||||
,url:"${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/selectSrvyInfoAjax.do"
|
||||
,data: data
|
||||
,dataType:'json'
|
||||
,async: false
|
||||
,processData: false
|
||||
,contentType: false
|
||||
,cache: false
|
||||
,success:function(returnData){
|
||||
if(returnData.result == 'success'){
|
||||
$('#qestnrRespondId').val(returnData.respondId);
|
||||
$.each(returnData.data, function(index, item) {
|
||||
console.log('#'+item.verySatisfied+'_'+index);
|
||||
|
||||
$("#sbmtYn").val(flag);
|
||||
$('#qustnrRsltId'+'_'+index).val(item.qustnrRsltId);
|
||||
|
||||
var data1 = new FormData(document.getElementById("createForm"));
|
||||
|
||||
if (confirm(msg+" 하시겠습니까?" +"\n"+msgDetail)) {
|
||||
if(item.verySatisfied == '1') {
|
||||
$('#verySatisfied'+'_'+index).prop('checked', true);
|
||||
}
|
||||
if(item.satisfied == '1') {
|
||||
$('#satisfied'+'_'+index).prop('checked', true);
|
||||
}
|
||||
if(item.neither == '1') {
|
||||
$('#neither'+'_'+index).prop('checked', true);
|
||||
}
|
||||
if(item.dissatisfied == '1') {
|
||||
$('#dissatisfied'+'_'+index).prop('checked', true);
|
||||
}
|
||||
if(item.veryDissatisfied == '1') {
|
||||
$('#veryDissatisfied'+'_'+index).prop('checked', true);
|
||||
}
|
||||
});
|
||||
console.log('returnData : ', returnData);
|
||||
|
||||
}else if(returnData.result == 'fail'){
|
||||
alert(returnData.msg);
|
||||
// location.href="${pageContext.request.contextPath}/web/user/login/ssoLogin.do?test=test";
|
||||
}
|
||||
}
|
||||
,error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function fnSave(){
|
||||
|
||||
if(confirm("수정 하시겠습니까?")){
|
||||
var data = new FormData(document.getElementById("createForm"));
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "${pageContext.request.contextPath}/kccadr/oprtn/adultVisitEdu/popup/instrFeeRegAjax.do",
|
||||
//data: JSON.stringify(data),
|
||||
data: data1,
|
||||
dataType:'json',
|
||||
async: false,
|
||||
processData: false,
|
||||
contentType: false,
|
||||
cache: false,
|
||||
success: function (returnData, status) {
|
||||
type:"POST"
|
||||
,url:"${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/mergeSrvyInfoAjax.do"
|
||||
,data: data
|
||||
,dataType:'json'
|
||||
,async: false
|
||||
,processData: false
|
||||
,contentType: false
|
||||
,cache: false
|
||||
,success:function(returnData){
|
||||
if(returnData.result == 'success'){
|
||||
alert("정상적으로 "+ msg +" 되었습니다.");
|
||||
opener.location.reload();
|
||||
|
||||
alert("설문결과가 수정 되었습니다.");
|
||||
self.close();
|
||||
}else{
|
||||
alert(returnData.message);
|
||||
}else if(returnData.result == 'fail'){
|
||||
alert(returnData.msg);
|
||||
location.href="${pageContext.request.contextPath}/web/user/login/ssoLogin.do?test=test";
|
||||
}
|
||||
},
|
||||
error: function (e) { alert("저장에 실패하였습니다."); console.log("ERROR : ", e); }
|
||||
}
|
||||
,error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function fncPopClose(){
|
||||
self.close();
|
||||
function fnDel(){
|
||||
|
||||
if(confirm("설문결과를 삭제 하시겠습니까?")){
|
||||
var data = new FormData(document.getElementById("createForm"));
|
||||
|
||||
$.ajax({
|
||||
type:"POST"
|
||||
,url:"${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/delSrvyInfoAjax.do"
|
||||
,data: data
|
||||
,dataType:'json'
|
||||
,async: false
|
||||
,processData: false
|
||||
,contentType: false
|
||||
,cache: false
|
||||
,success:function(returnData){
|
||||
if(returnData.result == 'success'){
|
||||
|
||||
alert("설문결과가 삭제 되었습니다.");
|
||||
window.opener.location.reload();
|
||||
self.close();
|
||||
}else if(returnData.result == 'fail'){
|
||||
alert(returnData.msg);
|
||||
// location.href="${pageContext.request.contextPath}/web/user/login/ssoLogin.do?test=test";
|
||||
}
|
||||
}
|
||||
,error:function(request , status, error){
|
||||
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<form:form id="createForm" name="createForm" method="post" commandName="vEInstrFeeAcmdtVO" onsubmit="return false;">
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="<c:out value="${info.eduAplctOrd}" />">
|
||||
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="<c:out value="${info.eduChasiOrd}" />">
|
||||
<input type="hidden" name="instrFeeOrd" id="instrFeeOrd" value="<c:out value="${info.instrFeeOrd}" />" />
|
||||
<input type="hidden" name="sbmtYn" id="sbmtYn" value="" />
|
||||
<input type="hidden" name="qustnrTmplatId" id="qustnrTmplatId" value="QTMPLA_0000000000001">
|
||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="<c:out value="${vEPrcsDetailVO.eduAplctOrd}" />">
|
||||
<input type="hidden" name="respondId" id="respondId" value="<c:out value="${vEPrcsDetailVO.respondId}" />">
|
||||
<div class="area_popup">
|
||||
<div class="cont_popup">
|
||||
|
||||
<div class="tb_tit01">
|
||||
<p>교육 내용에 대한 전반적 만족도 평가</p>
|
||||
</div>
|
||||
<div class="tb_type01">
|
||||
<table>
|
||||
|
||||
<colgroup>
|
||||
<col style="width: 120px;">
|
||||
<col style="width: auto;">
|
||||
<col style="width: 120px;">
|
||||
<col style="width: auto;">
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>참석자</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:out value="${totalParticipants }" />
|
||||
</td>
|
||||
<th scope="row">
|
||||
<p>응답율</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:out value="${responseRate }" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">
|
||||
<p>응답자</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:out value="${respondents }" />
|
||||
</td>
|
||||
<th scope="row">
|
||||
<p>무응답</p>
|
||||
</th>
|
||||
<td>
|
||||
<c:out value="${nonRespondents }" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<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 id="qestnTbody">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="btn_wrap_pop btn_layout01">
|
||||
<div class="btn_left">
|
||||
</div>
|
||||
<div class="btn_center">
|
||||
<c:if test="${info != null }">
|
||||
<c:if test="${info.sbmtYn ne 'Y'}">
|
||||
<button type="button" class="btn_type04" onclick="fnSaveFee('Y')">확정</button>
|
||||
<button type="button" class="btn_type04" onclick="fnSaveFee('N')">저장</button>
|
||||
</c:if>
|
||||
</c:if>
|
||||
|
||||
<button type="button" class="btn_type04" onclick="fnSave()">수정</button>
|
||||
<button type="button" class="btn_type05" onclick="fnDel()">삭제</button>
|
||||
<button type="button" class="btn_type02" onclick="fncPopClose()">닫기</button>
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
|
||||
@ -423,6 +423,7 @@ $(document).ready(function(){
|
||||
|
||||
<!-- 강의만족도 결과 등록 팝업 -->
|
||||
<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}">
|
||||
|
||||
@ -655,6 +655,8 @@ $(document).ready(function(){
|
||||
|
||||
<!-- 강의만족도 결과 등록 팝업 -->
|
||||
<form id="srvyPopupForm" name="srvyPopupForm" method="post" >
|
||||
|
||||
<input type="hidden" name="lctrDivCd" id="lctrDivCd" value="60">
|
||||
<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}">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user