Merge branch 'hylee' into advc

This commit is contained in:
hylee 2023-11-28 10:29:04 +09:00
commit ef4b387b49
15 changed files with 565 additions and 86 deletions

View File

@ -6,6 +6,7 @@ import java.util.Map;
import kcc.com.cmm.ComDefaultVO; import kcc.com.cmm.ComDefaultVO;
import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO; import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
/** /**
* 설문조사 Service Class 구현 * 설문조사 Service Class 구현
* @author 공통서비스 장동한 * @author 공통서비스 장동한
@ -164,4 +165,8 @@ public interface EgovQustnrRespondInfoService {
void deleteChasiStatus(VEEduAplctVO vEEduAplctVO); void deleteChasiStatus(VEEduAplctVO vEEduAplctVO);
public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO); public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO);
public List<QustnrRespondInfoVO> selectQustnr5060(VEPrcsDetailVO vEPrcsDetailVO);
public void deleteStatusFormlettnqestnrrslt(QustnrRespondInfoVO item);
} }

View File

@ -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.qri.service.QustnrRespondInfoVO;
import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO; import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import javax.annotation.Resource; import javax.annotation.Resource;
@ -249,5 +250,13 @@ public class EgovQustnrRespondInfoServiceImpl extends EgovAbstractServiceImpl im
public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO) { public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO) {
return dao.selectQustnrDetail(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);
}
} }

View File

@ -8,6 +8,7 @@ import kcc.com.cmm.ComDefaultVO;
import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO; import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO; import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
/** /**
@ -214,4 +215,12 @@ public class QustnrRespondInfoDao extends EgovAbstractDAO {
public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO) { public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO) {
return (List<QustnrRespondInfoVO>) list("QustnrRespondInfo.selectQustnrDetail", 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);
}
} }

View File

@ -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.VEPrcsMIXService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; 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; import kcc.ve.oprtn.qestnr.service.VEALettnQestnrMIXService;
/** /**
@ -167,7 +169,10 @@ public class FndtnEnhanceTrnController {
@Resource(name = "egovQustnrRespondInfoService") @Resource(name = "egovQustnrRespondInfoService")
private EgovQustnrRespondInfoService egovQustnrRespondInfoService; private EgovQustnrRespondInfoService egovQustnrRespondInfoService;
//기소 대상자 관리
@Resource(name = "cndtnTrgtInfoMngService")
private CndtnTrgtMngService cndtnTrgtInfoMngService;
// 설문 util // 설문 util
@ -780,7 +785,6 @@ public class FndtnEnhanceTrnController {
modelAndView.addObject("msg", "로그인 해주세요."); modelAndView.addObject("msg", "로그인 해주세요.");
return modelAndView; return modelAndView;
} }
qustnrRespondInfoVO.getResultList().stream() qustnrRespondInfoVO.getResultList().stream()
.forEach(item -> { .forEach(item -> {
@ -804,7 +808,7 @@ public class FndtnEnhanceTrnController {
} }
if("veryDissatisfied".equals(item.getResponseRadio())) { if("veryDissatisfied".equals(item.getResponseRadio())) {
item.setVeryDissatisfied("1"); item.setVeryDissatisfied("1");
} }
try { try {
if ("update".equals(qustnrRespondInfoVO.getQustnrIemType())) { if ("update".equals(qustnrRespondInfoVO.getQustnrIemType())) {

View File

@ -159,8 +159,9 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
private String send; private String send;
private String chrgNm; private String chrgNm;
private String insttNm; private String insttNm;
private String instrNm;
private String respondId;
private String lctrPlanRsltAtchFileId; //강의계획서 첨부파일 아이디 private String lctrPlanRsltAtchFileId; //강의계획서 첨부파일 아이디
@ -789,18 +790,22 @@ public class VEPrcsDetailVO extends ComDefaultVO implements Serializable {
public void setInsttNm(String insttNm) { public void setInsttNm(String insttNm) {
this.insttNm = insttNm; this.insttNm = insttNm;
} }
public String getInstrNm() { public String getRespondId() {
return instrNm; return respondId;
} }
public void setInstrNm(String instrNm) { public void setRespondId(String respondId) {
this.instrNm = instrNm; this.respondId = respondId;
} }
<<<<<<< HEAD
public String getLctrPlanRsltAtchFileId() { public String getLctrPlanRsltAtchFileId() {
return lctrPlanRsltAtchFileId; return lctrPlanRsltAtchFileId;
} }
public void setLctrPlanRsltAtchFileId(String lctrPlanRsltAtchFileId) { public void setLctrPlanRsltAtchFileId(String lctrPlanRsltAtchFileId) {
this.lctrPlanRsltAtchFileId = lctrPlanRsltAtchFileId; this.lctrPlanRsltAtchFileId = lctrPlanRsltAtchFileId;
} }
=======
>>>>>>> refs/heads/hylee
} }

View File

@ -16,7 +16,7 @@ public interface CndtnTrgtMngService {
void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO); void updateUserId(CndtnTrgtMngVO cndtnTrgtMngVO);
int findCntreqNmber(String reqNmbrTemp); int findCntreqNmber(String reqNmbrTemp);

View File

@ -57,7 +57,6 @@ public class CndtnTrgtMngServiceImpl implements CndtnTrgtMngService {
public int findCntreqNmber(String reqNmbrTemp) { public int findCntreqNmber(String reqNmbrTemp) {
return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp); return cndtnTrgtInfoMngDAO.findCntreqNmber(reqNmbrTemp);
} }
/* /*
//C //C
public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception { public void insert(VEPrcsDetailVO vEPrcsDetailVO) throws Exception {

View File

@ -28,7 +28,12 @@ import kcc.com.cmm.service.impl.CmmUseDAO;
import kcc.com.cmm.util.StringUtil; import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO; 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.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.VEEduAplctService;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduChasiService;
@ -137,6 +142,9 @@ public class FndthPrcsAplctPrdMngController {
//과정신청기간순번 //과정신청기간순번
@Resource(name="vePrcsAplctPrdEtcGnrService") @Resource(name="vePrcsAplctPrdEtcGnrService")
private EgovIdGnrService vePrcsAplctPrdEtcGnrService; private EgovIdGnrService vePrcsAplctPrdEtcGnrService;
@Resource(name = "egovQustnrRespondInfoService")
private EgovQustnrRespondInfoService egovQustnrRespondInfoService;
/* /*
// 교육신청 서비스단 // 교육신청 서비스단
@ -344,7 +352,7 @@ public class FndthPrcsAplctPrdMngController {
paramVO.setSbmtYn("Y"); paramVO.setSbmtYn("Y");
if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) { if(StringUtils.isNotEmpty(vEPrcsDetailVO.getSearchStatus())) {
// 20 이수
String searchQuery = "AND vadi.APLCT_STATE_CD = "+vEPrcsDetailVO.getSearchStatus(); String searchQuery = "AND vadi.APLCT_STATE_CD = "+vEPrcsDetailVO.getSearchStatus();
paramVO.setSearchQuery(searchQuery); 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;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// //

View File

@ -9,6 +9,7 @@
<typeAlias alias="vEEduAplctVO" type="kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO"/> <typeAlias alias="vEEduAplctVO" type="kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO"/>
<typeAlias alias="QustnrRespondInfoVO" type="kcc.let.uss.olp.qri.service.QustnrRespondInfoVO"/> <typeAlias alias="QustnrRespondInfoVO" type="kcc.let.uss.olp.qri.service.QustnrRespondInfoVO"/>
<typeAlias alias="qustnrRespondManageVO" type="kcc.let.uss.olp.qrm.service.QustnrRespondManageVO"/> <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"> <select id="QustnrRespondInfo.selectSiteIdQustnrTmplat" parameterClass="QustnrRespondInfoVO" resultClass="QustnrRespondInfoVO">
@ -720,11 +721,45 @@
AND edu_chasi_ord = #eduChasiOrd# AND edu_chasi_ord = #eduChasiOrd#
</delete> </delete>
<delete id="QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt_bak" parameterClass="vEEduAplctVO"> <delete id="QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt_bak" parameterClass="VEPrcsDetailVO">
/* QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt_bak */ /* QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt_bak */
DELETE FROM lettnqestnrrslt DELETE FROM lettnqestnrrslt
WHERE 1=1 WHERE 1=1
AND edu_aplct_ord = #eduAplctOrd# AND edu_aplct_ord = #eduAplctOrd#
AND edu_chasi_ord = #eduChasiOrd# AND edu_chasi_ord = #eduChasiOrd#
</delete> </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> </sqlMap>

