2023-12-15 15:03 개인별 만족도 등록

This commit is contained in:
myname 2023-12-15 15:04:13 +09:00
parent 2dd8b03bdb
commit 43a3a2725f
16 changed files with 584 additions and 224 deletions

View File

@ -90,4 +90,32 @@ public class QustnrCommonUtil {
return p_model; return p_model;
} }
public ModelMap _chasiSrvyEAList(
ModelMap p_model
, String p_siteId
, String p_siteIdCd
, String p_eduAplctOrd
, String p_eduChasiOrd
, VEALettnQestnrMIXService p_vEALettnQestnrMIXService
)throws Exception{
//설문지 정보
System.out.println("===========!설문지정보!===========");
VEAQestnrVO vEAQestnrVO = new VEAQestnrVO();
vEAQestnrVO.setSiteId(p_siteId); //청소년
vEAQestnrVO.setSiteIdCd(p_siteIdCd); //10-기본설문, 20-신청자설문, 30-강사설문
vEAQestnrVO = p_vEALettnQestnrMIXService.selectDetail_MIX_LQI_02(vEAQestnrVO);
vEAQestnrVO.setEduAplctOrd(p_eduAplctOrd);
vEAQestnrVO.setEduChasiOrd(p_eduChasiOrd);
List<VEAQestnrVO> chasiSrvyList = p_vEALettnQestnrMIXService.selectDetail_MIX_LQI_04(vEAQestnrVO);
if(chasiSrvyList.size() > 0) {
p_model.addAttribute("chasiSrvyEAList",chasiSrvyList);
}
return p_model;
}
} }

View File

@ -7,6 +7,7 @@ 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; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.qestnr.service.VEAQestnrVO;
/** /**
* 설문조사 Service Class 구현 * 설문조사 Service Class 구현
* @author 공통서비스 장동한 * @author 공통서비스 장동한
@ -155,6 +156,10 @@ public interface EgovQustnrRespondInfoService {
//개별 응답 저장 //개별 응답 저장
void insertSrvyEAInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception; void insertSrvyEAInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception;
//개별 응답 저장
void deleteSrvyEAInfo(VEAQestnrVO vEAQestnrVO) throws Exception;
void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception; void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception;
// 차수별 설문 조회 // 차수별 설문 조회

View File

@ -15,6 +15,7 @@ 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 kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.qestnr.service.VEAQestnrVO;
/** /**
* 설문조사 ServiceImpl Class 구현 * 설문조사 ServiceImpl Class 구현
* @author 공통서비스 장동한 * @author 공통서비스 장동한
@ -227,6 +228,11 @@ public class EgovQustnrRespondInfoServiceImpl extends EgovAbstractServiceImpl im
dao.insertSrvyEAInfo(qustnrRespondInfoVO); dao.insertSrvyEAInfo(qustnrRespondInfoVO);
} }
@Override
public void deleteSrvyEAInfo(VEAQestnrVO vEAQestnrVO) throws Exception {
dao.deleteSrvyEAInfo(vEAQestnrVO);
}
@Override @Override
public void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception { public void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception {
dao.updateSrvyInfo(qustnrRespondInfoVO); dao.updateSrvyInfo(qustnrRespondInfoVO);

View File

@ -11,6 +11,7 @@ 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 kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.oprtn.qestnr.service.VEAQestnrVO;
/** /**
* 설문조사 Dao Class 구현 * 설문조사 Dao Class 구현
* @author 공통서비스 장동한 * @author 공통서비스 장동한
@ -188,6 +189,10 @@ public class QustnrRespondInfoDao extends EgovAbstractDAO {
insert("QustnrRespondInfo.insertSrvyEAInfo", qustnrRespondInfoVO); insert("QustnrRespondInfo.insertSrvyEAInfo", qustnrRespondInfoVO);
} }
public void deleteSrvyEAInfo(VEAQestnrVO vEAQestnrVO) throws Exception{
delete("QustnrRespondInfo.deleteSrvyEAInfo", vEAQestnrVO);
}
public void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception{ public void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception{
update("QustnrRespondInfo.updateSrvyInfo", qustnrRespondInfoVO); update("QustnrRespondInfo.updateSrvyInfo", qustnrRespondInfoVO);
} }

View File

@ -346,28 +346,23 @@ public class EduRsltMngAdultController {
ex.printStackTrace(); ex.printStackTrace();
} }
/*
// 설문조사 결과 조회 //개인별 만족도 관리 - chasiSrvyEAList
qustnrRespondInfoVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); try{
qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd()); model = qustnrCommonUtil._chasiSrvyEAList(
List<QustnrRespondInfoVO> chasiSrvyList = egovQustnrRespondInfoService.selectChasiSrvyList(qustnrRespondInfoVO); model
if(chasiSrvyList.size() > 0) { , VeConstants.LCTR_DIV_CD_20 //청소년 -10, 성인-20, ...VE0012
model.addAttribute("qestnrRespondent", chasiSrvyList.get(0).getQestnrRespondent()); , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
model.addAttribute("qestnrParticipant", chasiSrvyList.get(0).getQestnrParticipant()); , vEEduAplctVO.getEduAplctOrd()
model.addAttribute("chasiSrvyList",chasiSrvyList); , vEEduAplctVO.getEduChasiOrd()
, vEALettnQestnrMIXService
);
}catch(Exception ex) {
ex.printStackTrace();
} }
*/
System.out.println("=============================================chasiSrvyEAList=============================================");
/*
System.out.println("------------------------");
//전체 차시 배정 강사 정보
vEInstrAsgnmVO.setEduChasiOrd("");
List<VEInstrAsgnmVO> selectAsgnmInstrList = vEAsgnmMIXService.selectAsgnmInstrList(vEInstrAsgnmVO);
model.addAttribute("listChasi", selectAsgnmInstrList);
System.out.println("------------------------=======================");
*/
//20220223 우영두 추가 //20220223 우영두 추가
//강의내역 NOTI 입력 //강의내역 NOTI 입력

