From 43a3a2725fb6191be23e2979709f59d7e199c5a6 Mon Sep 17 00:00:00 2001 From: myname Date: Fri, 15 Dec 2023 15:04:13 +0900 Subject: [PATCH] =?UTF-8?q?2023-12-15=2015:03=20=EA=B0=9C=EC=9D=B8?= =?UTF-8?q?=EB=B3=84=20=EB=A7=8C=EC=A1=B1=EB=8F=84=20=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utl/user/service/QustnrCommonUtil.java | 30 ++- .../service/EgovQustnrRespondInfoService.java | 5 + .../EgovQustnrRespondInfoServiceImpl.java | 6 + .../service/impl/QustnrRespondInfoDao.java | 5 + .../web/EduRsltMngAdultController.java | 35 ++- .../service/VEALettnQestnrMIXService.java | 3 + .../ve/oprtn/qestnr/service/VEAQestnrVO.java | 23 ++ .../service/impl/VEALettnQestnrMIXDAO.java | 5 + .../impl/VEALettnQestnrMIXServiceImpl.java | 5 + .../web/EduRsltMngTngrController.java | 248 +++++++++--------- .../qri/EgovQustnrRespondInfo_SQL_Tibero.xml | 13 + .../qustnr/VEALettnQestnrMIX_SQL_Tibero.xml | 36 ++- .../oprtn/adultVisitEdu/eduRsltMngDetail.jsp | 121 ++++++++- .../oprtn/tngrVisitEdu/eduRsltMngDetail.jsp | 239 ++++++++++++----- .../adultVisitEdu/eduEnd/eduEndDetail.jsp | 32 +++ .../tngrVisitEdu/eduEnd/eduEndDetail.jsp | 2 +- 16 files changed, 584 insertions(+), 224 deletions(-) diff --git a/src/main/java/kcc/com/utl/user/service/QustnrCommonUtil.java b/src/main/java/kcc/com/utl/user/service/QustnrCommonUtil.java index f2768ddd..a79337ec 100644 --- a/src/main/java/kcc/com/utl/user/service/QustnrCommonUtil.java +++ b/src/main/java/kcc/com/utl/user/service/QustnrCommonUtil.java @@ -89,5 +89,33 @@ 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 chasiSrvyList = p_vEALettnQestnrMIXService.selectDetail_MIX_LQI_04(vEAQestnrVO); + + if(chasiSrvyList.size() > 0) { + p_model.addAttribute("chasiSrvyEAList",chasiSrvyList); + } + + return p_model; + } } \ No newline at end of file diff --git a/src/main/java/kcc/let/uss/olp/qri/service/EgovQustnrRespondInfoService.java b/src/main/java/kcc/let/uss/olp/qri/service/EgovQustnrRespondInfoService.java index 6672d111..05854aee 100644 --- a/src/main/java/kcc/let/uss/olp/qri/service/EgovQustnrRespondInfoService.java +++ b/src/main/java/kcc/let/uss/olp/qri/service/EgovQustnrRespondInfoService.java @@ -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 공통서비스 장동한 @@ -154,6 +155,10 @@ public interface EgovQustnrRespondInfoService { //개별 응답 저장 void insertSrvyEAInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception; + + //개별 응답 저장 + void deleteSrvyEAInfo(VEAQestnrVO vEAQestnrVO) throws Exception; + void updateSrvyInfo(QustnrRespondInfoVO qustnrRespondInfoVO) throws Exception; diff --git a/src/main/java/kcc/let/uss/olp/qri/service/impl/EgovQustnrRespondInfoServiceImpl.java b/src/main/java/kcc/let/uss/olp/qri/service/impl/EgovQustnrRespondInfoServiceImpl.java index 5d0cfa06..db012e95 100644 --- a/src/main/java/kcc/let/uss/olp/qri/service/impl/EgovQustnrRespondInfoServiceImpl.java +++ b/src/main/java/kcc/let/uss/olp/qri/service/impl/EgovQustnrRespondInfoServiceImpl.java @@ -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); diff --git a/src/main/java/kcc/let/uss/olp/qri/service/impl/QustnrRespondInfoDao.java b/src/main/java/kcc/let/uss/olp/qri/service/impl/QustnrRespondInfoDao.java index a5ced210..a0aa903e 100644 --- a/src/main/java/kcc/let/uss/olp/qri/service/impl/QustnrRespondInfoDao.java +++ b/src/main/java/kcc/let/uss/olp/qri/service/impl/QustnrRespondInfoDao.java @@ -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); } diff --git a/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduRsltMng/web/EduRsltMngAdultController.java b/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduRsltMng/web/EduRsltMngAdultController.java index 14a8b097..3aaab3ac 100644 --- a/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduRsltMng/web/EduRsltMngAdultController.java +++ b/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduRsltMng/web/EduRsltMngAdultController.java @@ -346,28 +346,23 @@ public class EduRsltMngAdultController { ex.printStackTrace(); } - /* - // 설문조사 결과 조회 - qustnrRespondInfoVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); - qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd()); - List 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 selectAsgnmInstrList = vEAsgnmMIXService.selectAsgnmInstrList(vEInstrAsgnmVO); - model.addAttribute("listChasi", selectAsgnmInstrList); - System.out.println("------------------------======================="); - */ + System.out.println("=============================================chasiSrvyEAList============================================="); //20220223 우영두 추가 //강의내역 NOTI 입력 diff --git a/src/main/java/kcc/ve/oprtn/qestnr/service/VEALettnQestnrMIXService.java b/src/main/java/kcc/ve/oprtn/qestnr/service/VEALettnQestnrMIXService.java index 1b463014..1f9c42d5 100644 --- a/src/main/java/kcc/ve/oprtn/qestnr/service/VEALettnQestnrMIXService.java +++ b/src/main/java/kcc/ve/oprtn/qestnr/service/VEALettnQestnrMIXService.java @@ -15,4 +15,7 @@ public interface VEALettnQestnrMIXService { //관리자 청소년,성인 - 만족도 평가 List selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception; // R + + //관리자 청소년,성인 - 개별 만족도 리스트 + List selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception; // R } diff --git a/src/main/java/kcc/ve/oprtn/qestnr/service/VEAQestnrVO.java b/src/main/java/kcc/ve/oprtn/qestnr/service/VEAQestnrVO.java index 63b3c4b1..28e0b5b3 100644 --- a/src/main/java/kcc/ve/oprtn/qestnr/service/VEAQestnrVO.java +++ b/src/main/java/kcc/ve/oprtn/qestnr/service/VEAQestnrVO.java @@ -90,6 +90,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; + } } diff --git a/src/main/java/kcc/ve/oprtn/qestnr/service/impl/VEALettnQestnrMIXDAO.java b/src/main/java/kcc/ve/oprtn/qestnr/service/impl/VEALettnQestnrMIXDAO.java index ffa94b66..f7265ecf 100644 --- a/src/main/java/kcc/ve/oprtn/qestnr/service/impl/VEALettnQestnrMIXDAO.java +++ b/src/main/java/kcc/ve/oprtn/qestnr/service/impl/VEALettnQestnrMIXDAO.java @@ -27,4 +27,9 @@ public class VEALettnQestnrMIXDAO extends EgovAbstractDAO { List tlist = (List) list("VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03", paramVO); return tlist; } + + public List selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception { + List tlist = (List) list("VEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04", paramVO); + return tlist; + } } diff --git a/src/main/java/kcc/ve/oprtn/qestnr/service/impl/VEALettnQestnrMIXServiceImpl.java b/src/main/java/kcc/ve/oprtn/qestnr/service/impl/VEALettnQestnrMIXServiceImpl.java index 82521387..27731be9 100644 --- a/src/main/java/kcc/ve/oprtn/qestnr/service/impl/VEALettnQestnrMIXServiceImpl.java +++ b/src/main/java/kcc/ve/oprtn/qestnr/service/impl/VEALettnQestnrMIXServiceImpl.java @@ -35,4 +35,9 @@ public class VEALettnQestnrMIXServiceImpl implements VEALettnQestnrMIXService { public List selectDetail_MIX_LQI_03(VEAQestnrVO paramVO) throws Exception{ return vEALettnQestnrMIXDAO.selectDetail_MIX_LQI_03(paramVO); } + + //관리자 (청년, 성인) 만족도 평가 + public List selectDetail_MIX_LQI_04(VEAQestnrVO paramVO) throws Exception{ + return vEALettnQestnrMIXDAO.selectDetail_MIX_LQI_04(paramVO); + } } diff --git a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduRsltMng/web/EduRsltMngTngrController.java b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduRsltMng/web/EduRsltMngTngrController.java index c0e1cbf0..cf9da481 100644 --- a/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduRsltMng/web/EduRsltMngTngrController.java +++ b/src/main/java/kcc/ve/oprtn/tngrVisitEdu/eduRsltMng/web/EduRsltMngTngrController.java @@ -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 commandMap =new HashMap(); - 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 commandMap =new HashMap(); - 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 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 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"; - } - - /** - * 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); - } + @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; } - 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"); - } + + System.out.println(vEAQestnrVO.toString()); + System.out.println(request.getParameter("qustnrTmplatId")); + + + + 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; } + + /** + * 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"; + } } diff --git a/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Tibero.xml index f265b5ce..250d7284 100644 --- a/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Tibero.xml @@ -10,6 +10,7 @@ + + + + + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/eduRsltMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/eduRsltMngDetail.jsp index 4fecd44b..3b5354af 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/eduRsltMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/adultVisitEdu/eduRsltMngDetail.jsp @@ -88,6 +88,54 @@ listForm.action = ""; 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); + } + }); + } @@ -335,6 +383,19 @@ + + +
+
+ +
+
+
+
+ +
+
+ <%--

교육 내용에 대한 전반적 만족도 평가

@@ -500,9 +561,67 @@
- +
+ +
+
+ + + +
+

개인별 만족도 등록자 리스트

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
등록자명등록자생년월일만족도평가점수비고
+ + + + + 점 + + + + +
+
+
+ + diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduRsltMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduRsltMngDetail.jsp index 04e7a82a..507dd9f4 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduRsltMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/tngrVisitEdu/eduRsltMngDetail.jsp @@ -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); + } + }); + } @@ -693,6 +737,73 @@ function replyCalculation(){ + +
+

비공개 메모

+
+
+ + + + + + + + + + +
+

내용

+
+
+ + +
+
+
+ + <%--
+

강사공개 메모

+
+
+ + + + + + + + + + +
+

내용

+
+
+ + +
+
+
--%> +
+
+
+ + + + + + + + + +
+
+ +
+
+ +

교육 내용에 대한 전반적 만족도 평가

@@ -822,72 +933,7 @@ function replyCalculation(){ <%-- --%> - -
-

비공개 메모

-
-
- - - - - - - - - - -
-

내용

-
-
- - -
-
-
- - <%--
-

강사공개 메모

-
-
- - - - - - - - - - -
-

내용

-
-
- - -
-
-
--%> -
-
-
- - - - - - - - - -
-
- -
-
- + @@ -899,6 +945,61 @@ function replyCalculation(){
--> + + + +
+

개인별 만족도 등록자 리스트

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
등록자명등록자생년월일만족도평가점수비고
+ + + + + 점 + + + + +
+
+
+ + diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/adultVisitEdu/eduEnd/eduEndDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/adultVisitEdu/eduEnd/eduEndDetail.jsp index 88034325..ef21fe6c 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/adultVisitEdu/eduEnd/eduEndDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/adultVisitEdu/eduEnd/eduEndDetail.jsp @@ -133,7 +133,39 @@ , "scholPop" ); } + + //설문 출력 팝업 + 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({ diff --git a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/tngrVisitEdu/eduEnd/eduEndDetail.jsp b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/tngrVisitEdu/eduEnd/eduEndDetail.jsp index 185a3561..a7aafd13 100644 --- a/src/main/webapp/WEB-INF/jsp/web/ve/aplct/tngrVisitEdu/eduEnd/eduEndDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/ve/aplct/tngrVisitEdu/eduEnd/eduEndDetail.jsp @@ -124,7 +124,7 @@ ); } - //설문 팝업 + //설문 출력 팝업 function fncQustnrPrintList( id //aplctOrd , chId //chasiOrd