View File

@ -127,7 +127,6 @@
1=1 1=1
AND sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd# AND sspn_idtmt_trgt_ord = #sspnIdtmtTrgtOrd#
</select> </select>
<!-- 강사 수정 C --> <!-- 강사 수정 C -->
<update id="cndtnTrgtInfoMngDAO.update" parameterClass="CndtnPrcsInfoMngVO"> <update id="cndtnTrgtInfoMngDAO.update" parameterClass="CndtnPrcsInfoMngVO">

View File

@ -28,6 +28,7 @@
<head> <head>
<title>교육과정관리</title> <title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <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"> <script type="text/javascript">
$(document).ready(function(){ $(document).ready(function(){
@ -190,11 +191,40 @@
}); });
} }
//설문조사 결과
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> </script>
</head> </head>
<body> <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"> <form id="instrForm" name="instrForm" method="post">
<input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/> <input type="hidden" name="prcsAplctPrdOrd" id="prcsAplctPrdOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdOrd}' />"/>
<input type="hidden" name="userId" id="userId"/> <input type="hidden" name="userId" id="userId"/>
@ -453,7 +483,8 @@
<td> <td>
<c:choose> <c:choose>
<c:when test="${list.qestRsltExists }"> <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:when>
<c:otherwise> <c:otherwise>
미입력 미입력