View File

@ -15,4 +15,7 @@ public interface VEALettnQestnrMIXService {
//관리자 청소년,성인 - 만족도 평가 //관리자 청소년,성인 - 만족도 평가
List<VEAQestnrVO> selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception; // R List<VEAQestnrVO> selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception; // R
//관리자 청소년,성인 - 개별 만족도 리스트
List<VEAQestnrVO> selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception; // R
} }

View File

@ -91,6 +91,11 @@ public class VEAQestnrVO extends ComDefaultVO implements Serializable {
private String qestnrQesitmId; private String qestnrQesitmId;
private String qustnrNm; //개별설문등록자명
private String qustnrBirth; //개별설문등록자생년월일
private String qustnrScore; //개별설문등록자점수
public String getQestnrQesitmId() { public String getQestnrQesitmId() {
return qestnrQesitmId; return qestnrQesitmId;
} }
@ -360,5 +365,23 @@ public class VEAQestnrVO extends ComDefaultVO implements Serializable {
public void setFrstRegisterNm(String frstRegisterNm) { public void setFrstRegisterNm(String frstRegisterNm) {
this.frstRegisterNm = frstRegisterNm; this.frstRegisterNm = frstRegisterNm;
} }
public String getQustnrNm() {
return qustnrNm;
}
public void setQustnrNm(String qustnrNm) {
this.qustnrNm = qustnrNm;
}
public String getQustnrBirth() {
return qustnrBirth;
}
public void setQustnrBirth(String qustnrBirth) {
this.qustnrBirth = qustnrBirth;
}
public String getQustnrScore() {
return qustnrScore;
}
public void setQustnrScore(String qustnrScore) {
this.qustnrScore = qustnrScore;
}
} }

View File

@ -27,4 +27,9 @@ public class VEALettnQestnrMIXDAO extends EgovAbstractDAO {
List<VEAQestnrVO> tlist = (List<VEAQestnrVO>) list("VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03", paramVO); List<VEAQestnrVO> tlist = (List<VEAQestnrVO>) list("VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03", paramVO);
return tlist; return tlist;
} }
public List<VEAQestnrVO> selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception {
List<VEAQestnrVO> tlist = (List<VEAQestnrVO>) list("VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04", paramVO);
return tlist;
}
} }

