2023-12-15 15:03 개인별 만족도 등록
This commit is contained in:
parent
2dd8b03bdb
commit
43a3a2725f
@ -90,4 +90,32 @@ public class QustnrCommonUtil {
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -7,6 +7,7 @@ import kcc.com.cmm.ComDefaultVO;
|
||||
import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import kcc.ve.oprtn.qestnr.service.VEAQestnrVO;
|
||||
/**
|
||||
* 설문조사 Service Class 구현
|
||||
* @author 공통서비스 장동한
|
||||
@ -155,6 +156,10 @@ public interface EgovQustnrRespondInfoService {
|
||||
//개별 응답 저장
|
||||
void insertSrvyEAInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception;
|
||||
|
||||
//개별 응답 저장
|
||||
void deleteSrvyEAInfo(VEAQestnrVO vEAQestnrVO) throws Exception;
|
||||
|
||||
|
||||
void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception;
|
||||
|
||||
// 차수별 설문 조회
|
||||
|
||||
@ -15,6 +15,7 @@ import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
|
||||
import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import kcc.ve.oprtn.qestnr.service.VEAQestnrVO;
|
||||
/**
|
||||
* 설문조사 ServiceImpl Class 구현
|
||||
* @author 공통서비스 장동한
|
||||
@ -227,6 +228,11 @@ public class EgovQustnrRespondInfoServiceImpl extends EgovAbstractServiceImpl im
|
||||
dao.insertSrvyEAInfo(qustnrRespondInfoVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteSrvyEAInfo(VEAQestnrVO vEAQestnrVO) throws Exception {
|
||||
dao.deleteSrvyEAInfo(vEAQestnrVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception {
|
||||
dao.updateSrvyInfo(qustnrRespondInfoVO);
|
||||
|
||||
@ -11,6 +11,7 @@ import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO;
|
||||
import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO;
|
||||
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
|
||||
import kcc.ve.oprtn.qestnr.service.VEAQestnrVO;
|
||||
/**
|
||||
* 설문조사 Dao Class 구현
|
||||
* @author 공통서비스 장동한
|
||||
@ -188,6 +189,10 @@ public class QustnrRespondInfoDao extends EgovAbstractDAO {
|
||||
insert("QustnrRespondInfo.insertSrvyEAInfo", qustnrRespondInfoVO);
|
||||
}
|
||||
|
||||
public void deleteSrvyEAInfo(VEAQestnrVO vEAQestnrVO) throws Exception{
|
||||
delete("QustnrRespondInfo.deleteSrvyEAInfo", vEAQestnrVO);
|
||||
}
|
||||
|
||||
public void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception{
|
||||
update("QustnrRespondInfo.updateSrvyInfo", qustnrRespondInfoVO);
|
||||
}
|
||||
|
||||
@ -346,28 +346,23 @@ public class EduRsltMngAdultController {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
|
||||
/*
|
||||
// 설문조사 결과 조회
|
||||
qustnrRespondInfoVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd());
|
||||
qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd());
|
||||
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);
|
||||
|
||||
//개인별 만족도 관리 - chasiSrvyEAList
|
||||
try{
|
||||
model = qustnrCommonUtil._chasiSrvyEAList(
|
||||
model
|
||||
, VeConstants.LCTR_DIV_CD_20 //청소년 -10, 성인-20, ...VE0012
|
||||
, "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012
|
||||
, vEEduAplctVO.getEduAplctOrd()
|
||||
, vEEduAplctVO.getEduChasiOrd()
|
||||
, vEALettnQestnrMIXService
|
||||
);
|
||||
|
||||
}catch(Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*
|
||||
System.out.println("------------------------");
|
||||
//전체 차시 배정 강사 정보
|
||||
vEInstrAsgnmVO.setEduChasiOrd("");
|
||||
List<VEInstrAsgnmVO> selectAsgnmInstrList = vEAsgnmMIXService.selectAsgnmInstrList(vEInstrAsgnmVO);
|
||||
model.addAttribute("listChasi", selectAsgnmInstrList);
|
||||
System.out.println("------------------------=======================");
|
||||
*/
|
||||
System.out.println("=============================================chasiSrvyEAList=============================================");
|
||||
|
||||
//20220223 우영두 추가
|
||||
//강의내역 NOTI 입력
|
||||
|
||||
@ -15,4 +15,7 @@ public interface VEALettnQestnrMIXService {
|
||||
|
||||
//관리자 청소년,성인 - 만족도 평가
|
||||
List<VEAQestnrVO> selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception; // R
|
||||
|
||||
//관리자 청소년,성인 - 개별 만족도 리스트
|
||||
List<VEAQestnrVO> selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception; // R
|
||||
}
|
||||
|
||||
@ -91,6 +91,11 @@ public class VEAQestnrVO extends ComDefaultVO implements Serializable {
|
||||
private String qestnrQesitmId;
|
||||
|
||||
|
||||
private String qustnrNm; //개별설문등록자명
|
||||
private String qustnrBirth; //개별설문등록자생년월일
|
||||
private String qustnrScore; //개별설문등록자점수
|
||||
|
||||
|
||||
public String getQestnrQesitmId() {
|
||||
return qestnrQesitmId;
|
||||
}
|
||||
@ -360,5 +365,23 @@ public class VEAQestnrVO extends ComDefaultVO implements Serializable {
|
||||
public void setFrstRegisterNm(String 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -27,4 +27,9 @@ public class VEALettnQestnrMIXDAO extends EgovAbstractDAO {
|
||||
List<VEAQestnrVO> tlist = (List<VEAQestnrVO>) list("VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03", paramVO);
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,4 +35,9 @@ public class VEALettnQestnrMIXServiceImpl implements VEALettnQestnrMIXService {
|
||||
public List<VEAQestnrVO> selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception{
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -787,37 +787,9 @@ public class EduRsltMngTngrController {
|
||||
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 =================================");
|
||||
|
||||
// 설문조사 정보
|
||||
try{
|
||||
model = qustnrCommonUtil._chasiSrvyList(
|
||||
model
|
||||
@ -828,51 +800,27 @@ public class EduRsltMngTngrController {
|
||||
, 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) {
|
||||
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("------------------------");
|
||||
@ -1798,71 +1746,43 @@ public class EduRsltMngTngrController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 브라우저 구분 얻기.
|
||||
*
|
||||
* @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";
|
||||
@RequestMapping(value="/deleteNewSrvyEAInfoAjax.do")
|
||||
public ModelAndView deleteNewSrvyEAInfoAjax(
|
||||
HttpServletRequest request
|
||||
, ModelMap model
|
||||
, VEAQestnrVO vEAQestnrVO
|
||||
) throws Exception {
|
||||
ModelAndView modelAndView = new ModelAndView();
|
||||
modelAndView.setViewName("jsonView");
|
||||
try {
|
||||
|
||||
//String
|
||||
|
||||
LoginVO loginVO = checkLoginUtil.getAuthLoginVO();
|
||||
if (loginVO == null) {
|
||||
modelAndView.addObject("result", "fail");
|
||||
modelAndView.addObject("msg", "로그인 해주세요.");
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
/**
|
||||
* Disposition 지정하기.
|
||||
*
|
||||
* @param filename
|
||||
* @param request
|
||||
* @param response
|
||||
* @throws Exception
|
||||
*/
|
||||
private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
String browser = getBrowser(request);
|
||||
System.out.println(vEAQestnrVO.toString());
|
||||
System.out.println(request.getParameter("qustnrTmplatId"));
|
||||
|
||||
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");
|
||||
|
||||
egovQustnrRespondInfoService.deleteSrvyEAInfo(vEAQestnrVO);
|
||||
|
||||
modelAndView.addObject("result", "success");
|
||||
|
||||
}catch(Exception ex) {
|
||||
System.out.println("egovQustnrRespondInfoService.deleteSrvyEAInfo");
|
||||
modelAndView.addObject("result", "fail");
|
||||
}
|
||||
|
||||
// response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); // 파일명에 콤마 포함시 오류
|
||||
response.setHeader("Content-Disposition", dispositionPrefix + "\"" + encodedFilename + "\"");
|
||||
|
||||
if ("Opera".equals(browser)) {
|
||||
response.setContentType("application/octet-stream;charset=UTF-8");
|
||||
return modelAndView;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@ -1968,4 +1888,70 @@ public class EduRsltMngTngrController {
|
||||
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";
|
||||
}
|
||||
}
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
<typeAlias alias="QustnrRespondInfoVO" type="kcc.let.uss.olp.qri.service.QustnrRespondInfoVO"/>
|
||||
<typeAlias alias="qustnrRespondManageVO" type="kcc.let.uss.olp.qrm.service.QustnrRespondManageVO"/>
|
||||
<typeAlias alias="VEPrcsDetailVO" type="kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO"/>
|
||||
<typeAlias alias="VEAQestnrVO" type="kcc.ve.oprtn.qestnr.service.VEAQestnrVO"/>
|
||||
|
||||
|
||||
<select id="QustnrRespondInfo.selectSiteIdQustnrTmplat" parameterClass="QustnrRespondInfoVO" resultClass="QustnrRespondInfoVO">
|
||||
@ -514,6 +515,18 @@
|
||||
)
|
||||
</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">
|
||||
/* QustnrRespondInfo.insertSrvyInfo_bak */
|
||||
INSERT INTO LETTNQESTNRRSLT
|
||||
|
||||
@ -218,4 +218,38 @@
|
||||
AND b.QESTNR_ID =a.QESTNR_ID
|
||||
|
||||
</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>
|
||||
|
||||
@ -88,6 +88,54 @@
|
||||
listForm.action = "<c:url value='/kccadr/oprtn/adultVisitEdu/eduRsltSrvyExcelDownLoad.do'/>";
|
||||
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>
|
||||
|
||||
</head>
|
||||
@ -335,6 +383,19 @@
|
||||
</table>
|
||||
</div>
|
||||
<!-- 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">
|
||||
<p>교육 내용에 대한 전반적 만족도 평가</p>
|
||||
</div>
|
||||
@ -500,9 +561,67 @@
|
||||
<div class="btn_center">
|
||||
</div>
|
||||
<div class="btn_right">
|
||||
<button class="btn_type02" onclick="fncGoList(); return false;">목록</button>
|
||||
|
||||
</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>
|
||||
|
||||
@ -284,9 +284,53 @@ function replyCalculation(){
|
||||
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>
|
||||
|
||||
@ -693,6 +737,73 @@ function replyCalculation(){
|
||||
</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="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">
|
||||
<p>교육 내용에 대한 전반적 만족도 평가</p>
|
||||
@ -822,72 +933,7 @@ function replyCalculation(){
|
||||
<!-- </div> -->
|
||||
<%-- </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_상세 -->
|
||||
<!-- btn_wrap -->
|
||||
@ -899,6 +945,61 @@ function replyCalculation(){
|
||||
</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>
|
||||
|
||||
@ -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){
|
||||
$.ajax({
|
||||
|
||||
@ -124,7 +124,7 @@
|
||||
);
|
||||
}
|
||||
|
||||
//설문 팝업
|
||||
//설문 출력 팝업
|
||||
function fncQustnrPrintList(
|
||||
id //aplctOrd
|
||||
, chId //chasiOrd
|
||||
|
||||
Loading…
Reference in New Issue
Block a user