사용자 기소유예 설문 등록/수정 완료
This commit is contained in:
parent
ee8626ced2
commit
31db3d59c4
@ -46,15 +46,17 @@ public class QustnrCommonUtil {
|
|||||||
)throws Exception{
|
)throws Exception{
|
||||||
//설문 문항 정보
|
//설문 문항 정보
|
||||||
{
|
{
|
||||||
|
System.out.println("===========!!===========");
|
||||||
VEAQestnrVO vEAQestnrVO = new VEAQestnrVO();
|
VEAQestnrVO vEAQestnrVO = new VEAQestnrVO();
|
||||||
vEAQestnrVO.setSiteId(VeConstants.LCTR_DIV_CD_10); //청소년
|
vEAQestnrVO.setSiteId(p_siteId); //청소년
|
||||||
vEAQestnrVO.setSiteIdCd("10"); //10-기본설문, 20-신청자설문, 30-강사설문
|
vEAQestnrVO.setSiteIdCd(p_siteIdCd); //10-기본설문, 20-신청자설문, 30-강사설문
|
||||||
vEAQestnrVO = p_vEALettnQestnrMIXService.selectDetail_MIX_LQI_02(vEAQestnrVO);
|
vEAQestnrVO = p_vEALettnQestnrMIXService.selectDetail_MIX_LQI_02(vEAQestnrVO);
|
||||||
|
|
||||||
//문항정보
|
//문항정보
|
||||||
Map <String, Object> commandMap =new HashMap<String, Object>();
|
Map <String, Object> commandMap =new HashMap<String, Object>();
|
||||||
commandMap.put("qestnrTmplatId", "QTMPLA_0000000000001");
|
commandMap.put("qestnrTmplatId", p_qestnrTmplatId);
|
||||||
commandMap.put("qestnrId",vEAQestnrVO.getQestnrId()); //문제 ID
|
commandMap.put("qestnrId",vEAQestnrVO.getQestnrId()); //문제 ID
|
||||||
|
System.out.println("=====");
|
||||||
p_model.addAttribute("Comtnqustnrqesitm", p_egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap));
|
p_model.addAttribute("Comtnqustnrqesitm", p_egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap));
|
||||||
p_model.addAttribute("qestnrId", vEAQestnrVO.getQestnrId());
|
p_model.addAttribute("qestnrId", vEAQestnrVO.getQestnrId());
|
||||||
p_model.addAttribute("qustnrTmplatId", vEAQestnrVO.getQustnrTmplatId());
|
p_model.addAttribute("qustnrTmplatId", vEAQestnrVO.getQustnrTmplatId());
|
||||||
|
|||||||
@ -162,4 +162,6 @@ public interface EgovQustnrRespondInfoService {
|
|||||||
void updateQustnrRespondManage(QustnrRespondManageVO qustnrRespondManageVO);
|
void updateQustnrRespondManage(QustnrRespondManageVO qustnrRespondManageVO);
|
||||||
|
|
||||||
void deleteChasiStatus(VEEduAplctVO vEEduAplctVO);
|
void deleteChasiStatus(VEEduAplctVO vEEduAplctVO);
|
||||||
|
|
||||||
|
public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -111,6 +111,10 @@ public class QustnrRespondInfoVO implements Serializable {
|
|||||||
|
|
||||||
private String qustnrIemType = "";
|
private String qustnrIemType = "";
|
||||||
|
|
||||||
|
// 20231124 이호영
|
||||||
|
// 강화 기반은 라디오 버튼이라 변수 추가함
|
||||||
|
private String responseRadio = "";
|
||||||
|
|
||||||
public List<QustnrRespondInfoVO> getResultList() {
|
public List<QustnrRespondInfoVO> getResultList() {
|
||||||
return resultList;
|
return resultList;
|
||||||
}
|
}
|
||||||
@ -449,15 +453,21 @@ public class QustnrRespondInfoVO implements Serializable {
|
|||||||
this.beforeAndAfter = beforeAndAfter;
|
this.beforeAndAfter = beforeAndAfter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public String getQustnrTmplatId() {
|
public String getQustnrTmplatId() {
|
||||||
return qustnrTmplatId;
|
return qustnrTmplatId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void setQustnrTmplatId(String qustnrTmplatId) {
|
public void setQustnrTmplatId(String qustnrTmplatId) {
|
||||||
this.qustnrTmplatId = qustnrTmplatId;
|
this.qustnrTmplatId = qustnrTmplatId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getResponseRadio() {
|
||||||
|
return responseRadio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResponseRadio(String responseRadio) {
|
||||||
|
this.responseRadio = responseRadio;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -245,5 +245,9 @@ public class EgovQustnrRespondInfoServiceImpl extends EgovAbstractServiceImpl im
|
|||||||
public void deleteChasiStatus(VEEduAplctVO vEEduAplctVO) {
|
public void deleteChasiStatus(VEEduAplctVO vEEduAplctVO) {
|
||||||
dao.deleteChasiStatus(vEEduAplctVO);
|
dao.deleteChasiStatus(vEEduAplctVO);
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO) {
|
||||||
|
return dao.selectQustnrDetail(qustnrVO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -210,4 +210,8 @@ public class QustnrRespondInfoDao extends EgovAbstractDAO {
|
|||||||
delete("QustnrRespondInfo.deleteChasiStatusFormLettnqustnrrespondinfo", vEEduAplctVO);
|
delete("QustnrRespondInfo.deleteChasiStatusFormLettnqustnrrespondinfo", vEEduAplctVO);
|
||||||
delete("QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt", vEEduAplctVO);
|
delete("QustnrRespondInfo.deleteChasiStatusFormlettnqestnrrslt", vEEduAplctVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<QustnrRespondInfoVO> selectQustnrDetail(QustnrRespondInfoVO qustnrVO) {
|
||||||
|
return (List<QustnrRespondInfoVO>) list("QustnrRespondInfo.selectQustnrDetail", qustnrVO);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -419,6 +419,7 @@ public class EduEndAdultController {
|
|||||||
|
|
||||||
model.addAttribute("chasiList", vEEduChasiVOList);
|
model.addAttribute("chasiList", vEEduChasiVOList);
|
||||||
|
|
||||||
|
|
||||||
//문항정보
|
//문항정보
|
||||||
try {
|
try {
|
||||||
model = qustnrCommonUtil._qustnrQesItm(
|
model = qustnrCommonUtil._qustnrQesItm(
|
||||||
|
|||||||
@ -27,7 +27,11 @@ 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.CheckFileUtil;
|
import kcc.com.utl.user.service.CheckFileUtil;
|
||||||
import kcc.com.utl.user.service.CheckLoginUtil;
|
import kcc.com.utl.user.service.CheckLoginUtil;
|
||||||
|
import kcc.com.utl.user.service.QustnrCommonUtil;
|
||||||
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.uss.olp.qrm.service.QustnrRespondManageVO;
|
||||||
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
import kcc.let.utl.fcc.service.EgovCryptoUtil;
|
||||||
import kcc.ve.adv.tngr.stngInfo.service.VEACmpltCrtfcMixService;
|
import kcc.ve.adv.tngr.stngInfo.service.VEACmpltCrtfcMixService;
|
||||||
import kcc.ve.aplct.adultVisitEdu.eduAplct.service.EduAplctAdultService;
|
import kcc.ve.aplct.adultVisitEdu.eduAplct.service.EduAplctAdultService;
|
||||||
@ -43,6 +47,7 @@ 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.qestnr.service.VEALettnQestnrMIXService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 교육신청(성인찾아가는교육)
|
* 교육신청(성인찾아가는교육)
|
||||||
@ -156,6 +161,20 @@ public class FndtnEnhanceTrnController {
|
|||||||
@Resource(name = "vEACmpltCrtfcMixService")
|
@Resource(name = "vEACmpltCrtfcMixService")
|
||||||
private VEACmpltCrtfcMixService vEACmpltCrtfcMixService;
|
private VEACmpltCrtfcMixService vEACmpltCrtfcMixService;
|
||||||
|
|
||||||
|
// 설문 복합 VEA_
|
||||||
|
@Resource(name = "vEALettnQestnrMIXService")
|
||||||
|
private VEALettnQestnrMIXService vEALettnQestnrMIXService;
|
||||||
|
|
||||||
|
@Resource(name = "egovQustnrRespondInfoService")
|
||||||
|
private EgovQustnrRespondInfoService egovQustnrRespondInfoService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 설문 util
|
||||||
|
@Resource(name = "qustnrCommonUtil")
|
||||||
|
private QustnrCommonUtil qustnrCommonUtil;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 대시보드 임시
|
* 대시보드 임시
|
||||||
*/
|
*/
|
||||||
@ -652,6 +671,187 @@ public class FndtnEnhanceTrnController {
|
|||||||
|
|
||||||
return "/web/ve/aplct/fndtnEnhanceTrn/eduInfo";
|
return "/web/ve/aplct/fndtnEnhanceTrn/eduInfo";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @methodName : fndthEduPrcsAplctPrdMngRegAjax
|
||||||
|
* @author : 이호영
|
||||||
|
* @date : 2023.11.24
|
||||||
|
* @description : 설문조사 내역 select
|
||||||
|
* @param vEPrcsDetailVO
|
||||||
|
* @param model
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/web/ve/aplct/fndtnEnhanceTrn/selectQustnrCommonAjax.do")
|
||||||
|
public ModelAndView selectQustnrCommonAjax(
|
||||||
|
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
|
||||||
|
, ModelMap model
|
||||||
|
, HttpServletRequest request
|
||||||
|
) throws Exception {
|
||||||
|
|
||||||
|
ModelAndView modelAndView = new ModelAndView();
|
||||||
|
modelAndView.setViewName("jsonView");
|
||||||
|
|
||||||
|
|
||||||
|
//문항정보
|
||||||
|
try {
|
||||||
|
|
||||||
|
model = qustnrCommonUtil._qustnrQesItm(
|
||||||
|
model
|
||||||
|
, vEPrcsDetailVO.getLctrDivCd() //청소년 -10, 성인-20, 체험-30, 기반강화-50 , 기소유예-60 ...VE0011
|
||||||
|
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
|
||||||
|
, "QTMPLA_0000000000001"
|
||||||
|
, vEALettnQestnrMIXService
|
||||||
|
, egovQustnrRespondInfoService
|
||||||
|
);
|
||||||
|
|
||||||
|
}catch(Exception ex) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
modelAndView.addAllObjects(model);
|
||||||
|
|
||||||
|
modelAndView.addObject("result", "success");
|
||||||
|
|
||||||
|
return modelAndView;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @methodName : fndtnmergeSrvyInfoAjax
|
||||||
|
* @author : 이호영
|
||||||
|
* @date : 2023.11.24
|
||||||
|
* @description : 기반 기소 설문조사 등록 및 수정
|
||||||
|
* @param request
|
||||||
|
* @param model
|
||||||
|
* @param veEduAplctVO
|
||||||
|
* @param qustnrRespondInfoVO
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
@RequestMapping("/web/ve/aplct/fndtnEnhanceTrn/mergeSrvyInfoAjax.do")
|
||||||
|
public ModelAndView commonMergeSrvyInfoAjax( 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(loginVO.getId());
|
||||||
|
item.setFrstRegisterId(loginVO.getId());
|
||||||
|
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 {
|
||||||
|
if ("update".equals(qustnrRespondInfoVO.getQustnrIemType())) {
|
||||||
|
egovQustnrRespondInfoService.updateSrvyInfo(item);
|
||||||
|
} else {
|
||||||
|
egovQustnrRespondInfoService.insertSrvyInfo(item);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 설문 문항 결과 등록
|
||||||
|
// for(int i=0; i < qustnrRespondInfoVO.getResultList().size(); i++) {
|
||||||
|
// qustnrRespondInfoVO.getResultList().get(i).setQustnrTmplatId(qustnrRespondInfoVO.getQustnrTmplatId());
|
||||||
|
// qustnrRespondInfoVO.getResultList().get(i).setRespondId(loginVO.getId());
|
||||||
|
// qustnrRespondInfoVO.getResultList().get(i).setFrstRegisterId(loginVO.getId());
|
||||||
|
// qustnrRespondInfoVO.getResultList().get(i).setLastUpdusrId(loginVO.getId());
|
||||||
|
// qustnrRespondInfoVO.getResultList().get(i).setLastUpdusrId(loginVO.getId());
|
||||||
|
// qustnrRespondInfoVO.getResultList().get(i).setEduAplctOrd(veEduAplctVO.getEduAplctOrd());
|
||||||
|
|
||||||
|
// if("update".equals(qustnrRespondInfoVO.getQustnrIemType())) {
|
||||||
|
// egovQustnrRespondInfoService.updateSrvyInfo(qustnrRespondInfoVO.getResultList().get(i));
|
||||||
|
// }else {
|
||||||
|
// egovQustnrRespondInfoService.insertSrvyInfo(qustnrRespondInfoVO.getResultList().get(i));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}catch(Exception ex) {
|
||||||
|
System.out.println("Exception vEEduAplctOnlnService.updateBulk");
|
||||||
|
}
|
||||||
|
modelAndView.addObject("result", "success");
|
||||||
|
return modelAndView;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping("/web/ve/aplct/fndtnEnhanceTrn/selectSrvyInfoAjax.do")
|
||||||
|
public ModelAndView fndtnInSelectSrvyInfoAjax( 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.setEduAplctOrd(veEduAplctVO.getEduAplctOrd());
|
||||||
|
qustnrRespondInfoVO.setRespondId(loginVO.getId());
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
|
|||||||
@ -542,7 +542,7 @@ public class EduEndTngrController {
|
|||||||
ModelAndView modelAndView = new ModelAndView();
|
ModelAndView modelAndView = new ModelAndView();
|
||||||
modelAndView.setViewName("jsonView");
|
modelAndView.setViewName("jsonView");
|
||||||
try {
|
try {
|
||||||
vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_10);
|
vEEduChasiVO.setInstrDiv(VeConstants.LCTR_DIV_CD_20);
|
||||||
|
|
||||||
VEEduChasiVO ChasiInfo = vEEduMIXService.selectChasiInfo(vEEduChasiVO);
|
VEEduChasiVO ChasiInfo = vEEduMIXService.selectChasiInfo(vEEduChasiVO);
|
||||||
ChasiInfo.setInstrNm(egovCryptoUtil.decrypt(ChasiInfo.getInstrNm()));
|
ChasiInfo.setInstrNm(egovCryptoUtil.decrypt(ChasiInfo.getInstrNm()));
|
||||||
|
|||||||
@ -298,7 +298,7 @@ public class EduRsltMngAdultController {
|
|||||||
try {
|
try {
|
||||||
model = qustnrCommonUtil._qustnrQesItm(
|
model = qustnrCommonUtil._qustnrQesItm(
|
||||||
model
|
model
|
||||||
, VeConstants.LCTR_DIV_CD_10 //청소년 -10, 성인-20, ...VE0012
|
, VeConstants.LCTR_DIV_CD_20 //청소년 -10, 성인-20, ...VE0012
|
||||||
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
|
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
|
||||||
, "QTMPLA_0000000000001"
|
, "QTMPLA_0000000000001"
|
||||||
, vEALettnQestnrMIXService
|
, vEALettnQestnrMIXService
|
||||||
@ -324,7 +324,7 @@ public class EduRsltMngAdultController {
|
|||||||
try{
|
try{
|
||||||
model = qustnrCommonUtil._chasiSrvyList(
|
model = qustnrCommonUtil._chasiSrvyList(
|
||||||
model
|
model
|
||||||
, VeConstants.LCTR_DIV_CD_10 //청소년 -10, 성인-20, ...VE0012
|
, VeConstants.LCTR_DIV_CD_20 //청소년 -10, 성인-20, ...VE0012
|
||||||
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
|
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
|
||||||
, vEEduAplctVO.getEduAplctOrd()
|
, vEEduAplctVO.getEduAplctOrd()
|
||||||
, vEEduAplctVO.getEduChasiOrd()
|
, vEEduAplctVO.getEduChasiOrd()
|
||||||
|
|||||||
@ -116,6 +116,7 @@
|
|||||||
</select>
|
</select>
|
||||||
<!-- 설문조사(설문등록):: 설문등록 /설문문 항정보-->
|
<!-- 설문조사(설문등록):: 설문등록 /설문문 항정보-->
|
||||||
<select id="QustnrRespondInfo.selectQustnrRespondInfoManageComtnqustnrqesitm" parameterClass="java.util.Map" resultClass="egovMap">
|
<select id="QustnrRespondInfo.selectQustnrRespondInfoManageComtnqustnrqesitm" parameterClass="java.util.Map" resultClass="egovMap">
|
||||||
|
/*QustnrRespondInfo.selectQustnrRespondInfoManageComtnqustnrqesitm*/
|
||||||
SELECT
|
SELECT
|
||||||
A.QUSTNR_QESITM_ID "qestnrQesitmId",
|
A.QUSTNR_QESITM_ID "qestnrQesitmId",
|
||||||
A.QESTNR_ID,
|
A.QESTNR_ID,
|
||||||
@ -650,6 +651,34 @@
|
|||||||
AND B.EDU_CHASI_ORD = #eduChasiOrd#
|
AND B.EDU_CHASI_ORD = #eduChasiOrd#
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="QustnrRespondInfo.selectQustnrDetail" parameterClass="QustnrRespondInfoVO" resultClass="QustnrRespondInfoVO">
|
||||||
|
SELECT
|
||||||
|
QUSTNR_TMPLAT_ID as qustnrTmplatId
|
||||||
|
, QESTNR_ID as qestnrId
|
||||||
|
, QUSTNR_QESITM_ID as qustnrQesitmId
|
||||||
|
, QUSTNR_RSLT_ID as qustnrRsltId
|
||||||
|
, EDU_APLCT_ORD as eduAplctOrd
|
||||||
|
, EDU_CHASI_ORD as eduChasiOrd
|
||||||
|
, RESPOND_ID as respondId
|
||||||
|
, VERY_SATISFIED as verySatisfied
|
||||||
|
, SATISFIED as satisfied
|
||||||
|
, NEITHER as neither
|
||||||
|
, DISSATISFIED as dissatisfied
|
||||||
|
, VERY_DISSATISFIED as veryDissatisfied
|
||||||
|
, ANSWER as answer
|
||||||
|
, FRST_REGIST_PNTTM as frstRegistPnttm
|
||||||
|
, FRST_REGISTER_ID as frstRegisterId
|
||||||
|
, LAST_UPDT_PNTTM as lastUpdtPnttm
|
||||||
|
, LAST_UPDUSR_ID as lastUpdusrId
|
||||||
|
, QUSTNR_IEM_ID as qustnrIemId
|
||||||
|
FROM LETTNQESTNRRSLTDETAIL
|
||||||
|
WHERE 1=1
|
||||||
|
AND EDU_APLCT_ORD = #eduAplctOrd#
|
||||||
|
AND RESPOND_ID = #respondId#
|
||||||
|
AND QUSTNR_TMPLAT_ID = #qustnrTmplatId#
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="QustnrRespondInfo.selectChasiSrvyExcelList_bak" parameterClass="QustnrRespondInfoVO" resultClass="QustnrRespondInfoVO">
|
<select id="QustnrRespondInfo.selectChasiSrvyExcelList_bak" parameterClass="QustnrRespondInfoVO" resultClass="QustnrRespondInfoVO">
|
||||||
/* QustnrRespondInfo.selectChasiSrvyExcelList_bak */
|
/* QustnrRespondInfo.selectChasiSrvyExcelList_bak */
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
@ -19,9 +19,10 @@
|
|||||||
|
|
||||||
<!-- 응답자정보(설문조사)::수정 -->
|
<!-- 응답자정보(설문조사)::수정 -->
|
||||||
<update id="QustnrRespondManage.updateQustnrRespondManage">
|
<update id="QustnrRespondManage.updateQustnrRespondManage">
|
||||||
|
/*QustnrRespondManage.updateQustnrRespondManage*/
|
||||||
UPDATE LETTNQUSTNRRESPONDINFO
|
UPDATE LETTNQUSTNRRESPONDINFO
|
||||||
SET
|
SET
|
||||||
LAST_UPDT_PNTTM = NOW()
|
LAST_UPDT_PNTTM = SYSDATE
|
||||||
, LAST_UPDUSR_ID = #lastUpdusrId#
|
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||||
<isNotNull property="qestnrParticipant">
|
<isNotNull property="qestnrParticipant">
|
||||||
, QESTNR_RESPONDENT_COUNT = #qestnrParticipant#
|
, QESTNR_RESPONDENT_COUNT = #qestnrParticipant#
|
||||||
|
|||||||
@ -19,9 +19,10 @@
|
|||||||
|
|
||||||
<!-- 응답자정보(설문조사)::수정 -->
|
<!-- 응답자정보(설문조사)::수정 -->
|
||||||
<update id="QustnrRespondManage.updateQustnrRespondManage">
|
<update id="QustnrRespondManage.updateQustnrRespondManage">
|
||||||
|
/*QustnrRespondManage.updateQustnrRespondManage*/
|
||||||
UPDATE LETTNQUSTNRRESPONDINFO
|
UPDATE LETTNQUSTNRRESPONDINFO
|
||||||
SET
|
SET
|
||||||
LAST_UPDT_PNTTM = NOW()
|
LAST_UPDT_PNTTM = SYSDATE
|
||||||
, LAST_UPDUSR_ID = #lastUpdusrId#
|
, LAST_UPDUSR_ID = #lastUpdusrId#
|
||||||
<isNotNull property="qestnrParticipant">
|
<isNotNull property="qestnrParticipant">
|
||||||
, QESTNR_RESPONDENT_COUNT = #qestnrParticipant#
|
, QESTNR_RESPONDENT_COUNT = #qestnrParticipant#
|
||||||
|
|||||||
@ -633,12 +633,17 @@
|
|||||||
vadi.APLCT_STATE_CD AS aplctStateCd,
|
vadi.APLCT_STATE_CD AS aplctStateCd,
|
||||||
vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId,
|
vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId,
|
||||||
vadi.CNCL_CN AS cnclCn,
|
vadi.CNCL_CN AS cnclCn,
|
||||||
CASE WHEN EXISTS ( /* 설문조사 */
|
CASE
|
||||||
SELECT 1
|
WHEN EXISTS (/* 설문조사 */
|
||||||
FROM lettnqestnrrslt lerslt
|
SELECT
|
||||||
WHERE lerslt.respond_id = 'USRCNFRM_00000002720'
|
1
|
||||||
AND vpap.PRCS_APLCT_PRD_ORD = lerslt.edu_aplct_ord
|
FROM
|
||||||
) THEN 1 ELSE 0 END as qestRsltExists
|
LETTNQESTNRRSLTDETAIL lersltD
|
||||||
|
WHERE
|
||||||
|
lersltD.respond_id = a.USER_ID
|
||||||
|
AND a.edu_aplct_ord = lersltD.edu_aplct_ord ) THEN 1
|
||||||
|
ELSE 0
|
||||||
|
END AS qestRsltExists
|
||||||
from
|
from
|
||||||
VE_EDU_APLCT a
|
VE_EDU_APLCT a
|
||||||
join ve_prcs_aplct_prd vpap
|
join ve_prcs_aplct_prd vpap
|
||||||
|
|||||||
@ -84,6 +84,200 @@ $(document).ready(function(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 설문조사 버튼 클릭 이벤트
|
||||||
|
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);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function srvySendSubmit(type){
|
||||||
|
|
||||||
|
var isValid = true;
|
||||||
|
$("#qestnTbody tr").each(function(index) {
|
||||||
|
// 해당 행의 라디오 버튼이 선택되었는지 확인
|
||||||
|
if ($("input[type='radio']:checked", this).length === 0) {
|
||||||
|
isValid = false;
|
||||||
|
alert("문항 " + (index + 1) + "을(를) 확인해주세요.");
|
||||||
|
isValid = false;
|
||||||
|
return false; // 반복 중지
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!isValid) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var masage = "";
|
||||||
|
if(type == 'i'){
|
||||||
|
masage = "설문결과를 등록 하시겠습니까?";
|
||||||
|
$("#qustnrIemType").val("insert")
|
||||||
|
}else if(type == 'u'){
|
||||||
|
masage = "설문결과를 수정 하시겠습니까?";
|
||||||
|
$("#qustnrIemType").val("update")
|
||||||
|
}
|
||||||
|
|
||||||
|
if(confirm(masage)){
|
||||||
|
var data = new FormData(document.getElementById("srvyPopupForm"));
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type:"POST"
|
||||||
|
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/mergeSrvyInfoAjax.do"
|
||||||
|
,data: data
|
||||||
|
,dataType:'json'
|
||||||
|
,async: false
|
||||||
|
,processData: false
|
||||||
|
,contentType: false
|
||||||
|
,cache: false
|
||||||
|
,success:function(returnData){
|
||||||
|
if(returnData.result == 'success'){
|
||||||
|
|
||||||
|
|
||||||
|
if(type == 'i'){
|
||||||
|
alert("설문결과가 등록 되었습니다.");
|
||||||
|
}else if(type == 'u'){
|
||||||
|
alert("설문결과가 수정 되었습니다.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
window.location.reload();
|
||||||
|
}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 fn_selectQestnTbody(){
|
||||||
|
|
||||||
|
var data = new FormData(document.getElementById("srvyPopupForm"));
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type:"POST"
|
||||||
|
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/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);
|
||||||
|
|
||||||
|
$('#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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- content -->
|
<!-- content -->
|
||||||
@ -103,7 +297,6 @@ $(document).ready(function(){
|
|||||||
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
|
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
|
||||||
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
|
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
|
||||||
|
|
||||||
<input type="hidden" name="eduAplctOrd" id="eduAplctOrd" value="" />
|
|
||||||
<div class="cont_tit">
|
<div class="cont_tit">
|
||||||
<h2>신청목록</h2>
|
<h2>신청목록</h2>
|
||||||
<div class="sns_go">
|
<div class="sns_go">
|
||||||
@ -146,7 +339,7 @@ $(document).ready(function(){
|
|||||||
<caption>교육 목록표</caption>
|
<caption>교육 목록표</caption>
|
||||||
<colgroup>
|
<colgroup>
|
||||||
<col style="width:35%;">
|
<col style="width:35%;">
|
||||||
<col style="width:;">
|
<col style="width:10%;">
|
||||||
<col style="width:13%;">
|
<col style="width:13%;">
|
||||||
<col style="width:13%;">
|
<col style="width:13%;">
|
||||||
<col style="width:13%;">
|
<col style="width:13%;">
|
||||||
@ -174,10 +367,11 @@ $(document).ready(function(){
|
|||||||
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
|
<!-- 신청 승인상태 20 and 현재가 교육종료보다 이후 체크 1 -->
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and not list.qestRsltExists }">
|
<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>
|
<button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','insert')" title="팝업 열림">설문등록</button>
|
||||||
|
<!-- <button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button> -->
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
||||||
설문완료
|
<button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','update')" title="팝업 열림">설문수정</button>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
-
|
-
|
||||||
@ -187,7 +381,7 @@ $(document).ready(function(){
|
|||||||
<td>
|
<td>
|
||||||
<c:choose>
|
<c:choose>
|
||||||
<c:when test="${list.qestRsltExists }">
|
<c:when test="${list.qestRsltExists }">
|
||||||
<button type="button" title="출력" class="btnType03">출력</button>
|
<button type="button" title="이수증" class="btnType01" onclick="fncCmpltCrtfc('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');">이수증</button>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
|
<c:when test="${list.dateChk eq 1 and not list.qestRsltExists}">
|
||||||
교육완료
|
교육완료
|
||||||
@ -197,7 +391,6 @@ $(document).ready(function(){
|
|||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
|
|
||||||
<button type="button" title="이수증" class="btnType01" onclick="fncCmpltCrtfc('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');">이수증테스트</button>
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
<!-- <td>-</td> -->
|
<!-- <td>-</td> -->
|
||||||
@ -228,6 +421,72 @@ $(document).ready(function(){
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 강의만족도 결과 등록 팝업 -->
|
||||||
|
<form id="srvyPopupForm" name="srvyPopupForm" method="post" >
|
||||||
|
<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>
|
<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">
|
<link rel="stylesheet" type="text/css" href="http://119.193.215.98:8093/ReportingServer/html5/css/crownix-viewer.min.css">
|
||||||
<script>
|
<script>
|
||||||
|
|||||||
@ -178,6 +178,200 @@ $(document).ready(function(){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 설문조사 버튼 클릭 이벤트
|
||||||
|
function selectQestnInfo(id, action){
|
||||||
|
|
||||||
|
$('#srvyPopupForm #eduAplctOrd').val(id);
|
||||||
|
$('#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" : "60" // 기반강화 -> 기소유예(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);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function srvySendSubmit(type){
|
||||||
|
|
||||||
|
var isValid = true;
|
||||||
|
$("#qestnTbody tr").each(function(index) {
|
||||||
|
// 해당 행의 라디오 버튼이 선택되었는지 확인
|
||||||
|
if ($("input[type='radio']:checked", this).length === 0) {
|
||||||
|
isValid = false;
|
||||||
|
alert("문항 " + (index + 1) + "을(를) 확인해주세요.");
|
||||||
|
isValid = false;
|
||||||
|
return false; // 반복 중지
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!isValid) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var masage = "";
|
||||||
|
if(type == 'i'){
|
||||||
|
masage = "설문결과를 등록 하시겠습니까?";
|
||||||
|
$("#qustnrIemType").val("insert")
|
||||||
|
}else if(type == 'u'){
|
||||||
|
masage = "설문결과를 수정 하시겠습니까?";
|
||||||
|
$("#qustnrIemType").val("update")
|
||||||
|
}
|
||||||
|
|
||||||
|
if(confirm(masage)){
|
||||||
|
var data = new FormData(document.getElementById("srvyPopupForm"));
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type:"POST"
|
||||||
|
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/mergeSrvyInfoAjax.do"
|
||||||
|
,data: data
|
||||||
|
,dataType:'json'
|
||||||
|
,async: false
|
||||||
|
,processData: false
|
||||||
|
,contentType: false
|
||||||
|
,cache: false
|
||||||
|
,success:function(returnData){
|
||||||
|
if(returnData.result == 'success'){
|
||||||
|
|
||||||
|
|
||||||
|
if(type == 'i'){
|
||||||
|
alert("설문결과가 등록 되었습니다.");
|
||||||
|
}else if(type == 'u'){
|
||||||
|
alert("설문결과가 수정 되었습니다.");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
window.location.reload();
|
||||||
|
}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 fn_selectQestnTbody(){
|
||||||
|
|
||||||
|
var data = new FormData(document.getElementById("srvyPopupForm"));
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type:"POST"
|
||||||
|
,url:"${pageContext.request.contextPath}/web/ve/aplct/fndtnEnhanceTrn/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);
|
||||||
|
|
||||||
|
$('#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);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- content -->
|
<!-- content -->
|
||||||
@ -253,7 +447,7 @@ $(document).ready(function(){
|
|||||||
<col style="width:10%;">
|
<col style="width:10%;">
|
||||||
<col style="width:13%;">
|
<col style="width:13%;">
|
||||||
<col style="width:13%;">
|
<col style="width:13%;">
|
||||||
<col style="width:13%;">
|
<%-- <col style="width:13%;"> --%>
|
||||||
</colgroup>
|
</colgroup>
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -261,7 +455,7 @@ $(document).ready(function(){
|
|||||||
<th>교육일자</th>
|
<th>교육일자</th>
|
||||||
<th>신청결과</th>
|
<th>신청결과</th>
|
||||||
<th>설문조사</th>
|
<th>설문조사</th>
|
||||||
<th>이수증</th>
|
<!-- <th>이수증</th> -->
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -328,23 +522,23 @@ $(document).ready(function(){
|
|||||||
and list.aplctStateCd ne 30
|
and list.aplctStateCd ne 30
|
||||||
and list.aprvlCd ne 40
|
and list.aprvlCd ne 40
|
||||||
}">
|
}">
|
||||||
<button type="button" title="설문등록" class="btnType04" data-tooltip="edu_in">설문등록</button>
|
<button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','insert')" title="팝업 열림">설문등록</button>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
<c:when test="${list.aprvlCd eq 20 and list.dateChk eq 1 and list.qestRsltExists }">
|
||||||
설문완료
|
<button type="button" class="btnType01" data-tooltip="sub37_pop01" onclick="selectQestnInfo('${list.eduAplctOrd}','update')" title="팝업 열림">설문수정</button>
|
||||||
</c:when>
|
</c:when>
|
||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
-
|
-
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<!-- <td> -->
|
||||||
<!--
|
<!--
|
||||||
취소상태
|
취소상태
|
||||||
list.aplctStateCd ne 30
|
list.aplctStateCd ne 30
|
||||||
list.aprvlCd ne 40
|
list.aprvlCd ne 40
|
||||||
-->
|
-->
|
||||||
<c:choose>
|
<%-- <c:choose>
|
||||||
<c:when test="${list.qestRsltExists }">
|
<c:when test="${list.qestRsltExists }">
|
||||||
<button type="button" title="출력" class="btnType03">출력</button>
|
<button type="button" title="출력" class="btnType03">출력</button>
|
||||||
</c:when>
|
</c:when>
|
||||||
@ -358,11 +552,11 @@ $(document).ready(function(){
|
|||||||
<c:otherwise>
|
<c:otherwise>
|
||||||
-
|
-
|
||||||
</c:otherwise>
|
</c:otherwise>
|
||||||
</c:choose>
|
</c:choose> --%>
|
||||||
|
|
||||||
<button type="button" title="이수증" class="btnType01" onclick="fncCmpltCrtfc('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');">이수증테스트</button>
|
<%-- <button type="button" title="이수증" class="btnType01" onclick="fncCmpltCrtfc('<c:out value="${list.prcsAplctPrdOrd}"/>', '<c:out value="${list.eduAplctOrd}"/>');">이수증테스트</button> --%>
|
||||||
|
|
||||||
</td>
|
<!-- </td> -->
|
||||||
<!-- <td>-</td> -->
|
<!-- <td>-</td> -->
|
||||||
</tr>
|
</tr>
|
||||||
</c:forEach>
|
</c:forEach>
|
||||||
@ -459,6 +653,71 @@ $(document).ready(function(){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 강의만족도 결과 등록 팝업 -->
|
||||||
|
<form id="srvyPopupForm" name="srvyPopupForm" method="post" >
|
||||||
|
<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>
|
||||||
|
<!--// 강의만족도 결과 등록 팝업-->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user