View File

@ -35,4 +35,9 @@ public class VEALettnQestnrMIXServiceImpl implements VEALettnQestnrMIXService {
public List<VEAQestnrVO> selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception{ public List<VEAQestnrVO> selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception{
return vEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03(paramVO); return vEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03(paramVO);
} }
//관리자 (청년, 성인) 만족도 평가
public List<VEAQestnrVO> selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception{
return vEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04(paramVO);
}
} }

View File

@ -787,37 +787,9 @@ public class EduRsltMngTngrController {
ex.printStackTrace(); ex.printStackTrace();
} }
/*
{
VEAQestnrVO vEAQestnrVO = new VEAQestnrVO();
vEAQestnrVO.setSiteId(VeConstants.LCTR_DIV_CD_10); //청소년
vEAQestnrVO.setSiteIdCd("10"); //10-기본설문, 20-신청자설문, 30-강사설문
vEAQestnrVO = vEALettnQestnrMIXService.selectDetail_MIX_LQI_02(vEAQestnrVO);
//문항정보
Map <String, Object> commandMap =new HashMap<String, Object>();
commandMap.put("qestnrTmplatId", "QTMPLA_0000000000001");
commandMap.put("qestnrId",vEAQestnrVO.getQestnrId()); //문제 ID
model.addAttribute("Comtnqustnrqesitm", egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap));
model.addAttribute("qestnrId", vEAQestnrVO.getQestnrId());
}
*/
/*
// 설문조사 정보
QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO();
qustnrRespondInfoVO.setSiteId(VeConstants.LCTR_DIV_CD_10);
//QustnrRespondInfoVO info = egovQustnrRespondInfoService.selectSiteIdQustnrTmplat(qustnrRespondInfoVO);
// 설문조사 문항리스트 조회
Map <String, Object> commandMap =new HashMap<String, Object>();
commandMap.put("qestnrTmplatId", "QTMPLA_0000000000001");
commandMap.put("qestnrId",info.getQestnrId()); //문제 ID
model.addAttribute("Comtnqustnrqesitm", egovQustnrRespondInfoService.selectQustnrRespondInfoManageComtnqustnrqesitm(commandMap));
*/
System.out.println("================================= Comtnqustnrqesitm ================================="); System.out.println("================================= Comtnqustnrqesitm =================================");
// 설문조사 정보
try{ try{
model = qustnrCommonUtil._chasiSrvyList( model = qustnrCommonUtil._chasiSrvyList(
model model
@ -828,51 +800,27 @@ public class EduRsltMngTngrController {
, vEALettnQestnrMIXService , vEALettnQestnrMIXService
); );
/*
model = this._chasiSrvyList(
model
, VeConstants.LCTR_DIV_CD_10 //청소년 -10, 성인-20, ...VE0012
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
, vEEduAplctVO.getEduAplctOrd()
, vEEduAplctVO.getEduChasiOrd()
);
*/
/*
VEAQestnrVO vEAQestnrVO = new VEAQestnrVO();
vEAQestnrVO.setSiteId(VeConstants.LCTR_DIV_CD_10); //청소년
vEAQestnrVO.setSiteIdCd("10"); //10-기본설문, 20-신청자설문, 30-강사설문
vEAQestnrVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
vEAQestnrVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd());
List<VEAQestnrVO> chasiSrvyList = vEALettnQestnrMIXService.selectDetail_MIX_LQI_03(vEAQestnrVO);
if(chasiSrvyList.size() > 0) {
model.addAttribute("qestnrRespondent", chasiSrvyList.get(0).getQestnrRespondent());
model.addAttribute("qestnrParticipant", chasiSrvyList.get(0).getQestnrParticipant());
model.addAttribute("chasiSrvyList",chasiSrvyList);
}
*/
/*
// 설문조사 결과 조회
QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO();
qustnrRespondInfoVO.setSiteId(VeConstants.LCTR_DIV_CD_10);
qustnrRespondInfoVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd());
vEAQestnrVO = vEALettnQestnrMIXService.selectDetail_MIX_LQI_02(vEAQestnrVO);
List<QustnrRespondInfoVO> chasiSrvyList = egovQustnrRespondInfoService.selectChasiSrvyList(qustnrRespondInfoVO);
if(chasiSrvyList.size() > 0) {
model.addAttribute("qestnrRespondent", chasiSrvyList.get(0).getQestnrRespondent());
model.addAttribute("qestnrParticipant", chasiSrvyList.get(0).getQestnrParticipant());
model.addAttribute("chasiSrvyList",chasiSrvyList);
}
*/
}catch(Exception ex) { }catch(Exception ex) {
ex.printStackTrace(); ex.printStackTrace();
} }
System.out.println("=============================================chasiSrvyList============================================="); //개인별 만족도 관리 - chasiSrvyEAList
try{
model = qustnrCommonUtil._chasiSrvyEAList(
model
, VeConstants.LCTR_DIV_CD_10 //청소년 -10, 성인-20, ...VE0012
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
, vEEduAplctVO.getEduAplctOrd()
, vEEduAplctVO.getEduChasiOrd()
, vEALettnQestnrMIXService
);
}catch(Exception ex) {
ex.printStackTrace();
}
System.out.println("=============================================chasiSrvyEAList=============================================");
/* /*
System.out.println("------------------------"); System.out.println("------------------------");
@ -1798,72 +1746,44 @@ public class EduRsltMngTngrController {
} }
/** /**
* 브라우저 구분 얻기. * 교육설문 삭제 - 청소년, 성인 공통 - 사용자 개인별 만족도 등록자 삭제
*
* @param request
* @return
*/ */
private String getBrowser(HttpServletRequest request) { @RequestMapping(value="/deleteNewSrvyEAInfoAjax.do")
String header = request.getHeader("User-Agent"); public ModelAndView deleteNewSrvyEAInfoAjax(
if (header.indexOf("MSIE") > -1) { HttpServletRequest request
return "MSIE"; , ModelMap model
} else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지 , VEAQestnrVO vEAQestnrVO
return "Trident"; ) throws Exception {
} else if (header.indexOf("Chrome") > -1) { ModelAndView modelAndView = new ModelAndView();
return "Chrome"; modelAndView.setViewName("jsonView");
} else if (header.indexOf("Opera") > -1) { try {
return "Opera";
}
return "Firefox";
}
/** //String
* Disposition 지정하기.
*
* @param filename
* @param request
* @param response
* @throws Exception
*/
private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception {
String browser = getBrowser(request);
String dispositionPrefix = "attachment; filename="; LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
String encodedFilename = null; if (loginVO == null) {
modelAndView.addObject("result", "fail");
if (browser.equals("MSIE")) { modelAndView.addObject("msg", "로그인 해주세요.");
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); return modelAndView;
} else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
} else if (browser.equals("Firefox")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Opera")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Chrome")) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < filename.length(); i++) {
char c = filename.charAt(i);
if (c > '~') {
sb.append(URLEncoder.encode("" + c, "UTF-8"));
} else {
sb.append(c);
}
} }
encodedFilename = sb.toString();
} else {
//throw new RuntimeException("Not supported browser");
throw new IOException("Not supported browser");
}
// response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); // 파일명에 콤마 포함시 오류 System.out.println(vEAQestnrVO.toString());
response.setHeader("Content-Disposition", dispositionPrefix + "\"" + encodedFilename + "\""); System.out.println(request.getParameter("qustnrTmplatId"));
if ("Opera".equals(browser)) {
response.setContentType("application/octet-stream;charset=UTF-8");
} egovQustnrRespondInfoService.deleteSrvyEAInfo(vEAQestnrVO);
modelAndView.addObject("result", "success");
}catch(Exception ex) {
System.out.println("egovQustnrRespondInfoService.deleteSrvyEAInfo");
modelAndView.addObject("result", "fail");
}
return modelAndView;
} }
////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //
// //
@ -1968,4 +1888,70 @@ public class EduRsltMngTngrController {
return p_model; return p_model;
} }
/**
* Disposition 지정하기.
*
* @param filename
* @param request
* @param response
* @throws Exception
*/
private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception {
String browser = getBrowser(request);
String dispositionPrefix = "attachment; filename=";
String encodedFilename = null;
if (browser.equals("MSIE")) {
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
} else if (browser.equals("Trident")) { // IE11 문자열 깨짐 방지
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
} else if (browser.equals("Firefox")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Opera")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Chrome")) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < filename.length(); i++) {
char c = filename.charAt(i);
if (c > '~') {
sb.append(URLEncoder.encode("" + c, "UTF-8"));
} else {
sb.append(c);
}
}
encodedFilename = sb.toString();
} else {
//throw new RuntimeException("Not supported browser");
throw new IOException("Not supported browser");
}
// response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); // 파일명에 콤마 포함시 오류
response.setHeader("Content-Disposition", dispositionPrefix + "\"" + encodedFilename + "\"");
if ("Opera".equals(browser)) {
response.setContentType("application/octet-stream;charset=UTF-8");
}
}
/**
* 브라우저 구분 얻기.
*
* @param request
* @return
*/
private String getBrowser(HttpServletRequest request) {
String header = request.getHeader("User-Agent");
if (header.indexOf("MSIE") > -1) {
return "MSIE";
} else if (header.indexOf("Trident") > -1) { // IE11 문자열 깨짐 방지
return "Trident";
} else if (header.indexOf("Chrome") > -1) {
return "Chrome";
} else if (header.indexOf("Opera") > -1) {
return "Opera";
}
return "Firefox";
}
} }