View File

@ -520,7 +520,7 @@
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<tr> <tr>
<td colspan="7">신청자가 없습니다.</td> <td colspan="5">신청자가 없습니다.</td>
</tr> </tr>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>

View File

@ -32,110 +32,277 @@
<title>강의배정팝업</title> <title>강의배정팝업</title>
<script type="text/javaScript" language="javascript"> <script type="text/javaScript" language="javascript">
$(document).ready(function(){ $(document).ready(function(){
numberSum(); $.ajax({
type:"POST"
$("input:text[numberOnly]").on("keyup", function() { ,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/selectQustnrCommonAjax.do"
$(this).val($(this).val().replace(/[^0-9]/g,"")); ,data: {
$(this).val($(this).val().replace(/\B(?=(\d{3})+(?!\d))/g, ',')); "lctrDivCd" : "50" // 기반강화 -> 기소유예(60)도 같이써야함
numberSum(); // ,"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 numberSum(){
// 강사료 계산 [시작] // 설문조사 문항 가져오기
var instrFee = $("#instrFee").val(); function fn_makeQestnTbody(returnData){
instrFee = instrFee.replaceAll(",", "");
var trafficFee = $("#trafficFee").val(); $('#qustnrTmplatId').val(returnData.qustnrTmplatId);
trafficFee = trafficFee.replaceAll(",", ""); $('#qestnrId').val(returnData.qestnrId);
var instrFeeSum = Number(instrFee) + Number(trafficFee);
$("#instrFeeSum").val(instrFeeSum); var data = returnData.Comtnqustnrqesitm; // 이 변수에 AJAX를 통해 가져온 데이터가 저장되어 있다고 가정
$("#instrFeeSum").val($("#instrFeeSum").val().replace(/\B(?=(\d{3})+(?!\d))/g, ','));
$('#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);
});
// 강사료 계산 [끝] }
function fn_selectQestnTbody(){
var data = new FormData(document.getElementById("createForm"));
// 전체 계산 [시작] $.ajax({
var totalSum; type:"POST"
$("#totalSum").val(instrFeeSum); ,url:"${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/selectSrvyInfoAjax.do"
$("#totalSum").val($("#totalSum").val().replace(/\B(?=(\d{3})+(?!\d))/g, ',')); ,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);
$('#qustnrRsltId'+'_'+index).val(item.qustnrRsltId);
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 fnSaveFee(flag){ function fnSave(){
var msg = "";
var msgDetail = "";
$("#instrFee").val($("#instrFee").val().replaceAll(',','')); if(confirm("수정 하시겠습니까?")){
$("#trafficFee").val($("#trafficFee").val().replaceAll(',','')); var data = new FormData(document.getElementById("createForm"));
if(flag == 'Y') { $.ajax({
msg = "확정"; type:"POST"
msgDetail = "(확정 후에는 수정이 불가능합니다.)" ,url:"${pageContext.request.contextPath}/kccadr/oprtn/fndthEnhanceTrn/mergeSrvyInfoAjax.do"
} else { ,data: data
msg = "저장(미확정)" ,dataType:'json'
} ,async: false
,processData: false
$("#sbmtYn").val(flag); ,contentType: false
,cache: false
var data1 = new FormData(document.getElementById("createForm")); ,success:function(returnData){
if (confirm(msg+" 하시겠습니까?" +"\n"+msgDetail)) {
$.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) {
if(returnData.result == 'success'){ if(returnData.result == 'success'){
alert("정상적으로 "+ msg +" 되었습니다.");
opener.location.reload(); alert("설문결과가 수정 되었습니다.");
self.close(); self.close();
}else{ }else if(returnData.result == 'fail'){
alert(returnData.message); 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 fnDel(){
function fncPopClose(){ if(confirm("설문결과를 삭제 하시겠습니까?")){
self.close(); 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> </script>
</head> </head>
<body> <body>
<form:form id="createForm" name="createForm" method="post" commandName="vEInstrFeeAcmdtVO" onsubmit="return false;"> <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="qustnrTmplatId" id="qustnrTmplatId" value="QTMPLA_0000000000001">
<input type="hidden" name="eduChasiOrd" id="eduChasiOrd" value="<c:out value="${info.eduChasiOrd}" />"> <input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="<c:out value="${vEPrcsDetailVO.eduAplctOrd}" />">
<input type="hidden" name="instrFeeOrd" id="instrFeeOrd" value="<c:out value="${info.instrFeeOrd}" />" /> <input type="hidden" name="respondId" id="respondId" value="<c:out value="${vEPrcsDetailVO.respondId}" />">
<input type="hidden" name="sbmtYn" id="sbmtYn" value="" />
<div class="area_popup"> <div class="area_popup">
<div class="cont_popup"> <div class="cont_popup">
<div class="tb_tit01"> <div class="tb_tit01">
<p>교육 내용에 대한 전반적 만족도 평가</p> <p>교육 내용에 대한 전반적 만족도 평가</p>
</div> </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_wrap_pop btn_layout01">
<div class="btn_left"> <div class="btn_left">
</div> </div>
<div class="btn_center"> <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> <button type="button" class="btn_type02" onclick="fncPopClose()">닫기</button>
</div> </div>
<div class="btn_right"> <div class="btn_right">

View File

@ -423,6 +423,7 @@ $(document).ready(function(){
<!-- 강의만족도 결과 등록 팝업 --> <!-- 강의만족도 결과 등록 팝업 -->
<form id="srvyPopupForm" name="srvyPopupForm" method="post" > <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="eduAplctOrd" id="eduAplctOrd" value="">
<input type="hidden" name="qustnrTmplatId" id="qustnrTmplatId" value="${qustnrTmplatId}"> <input type="hidden" name="qustnrTmplatId" id="qustnrTmplatId" value="${qustnrTmplatId}">
<input type="hidden" name="qestnrId" id="qestnrId" value="${qestnrId}"> <input type="hidden" name="qestnrId" id="qestnrId" value="${qestnrId}">

View File

@ -655,6 +655,8 @@ $(document).ready(function(){
<!-- 강의만족도 결과 등록 팝업 --> <!-- 강의만족도 결과 등록 팝업 -->
<form id="srvyPopupForm" name="srvyPopupForm" method="post" > <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="eduAplctOrd" id="eduAplctOrd" value="">
<input type="hidden" name="qustnrTmplatId" id="qustnrTmplatId" value="${qustnrTmplatId}"> <input type="hidden" name="qustnrTmplatId" id="qustnrTmplatId" value="${qustnrTmplatId}">
<input type="hidden" name="qestnrId" id="qestnrId" value="${qestnrId}"> <input type="hidden" name="qestnrId" id="qestnrId" value="${qestnrId}">