From 3c59329a8bc6f60c1023f07d2a9966f17f433f6e Mon Sep 17 00:00:00 2001 From: ijunho Date: Wed, 29 Oct 2025 14:34:37 +0900 Subject: [PATCH] Restore reduced files to 73017623 snapshot --- src/main/java/kcc/com/cmm/LoginVO.java | 9 + .../sspnIdtmt/web/SspnIdtmtController.java | 38 +- src/main/java/kcc/ve/cmm/VeConstants.java | 8 + .../eduInfo/service/VEEduMIXService.java | 2 + .../instrInfo/service/VEInstrMixService.java | 36 ++ .../instrInfo/service/impl/VEInstrMixDAO.java | 55 +++ .../service/VEPrcsAplctPrdService.java | 3 + .../cmdTrgt/web/CmdPrcsInfoMngController.java | 103 +++- .../prevent/web/PreventMngController.java | 462 +++++++++++++++++- .../spring/com/context-security.xml | 4 +- .../sql-map-config-postgresql-ve.xml | 9 +- .../EgovQustnrRespondInfo_SQL_Postgresql.xml | 4 +- .../uss/umt/EgovUserManage_SQL_Postgresql.xml | 7 +- .../cndtn/cndtnTrgtInfoMng_SQL_Postgresql.xml | 1 + .../ve/edu/VEEdu_MIX_SQL_Postgresql.xml | 29 +- .../VEALettnQestnrMIX_SQL_Postgresql.xml | 62 ++- .../prevent/cndtnEduPrcsAplctCfnMngDetail.jsp | 247 +++++++++- .../webapp/WEB-INF/jsp/web/main/mainPage.jsp | 27 +- .../WEB-INF/jsp/web/ve/aplct/cmdTrgt/main.jsp | 22 +- .../webapp/visitEdu/usr/publish/list.html | 17 +- 20 files changed, 1064 insertions(+), 81 deletions(-) diff --git a/src/main/java/kcc/com/cmm/LoginVO.java b/src/main/java/kcc/com/cmm/LoginVO.java index 890c8b40..cbc0cde4 100644 --- a/src/main/java/kcc/com/cmm/LoginVO.java +++ b/src/main/java/kcc/com/cmm/LoginVO.java @@ -125,6 +125,8 @@ public class LoginVO implements Serializable{ private String mberCi; + private String joinType; + public String getId() { return id; } @@ -440,6 +442,13 @@ public class LoginVO implements Serializable{ public void setMberCi(String mberCi) { this.mberCi = mberCi; } + public String getJoinType() { + return joinType; + } + public void setJoinType(String joinType) { + this.joinType = joinType; + } + diff --git a/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java b/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java index 6912ed6f..a8eddd83 100644 --- a/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java +++ b/src/main/java/kcc/ve/aplct/sspnIdtmt/web/SspnIdtmtController.java @@ -552,8 +552,14 @@ public class SspnIdtmtController { try { if (vEEduAplctVO !=null) { vEPrcsAplctVO.setPrcsAplctPrdOrd(vEPrcsDetailVODetail.getPrcsAplctPrdOrd()); - vEPrcsAplctVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + //나의 강의실, 신청목록에서 접근 시 해당 교육 정보 노출 + //교육 신청목록에서 접근 시 가장 최근 정보 노출 + if(StringUtils.isNotEmpty(vEPrcsDetailVO.getEduAplctOrd())) { + vEPrcsAplctVO.setEduAplctOrd(vEPrcsDetailVO.getEduAplctOrd()); + }else { + vEPrcsAplctVO.setEduAplctOrd(vEEduAplctVO.getEduAplctOrd()); + } vEPrcsAplctVO = vEPrcsAplctPrdService.selectAplctInfo(vEPrcsAplctVO); } @@ -801,7 +807,8 @@ public class SspnIdtmtController { */ @RequestMapping("/web/ve/aplct/sspnIdtmt/popup/eduCancelPopupAjax.do") public ModelAndView filePopupAjax( - @ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO + @ModelAttribute("vEEduRprtVO") VEEduRprtVO vEEduRprtVO, + @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO , ModelMap model //, RedirectAttributes redirectAttributes , HttpServletRequest request @@ -869,16 +876,27 @@ public class SspnIdtmtController { System.out.println(vEEduRprtVO.getAprvlCn()); System.out.println(s_atchFileId); - VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); - vEEduAplctVO.setEduAplctOrd(vEEduRprtVO.getEduAplctOrd()); + /* + * VEEduAplctVO vEEduAplctVO = new VEEduAplctVO(); + * vEEduAplctVO.setEduAplctOrd(vEEduRprtVO.getEduAplctOrd()); + * + * vEEduAplctVO.setAplctCn(vEEduRprtVO.getAprvlCn()); + * vEEduAplctVO.setRsltAtchFileId(s_atchFileId); + * vEEduAplctVO.setAprvlCd("35"); + * vEEduAplctVO.setLastUpdusrId(loginVO.getUniqId()); + * vEEduAplctService.update(vEEduAplctVO); + */ - vEEduAplctVO.setAplctCn(vEEduRprtVO.getAprvlCn()); - vEEduAplctVO.setRsltAtchFileId(s_atchFileId); - vEEduAplctVO.setAprvlCd("35"); - vEEduAplctVO.setLastUpdusrId(loginVO.getUniqId()); + /* + 251023 + ve_edu_aplct는 확정 상태 유지. + vea_aplct_detail_info에서 취소 관련 처리 + */ + vEEduAplctVO.setAplctStateCd(VeConstants.EDU_CD_CANCLE_REQ); //취소요청 코드 35 + vEEduAplctVO.setCnclAtchFileId(s_atchFileId); + vEEduAplctVO.setCnclCn(vEEduAplctVO.getAprvlCn()); //취소사유 - 기존에는 aprvlCn 사용 + vEEduMIXService.updateCnclStatus(vEEduAplctVO); - //취소요청 정보 저장 - vEEduAplctService.update(vEEduAplctVO); }catch(Exception ex) { diff --git a/src/main/java/kcc/ve/cmm/VeConstants.java b/src/main/java/kcc/ve/cmm/VeConstants.java index d8068b3a..4e0b30c1 100644 --- a/src/main/java/kcc/ve/cmm/VeConstants.java +++ b/src/main/java/kcc/ve/cmm/VeConstants.java @@ -268,6 +268,14 @@ public class VeConstants { public static final String DDLN_CD_APP_ING = "40"; public static final String DDLN_CD_APP_END = "50"; + /* + * VEA003 - edu_state_cd(vea_sspn_idmt_trgt), aplct_state_cd(vea_aplct_detail_info) + */ + public static final String EDU_CD_NOTCOMPLETE= "10"; //미이수 + public static final String EDU_CD_COMPLETE = "20"; //이수 + public static final String EDU_CD_CANCLE_REQ = "35"; //취소요청 + public static final String EDU_CD_DELAY = "60"; //연기 + } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java index 8ee092ad..872f3a3b 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/eduInfo/service/VEEduMIXService.java @@ -128,4 +128,6 @@ public interface VEEduMIXService { List selectTngrRsltRprtList(VEEduAplctVO paramVO) throws Exception; List selectExprnRsltFileDownList(VEEduAplctVO paramVO) throws Exception; + + void updateCnclStatus(VEEduAplctVO vEEduAplctVO); } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java index 2854fad8..52144199 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/VEInstrMixService.java @@ -174,10 +174,46 @@ public interface VEInstrMixService { //교육실정통계- 3.대상별 교육 의뢰 현황(그래프 포함) List selectEduPrfrmInfo_csi_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //조건부기소유예관리 통계 + //교육실정통계- ①검찰청별 교육 의뢰 현황(그래프 포함) + List selectEduPrfrmInfo_csi_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception; //교육실정통계- ⑤월별 교육 이수 현황(그래프 포함) List selectEduPrfrmInfo_csi_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //교육실정통계- ⑥대상별 교육 이수 현황(그래프 포함) + List selectEduPrfrmInfo_csi_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception; //교육실정통계- ⑦월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계 List selectEduPrfrmInfo_csi_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + + //예방교육 + //교육실정통계- ⑤월별 교육 이수 현황(그래프 포함) + List selectEduPrfrmInfo_csi_prevent_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + + //시정명령 통계 + //교육실정통계- ①검찰청별 교육 의뢰 현황(그래프 포함) + List selectEduPrfrmInfo_csi_cmdTrgt_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //교육실정통계- ①월별 교육 의뢰 현황(그래프 포함) + List selectEduPrfrmInfo_csi_cmdTrgt_no2(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //교육실정통계- 3.대상별 교육 의뢰 현황(그래프 포함) + List selectEduPrfrmInfo_csi_cmdTrgt_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //조건부기소유예관리 통계 + //교육실정통계- ①검찰청별 교육 의뢰 현황(그래프 포함) + List selectEduPrfrmInfo_csi_cmdTrgt_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //교육실정통계- ⑤월별 교육 이수 현황(그래프 포함) + List selectEduPrfrmInfo_csi_cmdTrgt_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //교육실정통계- ⑥대상별 교육 이수 현황(그래프 포함) + List selectEduPrfrmInfo_csi_cmdTrgt_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception; + + //교육실정통계- ⑦월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계 + List selectEduPrfrmInfo_csi_cmdTrgt_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception; } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java index 89ee34bc..38cdb901 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/instrInfo/service/impl/VEInstrMixDAO.java @@ -343,13 +343,68 @@ public class VEInstrMixDAO extends EgovAbstractDAO { return tlist; } + //통계정보-조건부기소유예관리-①검찰청별 교육 의뢰 현황(그래프 포함) + public List selectEduPrfrmInfo_csi_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_no4", vEInstrDetailVO); + return tlist; + } + public List selectEduPrfrmInfo_csi_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception { List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_no5", vEInstrDetailVO); return tlist; } + public List selectEduPrfrmInfo_csi_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_no6", vEInstrDetailVO); + return tlist; + } + public List selectEduPrfrmInfo_csi_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception { List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_no7", vEInstrDetailVO); return tlist; } + + + public List selectEduPrfrmInfo_csi_prevent_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_prevent_no5", vEInstrDetailVO); + return tlist; + } + + + //통계정보-조건부기소유예관리-①검찰청별 교육 의뢰 현황(그래프 포함) + public List selectEduPrfrmInfo_csi_cmdTrgt_no1(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no1", vEInstrDetailVO); + return tlist; + } + + public List selectEduPrfrmInfo_csi_cmdTrgt_no2(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no2", vEInstrDetailVO); + return tlist; + } + + public List selectEduPrfrmInfo_csi_cmdTrgt_no3(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no3", vEInstrDetailVO); + return tlist; + } + + //통계정보-조건부기소유예관리-①검찰청별 교육 의뢰 현황(그래프 포함) + public List selectEduPrfrmInfo_csi_cmdTrgt_no4(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no4", vEInstrDetailVO); + return tlist; + } + + public List selectEduPrfrmInfo_csi_cmdTrgt_no5(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no5", vEInstrDetailVO); + return tlist; + } + + public List selectEduPrfrmInfo_csi_cmdTrgt_no6(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no6", vEInstrDetailVO); + return tlist; + } + + public List selectEduPrfrmInfo_csi_cmdTrgt_no7(VEInstrDetailVO vEInstrDetailVO) throws Exception { + List tlist = (List) list("VESttstMixDAO.selectEduPrfrmInfo_csi_cmdTrgt_no7", vEInstrDetailVO); + return tlist; + } } diff --git a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java index 30069c86..7e747dfc 100644 --- a/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java +++ b/src/main/java/kcc/ve/instr/tngrVisitEdu/prcsInfo/service/VEPrcsAplctPrdService.java @@ -92,4 +92,7 @@ public interface VEPrcsAplctPrdService { //교육확정상태 대상자 리스트 가져오기 List selectTrgtList4_60(VEPrcsDetailVO vEPrcsDetailVO) throws Exception; + + //신청목록-실무역량강화, 기소유예 new -설문조사, 이수증 처리용 + List findByAprvlQustnrAllList(VEPrcsDetailVO vEPrcsDetailVO); } diff --git a/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java b/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java index 19985fed..82f8d707 100644 --- a/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java +++ b/src/main/java/kcc/ve/oprtn/cmdTrgt/web/CmdPrcsInfoMngController.java @@ -38,8 +38,11 @@ import kcc.com.cmm.spring.data.util.ExcelUtil; import kcc.com.cmm.util.StringUtil; import kcc.com.utl.user.service.CheckFileUtil; import kcc.com.utl.user.service.CheckLoginUtil; +import kcc.com.utl.user.service.QustnrCommonUtil; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uss.notify.service.NotifyManageService; +import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService; +import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService; @@ -57,6 +60,7 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngService; import kcc.ve.oprtn.cmdTrgt.trgtMng.service.CmdTrgtMngVO; import kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.service.ExcelVO; +import kcc.ve.oprtn.qestnr.service.VEALettnQestnrMIXService; /** * 기반강화연수(관리자) @@ -174,6 +178,17 @@ public class CmdPrcsInfoMngController { @Resource(name="eduAplctGnrService") private EgovIdGnrService eduAplctGnrService; + // 설문 util + @Resource(name = "qustnrCommonUtil") + private QustnrCommonUtil qustnrCommonUtil; + + // 설문 복합 VEA_ + @Resource(name = "vEALettnQestnrMIXService") + private VEALettnQestnrMIXService vEALettnQestnrMIXService; + + @Resource(name = "egovQustnrRespondInfoService") + private EgovQustnrRespondInfoService egovQustnrRespondInfoService; + /** * 기반강화연수 과정 관리 목록 화면 */ @@ -1328,6 +1343,92 @@ public class CmdPrcsInfoMngController { model.addAttribute("instrAsgnmList", instrAsgnmList); } + + //설문 문항 정보 + try { + model = qustnrCommonUtil._qustnrQesItm( + model + , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 + , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 + , "QTMPLA_0000000000001" + , vEALettnQestnrMIXService + , egovQustnrRespondInfoService + , vEPrcsDetailVO.getPrcsAplctPrdOrd() + , "" + //, vEEduAplctVO.getEduAplctOrd() + //, vEEduAplctVO.getEduChasiOrd() + ); + + }catch(Exception ex) { + ex.printStackTrace(); + } + /* + // 설문조사 정보 + QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); + qustnrRespondInfoVO.setSiteId(VeConstants.LCTR_DIV_CD_20); + 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)); + */ + + try{ + model = qustnrCommonUtil._chasiSrvyList( + model + , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 + , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 + , vEPrcsDetailVO.getPrcsAplctPrdOrd() + , "" + //, vEEduAplctVO.getEduAplctOrd() + //, vEEduAplctVO.getEduChasiOrd() + , vEALettnQestnrMIXService + ); + + }catch(Exception ex) { + ex.printStackTrace(); + } + + + //개인별 만족도 관리 - chasiSrvyEAList + try{ + model = qustnrCommonUtil._chasiSrvyEAList( + model + , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 + , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 + , vEPrcsDetailVO.getPrcsAplctPrdOrd() + , "" + //, vEEduAplctVO.getEduAplctOrd() + //, vEEduAplctVO.getEduChasiOrd() + , vEALettnQestnrMIXService + ); + + }catch(Exception ex) { + ex.printStackTrace(); + } + + + //주관식 답변 정보 + try { + QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); + //qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd()); + qustnrRespondInfoVO.setEduChasiOrd(""); + + List subjList = egovQustnrRespondInfoService.selectSubjList(qustnrRespondInfoVO); + if (subjList.size()>=0) { + model.addAttribute("subjInfo", subjList.get(0)); + } + + + }catch(Exception ex) { + System.out.println("Exception vEEduAplctOnlnService.updateBulk"); + } + + System.out.println("=============================================chasiSrvyEAList============================================="); + + return "/oprtn/cmdTrgt/cndtnEduPrcsAplctCfnMngDetail"; } @@ -2713,8 +2814,6 @@ public class CmdPrcsInfoMngController { //기반강화 조회 vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - //사용 중인 과정만 조회 - vEPrcsDetailVO.setUseYn("Y"); List vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); //3.pageing step3 diff --git a/src/main/java/kcc/ve/oprtn/prevent/web/PreventMngController.java b/src/main/java/kcc/ve/oprtn/prevent/web/PreventMngController.java index b0fd1180..23d4fd37 100644 --- a/src/main/java/kcc/ve/oprtn/prevent/web/PreventMngController.java +++ b/src/main/java/kcc/ve/oprtn/prevent/web/PreventMngController.java @@ -38,15 +38,23 @@ import kcc.com.cmm.spring.data.util.ExcelUtil; import kcc.com.cmm.util.StringUtil; import kcc.com.utl.user.service.CheckFileUtil; import kcc.com.utl.user.service.CheckLoginUtil; +import kcc.com.utl.user.service.QustnrCommonUtil; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uss.notify.service.NotifyManageService; +import kcc.let.uss.olp.qri.service.EgovQustnrRespondInfoService; +import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.ve.aplct.sspnIdtmt.service.SspnIdtmtService; import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrMIXService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEAPrcsAplctPrdInstrAsgnmVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; @@ -57,6 +65,7 @@ import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngService; import kcc.ve.oprtn.cndtnSspnIdtmt.trgtMng.service.CndtnTrgtMngVO; import kcc.ve.oprtn.fndtnEnhanceTrn.prcsAplctPrdMng.service.ExcelVO; +import kcc.ve.oprtn.qestnr.service.VEALettnQestnrMIXService; /** * 기반강화연수(관리자) @@ -161,12 +170,33 @@ public class PreventMngController { //파일 처리 egov @Resource(name="EgovFileMngUtil") private EgovFileMngUtil egovFileMngUtil; - + //파일 체크 util @Resource(name = "checkFileUtil") private CheckFileUtil checkFileUtil; - + // 설문 util + @Resource(name = "qustnrCommonUtil") + private QustnrCommonUtil qustnrCommonUtil; + + // 설문 복합 VEA_ + @Resource(name = "vEALettnQestnrMIXService") + private VEALettnQestnrMIXService vEALettnQestnrMIXService; + + @Resource(name = "egovQustnrRespondInfoService") + private EgovQustnrRespondInfoService egovQustnrRespondInfoService; + + //강의설정 MIX + @Resource(name = "vELctrMIXService") + private VELctrMIXService vELctrMIXService; + + //rkdtk 관리 + @Resource(name = "vEInstrMixService") + private VEInstrMixService vEInstrMixService; + + // 첨부파일 정보 + @Resource(name="vEInstrDetailActvtHstryService") + private VEInstrDetailActvtHstryService vEInstrDetailActvtHstryService; /** * 기반강화연수 과정 관리 목록 화면 @@ -651,7 +681,278 @@ public class PreventMngController { } + /** + * 교육실적통계 화면 + */ + @RequestMapping("/kccadr/oprtn/prevent/newEduPrfrmMngList.do") + public String newEduPrfrmMngList( + @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO + , @ModelAttribute("vELctrDetailVO") VELctrDetailVO vELctrDetailVO + , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail + + , HttpSession session + , ModelMap model + ) throws Exception { + + //LoginVO user = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + + + //설정 년 리스트(과거~올해+1) + List selectStngYrList = vELctrMIXService.selectStngYrList(vELctrDetailVO); + model.addAttribute("selectStngYrList", selectStngYrList); + + //차시별 정보 + VEPrcsDetailVO vEPrcsDetailVO = new VEPrcsDetailVO(); + vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); + List vEPrcsDetailVOList = vEPrcsAplctPrdService.selectPagingList4Fndth4Stts(vEPrcsDetailVO); + model.addAttribute("vEPrcsDetailVOList", vEPrcsDetailVOList); + + + //vEInstrDetailVODetail.setLctrDivCd("10"); //강의구분코드 VE0011 - 10-청소년, 20-성인, 30-체험교실, 50-실무영역, 60-기소유예 + + + /* + //통계- ①검찰청별 교육 의뢰 현황(그래프 포함) + { + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT2List_no1 = vEInstrMixService.selectEduPrfrmInfo_csi_no1(vEInstrDetailVODetail); + + //복호화 + //selectAsgnmInfoT2List_no1 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no1); + + model.addAttribute("list_no1",selectAsgnmInfoT2List_no1); + } + + + //통계- ②월별 교육의뢰현황(그래프 포함) + { + //vEInstrDetailVODetail.setNo3("10"); * 10-횟수, 20-인원 * + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT2List_no2 = vEInstrMixService.selectEduPrfrmInfo_csi_no2(vEInstrDetailVODetail); + + //복호화 + //selectAsgnmInfoT2List_no2 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no2); + + model.addAttribute("list_no2",selectAsgnmInfoT2List_no2); + } + + + //통계- ③대상별 교육의뢰현황(그래프 포함) + { + // * 10-횟수, 20-인원 * + //vEInstrDetailVODetail.setNo3("20"); + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT2List_no3 = vEInstrMixService.selectEduPrfrmInfo_csi_no3(vEInstrDetailVODetail); + + //복호화 + //selectAsgnmInfoT2List_no3 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no3); + + model.addAttribute("list_no3",selectAsgnmInfoT2List_no3); + } + + + //통계- ④검찰청별 교육 수료 현황(그래프 포함) + { + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 + List selectAsgnmInfoT4List_no4 = vEInstrMixService.selectEduPrfrmInfo_csi_no4(vEInstrDetailVODetail); + + model.addAttribute("list_no4",selectAsgnmInfoT4List_no4); + } + */ + + // ⑤월별 교육이수현황(그래프 포함) - 대상이 없어서 제공안됨 + { + vEInstrDetailVODetail.setLctrDivCd(LCTR_DIV_CD); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 + List selectAsgnmInfoT5List = vEInstrMixService.selectEduPrfrmInfo_csi_prevent_no5(vEInstrDetailVODetail); + model.addAttribute("list_no5",selectAsgnmInfoT5List); + } + + /* + // ⑥대상별 교육이수현황(그래프 포함) - 대상이 없어서 제공안됨 + { + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 + List selectAsgnmInfoT6List = vEInstrMixService.selectEduPrfrmInfo_csi_no6(vEInstrDetailVODetail); + model.addAttribute("list_no6",selectAsgnmInfoT6List); + } + // ⑦월별 교육차시별 차시명, 이수, 미이수, 연기인원 통계 + { + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + //vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 + List selectAsgnmInfoT7List = vEInstrMixService.selectEduPrfrmInfo_csi_no7(vEInstrDetailVODetail); + model.addAttribute("list_no7",selectAsgnmInfoT7List); + } + */ + //통계- ⑧인구감소지역별 교육횟수 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨 + /* + { + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT2List_no8 = vEInstrMixService.selectEduPrfrmInfo_tngr_no8(vEInstrDetailVODetail); + + //복호화 + selectAsgnmInfoT2List_no8 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no8); + + model.addAttribute("list_no8",selectAsgnmInfoT2List_no8); + } + */ + + + //통계- ⑨도서벽지별 지역교육횟수, 교육인원, 교육기관, 교육일자(그래프 포함)) - 대상이 없어서 제공안됨 + /* + { + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + List selectAsgnmInfoT2List_no9 = vEInstrMixService.selectEduPrfrmInfo_tngr_no9(vEInstrDetailVODetail); + + //복호화 + selectAsgnmInfoT2List_no9 = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List_no9); + + model.addAttribute("list_no9",selectAsgnmInfoT2List_no9); + } + */ + return "oprtn/prevent/newEduPrfrmMngList"; + + + } + /** + * 교육실적통계 Excel - 조건부기소유예 - 5검찰청별 교육 이수 현황(그래프 포함) + * @param model + * @return + * @throws Exception + */ + @SuppressWarnings("rawtypes") + @RequestMapping(value = "/kccadr/oprtn/prevent/eduPrfrmMngExcelDownLoad_csi_no5.do") + public ModelAndView eduPrfrmMngExcelDownLoad_csi_no5( + @ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO + , @ModelAttribute("vEInstrDetailVODetail") VEInstrDetailVO vEInstrDetailVODetail + , ModelMap model + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("excelDownloadView"); + + try { + + //통계- ①월별 횟수/교육인원(그래프 포함) + //vEInstrDetailVODetail.setInstrNm(vEInstrDetailVODetail.getSearchKeyword()); + vEInstrDetailVODetail = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVODetail); + vEInstrDetailVODetail.setSearchEduStateCd("20"); //이수만 보기 + List selectAsgnmInfoT2List = vEInstrMixService.selectEduPrfrmInfo_csi_prevent_no5(vEInstrDetailVODetail); + + //복호화 + //selectAsgnmInfoT2List = egovCryptoUtil.decryptVELctrDetailVOList(selectAsgnmInfoT2List); + + System.out.println("out-list-2"); + + + selectAsgnmInfoT2List.get(12).setCodeNm("합계"); + + List excelData = new ArrayList<>(); + excelData.addAll(selectAsgnmInfoT2List); + + + // 세팅값 + String title = "교육실적통계-월별 교육 이수 현황"; + int[] width = { + + 4000, 4000, 4000 + + }; // 너비 + + //33개 항목 + String[] header = { + + "월" + , "이수(명)" + , "횟수" + + }; + + String[] order = { + + "CodeNm" + , "Cnt" + , "Cnt2" + + }; + + excelDown( + excelData, + title, + width, + header, + order, + model + ); + + }catch(Exception ep) { + ep.getStackTrace(); + } + + + modelAndView.addObject(model); + + return modelAndView; + } + + /** + * @methodName : instrActvtHstrySignMngList + * @author : 이호영 + * @date : 2023.12.28 + * @description : 직인대장관리(이수증) - 기반 기소 + * @param vEInstrDetailActvtHstryVO + * @param model + * @param request + * @return + * @throws Exception + */ + @RequestMapping("/kccadr/oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList.do") + public String instrActvtHstrySignAndCmpltCrtfcMngList( + @ModelAttribute("vEInstrActvtHstryVO") VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO + , ModelMap model + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + //LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + +// if (loginVO == null || ssoLoginVO == null) { +// return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. +// } + //로그인 처리==================================== + + //1.pageing step1 + PaginationInfo paginationInfo = this.setPagingStep1_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO); + //2. pageing step2 + vEInstrDetailActvtHstryVO = this.setPagingStep2_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVO, paginationInfo); + vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.encrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); +// List vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignPagingList(vEInstrDetailActvtHstryVO); + List vEInstrDetailActvtHstryVOList = vEInstrDetailActvtHstryService.selectSignAndCmpltCrtfcPagingList(vEInstrDetailActvtHstryVO); + + vEInstrDetailActvtHstryVOList.stream().forEach(t-> t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm()))); + + //3.pageing step3 + paginationInfo = this.setPagingStep3_VEInstrDetailActvtHstryVO(vEInstrDetailActvtHstryVOList, paginationInfo); + model.addAttribute("paginationInfo", paginationInfo); + + // 검색어 복호화 + vEInstrDetailActvtHstryVO.setSearchKeyword(egovCryptoUtil.decrypt(vEInstrDetailActvtHstryVO.getSearchKeyword())); + //대상 리스트, 페이징 정보 전달 + model.addAttribute("list", vEInstrDetailActvtHstryVOList); + + + +// return "oprtn/cmm/instrActvtHstrySignMngList"; + return "oprtn/prevent/instrActvtHstrySignAndCmpltCrtfcMngList"; + } /** * 기소유예 신청기간 등록 @@ -1322,6 +1623,93 @@ public class PreventMngController { model.addAttribute("instrAsgnmList", instrAsgnmList); } + + //설문 문항 정보 + try { + model = qustnrCommonUtil._qustnrQesItm( + model + , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 + , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 + , "QTMPLA_0000000000001" + , vEALettnQestnrMIXService + , egovQustnrRespondInfoService + , vEPrcsDetailVO.getPrcsAplctPrdOrd() + , "" + //, vEEduAplctVO.getEduAplctOrd() + //, vEEduAplctVO.getEduChasiOrd() + ); + + }catch(Exception ex) { + ex.printStackTrace(); + } + /* + // 설문조사 정보 + QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); + qustnrRespondInfoVO.setSiteId(VeConstants.LCTR_DIV_CD_20); + 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)); + */ + + try{ + model = qustnrCommonUtil._chasiSrvyList( + model + , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 + , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 + , vEPrcsDetailVO.getPrcsAplctPrdOrd() + , "" + //, vEEduAplctVO.getEduAplctOrd() + //, vEEduAplctVO.getEduChasiOrd() + , vEALettnQestnrMIXService + ); + + }catch(Exception ex) { + ex.printStackTrace(); + } + + + //개인별 만족도 관리 - chasiSrvyEAList + try{ + model = qustnrCommonUtil._chasiSrvyEAList( + model + , LCTR_DIV_CD //청소년 -10, 성인-20, ...VE0012 + , "10" //10-기본설문, 20-신청자설문, 30-강사설문 VEA012 + , vEPrcsDetailVO.getPrcsAplctPrdOrd() + , "" + //, vEEduAplctVO.getEduAplctOrd() + //, vEEduAplctVO.getEduChasiOrd() + , vEALettnQestnrMIXService + ); + + }catch(Exception ex) { + ex.printStackTrace(); + } + + + //주관식 답변 정보 + try { + QustnrRespondInfoVO qustnrRespondInfoVO = new QustnrRespondInfoVO(); + //qustnrRespondInfoVO.setEduChasiOrd(vEEduAplctVO.getEduChasiOrd()); + qustnrRespondInfoVO.setEduChasiOrd(""); + + List subjList = egovQustnrRespondInfoService.selectSubjList(qustnrRespondInfoVO); + if (subjList.size()>=0) { + model.addAttribute("subjInfo", subjList.get(0)); + } + + + }catch(Exception ex) { + System.out.println("Exception vEEduAplctOnlnService.updateBulk"); + } + + System.out.println("=============================================chasiSrvyEAList============================================="); + + + return "/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail"; } @@ -2514,8 +2902,6 @@ public class PreventMngController { //기반강화 조회 vEPrcsDetailVO.setLctrDivCd(LCTR_DIV_CD); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부 - //사용 중인 과정만 조회 - vEPrcsDetailVO.setUseYn("Y"); List vEPrcsDetailVOList = vEPrcsService.selectPagingList(vEPrcsDetailVO); //3.pageing step3 @@ -2950,4 +3336,72 @@ public class PreventMngController { return p_paginationInfo; } + //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 + private PaginationInfo setPagingStep1_VEInstrDetailActvtHstryVO( + VEInstrDetailActvtHstryVO p_vEEduAplctVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_vEEduAplctVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_vEEduAplctVO.getPageUnit()); + paginationInfo.setPageSize(p_vEEduAplctVO.getPageSize()); + + return paginationInfo; + } + + + //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 + private VEInstrDetailActvtHstryVO setPagingStep2_VEInstrDetailActvtHstryVO( + VEInstrDetailActvtHstryVO p_vEEduAplctVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_vEEduAplctVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_vEEduAplctVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_vEEduAplctVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_vEEduAplctVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_vEEduAplctVO.setSearchSortCnd("prcs_ord"); + p_vEEduAplctVO.setSearchSortOrd("desc"); + } + + return p_vEEduAplctVO; + } + + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setPagingStep3_VEInstrDetailActvtHstryVO( + List p_vEEduAplctVOList + + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEEduAplctVOList.size() > 0) totCnt = p_vEEduAplctVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } + + @SuppressWarnings("unused") + private void excelDown( + List list, + String title, + int[] width, + String[] header, + String[] order, + ModelMap model + ){ + // 호출 + SXSSFWorkbook workbook; + try { + workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(list, header, order, width, title); + model.addAttribute("locale", Locale.KOREA); + model.addAttribute("workbook", workbook); + model.addAttribute("workbookName", title); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } } diff --git a/src/main/resources/egovframework/spring/com/context-security.xml b/src/main/resources/egovframework/spring/com/context-security.xml index e52391e1..f1501519 100644 --- a/src/main/resources/egovframework/spring/com/context-security.xml +++ b/src/main/resources/egovframework/spring/com/context-security.xml @@ -25,7 +25,7 @@ jdbcUsersByUsernameQuery="SELECT USER_ID, ESNTL_ID AS PASSWORD, 1 ENABLED, USER_NM, USER_ZIP, USER_ADRES, USER_EMAIL, USER_SE, '-' ORGNZT_ID, ESNTL_ID, '-' ORGNZT_NM, AUTHOR_CODE AS AUTHORITY - , '' AS mber_seq + , '' AS mber_seq, JOIN_TYPE AS JOIN_TYPE FROM COMVNUSERMASTER A INNER JOIN LETTNEMPLYRSCRTYESTBS B ON A.ESNTL_ID = B.SCRTY_DTRMN_TRGET_ID WHERE CONCAT(USER_SE, USER_ID) = ?" @@ -53,6 +53,7 @@ + + + + @@ -37,5 +41,8 @@ - + + + + diff --git a/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Postgresql.xml index b20d6a91..ba275dc7 100644 --- a/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/let/uss/olp/qri/EgovQustnrRespondInfo_SQL_Postgresql.xml @@ -134,7 +134,9 @@ FROM LETTNQUSTNRQESITM A WHERE 1=1 AND A.QESTNR_ID = #qestnrId# - AND A.QUSTNR_TMPLAT_ID = #qestnrTmplatId# + /* + AND A.QUSTNR_TMPLAT_ID = qestnrTmplatId + */ ORDER BY A.QESTN_SN diff --git a/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Postgresql.xml index c09a453b..931b6d54 100644 --- a/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/let/uss/umt/EgovUserManage_SQL_Postgresql.xml @@ -218,7 +218,8 @@ ]]> - CRTFC_DN_VALUE ) + CRTFC_DN_VALUE, + JOIN_TYPE ) VALUES ( #uniqId# , #emplyrId# , @@ -256,7 +257,8 @@ #snsId# , #snsEmail# , - #subDn# ) + #subDn#, + #joinType# ) diff --git a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml index 206c7e9c..ce0d3d76 100644 --- a/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/ve/edu/VEEdu_MIX_SQL_Postgresql.xml @@ -808,6 +808,8 @@ qe.QESTNR_ID AS qestnrId , /* 설문했으면 ID가 있음 */ vadi.APLCT_STATE_CD AS aplctStateCd, /* 이수 상태 */ + vadi.CNCL_CN AS cnclCn, /* 취소사유 */ + vadi.CNCL_ATCH_FILE_ID AS cnclAtchFileId, /* 취소요청파일 */ vsit.edu_state_cd AS eduStateCd, le.MBER_NM AS userNm, le.MBER_ID AS mberId, @@ -917,24 +919,35 @@ a.QUSTNR_TMPLAT_ID , a.SITE_ID , + a.QESTNR_ID as QESTNR_ID_10 , + null as QESTNR_ID_20 , + null as QESTNR_ID_30 , + a.qustnr_bgnde , + a.qustnr_endde + + /* MAX(CASE WHEN a.site_id_cd = '10' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_10, MAX(CASE WHEN a.site_id_cd = '20' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_20, - MAX(CASE WHEN a.site_id_cd = '30' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30 + MAX(CASE WHEN a.site_id_cd = '30' THEN a.QESTNR_ID ELSE NULL END) AS QESTNR_ID_30 + */ FROM LETTNQESTNRINFO a WHERE a.SITE_ID = #siteId# AND a.SITE_ID_CD IN ('10', '20', '30') - AND TO_CHAR(NOW(), - 'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde, - '2000.01.01') - AND COALESCE(a.qustnr_endde, - '9999.12.31') + + /* + + AND TO_CHAR(NOW(), 'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde, '2000.01.01') AND COALESCE(a.qustnr_endde, '9999.12.31') + GROUP BY a.QUSTNR_TMPLAT_ID , - a.SITE_ID ) I ON - (1 = 1) + a.SITE_ID + */ + + ) I ON + (vpap.edu_strt_pnttm between coalesce(I.qustnr_bgnde, '20000101') and coalesce(I.qustnr_endde,'99991231')) diff --git a/src/main/resources/egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Postgresql.xml b/src/main/resources/egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Postgresql.xml index 03381c6c..116dd1a1 100644 --- a/src/main/resources/egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Postgresql.xml +++ b/src/main/resources/egovframework/sqlmap/ve/qustnr/VEALettnQestnrMIX_SQL_Postgresql.xml @@ -147,7 +147,9 @@ lettnqustnrrespondinfo b WHERE b.edu_aplct_ord=#eduAplctOrd# - AND b.edu_chasi_ord=#eduChasiOrd# + /* + AND b.edu_chasi_ord=eduChasiOrd + */ GROUP BY b.QUSTNR_TMPLAT_ID , b.QESTNR_ID @@ -160,14 +162,22 @@ AND a.site_id_cd = #siteIdCd# )b - on(1=1) + on(1=1) + , ve_prcs_aplct_prd c WHERE 1 =1 + AND A.SITE_ID = #siteId# + AND COALESCE(A.site_id_cd, '10')=#siteIdCd# + + AND c.prcs_aplct_prd_ord=#eduAplctOrd# + AND c.edu_strt_pnttm between coalesce(a.qustnr_bgnde, '20000101') and coalesce(a.qustnr_endde, '99991231') + + /* AND to_char(NOW(), 'YYYY.MM.DD') BETWEEN COALESCE(a.qustnr_bgnde,'2000.01.01') AND COALESCE(a.qustnr_endde,'9999.12.31') + */ - AND A.SITE_ID = #siteId# - AND COALESCE(A.site_id_cd, '10')=#siteIdCd# + ORDER BY A.QESTNR_ID DESC LIMIT 1 @@ -230,30 +240,42 @@ SELECT c02.* FROM ( + SELECT - c00.qustnr_tmplat_id - , c00.qestnr_id - , c00.qustnr_qesitm_id - , max(c00.qustnr_rslt_id) AS qustnr_rslt_id + + c00.qestnr_id , + c00.qustnr_qesitm_id , + max(c00.qustnr_rslt_id) as qustnr_rslt_id FROM LETTNQESTNRRSLTDetail c00 + , ve_edu_aplct d00 WHERE - c00.EDU_APLCT_ORD = #eduAplctOrd# - AND c00.EDU_CHASI_ORD = #eduChasiOrd# + d00.prcs_ord = #eduAplctOrd# + and d00.EDU_APLCT_ORD=c00.edu_aplct_ord + /* + and c00.EDU_CHASI_ORD = '' + */ GROUP BY - c00.qustnr_tmplat_id - , c00.qestnr_id - , c00.qustnr_qesitm_id + + c00.qestnr_id , + c00.qustnr_qesitm_id + )c01 , LETTNQESTNRRSLTDetail c02 - WHERE c01.qustnr_tmplat_id=c02.qustnr_tmplat_id + WHERE 1=1 + /* + c01.qustnr_tmplat_id=c02.qustnr_tmplat_id + */ AND c01.qestnr_id=c02.qestnr_id AND c01.qustnr_qesitm_id=c02.qustnr_qesitm_id AND c01.qustnr_rslt_id=c02.qustnr_rslt_id ) c on( + 1=1 + /* b.QUSTNR_TMPLAT_ID =c.QUSTNR_TMPLAT_ID + */ AND b.QESTNR_ID =c.QESTNR_ID AND b.QUSTNR_QESITM_ID =c.QUSTNR_QESITM_ID @@ -287,7 +309,10 @@ LEFT OUTER JOIN LETTNQUSTNRRESPONDINFO e on ( - d.QUSTNR_TMPLAT_ID =e.QUSTNR_TMPLAT_ID + 1=1 + /* + d.QUSTNR_TMPLAT_ID =e.QUSTNR_TMPLAT_ID + */ AND d.QESTNR_ID =e.QESTNR_ID AND d.QUSTNR_RESPOND_ID =e.QUSTNR_RESPOND_ID AND d.EDU_APLCT_ORD = e.EDU_APLCT_ORD @@ -321,7 +346,10 @@ )F on( + 1=1 + /* b.QUSTNR_TMPLAT_ID =f.QUSTNR_TMPLAT_ID + */ AND b.QESTNR_ID =f.QESTNR_ID AND b.QUSTNR_QESITM_ID =f.QUSTNR_QESITM_ID @@ -331,7 +359,9 @@ WHERE a.site_id=#siteId# AND COALESCE(a.SITE_ID_CD,'10') =#siteIdCd# - AND b.QUSTNR_TMPLAT_ID =a.QUSTNR_TMPLAT_ID + /* + AND b.QUSTNR_TMPLAT_ID =a.QUSTNR_TMPLAT_ID + */ AND b.QESTNR_ID =a.QESTNR_ID diff --git a/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp b/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp index e10e3810..e403c254 100644 --- a/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/oprtn/prevent/cndtnEduPrcsAplctCfnMngDetail.jsp @@ -845,37 +845,37 @@ - - + +

- ${list.aplctCn} + ${list.cnclCn}
- +
- + 취소승인

- ${list.aplctCn} + ${list.cnclCn}
- +
- + 취소반려

- ${list.aplctCn} + ${list.cnclCn}
- +
@@ -962,7 +962,8 @@ - + +
@@ -1016,7 +1017,229 @@ <%-- --%>
- + + + + +
+

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

+
+ + +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> +<%-- --%> + + + + + + +<%-- "> --%> +<%-- --%> + + + + + + + + + + + +<%-- "> --%> +<%-- --%> + + + + + + + +<%-- --%> +<%-- --%> + + + +<%-- --%> + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
평가문항매우만족만족보통불만족매우불만족
+ ${status1.count}) + + + + + + + + + + +
+
+
+ + + + +
+ + + + + + + + + + + + + + + + +
기타의견
기타의견
+
+ +
+
+
+ +
+
+
+ +
+
+ + + + + + + + +<%-- --%> + + +
+
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + +
+
+
+
+ + diff --git a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp index 1cb4b2ac..745ff659 100644 --- a/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/main/mainPage.jsp @@ -166,8 +166,8 @@ function fn_egov_inqire_data(bbsId, nttId) {

상표권 교육조건부 기소유예

@@ -175,8 +175,8 @@ function fn_egov_inqire_data(bbsId, nttId) {

부정경쟁행위 시정명령

@@ -184,8 +184,8 @@ function fn_egov_inqire_data(bbsId, nttId) {

상표권 침해·부정경쟁 행위 예방

@@ -372,12 +372,15 @@ function fn_egov_inqire_data(bbsId, nttId) {