View File

@ -10,6 +10,7 @@
<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"/> <typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
<typeAlias alias="VEAQestnrVO" type="kcc.ve.oprtn.qestnr.service.VEAQestnrVO"/>
<select id="QustnrRespondInfo.selectSiteIdQustnrTmplat" parameterClass="QustnrRespondInfoVO" resultClass="QustnrRespondInfoVO"> <select id="QustnrRespondInfo.selectSiteIdQustnrTmplat" parameterClass="QustnrRespondInfoVO" resultClass="QustnrRespondInfoVO">
@ -514,6 +515,18 @@
) )
</insert> </insert>
<delete id="QustnrRespondInfo.deleteSrvyEAInfo" parameterClass="VEAQestnrVO">
/* QustnrRespondInfo.deleteSrvyEAInfo */
DELETE FROM LETTNQESTNRRSLTEADetail
WHERE 1=1
AND QUSTNR_TMPLAT_ID = #qustnrTmplatId#
AND QESTNR_ID = #qestnrId#
AND QUSTNR_NM = #qustnrNm#
AND QUSTNR_BIRTH = #qustnrBirth#
</delete>
<insert id="QustnrRespondInfo.insertSrvyInfo_bak" parameterClass="QustnrRespondInfoVO"> <insert id="QustnrRespondInfo.insertSrvyInfo_bak" parameterClass="QustnrRespondInfoVO">
/* QustnrRespondInfo.insertSrvyInfo_bak */ /* QustnrRespondInfo.insertSrvyInfo_bak */
INSERT INTO LETTNQESTNRRSLT INSERT INTO LETTNQESTNRRSLT

View File

@ -218,4 +218,38 @@
AND b.QESTNR_ID =a.QESTNR_ID AND b.QESTNR_ID =a.QESTNR_ID
</select> </select>
<!-- //관리자 청소년/성인 만족도 평가 R -->
<select id="VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04" parameterClass="VEAQestnrVO" resultClass="VEAQestnrVO">
/* VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04 */
SELECT a.qustnr_tmplat_id AS qustnrTmplatId
, a.qestnr_id AS qestnrId
, a.qustnr_nm AS qustnrNm
, a.qustnr_birth AS qustnrBirth
, count(*) AS rrspnsResultCnt
, ROUND(SUM(a.VERY_SATISFIED * 100
+ a.SATISFIED * 80
+ a.NEITHER * 60
+ a.dissatisfied * 40
+ a.very_dissatisfied * 20)
/
count(*),1) AS qustnrScore
FROM LETTNQESTNRRSLTEADetail a
WHERE 1=1
AND a.EDU_APLCT_ORD = #eduAplctOrd#
AND a.EDU_CHASI_ORD = #eduChasiOrd#
AND a.QESTNR_ID = #qestnrId#
AND a.QUSTNR_TMPLAT_ID = #qustnrTmplatId#
GROUP BY a.qustnr_tmplat_id
, a.qestnr_id
, a.qustnr_nm
, a.qustnr_birth
</select>
</sqlMap> </sqlMap>

View File

@ -88,6 +88,54 @@
listForm.action = "<c:url value='/kccadr/oprtn/adultVisitEdu/eduRsltSrvyExcelDownLoad.do'/>"; listForm.action = "<c:url value='/kccadr/oprtn/adultVisitEdu/eduRsltSrvyExcelDownLoad.do'/>";
listForm.submit(); listForm.submit();
} }
//개인별 만족도 등록자 정보 삭제 - 청소년/성인 공통
function deleteSrvyEA(
p_qustnrTmplatId
, p_qestnrId
, p_qustnrNm
, p_qustnrBirth
){
if (!confirm("삭제 하시겠습니까?\n(삭제 후 복구가 불가능합니다.)")) {
return false;
}
paramObj = {
"qustnrTmplatId" : p_qustnrTmplatId,
"qestnrId" : p_qestnrId,
"qustnrNm" : p_qustnrNm,
"qustnrBirth" : p_qustnrBirth
};
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/deleteNewSrvyEAInfoAjax.do",
data:{
"qustnrTmplatId" : p_qustnrTmplatId,
"qestnrId" : p_qestnrId,
"qustnrNm" : p_qustnrNm,
"qustnrBirth" : p_qustnrBirth
},
dataType:'json',
async: false,
//processData: false,
//contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제 되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script> </script>
</head> </head>
@ -335,6 +383,19 @@
</table> </table>
</div> </div>
<!-- list_상세 --> <!-- list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button class="btn_type02" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
<%-- <div class="tb_tit01"> <%-- <div class="tb_tit01">
<p>교육 내용에 대한 전반적 만족도 평가</p> <p>교육 내용에 대한 전반적 만족도 평가</p>
</div> </div>
@ -500,9 +561,67 @@
<div class="btn_center"> <div class="btn_center">
</div> </div>
<div class="btn_right"> <div class="btn_right">
<button class="btn_type02" onclick="fncGoList(); return false;">목록</button>
</div> </div>
</div> </div>
<br/>
<br/>
<!-- 문항리스트_상세 -->
<div class="tb_tit01">
<p>개인별 만족도 등록자 리스트</p>
</div>
<c:if test="${!empty chasiSrvyEAList}">
<div class="tb_type01 list2">
<table>
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th scope="col">등록자명</th>
<th scope="col">등록자생년월일</th>
<th scope="col">만족도평가점수</th>
<th scope="col">비고</th>
</tr>
</thead>
<tbody>
<c:forEach items="${chasiSrvyEAList}" var="chasiSrvyEAInfo" varStatus="status1">
<tr>
<td>
<c:out value="${chasiSrvyEAInfo.qustnrNm}"/>
</td>
<td>
<c:out value="${chasiSrvyEAInfo.qustnrBirth}"/>
</td>
<td>
<c:out value="${chasiSrvyEAInfo.qustnrScore}"/>점
</td>
<td>
<button type="button" class="btn_type04"
onclick="deleteSrvyEA(
'<c:out value="${chasiSrvyEAInfo.qustnrTmplatId}"/>'
,'<c:out value="${chasiSrvyEAInfo.qestnrId}"/>'
,'<c:out value="${chasiSrvyEAInfo.qustnrNm}"/>'
,'<c:out value="${chasiSrvyEAInfo.qustnrBirth}"/>'); return false;">삭제</button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</c:if>
</div> </div>
</div> </div>
</div> </div>

View File

@ -284,9 +284,53 @@ function replyCalculation(){
document.popForm.submit(); document.popForm.submit();
} }
//개인별 만족도 등록자 정보 삭제 - 청소년/성인 공통
function deleteSrvyEA(
p_qustnrTmplatId
, p_qestnrId
, p_qustnrNm
, p_qustnrBirth
){
if (!confirm("삭제 하시겠습니까?\n(삭제 후 복구가 불가능합니다.)")) {
return false;
}
paramObj = {
"qustnrTmplatId" : p_qustnrTmplatId,
"qestnrId" : p_qestnrId,
"qustnrNm" : p_qustnrNm,
"qustnrBirth" : p_qustnrBirth
};
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/tngrVisitEdu/deleteNewSrvyEAInfoAjax.do",
data:{
"qustnrTmplatId" : p_qustnrTmplatId,
"qestnrId" : p_qestnrId,
"qustnrNm" : p_qustnrNm,
"qustnrBirth" : p_qustnrBirth
},
dataType:'json',
async: false,
//processData: false,
//contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제 되었습니다.");
location.reload();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script> </script>
@ -693,6 +737,73 @@ function replyCalculation(){
</table> </table>
</div> </div>
<!-- 비공개 메보 정보 -->
<div class="tb_tit01">
<p>비공개 메모</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td class="tb_alram">
<div>
<textarea name="hiddenMemo" id="hiddenMemo"><c:out value="${info.prvtMemoCn}" /></textarea>
<button type="button" class="btn_type08" onclick="updateHiddenMemo(); return false;">메모 저장</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 비공개 메보 정보 -->
<%-- <div class="tb_tit01">
<p>강사공개 메모</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td class="tb_alram">
<div>
<textarea name="hiddenMemoCn" id="hiddenMemoCn"><c:out value="${info.memoCn}" /></textarea>
<button type="button" class="btn_type08" onclick="updateHiddenMemoCn(); return false;">메모 저장</button>
</div>
</td>
</tr>
</tbody>
</table>
</div> --%>
<div class="btn_wrap btn_layout01">
<div class="btn_left"></div>
<div class="btn_center">
<c:set var="qustnrRespondIdYn" value="N" />
<c:forEach var="chasiAllList" items="${chasiAllList}" varStatus="status">
<c:if test="${not empty chasiAllList.qustnrRespondId}">
<c:set var="qustnrRespondIdYn" value="Y" />
</c:if>
</c:forEach>
<c:if test="${qustnrRespondIdYn eq 'N'}">
<!-- <button type="button" class="btn_type01" onclick="fncGoEdit();">신청서 수정</button> -->
</c:if>
</div>
<div class="btn_right">
<button type="button" class="btn_type03" onclick="fncGoList1();">목록</button>
</div>
</div>
<!-- //비공개 메모 정보 -->
<!-- 문항리스트_상세 --> <!-- 문항리스트_상세 -->
<div class="tb_tit01"> <div class="tb_tit01">
<p>교육 내용에 대한 전반적 만족도 평가</p> <p>교육 내용에 대한 전반적 만족도 평가</p>
@ -822,72 +933,7 @@ function replyCalculation(){
<!-- </div> --> <!-- </div> -->
<%-- </c:if> --%> <%-- </c:if> --%>
<!-- 비공개 메보 정보 -->
<div class="tb_tit01">
<p>비공개 메모</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td class="tb_alram">
<div>
<textarea name="hiddenMemo" id="hiddenMemo"><c:out value="${info.prvtMemoCn}" /></textarea>
<button type="button" class="btn_type08" onclick="updateHiddenMemo(); return false;">메모 저장</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- 비공개 메보 정보 -->
<%-- <div class="tb_tit01">
<p>강사공개 메모</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td class="tb_alram">
<div>
<textarea name="hiddenMemoCn" id="hiddenMemoCn"><c:out value="${info.memoCn}" /></textarea>
<button type="button" class="btn_type08" onclick="updateHiddenMemoCn(); return false;">메모 저장</button>
</div>
</td>
</tr>
</tbody>
</table>
</div> --%>
<div class="btn_wrap btn_layout01">
<div class="btn_left"></div>
<div class="btn_center">
<c:set var="qustnrRespondIdYn" value="N" />
<c:forEach var="chasiAllList" items="${chasiAllList}" varStatus="status">
<c:if test="${not empty chasiAllList.qustnrRespondId}">
<c:set var="qustnrRespondIdYn" value="Y" />
</c:if>
</c:forEach>
<c:if test="${qustnrRespondIdYn eq 'N'}">
<!-- <button type="button" class="btn_type01" onclick="fncGoEdit();">신청서 수정</button> -->
</c:if>
</div>
<div class="btn_right">
<button type="button" class="btn_type03" onclick="fncGoList1();">목록</button>
</div>
</div>
<!-- //비공개 메모 정보 -->
<!-- //list_상세 --> <!-- //list_상세 -->
<!-- btn_wrap --> <!-- btn_wrap -->
@ -899,6 +945,61 @@ function replyCalculation(){
</div> </div>
</div> </div>
--> -->
<!-- 문항리스트_상세 -->
<div class="tb_tit01">
<p>개인별 만족도 등록자 리스트</p>
</div>
<c:if test="${!empty chasiSrvyEAList}">
<div class="tb_type01 list2">
<table>
<colgroup>
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
<col style="width: 25%;">
</colgroup>
<thead>
<tr>
<th scope="col">등록자명</th>
<th scope="col">등록자생년월일</th>
<th scope="col">만족도평가점수</th>
<th scope="col">비고</th>
</tr>
</thead>
<tbody>
<c:forEach items="${chasiSrvyEAList}" var="chasiSrvyEAInfo" varStatus="status1">
<tr>
<td>
<c:out value="${chasiSrvyEAInfo.qustnrNm}"/>
</td>
<td>
<c:out value="${chasiSrvyEAInfo.qustnrBirth}"/>
</td>
<td>
<c:out value="${chasiSrvyEAInfo.qustnrScore}"/>점
</td>
<td>
<button type="button" class="btn_type04"
onclick="deleteSrvyEA(
'<c:out value="${chasiSrvyEAInfo.qustnrTmplatId}"/>'
,'<c:out value="${chasiSrvyEAInfo.qestnrId}"/>'
,'<c:out value="${chasiSrvyEAInfo.qustnrNm}"/>'
,'<c:out value="${chasiSrvyEAInfo.qustnrBirth}"/>'); return false;">삭제</button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</c:if>
</div> </div>
</div> </div>
</div> </div>

View File

@ -134,6 +134,38 @@
); );
} }
//설문 출력 팝업
function fncQustnrPrintList(
id //aplctOrd
, chId //chasiOrd
, p_site_id_cd //10,20,30
, p_action //select, insert
, p_qustnrTmplatId //select, insert
, p_qestnrId //select, insert
, p_qustnrRespondId //select, insert
) {
paramObj = {
"eduAplctOrd" : id
,"eduChasiOrd" : chId
,"siteIdCd" : p_site_id_cd
,"action" : p_action
,"qustnrTmplatId" : p_qustnrTmplatId
,"qestnrId" : p_qestnrId
,"qustnrRespondId" : p_qustnrRespondId
};
commonPopLayeropen(
"${pageContext.request.contextPath}/web/ve/aplct/cpyrgExprnClsrm/scholInfo/popup/qustnrPrintPopList.do"
, 800
, 700
, paramObj
, "Y"
, "scholPrintPop"
);
}
function selectChasiStatus(id, chId, action){ function selectChasiStatus(id, chId, action){
$.ajax({ $.ajax({

View File

@ -124,7 +124,7 @@
); );
} }
//설문 팝업 //설문 출력 팝업
function fncQustnrPrintList( function fncQustnrPrintList(
id //aplctOrd id //aplctOrd
, chId //chasiOrd , chId //chasiOrd