From be6c22ae3faf6e16667372ff70c53092f8af5f56 Mon Sep 17 00:00:00 2001 From: myname Date: Tue, 6 Feb 2024 09:33:11 +0900 Subject: [PATCH] =?UTF-8?q?2024-02-06=2009:32=20=EC=84=B1=EC=9D=B8?= =?UTF-8?q?=EC=B0=BE=EA=B5=90=20=EC=95=8C=EB=A6=BC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../utl/user/service/QustnrCommonUtil.java | 3 +- .../cmm/innorix/service/AdrInnorixFileVO.java | 9 + .../service/impl/InnorixFileServiceImpl.java | 55 + .../service/impl/NotifyManageServiceImpl.java | 116 +- .../kcc/let/utl/fcc/service/ITNotiUtil.java | 9 +- .../ve/aplct/comweb/CommonWebController.java | 17 + .../eduEnd/web/EduEndTngrController.java | 20 + .../asgnmInfo/web/VEAdultAsgnmController.java | 70 +- .../web/InstrAdultPrflController.java | 1789 +++++++++-------- .../web/EduCnfrmMngAdultController.java | 24 +- .../InstrActvtHstryAdultMngController.java | 27 +- .../pblc/sndMng/web/SndMngController.java | 24 + .../ccm/notify/VEANotify_Mng_SQL_Tibero.xml | 2 +- .../oprtn/adultVisitEdu/eduCnfrmMngList.jsp | 8 +- .../oprtn/adultVisitEdu/eduRsltMngList.jsp | 43 + .../adultVisitEdu/eduEnd/eduEndDetail.jsp | 1 + .../WEB-INF/jsp/web/ve/comm/fileUploadPop.jsp | 2 + 17 files changed, 1317 insertions(+), 902 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 d25e0441..99adf9de 100644 --- a/src/main/java/kcc/com/utl/user/service/QustnrCommonUtil.java +++ b/src/main/java/kcc/com/utl/user/service/QustnrCommonUtil.java @@ -109,11 +109,12 @@ public class QustnrCommonUtil { VEAQestnrVO vEAQestnrVO = new VEAQestnrVO(); vEAQestnrVO.setSiteId(p_siteId); //청소년 vEAQestnrVO.setSiteIdCd(p_siteIdCd); //10-기본설문, 20-신청자설문, 30-강사설문 + vEAQestnrVO.setEduAplctOrd(p_eduAplctOrd); + vEAQestnrVO.setEduChasiOrd(p_eduChasiOrd); 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) { diff --git a/src/main/java/kcc/kccadr/cmm/innorix/service/AdrInnorixFileVO.java b/src/main/java/kcc/kccadr/cmm/innorix/service/AdrInnorixFileVO.java index 36d8c4f2..a7748920 100644 --- a/src/main/java/kcc/kccadr/cmm/innorix/service/AdrInnorixFileVO.java +++ b/src/main/java/kcc/kccadr/cmm/innorix/service/AdrInnorixFileVO.java @@ -37,6 +37,7 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable { // 파일 등록 후 리턴 메세지 jsp에서 넘겨줌 public String successMsg = ""; public String eduAplctOrd = ""; + public String eduChasiOrd = ""; public String prcsAplctPrdOrd = ""; //기반강화 강의계획서용 // 컨트롤 엘리먼트 ID - 멀티 업로드 시 jsp에서 사용하는 el 값 @@ -334,6 +335,14 @@ public class AdrInnorixFileVO extends ComDefaultVO implements Serializable { this.lctrEndM = lctrEndM; } + public String getEduChasiOrd() { + return eduChasiOrd; + } + + public void setEduChasiOrd(String eduChasiOrd) { + this.eduChasiOrd = eduChasiOrd; + } + diff --git a/src/main/java/kcc/kccadr/cmm/innorix/service/impl/InnorixFileServiceImpl.java b/src/main/java/kcc/kccadr/cmm/innorix/service/impl/InnorixFileServiceImpl.java index f56202c3..3f5d24fd 100644 --- a/src/main/java/kcc/kccadr/cmm/innorix/service/impl/InnorixFileServiceImpl.java +++ b/src/main/java/kcc/kccadr/cmm/innorix/service/impl/InnorixFileServiceImpl.java @@ -27,7 +27,9 @@ import kcc.kccadr.cmm.innorix.service.AdrInnorixFileVO; import kcc.kccadr.cmm.innorix.service.InnorixFileService; import kcc.kccadr.cmm.innorix.service.InnorixFileVO; import kcc.let.utl.fcc.service.EgovStringUtil; +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.VEEduAplctService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctVO; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduMIXService; @@ -112,6 +114,9 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I @Resource(name = "vEInstrDetailActvtHstryDAO") private VEInstrDetailActvtHstryDAO vEInstrDetailActvtHstryDAO; + //알림 + @Resource(name = "iTNotiUtil") + private ITNotiUtil iTNotiUtil; /** * @methodName : fileDataUpload @@ -238,6 +243,26 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I //저장 vEEduAplctService.update(vEEduAplctVO); + + //알림등록 + try { + if("ATTEND".equals(fileType)) { + //강사 참석 확인서 첨부파일 알림 + iTNotiUtil.insertNotifyNew( + "20", + adrInnorixFileVO.getUniqId(), + VeConstants.NOTI_STATUS_41, + adrInnorixFileVO.getEduAplctOrd(), + adrInnorixFileVO.getEduChasiOrd(), + "2", + "2" + ); + } + + }catch(Exception ex) { + ex.printStackTrace(); + } + } catch (Exception e) { e.printStackTrace(); return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now()); @@ -560,6 +585,21 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I vEInstrDetailActvtHstryDAO.insert(vEInstrActvtHstryVO); + //강사활동확인서 신청 알림 + try { + iTNotiUtil.insertNotifyNew( + "20", + adrInnorixFileVO.getUniqId(), + VeConstants.NOTI_STATUS_71, + adrInnorixFileVO.getEduAplctOrd(), + adrInnorixFileVO.getEduChasiOrd(), + "0", + "0" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + } catch (Exception e) { e.printStackTrace(); return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now()); @@ -600,6 +640,21 @@ public class InnorixFileServiceImpl extends EgovAbstractServiceImpl implements I vEEduAplctService.insertRslt(vEEduAplctVO); + //결과보고서 알림 + try { + iTNotiUtil.insertNotifyNew( + "20", + adrInnorixFileVO.getUniqId(), + VeConstants.NOTI_STATUS_51, + adrInnorixFileVO.getEduAplctOrd(), + adrInnorixFileVO.getEduChasiOrd(), + "2", + "2" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + } catch (Exception e) { e.printStackTrace(); return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now()); diff --git a/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageServiceImpl.java b/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageServiceImpl.java index 9c7dae8c..bd3c598a 100644 --- a/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageServiceImpl.java +++ b/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageServiceImpl.java @@ -511,7 +511,9 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements // 교육 담당자 조회 - 노티 받을 대상 //notifyManageVO.setToUserId(notifyManageDAO.findByUserIdFromVE_EDU_APLCT(eduAplctOrd)); //notifyManageDAO.insertNotifyInfo(p_notifyManageVO); + this._findToUserIdNInsertNoti(p_notifyManageVO, s_lctrDivCd, p_noti_status); + } //알림 링크 정보 만들기 @@ -546,9 +548,49 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements ||"13".equals(p_noti_status) */ ) { - notifyPath = "/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetail.do"; //사용자 - 교육신청목록 - 상세 - } + notifyPath = "/web/ve/aplct/adultVisitEdu/eduAplct/eduAplctDetail.do"; //사용자 - 교육신청목록 - 상세 + + }else if ( + "21".equals(p_noti_status) //강사 - 교육수락요청 - 상세 + ||"100".equals(p_noti_status) //강사 - 교육확정 - 상세 + ) { + notifyPath = "/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstDetail.do"; //강사 - 교육수락요청 - 상세 + + }else if ( + "22".equals(p_noti_status) //교육수락 + || "23".equals(p_noti_status) //교육거절 + || "24".equals(p_noti_status) //변경요청 + ) { + notifyPath = "/kccadr/oprtn/adultVisitEdu/eduCnfrmMngList.do"; //운영자 - 교육배치관리 - 리스트 + + }else if ( + "31".equals(p_noti_status) //강의 계획서 + || "41".equals(p_noti_status) //강사참석확인서 + || "62".equals(p_noti_status) //강의만족도제출 + ) { + notifyPath = "/kccadr/oprtn/adultVisitEdu/eduRsltMngDetail.do"; //사용자 - 교육신청목록 - 상세 + + }else if ( + "61".equals(p_noti_status) //강의만족도제출요청 + ) { + notifyPath = "/web/ve/aplct/adultVisitEdu/eduEnd/eduEndDetail.do"; //사용자 - 교육신청목록 - 상세 + + }else if ( + "71".equals(p_noti_status) //강사활동확인서 신청 + ) { + notifyPath = "/kccadr/oprtn/adultVisitEdu/instrActvtHstryMngList.do"; //사용자 - 교육신청목록 - 상세 + }else if ( + "72".equals(p_noti_status) //강사활동확인서 승인 + ) { + notifyPath = "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.do"; //강사 - 성인강사신청상세 + + }else if ( + "81".equals(p_noti_status) //강사정보수정요청 + ) { + notifyPath = "/ve/oprtn/instr/adultVisitEdu/instrInfo/instrMngList.do"; //운영자 - 강사목록 + + } } else if( "30".equals(p_lctrDivCd) ) { //체험 @@ -586,7 +628,21 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements }else if( "20".equals(p_lctrDivCd) ) { //성인 - if ("10".equals(p_noti_status)) { //10-교육신청 + if ( + "10".equals(p_noti_status) //10-교육신청 + ||"22".equals(p_noti_status) //22-교육수락 + ||"23".equals(p_noti_status) //23-교육거절 + ||"24".equals(p_noti_status) //24-교육변경요청 + + ||"31".equals(p_noti_status) //31-강의계획서제출 + ||"41".equals(p_noti_status) //41-강사참석확인서 + + ||"62".equals(p_noti_status) //62-강의만족도 제출 + + ||"71".equals(p_noti_status) //71-강사활동확인서 신청 + + ||"81".equals(p_noti_status) //81-정보수정요청 + ) { //10-교육신청 //담당 관리자에게 모두 알림 p_notifyManageVO.setFirstIndex(0); p_notifyManageVO.setRecordCountPerPage(1000); @@ -594,10 +650,13 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements notifyManageListVO = notifyManageDAO.selectMngPagingList(p_notifyManageVO); }else if ( - "11".equals(p_noti_status) + "11".equals(p_noti_status) //11-교육상태변경, 12-교육문자발송, 13-교육메일발송 ||"12".equals(p_noti_status) ||"13".equals(p_noti_status) - ) { //11-교육상태변경, 12-교육문자발송, 13-교육메일발송 + + ||"61".equals(p_noti_status) //강의만족도 제출 요청건 + ) { + //해당 신청자에게 알림 p_notifyManageVO.setToUserId(notifyManageDAO.findByUserIdFromVE_EDU_APLCT(p_notifyManageVO.getEduAplctOrd())); @@ -607,6 +666,13 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements ) { // 강사 ID 가져오기 notifyManageListVO = notifyManageDAO.selectInstrList(p_notifyManageVO); + + }else if ( + "72".equals(p_noti_status) //71-강사활동확인서 승인 + ) { + // 강사 ID 가져오기 + p_notifyManageVO.setToUserId(p_notifyManageVO.getEduAplctOrd()); + //notifyManageListVO = notifyManageDAO.selectInstrList(p_notifyManageVO); } } @@ -616,7 +682,7 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements //관리자 배열에 값이 있으면 해당 대상자들에게 알림 등록 if (notifyManageListVO==null) { //신청자에게 알림을 등록한다. - p_notifyManageVO.setToUserId(notifyManageDAO.findByUserIdFromVE_EDU_APLCT(p_notifyManageVO.getEduAplctOrd())); + //p_notifyManageVO.setToUserId(notifyManageDAO.findByUserIdFromVE_EDU_APLCT(p_notifyManageVO.getEduAplctOrd())); notifyManageDAO.insertNotifyInfo(p_notifyManageVO); }else { @@ -670,7 +736,43 @@ public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements }else if ("12".equals(p_noti_status)) { notifyCn = "교육 문자 발송되었습니다."; }else if ("13".equals(p_noti_status)) { - notifyCn = "교육 메일 발송되었습니다."; + notifyCn = "교육 메일 발송되었습니다."; + + }else if ("21".equals(p_noti_status)) { + notifyCn = "교육수락 요청건이 있습니다."; + + }else if ("22".equals(p_noti_status)) { + notifyCn = "교육수락 건이 있습니다."; + + }else if ("23".equals(p_noti_status)) { + notifyCn = "교육거절 건이 있습니다."; + + }else if ("24".equals(p_noti_status)) { + notifyCn = "교육 변경 요청 건이 있습니다."; + + }else if ("100".equals(p_noti_status)) { + notifyCn = "교육 확정 건이 있습니다."; + + }else if ("31".equals(p_noti_status)) { //강의 계획서 + notifyCn = "강의계획서 제출건이 있습니다."; + + }else if ("41".equals(p_noti_status)) { //강사참석확인서 + notifyCn = "강사참석확인서 제출 건이 있습니다."; + + }else if ("61".equals(p_noti_status)) { //강의만족도제출요청 + notifyCn = "강의만족도 제출 요청 건이 있습니다."; + + }else if ("62".equals(p_noti_status)) { //강의만족도제출 + notifyCn = "강의만족도 제출건이 있습니다."; + + }else if ("71".equals(p_noti_status)) { //강사활동확인서신청 + notifyCn = "강사활동확인서 신청 건이 있습니다."; + + }else if ("72".equals(p_noti_status)) { //강사활동확인서승인 + notifyCn = "강사활동확인서 승인 건이 있습니다."; + + }else if ("81".equals(p_noti_status)) { //정보수정요청 + notifyCn = "정보수정 요청 건이 있습니다."; } } else if( "30".equals(p_lctrDivCd) ) { //체험 diff --git a/src/main/java/kcc/let/utl/fcc/service/ITNotiUtil.java b/src/main/java/kcc/let/utl/fcc/service/ITNotiUtil.java index 3c60c6ac..e056ee04 100644 --- a/src/main/java/kcc/let/utl/fcc/service/ITNotiUtil.java +++ b/src/main/java/kcc/let/utl/fcc/service/ITNotiUtil.java @@ -55,7 +55,7 @@ public class ITNotiUtil { // 0-no param(sms, email), // 1-eduAplctOrd, // 2-eduAplctOrd & eduChasiOrd - , String p_noti_param_type //알림 대상자 선별을 위한 파라미터 타입 + , String p_noti_param_type //알림 대상자 선별을 위한 파라미터 타입 // 0-no param(sms, email), // 1-eduAplctOrd, // 2-eduAplctOrd & eduChasiOrd @@ -79,15 +79,18 @@ public class ITNotiUtil { //알림 대상자 선정에 필요한 파라미터 설정 - if("1".equals(p_move_param_type)) { + if("1".equals(p_noti_param_type)) { notifyManageVO.setEduAplctOrd(p_eduAplctOrd); - }else if("2".equals(p_move_param_type)) { + }else if("2".equals(p_noti_param_type)) { notifyManageVO.setEduAplctOrd(p_eduAplctOrd); notifyManageVO.setEduChasiOrd(p_eduChasiOrd); } + System.out.println("notifyManageVO.toString()"); + System.out.println(notifyManageVO.toString()); + //new 알림-2024.02.02 notifyManageService.insertNotifyNew(notifyManageVO, p_noti_status_cd); //교육신청 - 상태변경 diff --git a/src/main/java/kcc/ve/aplct/comweb/CommonWebController.java b/src/main/java/kcc/ve/aplct/comweb/CommonWebController.java index e119f9a2..26f88612 100644 --- a/src/main/java/kcc/ve/aplct/comweb/CommonWebController.java +++ b/src/main/java/kcc/ve/aplct/comweb/CommonWebController.java @@ -19,6 +19,7 @@ import kcc.com.cmm.service.FileVO; import kcc.com.utl.fcc.service.EgovStringUtil; import kcc.com.utl.user.service.CheckLoginUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.ve.adv.tngr.stngInfo.service.VEAStngService; import kcc.ve.adv.tngr.stngInfo.service.VEAStngVO; import kcc.ve.cmm.VeConstants; @@ -92,6 +93,9 @@ public class CommonWebController { @Resource(name="vEInstrDetailService") private VEInstrDetailService vEInstrDetailService; + //알림 + @Resource(name = "iTNotiUtil") + private ITNotiUtil iTNotiUtil; @RequestMapping("/popup/searchBeforeContent.do") public String searchBeforeContentPopup(@ModelAttribute("vEEduAplctVO") VEEduAplctVO vEEduAplctVO, ModelMap model, HttpServletRequest request) throws Exception{ @@ -977,6 +981,19 @@ public class CommonWebController { vEEduChasiInstrAsgnmService.updateAsgnmY(vEInstrAsgnmVO); vEEduChasiInstrAsgnmService.updateAsgnmN(vEInstrAsgnmVO); + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_100, + p_step01_list.get(i).getEduAplctOrd(), + p_step01_list.get(i).getEduChasiOrd(), + "2", + "2" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } //성인교육의 경우 배정 확정 된 강사의 ID와 메일 조회 후 안내 SMS, 메일 전송 if("20".equals(veEduAplctVO.getLctrDivCd())) { diff --git a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduEnd/web/EduEndTngrController.java b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduEnd/web/EduEndTngrController.java index 16db3699..631fb2fa 100644 --- a/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduEnd/web/EduEndTngrController.java +++ b/src/main/java/kcc/ve/aplct/tngrVisitEdu/eduEnd/web/EduEndTngrController.java @@ -33,6 +33,7 @@ import kcc.let.uss.olp.qri.service.QustnrRespondInfoVO; import kcc.let.uss.olp.qrm.service.EgovQustnrRespondManageService; import kcc.let.uss.olp.qrm.service.QustnrRespondManageVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctOnlnService; import kcc.ve.instr.tngrVisitEdu.eduInfo.service.VEEduAplctService; @@ -159,6 +160,10 @@ public class EduEndTngrController { @Resource(name = "NotifyManageService") private NotifyManageService notifyManageService; + //알림 + @Resource(name = "iTNotiUtil") + private ITNotiUtil iTNotiUtil; + /* // 교육신청 서비스단 @@ -719,6 +724,21 @@ public class EduEndTngrController { qustnrRespondInfoVO.getResultList().get(i).setEduAplctOrd(veEduAplctVO.getEduAplctOrd()); qustnrRespondInfoVO.getResultList().get(i).setEduChasiOrd(veEduAplctVO.getEduChasiOrd()); egovQustnrRespondInfoService.insertSrvyInfo(qustnrRespondInfoVO.getResultList().get(i)); + + //알림 설문제출 + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_62, + veEduAplctVO.getEduAplctOrd(), + veEduAplctVO.getEduChasiOrd(), + "2", + "2" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } } }catch(Exception ex) { System.out.println("Exception vEEduAplctOnlnService.updateBulk"); diff --git a/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java b/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java index 512e814a..c4d13f7b 100644 --- a/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java +++ b/src/main/java/kcc/ve/instr/adultVisitEdu/asgnmInfo/web/VEAdultAsgnmController.java @@ -30,6 +30,7 @@ import kcc.com.utl.user.service.CheckLoginUtil; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil4VO; +import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.let.utl.fcc.service.VisitEduTransUtil; import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService; @@ -106,6 +107,9 @@ public class VEAdultAsgnmController { @Resource(name="veaLctrExchnOrdGnrService") private EgovIdGnrService veaLctrExchnOrdGnrService; + //알림 + @Resource(name = "iTNotiUtil") + private ITNotiUtil iTNotiUtil; //성인강사 강의 요청 목록 @RequestMapping("/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstList.do") @@ -437,7 +441,8 @@ public class VEAdultAsgnmController { vEAsgnmNotiVO.setUrlPath(IpUtil.getRequestURI(request)); - vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO); + //상세 화면에서 처리함 + //vEAsgnmNotiService.insertAsgnmNotiInfo(vEAsgnmNotiVO); return "/web/ve/instr/adultVisitEdu/asgnmInfo/instrAsgnmRqstDetail"; } @@ -609,6 +614,21 @@ public class VEAdultAsgnmController { vEInstrAsgnmVO.setLctrPlanAtchFileId(atchFileId); vEAsgnmMIXService.updateLctrPlan(vEInstrAsgnmVO); + + //알림등록 + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_31, + vEInstrAsgnmVO.getEduAplctOrd(), + vEInstrAsgnmVO.getEduChasiOrd(), + "2", + "2" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } }catch(Exception ex) { System.out.println("Exception vEAsgnmMIXService.updateLctrPlan"); @@ -687,16 +707,62 @@ public class VEAdultAsgnmController { vEInstrAsgnmVO.setUserId(loginVO.getUniqId()); vEAsgnmMIXService.updateAsgnmCode(vEInstrAsgnmVO); //차시 테이블 확정 Y 업데이트 처리 - if("30".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) { + if("30".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) { //요청 수락 vEInstrAsgnmVO.setInstrCnfrmCd("Y"); vEInstrAsgnmVO.setInstrCnfrmId(loginVO.getUniqId()); vEAsgnmMIXService.updateChasiCode(vEInstrAsgnmVO); + + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_22, + vEInstrAsgnmVO.getEduAplctOrd(), + vEInstrAsgnmVO.getEduChasiOrd(), + "1", + "0" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + + }else if("40".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) { //요청 거절 시 강사배정내역 테이블에 insert. 요청 목록에서 거절한 항목 조회를 위해(VE0025) vEInstrAsgnmVO.setHstryCd("10"); //거절 vEAsgnmMIXService.insertAsgnmHstry(vEInstrAsgnmVO); + + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_23, + vEInstrAsgnmVO.getEduAplctOrd(), + vEInstrAsgnmVO.getEduChasiOrd(), + "1", + "0" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + }else if("60".equals(vEInstrAsgnmVO.getAsgnmAprvlCd())) { //요청 거절 시 강사배정내역 테이블에 insert. 요청 목록에서 거절한 항목 조회를 위해(VE0025) vEInstrAsgnmVO.setHstryCd("40"); //변경요청 vEAsgnmMIXService.insertAsgnmHstry(vEInstrAsgnmVO); + + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_24, + vEInstrAsgnmVO.getEduAplctOrd(), + vEInstrAsgnmVO.getEduChasiOrd(), + "1", + "0" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + } modelAndView.addObject("result", "success"); diff --git a/src/main/java/kcc/ve/instr/adultVisitEdu/instrInfo/web/InstrAdultPrflController.java b/src/main/java/kcc/ve/instr/adultVisitEdu/instrInfo/web/InstrAdultPrflController.java index 343e10d8..b563f6f7 100644 --- a/src/main/java/kcc/ve/instr/adultVisitEdu/instrInfo/web/InstrAdultPrflController.java +++ b/src/main/java/kcc/ve/instr/adultVisitEdu/instrInfo/web/InstrAdultPrflController.java @@ -1,883 +1,906 @@ -package kcc.ve.instr.adultVisitEdu.instrInfo.web; - -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.support.RedirectAttributes; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; -import kcc.com.cmm.EgovMessageSource; -import kcc.com.cmm.LoginVO; -import kcc.com.cmm.service.EgovFileMngService; -import kcc.com.cmm.service.EgovFileMngUtil; -import kcc.com.cmm.service.FileVO; -import kcc.com.utl.user.service.CheckAdrProcessUtil; -import kcc.com.utl.user.service.CheckFileUtil; -import kcc.com.utl.user.service.CheckLoginUtil; -import kcc.kccadr.accdnt.acd.service.AdjstChangeDateService; -import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService; -import kcc.kccadr.sch.service.SchduleManageService; -import kcc.kccadr.sch.service.SchduleManageVO; -import kcc.let.uat.uia.service.SsoLoginVO; -import kcc.let.utl.fcc.service.EgovCryptoUtil; -import kcc.let.utl.fcc.service.EgovCryptoUtil4VO; -import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService; -import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService; -import kcc.ve.instr.tngrVisitEdu.instrInfo.web.InstrPrflController; -import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; -import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrMIXService; - -/** - * InstrAdultPrflController.java - * 성인대상 찾아가는 저작권 교육 / 강사정보 / 강사프로필 - * 강사프로필 controller 클래스를 정의한다. - * @author 이지우 - * @since 2021.12.07 - * @version 1.0 - * @see - * - *
- * << 개정이력(Modification Information) >>
- *
- *   수정일      수정자           수정내용
- *  -------    --------    ---------------------------
- *   2021.12.07  이지우          최초 생성
- *
- * 
- */ - -@Controller - -public class InstrAdultPrflController { - - private static final Logger LOGGER = LoggerFactory.getLogger(InstrPrflController.class); - - // eGov 공통 메세지 - @Resource(name = "egovMessageSource") - EgovMessageSource egovMessageSource; - - //로그인 체크 util - @Resource(name = "checkLoginUtil") - private CheckLoginUtil checkLoginUtil; - - //파일 체크 util - @Resource(name = "checkFileUtil") - private CheckFileUtil checkFileUtil; - - //암복호화 유틸 - @Resource(name = "egovCryptoUtil") - EgovCryptoUtil egovCryptoUtil; - - //파일정보의 관리 - @Resource(name = "EgovFileMngService") - private EgovFileMngService fileService; - - //파일 처리 egov - @Resource(name="EgovFileMngUtil") - private EgovFileMngUtil egovFileMngUtil; - - //파일 처리 egov - @Resource(name = "EgovFileMngService") - private EgovFileMngService fileMngService; - - - @Resource(name="adjstChangeDateService") - private AdjstChangeDateService adjstChangeDateService; - - @Resource(name="KccadrMgrUdtService") - private KccadrMgrUdtService kccadrMgrUdtService; - - // 교육신청 서비스단 - @Resource(name = "checkAdrProcessUtil") - private CheckAdrProcessUtil checkAdrProcessUtil; - - //강사 정보 - @Resource(name="vEInstrService") - private VEInstrService vEInstrService; - - //강사상세 정보 - @Resource(name="vEInstrDetailService") - private VEInstrDetailService vEInstrDetailService; - - //VO 암/복호화 - @Resource(name="egovCryptoUtil4VO") - private EgovCryptoUtil4VO egovCryptoUtil4VO; - - //강사 정보 MIX - @Resource(name="vEInstrMixService") - private VEInstrMixService vEInstrMixService; - - //배정 MIX 정보 - @Resource(name="vEAsgnmMIXService") - private VEAsgnmMIXService vEAsgnmMIXService; - - //강의설정 MIX - @Resource(name = "vELctrMIXService") - private VELctrMIXService vELctrMIXService; - - //일정 정보 가져오기 - @Resource(name = "schduleManageService") - private SchduleManageService schduleManageService; - - @Resource(name = "vEInstrDetailActvtHstryService") - private VEInstrDetailActvtHstryService vEInstrDetailActvtHstryService; - /** - * 0.성인 강사 대시보드 화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do") - public String instrDashboard( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - //성인 강사 상세정보 조회 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setInstrDiv("20"); - vEInstrDetailVO.setUseYn("Y"); - VEInstrDetailVO instrInfo = vEInstrDetailService.selectDetail(vEInstrDetailVO); - - //강사 정보가 없어도 화면은 이동하고 화면에서 alert과 함께 튕겨내기로 수정 - 0225 - /*if (instrInfo == null) { - return checkLoginUtil.getUserMainPage(model); //강사 정보가 없으면 메인 페이지로 이동한다. - }*/ - - if(instrInfo != null) { - instrInfo = egovCryptoUtil.decryptVEInstrDetailVO(instrInfo); - } - model.addAttribute("instrInfo", instrInfo); - - //최근 교육 확정 현황 - 5개 - vEInstrAsgnmVO.setUserId(loginVO.getUniqId()); - vEInstrAsgnmVO.setInstrDiv("20"); - vEInstrAsgnmVO.setAsgnmAprvlCd("30"); - vEInstrAsgnmVO.setRecordCountPerPage(5); - vEInstrAsgnmVO.setFirstIndex(0); - List instrAsgnmList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO); - model.addAttribute("instrAsgnmList", instrAsgnmList); - - //최근 강의요청 현황 - 5개 - List instrAsgnmRqstList = vEAsgnmMIXService.selectAsgnmRqstPagingList(vEInstrAsgnmVO); - model.addAttribute("instrAsgnmRqstList", instrAsgnmRqstList); - - //교육완료 현황 - 현재 확정현황. 완료 기준 잡아서 수정 필요 - List instrAsgnmEndList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO); - model.addAttribute("instrAsgnmEndList", instrAsgnmEndList); - - //패널티 현황 - List vEInstrPnltyList = vEInstrMixService.selectPnltyList(vEInstrDetailVO); - model.addAttribute("vEInstrPnltyList", vEInstrPnltyList); - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard"; - } - - /** - * 1.성인대상 강사 등록화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do") - public String instrPrflReg( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - System.out.println("vEInstrDetailVO.getInstrDiv()"); - System.out.println(vEInstrDetailVO.getInstrDiv()); - System.out.println(vEInstrDetailVO.getUserId()); - System.out.println(vEInstrDetailVO.getInstrDetailOrd()); - - //강사 기등록여부 확인 - - VEInstrDetailVO t_vEInstrUploadInfoVO = new VEInstrDetailVO(); - t_vEInstrUploadInfoVO.setUserId(loginVO.getUniqId()); - t_vEInstrUploadInfoVO = vEInstrService.selectDetail(t_vEInstrUploadInfoVO); - - if(t_vEInstrUploadInfoVO!=null){ - if("Y".equals(t_vEInstrUploadInfoVO.getAdultInstrYn())){ - redirectAttributes.addFlashAttribute("message", "이미 강사정보를 등록하셨습니다. 관리자에게 문의해주세요."); - //return "redirect:/web/main/mainPage.do"; - return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; - } - } - - VEInstrDetailVO vEInstrUploadInfoVO = null; - if ( - vEInstrDetailVO.getInstrDiv() != null - && vEInstrDetailVO.getUserId() != null - && vEInstrDetailVO.getInstrDetailOrd() != null - ) { - vEInstrUploadInfoVO = vEInstrMixService.selectUploadInfoDetailWithData(vEInstrDetailVO); - }else { - - //SsoLoginVO 객체 값 변경으로 인한 세션 정보가 변경되는 문제 수정_220211 - SsoLoginVO tmpSsoLoginVO = new SsoLoginVO(); - ObjectMapper test = new ObjectMapper(); - Map map1 = new HashMap(); - - map1 = test.convertValue(ssoLoginVO, Map.class); - - ObjectMapper test1 = new ObjectMapper(); - - tmpSsoLoginVO = test1.convertValue(map1, SsoLoginVO.class); - - /*SSO 정보 암호화 후 DB에 엑셀 업로드 한 정보 조회*/ - tmpSsoLoginVO = egovCryptoUtil.encryptSsoLoginVO(tmpSsoLoginVO); - vEInstrDetailVO.setInstrNm(tmpSsoLoginVO.getMembName()); - vEInstrDetailVO.setPhone(tmpSsoLoginVO.getMembCelnum()); - vEInstrUploadInfoVO = vEInstrMixService.selectUploadInfoDetail(vEInstrDetailVO); - tmpSsoLoginVO = egovCryptoUtil.decryptSsoLoginVO(tmpSsoLoginVO); - } - - //사전에 엑셀 업로드된 강사 정보가 없을 시 - if(vEInstrUploadInfoVO == null) { - redirectAttributes.addFlashAttribute("message", "등록된 강사정보가 없습니다. 관리자에게 문의해주세요."); - //return "redirect:/web/main/mainPage.do"; - return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; - //}else if(StringUtil.isNotEmpty(vEInstrUploadInfoVO.getSbmtYn())){ - }else if("Y".equals(vEInstrUploadInfoVO.getSbmtYn())){ - redirectAttributes.addFlashAttribute("message", "이미 강사정보를 등록하셨습니다. 관리자에게 문의해주세요."); - //return "redirect:/web/main/mainPage.do"; - return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; - - } - - vEInstrUploadInfoVO = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrUploadInfoVO); - model.addAttribute("info", vEInstrUploadInfoVO); - /* - //SSO 로그인 정보 가져오기 - vEInstrDetailVO.setInstrNm(ssoLoginVO.getMembName()); - vEInstrDetailVO.setPhone(ssoLoginVO.getMembCelnum()); - vEInstrDetailVO.setEmail(ssoLoginVO.getMembEmail()); - vEInstrDetailVO.setdBirth(ssoLoginVO.getMembBirth()); - - model.addAttribute("info", vEInstrDetailVO); - */ - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg"; - } - - - /** - * 1.성인대상 강사 수정화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegMdfy.do") - public String instrPrflRegMdfy( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); - info = egovCryptoUtil.decryptVEInstrDetailVO(info);/*이름, 번호 복호화*/ - model.addAttribute("info", info); - - try { - FileVO fileVO = new FileVO(); - String atchFileId = info.getPhtAtchFileId(); - fileVO.setAtchFileId(atchFileId); - List fileList = fileService.selectFileInfs(fileVO); - model.addAttribute("fileList", fileList); - }catch(Exception ex) { - ex.printStackTrace(); - } - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegMdfy"; - } - - /** - * 청소년대상 강사 확인 요청 - 기존 DB 데이터에서 useYn과 userId 업데이트 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflCnfrmAjax.do") - public ModelAndView instrPrflCnfrmAjax( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , final MultipartHttpServletRequest multiRequest - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - modelAndView.addObject("result", "fail"); - return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - - String atchFileId = ""; - final Map files = multiRequest.getFileMap(); - - if (!files.isEmpty()) { - //XXX_로 첨부파일 네이밍 - List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); - atchFileId = fileMngService.insertFileInfs(result); - //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 - vEInstrDetailVO.setPhtAtchFileId(atchFileId); - } - - //세션 ID 가져오기 - vEInstrDetailVO.setRqstId(loginVO.getUniqId()); - vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); - - //제출, 승인요청 일시 - if("Y".equals(vEInstrDetailVO.getSbmtYn())) { - SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); - Date time = new Date(); - String now = format1.format(time); - vEInstrDetailVO.setSbmtPnttm(now); - } - - vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); -// ssoLoginVO = egovCryptoUtil.encryptSsoLoginVO(ssoLoginVO); - vEInstrDetailService.update(vEInstrDetailVO); - vEInstrService.update(vEInstrDetailVO); - modelAndView.addObject("result", "success"); - - return modelAndView; - } - - /** - * 청소년대상 강사 확인 요청 후 완료 화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegRgstr.do") - public String instrPrflRegRgstr( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegRgstr"; - } - - /** - * 1.성인대상 강사 등록Ajax - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegAjax.do") - public ModelAndView instrPrflRegAjax( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , final MultipartHttpServletRequest multiRequest - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - modelAndView.addObject("result", "fail"); - return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - - String atchFileId = ""; - final Map files = multiRequest.getFileMap(); - - if (!files.isEmpty()) { - //XXX_로 첨부파일 네이밍 - List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); - atchFileId = fileMngService.insertFileInfs(result); - //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 - vEInstrDetailVO.setPhtAtchFileId(atchFileId); - } - - //세션 ID 가져오기 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); - - //제출, 승인요청 일시 - SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); - Date time = new Date(); - String now = format1.format(time); - if("Y".equals(vEInstrDetailVO.getSbmtYn())) { - vEInstrDetailVO.setSbmtPnttm(now); - } - //사용자가 승인코드10번(등록,수정요청)시 승인일시를 수정하는게 맞는지. 사용자 - 제출일시, 관리자 - 승인일시가 아닌지 - /*if(StringUtil.isNotEmpty(vEInstrDetailVO.getAprvlCd())) { - vEInstrDetailVO.setAprvlPnttm(now); - }*/ - - - VEInstrDetailVO vEInstrVO = new VEInstrDetailVO(); - vEInstrVO = vEInstrService.selectDetail(vEInstrDetailVO); - //최초 신청시에만 강사 테이블에 insert, 수정 요청시는 강사 디테일만 insert - - //암호화 - vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); - - if(vEInstrVO == null) { - vEInstrDetailVO.setUseYn("Y"); //수정 요청시는 승인전 기존 디테일 정보 사용 - vEInstrService.insert(vEInstrDetailVO); - } - vEInstrDetailService.insert(vEInstrDetailVO); - modelAndView.addObject("result", "success"); - - return modelAndView; - } - - /** - * 1.성인대상 강사 상세화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.do") - public String instrPrflDetail( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setInstrDiv("20"); - vEInstrDetailVO.setUseYn("Y"); - VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); - info = egovCryptoUtil.decryptVEInstrDetailVO(info); - - model.addAttribute("info", info); - - - //성인대상 강사 신청내역 조회 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회 - List vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrAplctList", vEInstrAplctList); - - - //성인대상 강사 수정신청 내역 조회 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회 - List vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrMdfyList", vEInstrMdfyList); - - - //현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'"); - List vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList); - - VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); - lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); - lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); - - - //강의설정 요청 리스트 불러오기 - List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); - model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); - - - //강의설정테이블 - lctrDetailVO.setUseYn("Y"); - VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); - model.addAttribute("lctrStngInfo", lctrStngInfo); - - - VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO = new VEInstrDetailActvtHstryVO(); - vEInstrDetailActvtHstryVO.setInstrDetailOrd(info.getInstrDetailOrd()); - vEInstrDetailActvtHstryVO.setUserId(info.getUserId()); - // 강사활동확인서내역 - List vEInstrActvtHstryList = vEInstrDetailActvtHstryService.select(vEInstrDetailActvtHstryVO); - model.addAttribute("vEInstrActvtHstryList", vEInstrActvtHstryList); - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail"; - } - - /** - * 1.성인대상 강사 수정화면 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfy.do") - public String instrPrflMdfy( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setInstrDiv("20"); - vEInstrDetailVO.setUseYn("Y"); - VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); - info = egovCryptoUtil.decryptVEInstrDetailVO(info);/*이름, 번호 복호화*/ - model.addAttribute("info", info); - - FileVO fileVO = new FileVO(); - String atchFileId = info.getPhtAtchFileId(); - fileVO.setAtchFileId(atchFileId); - List fileList = fileService.selectFileInfs(fileVO); - model.addAttribute("fileList", fileList); - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfy"; - } - - /** - * 1.성인대상 강사 수정Ajax - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfyAjax.do") - public ModelAndView instrPrflMdfyAjax( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , final MultipartHttpServletRequest multiRequest - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - modelAndView.addObject("result", "fail"); - return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - - String atchFileId = ""; - final Map files = multiRequest.getFileMap(); - - if (!files.isEmpty()) { - //XXX_로 첨부파일 네이밍 - List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); - atchFileId = fileMngService.insertFileInfs(result); - } - //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 - vEInstrDetailVO.setPhtAtchFileId(atchFileId); - - //세션 ID 가져오기 - vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); - - //제출, 승인요청 일시 - SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); - Date time = new Date(); - String now = format1.format(time); - if("Y".equals(vEInstrDetailVO.getSbmtYn())) { - vEInstrDetailVO.setSbmtPnttm(now); - } - //사용자가 승인코드10번(등록,수정요청)시 승인일시를 수정하는게 맞는지. 사용자 - 제출일시, 관리자 - 승인일시가 아닌지 - /*if(StringUtil.isNotEmpty(vEInstrDetailVO.getAprvlCd())) { - vEInstrDetailVO.setAprvlPnttm(now); - }*/ - - vEInstrService.update(vEInstrDetailVO); - //등록 요청, 재요청일 시 반려사유 삭제 - if("10".equals(vEInstrDetailVO.getAprvlCd())) { - vEInstrDetailVO.setAprvlCn(""); - } - - //암호화 - vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO);/*이름, 번호 복호화*/ - vEInstrDetailService.update(vEInstrDetailVO); - modelAndView.addObject("result", "success"); - - return modelAndView; - } - - /** - * 1.성인대상 강사 첨부파일 ID 수정Ajax - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflFileMdfyAjax.do") - public ModelAndView instrPrflFileMdfyAjax( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - , HttpServletRequest request - ) throws Exception { - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - //로그인 처리==================================== - //로그인 정보 가져오기 - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); - - if (loginVO == null || ssoLoginVO == null) { - modelAndView.addObject("result", "fail"); - return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - - //암호화 - vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); - - vEInstrDetailService.update(vEInstrDetailVO); - modelAndView.addObject("result", "success"); - - return modelAndView; - } - - /** - * 1.성인대상 강사 상세화면 - 달력일정 - */ - @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl.do") - public String instrPrflSchdl( - @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO - - , ModelMap model - , RedirectAttributes redirectAttributes - , HttpSession session - , HttpServletRequest request - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - if (loginVO == null || ssoLoginVO == null) { - return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. - } - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - vEInstrDetailVO.setUserId(loginVO.getUniqId()); - vEInstrDetailVO.setInstrDiv("20"); - vEInstrDetailVO.setUseYn("Y"); - VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); - info = egovCryptoUtil.decryptVEInstrDetailVO(info); - - model.addAttribute("info", info); - - - //성인대상 강사 신청내역 조회 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회 - List vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrAplctList", vEInstrAplctList); - - - //성인대상 강사 수정신청 내역 조회 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회 - List vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrMdfyList", vEInstrMdfyList); - - - //현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기 - vEInstrDetailVO.setFirstIndex(0); - vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'"); - List vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); - - model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList); - - VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); - lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); - lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); - - - //강의설정 요청 리스트 불러오기 - List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); - model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); - - - //강의설정테이블 - lctrDetailVO.setUseYn("Y"); - VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); - model.addAttribute("lctrStngInfo", lctrStngInfo); - - return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl"; - } - - @RequestMapping(value = "/web/ve/instr/adultVisitEdu/instrInfo/adultSchduleManagerAjaxLoadData.do") - @ResponseBody - public List adultSchduleManagerAjaxLoadData( - @ModelAttribute("schduleManageVO") SchduleManageVO schduleManageVO - , ModelMap model - ) throws Exception { - - //로그인 처리==================================== - //로그인 정보 가져오기 - - LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 - - - //로그인 처리==================================== - - //성인대상 강사 상세정보 조회 - schduleManageVO.setUserId(loginVO.getUniqId()); - - - schduleManageVO.setAprvlCd("60"); - schduleManageVO.setLctrDivCd("20"); - - - schduleManageVO.setSearchStartDt(schduleManageVO.getSearchStartDt().split("T")[0].replaceAll("-", "")); - - return schduleManageService.selectSchManageStatusInstrList(schduleManageVO); - } - - //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 - private PaginationInfo setPagingStep1( - VEInstrDetailVO p_vEInstrDetailVO - )throws Exception{ - // pageing step1 - PaginationInfo paginationInfo = new PaginationInfo(); - paginationInfo.setCurrentPageNo(p_vEInstrDetailVO.getPageIndex()); - paginationInfo.setRecordCountPerPage(p_vEInstrDetailVO.getPageUnit()); - paginationInfo.setPageSize(p_vEInstrDetailVO.getPageSize()); - - return paginationInfo; - } - - - //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 - private VEInstrDetailVO setPagingStep2( - VEInstrDetailVO p_vEInstrDetailVO - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step2 - p_vEInstrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); - p_vEInstrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); - p_vEInstrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); - - if("".equals(p_vEInstrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List - p_vEInstrDetailVO.setSearchSortCnd("sbmt_pnttm"); - p_vEInstrDetailVO.setSearchSortOrd("desc"); - } - - return p_vEInstrDetailVO; - } - - - //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 - private PaginationInfo setPagingStep3( - List p_vEInstrDetailVOList - , PaginationInfo p_paginationInfo - )throws Exception{ - // pageing step3 - int totCnt = 0; - if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt(); - p_paginationInfo.setTotalRecordCount(totCnt); - - return p_paginationInfo; - } - -} +package kcc.ve.instr.adultVisitEdu.instrInfo.web; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import kcc.com.cmm.EgovMessageSource; +import kcc.com.cmm.LoginVO; +import kcc.com.cmm.service.EgovFileMngService; +import kcc.com.cmm.service.EgovFileMngUtil; +import kcc.com.cmm.service.FileVO; +import kcc.com.utl.user.service.CheckAdrProcessUtil; +import kcc.com.utl.user.service.CheckFileUtil; +import kcc.com.utl.user.service.CheckLoginUtil; +import kcc.kccadr.accdnt.acd.service.AdjstChangeDateService; +import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService; +import kcc.kccadr.sch.service.SchduleManageService; +import kcc.kccadr.sch.service.SchduleManageVO; +import kcc.let.uat.uia.service.SsoLoginVO; +import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.let.utl.fcc.service.EgovCryptoUtil4VO; +import kcc.let.utl.fcc.service.ITNotiUtil; +import kcc.ve.cmm.VeConstants; +import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAsgnmMIXService; +import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEInstrAsgnmVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailVO; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrMixService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrService; +import kcc.ve.instr.tngrVisitEdu.instrInfo.web.InstrPrflController; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrDetailVO; +import kcc.ve.instr.tngrVisitEdu.lctrInfo.service.VELctrMIXService; + +/** + * InstrAdultPrflController.java + * 성인대상 찾아가는 저작권 교육 / 강사정보 / 강사프로필 + * 강사프로필 controller 클래스를 정의한다. + * @author 이지우 + * @since 2021.12.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2021.12.07  이지우          최초 생성
+ *
+ * 
+ */ + +@Controller + +public class InstrAdultPrflController { + + private static final Logger LOGGER = LoggerFactory.getLogger(InstrPrflController.class); + + // eGov 공통 메세지 + @Resource(name = "egovMessageSource") + EgovMessageSource egovMessageSource; + + //로그인 체크 util + @Resource(name = "checkLoginUtil") + private CheckLoginUtil checkLoginUtil; + + //파일 체크 util + @Resource(name = "checkFileUtil") + private CheckFileUtil checkFileUtil; + + //암복호화 유틸 + @Resource(name = "egovCryptoUtil") + EgovCryptoUtil egovCryptoUtil; + + //파일정보의 관리 + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + //파일 처리 egov + @Resource(name="EgovFileMngUtil") + private EgovFileMngUtil egovFileMngUtil; + + //파일 처리 egov + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileMngService; + + + @Resource(name="adjstChangeDateService") + private AdjstChangeDateService adjstChangeDateService; + + @Resource(name="KccadrMgrUdtService") + private KccadrMgrUdtService kccadrMgrUdtService; + + // 교육신청 서비스단 + @Resource(name = "checkAdrProcessUtil") + private CheckAdrProcessUtil checkAdrProcessUtil; + + //강사 정보 + @Resource(name="vEInstrService") + private VEInstrService vEInstrService; + + //강사상세 정보 + @Resource(name="vEInstrDetailService") + private VEInstrDetailService vEInstrDetailService; + + //VO 암/복호화 + @Resource(name="egovCryptoUtil4VO") + private EgovCryptoUtil4VO egovCryptoUtil4VO; + + //강사 정보 MIX + @Resource(name="vEInstrMixService") + private VEInstrMixService vEInstrMixService; + + //배정 MIX 정보 + @Resource(name="vEAsgnmMIXService") + private VEAsgnmMIXService vEAsgnmMIXService; + + //강의설정 MIX + @Resource(name = "vELctrMIXService") + private VELctrMIXService vELctrMIXService; + + //일정 정보 가져오기 + @Resource(name = "schduleManageService") + private SchduleManageService schduleManageService; + + @Resource(name = "vEInstrDetailActvtHstryService") + private VEInstrDetailActvtHstryService vEInstrDetailActvtHstryService; + + //알림 + @Resource(name = "iTNotiUtil") + private ITNotiUtil iTNotiUtil; + + /** + * 0.성인 강사 대시보드 화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard.do") + public String instrDashboard( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , @ModelAttribute("vEInstrAsgnmVO") VEInstrAsgnmVO vEInstrAsgnmVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + //성인 강사 상세정보 조회 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setUseYn("Y"); + VEInstrDetailVO instrInfo = vEInstrDetailService.selectDetail(vEInstrDetailVO); + + //강사 정보가 없어도 화면은 이동하고 화면에서 alert과 함께 튕겨내기로 수정 - 0225 + /*if (instrInfo == null) { + return checkLoginUtil.getUserMainPage(model); //강사 정보가 없으면 메인 페이지로 이동한다. + }*/ + + if(instrInfo != null) { + instrInfo = egovCryptoUtil.decryptVEInstrDetailVO(instrInfo); + } + model.addAttribute("instrInfo", instrInfo); + + //최근 교육 확정 현황 - 5개 + vEInstrAsgnmVO.setUserId(loginVO.getUniqId()); + vEInstrAsgnmVO.setInstrDiv("20"); + vEInstrAsgnmVO.setAsgnmAprvlCd("30"); + vEInstrAsgnmVO.setRecordCountPerPage(5); + vEInstrAsgnmVO.setFirstIndex(0); + List instrAsgnmList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO); + model.addAttribute("instrAsgnmList", instrAsgnmList); + + //최근 강의요청 현황 - 5개 + List instrAsgnmRqstList = vEAsgnmMIXService.selectAsgnmRqstPagingList(vEInstrAsgnmVO); + model.addAttribute("instrAsgnmRqstList", instrAsgnmRqstList); + + //교육완료 현황 - 현재 확정현황. 완료 기준 잡아서 수정 필요 + List instrAsgnmEndList = vEAsgnmMIXService.selectAsgnmPagingList(vEInstrAsgnmVO); + model.addAttribute("instrAsgnmEndList", instrAsgnmEndList); + + //패널티 현황 + List vEInstrPnltyList = vEInstrMixService.selectPnltyList(vEInstrDetailVO); + model.addAttribute("vEInstrPnltyList", vEInstrPnltyList); + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrDashboard"; + } + + /** + * 1.성인대상 강사 등록화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg.do") + public String instrPrflReg( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + System.out.println("vEInstrDetailVO.getInstrDiv()"); + System.out.println(vEInstrDetailVO.getInstrDiv()); + System.out.println(vEInstrDetailVO.getUserId()); + System.out.println(vEInstrDetailVO.getInstrDetailOrd()); + + //강사 기등록여부 확인 + + VEInstrDetailVO t_vEInstrUploadInfoVO = new VEInstrDetailVO(); + t_vEInstrUploadInfoVO.setUserId(loginVO.getUniqId()); + t_vEInstrUploadInfoVO = vEInstrService.selectDetail(t_vEInstrUploadInfoVO); + + if(t_vEInstrUploadInfoVO!=null){ + if("Y".equals(t_vEInstrUploadInfoVO.getAdultInstrYn())){ + redirectAttributes.addFlashAttribute("message", "이미 강사정보를 등록하셨습니다. 관리자에게 문의해주세요."); + //return "redirect:/web/main/mainPage.do"; + return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; + } + } + + VEInstrDetailVO vEInstrUploadInfoVO = null; + if ( + vEInstrDetailVO.getInstrDiv() != null + && vEInstrDetailVO.getUserId() != null + && vEInstrDetailVO.getInstrDetailOrd() != null + ) { + vEInstrUploadInfoVO = vEInstrMixService.selectUploadInfoDetailWithData(vEInstrDetailVO); + }else { + + //SsoLoginVO 객체 값 변경으로 인한 세션 정보가 변경되는 문제 수정_220211 + SsoLoginVO tmpSsoLoginVO = new SsoLoginVO(); + ObjectMapper test = new ObjectMapper(); + Map map1 = new HashMap(); + + map1 = test.convertValue(ssoLoginVO, Map.class); + + ObjectMapper test1 = new ObjectMapper(); + + tmpSsoLoginVO = test1.convertValue(map1, SsoLoginVO.class); + + /*SSO 정보 암호화 후 DB에 엑셀 업로드 한 정보 조회*/ + tmpSsoLoginVO = egovCryptoUtil.encryptSsoLoginVO(tmpSsoLoginVO); + vEInstrDetailVO.setInstrNm(tmpSsoLoginVO.getMembName()); + vEInstrDetailVO.setPhone(tmpSsoLoginVO.getMembCelnum()); + vEInstrUploadInfoVO = vEInstrMixService.selectUploadInfoDetail(vEInstrDetailVO); + tmpSsoLoginVO = egovCryptoUtil.decryptSsoLoginVO(tmpSsoLoginVO); + } + + //사전에 엑셀 업로드된 강사 정보가 없을 시 + if(vEInstrUploadInfoVO == null) { + redirectAttributes.addFlashAttribute("message", "등록된 강사정보가 없습니다. 관리자에게 문의해주세요."); + //return "redirect:/web/main/mainPage.do"; + return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; + //}else if(StringUtil.isNotEmpty(vEInstrUploadInfoVO.getSbmtYn())){ + }else if("Y".equals(vEInstrUploadInfoVO.getSbmtYn())){ + redirectAttributes.addFlashAttribute("message", "이미 강사정보를 등록하셨습니다. 관리자에게 문의해주세요."); + //return "redirect:/web/main/mainPage.do"; + return "redirect:/web/ve/instr/tngrVisitEdu/instrInfo/instrTypeSelect.do"; + + } + + vEInstrUploadInfoVO = egovCryptoUtil.decryptVEInstrDetailVO(vEInstrUploadInfoVO); + model.addAttribute("info", vEInstrUploadInfoVO); + /* + //SSO 로그인 정보 가져오기 + vEInstrDetailVO.setInstrNm(ssoLoginVO.getMembName()); + vEInstrDetailVO.setPhone(ssoLoginVO.getMembCelnum()); + vEInstrDetailVO.setEmail(ssoLoginVO.getMembEmail()); + vEInstrDetailVO.setdBirth(ssoLoginVO.getMembBirth()); + + model.addAttribute("info", vEInstrDetailVO); + */ + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflReg"; + } + + + /** + * 1.성인대상 강사 수정화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegMdfy.do") + public String instrPrflRegMdfy( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); + info = egovCryptoUtil.decryptVEInstrDetailVO(info);/*이름, 번호 복호화*/ + model.addAttribute("info", info); + + try { + FileVO fileVO = new FileVO(); + String atchFileId = info.getPhtAtchFileId(); + fileVO.setAtchFileId(atchFileId); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + }catch(Exception ex) { + ex.printStackTrace(); + } + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegMdfy"; + } + + /** + * 청소년대상 강사 확인 요청 - 기존 DB 데이터에서 useYn과 userId 업데이트 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflCnfrmAjax.do") + public ModelAndView instrPrflCnfrmAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + modelAndView.addObject("result", "fail"); + return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + + + String atchFileId = ""; + final Map files = multiRequest.getFileMap(); + + if (!files.isEmpty()) { + //XXX_로 첨부파일 네이밍 + List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); + atchFileId = fileMngService.insertFileInfs(result); + //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 + vEInstrDetailVO.setPhtAtchFileId(atchFileId); + } + + //세션 ID 가져오기 + vEInstrDetailVO.setRqstId(loginVO.getUniqId()); + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + if("Y".equals(vEInstrDetailVO.getSbmtYn())) { + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + vEInstrDetailVO.setSbmtPnttm(now); + } + + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); +// ssoLoginVO = egovCryptoUtil.encryptSsoLoginVO(ssoLoginVO); + vEInstrDetailService.update(vEInstrDetailVO); + vEInstrService.update(vEInstrDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 청소년대상 강사 확인 요청 후 완료 화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegRgstr.do") + public String instrPrflRegRgstr( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegRgstr"; + } + + /** + * 1.성인대상 강사 등록Ajax + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflRegAjax.do") + public ModelAndView instrPrflRegAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + modelAndView.addObject("result", "fail"); + return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + + + String atchFileId = ""; + final Map files = multiRequest.getFileMap(); + + if (!files.isEmpty()) { + //XXX_로 첨부파일 네이밍 + List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); + atchFileId = fileMngService.insertFileInfs(result); + //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 + vEInstrDetailVO.setPhtAtchFileId(atchFileId); + } + + //세션 ID 가져오기 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setFrstRegisterId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + if("Y".equals(vEInstrDetailVO.getSbmtYn())) { + vEInstrDetailVO.setSbmtPnttm(now); + } + //사용자가 승인코드10번(등록,수정요청)시 승인일시를 수정하는게 맞는지. 사용자 - 제출일시, 관리자 - 승인일시가 아닌지 + /*if(StringUtil.isNotEmpty(vEInstrDetailVO.getAprvlCd())) { + vEInstrDetailVO.setAprvlPnttm(now); + }*/ + + + VEInstrDetailVO vEInstrVO = new VEInstrDetailVO(); + vEInstrVO = vEInstrService.selectDetail(vEInstrDetailVO); + //최초 신청시에만 강사 테이블에 insert, 수정 요청시는 강사 디테일만 insert + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + + if(vEInstrVO == null) { + vEInstrDetailVO.setUseYn("Y"); //수정 요청시는 승인전 기존 디테일 정보 사용 + vEInstrService.insert(vEInstrDetailVO); + } + vEInstrDetailService.insert(vEInstrDetailVO); + + //강사 정보 수정요청 + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_81, + "", + "", + "0", + "0" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 1.성인대상 강사 상세화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail.do") + public String instrPrflDetail( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setUseYn("Y"); + VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); + info = egovCryptoUtil.decryptVEInstrDetailVO(info); + + model.addAttribute("info", info); + + + //성인대상 강사 신청내역 조회 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회 + List vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrAplctList", vEInstrAplctList); + + + //성인대상 강사 수정신청 내역 조회 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회 + List vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrMdfyList", vEInstrMdfyList); + + + //현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'"); + List vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList); + + VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); + lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); + lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + + //강의설정 요청 리스트 불러오기 + List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); + model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); + + + //강의설정테이블 + lctrDetailVO.setUseYn("Y"); + VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); + model.addAttribute("lctrStngInfo", lctrStngInfo); + + + VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVO = new VEInstrDetailActvtHstryVO(); + vEInstrDetailActvtHstryVO.setInstrDetailOrd(info.getInstrDetailOrd()); + vEInstrDetailActvtHstryVO.setUserId(info.getUserId()); + // 강사활동확인서내역 + List vEInstrActvtHstryList = vEInstrDetailActvtHstryService.select(vEInstrDetailActvtHstryVO); + model.addAttribute("vEInstrActvtHstryList", vEInstrActvtHstryList); + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflDetail"; + } + + /** + * 1.성인대상 강사 수정화면 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfy.do") + public String instrPrflMdfy( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setUseYn("Y"); + VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); + info = egovCryptoUtil.decryptVEInstrDetailVO(info);/*이름, 번호 복호화*/ + model.addAttribute("info", info); + + FileVO fileVO = new FileVO(); + String atchFileId = info.getPhtAtchFileId(); + fileVO.setAtchFileId(atchFileId); + List fileList = fileService.selectFileInfs(fileVO); + model.addAttribute("fileList", fileList); + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfy"; + } + + /** + * 1.성인대상 강사 수정Ajax + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflMdfyAjax.do") + public ModelAndView instrPrflMdfyAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , final MultipartHttpServletRequest multiRequest + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + modelAndView.addObject("result", "fail"); + return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + + + String atchFileId = ""; + final Map files = multiRequest.getFileMap(); + + if (!files.isEmpty()) { + //XXX_로 첨부파일 네이밍 + List result = egovFileMngUtil.parseFileInf(files, "PHT_", 0, "", "", ""); + atchFileId = fileMngService.insertFileInfs(result); + } + //첨부파일Id(atchFileId)를 해당 VO atchFileId변수에 저장 + vEInstrDetailVO.setPhtAtchFileId(atchFileId); + + //세션 ID 가져오기 + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + //제출, 승인요청 일시 + SimpleDateFormat format1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss"); + Date time = new Date(); + String now = format1.format(time); + if("Y".equals(vEInstrDetailVO.getSbmtYn())) { + vEInstrDetailVO.setSbmtPnttm(now); + } + //사용자가 승인코드10번(등록,수정요청)시 승인일시를 수정하는게 맞는지. 사용자 - 제출일시, 관리자 - 승인일시가 아닌지 + /*if(StringUtil.isNotEmpty(vEInstrDetailVO.getAprvlCd())) { + vEInstrDetailVO.setAprvlPnttm(now); + }*/ + + vEInstrService.update(vEInstrDetailVO); + //등록 요청, 재요청일 시 반려사유 삭제 + if("10".equals(vEInstrDetailVO.getAprvlCd())) { + vEInstrDetailVO.setAprvlCn(""); + } + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO);/*이름, 번호 복호화*/ + vEInstrDetailService.update(vEInstrDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 1.성인대상 강사 첨부파일 ID 수정Ajax + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflFileMdfyAjax.do") + public ModelAndView instrPrflFileMdfyAjax( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + , HttpServletRequest request + ) throws Exception { + + ModelAndView modelAndView = new ModelAndView(); + modelAndView.setViewName("jsonView"); + //로그인 처리==================================== + //로그인 정보 가져오기 + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + vEInstrDetailVO.setLastUpdusrId(loginVO.getUniqId()); + + if (loginVO == null || ssoLoginVO == null) { + modelAndView.addObject("result", "fail"); + return modelAndView; //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + + //암호화 + vEInstrDetailVO = egovCryptoUtil.encryptVEInstrDetailVO(vEInstrDetailVO); + + vEInstrDetailService.update(vEInstrDetailVO); + modelAndView.addObject("result", "success"); + + return modelAndView; + } + + /** + * 1.성인대상 강사 상세화면 - 달력일정 + */ + @RequestMapping("/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl.do") + public String instrPrflSchdl( + @ModelAttribute("vEInstrDetailVO") VEInstrDetailVO vEInstrDetailVO + + , ModelMap model + , RedirectAttributes redirectAttributes + , HttpSession session + , HttpServletRequest request + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + if (loginVO == null || ssoLoginVO == null) { + return checkLoginUtil.getUserLoginPage(model); //로그인 정보가 없으면 로그인 페이지로 이동한다. + } + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + vEInstrDetailVO.setUserId(loginVO.getUniqId()); + vEInstrDetailVO.setInstrDiv("20"); + vEInstrDetailVO.setUseYn("Y"); + VEInstrDetailVO info = vEInstrDetailService.selectDetail(vEInstrDetailVO); + info = egovCryptoUtil.decryptVEInstrDetailVO(info); + + model.addAttribute("info", info); + + + //성인대상 강사 신청내역 조회 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord = '1'"); //첫번째 신청 조회 + List vEInstrAplctList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrAplctList", vEInstrAplctList); + + + //성인대상 강사 수정신청 내역 조회 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.instr_detail_ord != '1'"); //첫번째가 아닌 수정 요청 조회 + List vEInstrMdfyList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrMdfyList", vEInstrMdfyList); + + + //현재 요청중인 내역 조회 - 요청 중 항목이 있으면 수정 요청 버튼 막기 + vEInstrDetailVO.setFirstIndex(0); + vEInstrDetailVO.setSelectPagingListQuery("AND a.aprvl_cd = '10'"); + List vEInstrMdfyRqstList = vEInstrDetailService.selectPagingList(vEInstrDetailVO); + + model.addAttribute("vEInstrMdfyRqstList", vEInstrMdfyRqstList); + + VELctrDetailVO lctrDetailVO = new VELctrDetailVO(); + lctrDetailVO.setInstrDiv(vEInstrDetailVO.getInstrDiv()); + lctrDetailVO.setUserId(vEInstrDetailVO.getUserId()); + + + //강의설정 요청 리스트 불러오기 + List lctrStngSbmtInfo = vELctrMIXService.selectLctrStngSbmtList(lctrDetailVO); + model.addAttribute("lctrStngSbmtInfo", lctrStngSbmtInfo); + + + //강의설정테이블 + lctrDetailVO.setUseYn("Y"); + VELctrDetailVO lctrStngInfo = vELctrMIXService.selectDetail(lctrDetailVO); + model.addAttribute("lctrStngInfo", lctrStngInfo); + + return "/web/ve/instr/adultVisitEdu/instrInfo/instrPrflSchdl"; + } + + @RequestMapping(value = "/web/ve/instr/adultVisitEdu/instrInfo/adultSchduleManagerAjaxLoadData.do") + @ResponseBody + public List adultSchduleManagerAjaxLoadData( + @ModelAttribute("schduleManageVO") SchduleManageVO schduleManageVO + , ModelMap model + ) throws Exception { + + //로그인 처리==================================== + //로그인 정보 가져오기 + + LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 + //SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 + + + //로그인 처리==================================== + + //성인대상 강사 상세정보 조회 + schduleManageVO.setUserId(loginVO.getUniqId()); + + + schduleManageVO.setAprvlCd("60"); + schduleManageVO.setLctrDivCd("20"); + + + schduleManageVO.setSearchStartDt(schduleManageVO.getSearchStartDt().split("T")[0].replaceAll("-", "")); + + return schduleManageService.selectSchManageStatusInstrList(schduleManageVO); + } + + //페이징을 위한 처리 step1 - 페이징 기본 정보 설정 + private PaginationInfo setPagingStep1( + VEInstrDetailVO p_vEInstrDetailVO + )throws Exception{ + // pageing step1 + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(p_vEInstrDetailVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(p_vEInstrDetailVO.getPageUnit()); + paginationInfo.setPageSize(p_vEInstrDetailVO.getPageSize()); + + return paginationInfo; + } + + + //페이징을 위한 처리 step2 - 게시물 리스트 수량 설정 및 검색 조건 초기화 + private VEInstrDetailVO setPagingStep2( + VEInstrDetailVO p_vEInstrDetailVO + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step2 + p_vEInstrDetailVO.setFirstIndex(p_paginationInfo.getFirstRecordIndex()); + p_vEInstrDetailVO.setLastIndex(p_paginationInfo.getLastRecordIndex()); + p_vEInstrDetailVO.setRecordCountPerPage(p_paginationInfo.getRecordCountPerPage()); + + if("".equals(p_vEInstrDetailVO.getSearchSortCnd())){ //최초조회시 최신것 조회List + p_vEInstrDetailVO.setSearchSortCnd("sbmt_pnttm"); + p_vEInstrDetailVO.setSearchSortOrd("desc"); + } + + return p_vEInstrDetailVO; + } + + + //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 + private PaginationInfo setPagingStep3( + List p_vEInstrDetailVOList + , PaginationInfo p_paginationInfo + )throws Exception{ + // pageing step3 + int totCnt = 0; + if(p_vEInstrDetailVOList.size() > 0) totCnt = p_vEInstrDetailVOList.get(0).getTotCnt(); + p_paginationInfo.setTotalRecordCount(totCnt); + + return p_paginationInfo; + } + +} diff --git a/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduCnfrmMng/web/EduCnfrmMngAdultController.java b/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduCnfrmMng/web/EduCnfrmMngAdultController.java index 7db114e5..20b259e6 100644 --- a/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduCnfrmMng/web/EduCnfrmMngAdultController.java +++ b/src/main/java/kcc/ve/oprtn/adultVisitEdu/eduCnfrmMng/web/EduCnfrmMngAdultController.java @@ -30,6 +30,7 @@ import kcc.com.cmm.util.KoreanRegionEnum; import kcc.com.utl.user.service.CheckLoginUtil; import kcc.kccadr.cmm.CmmUtil; import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.let.utl.fcc.service.VEPagingUtil; import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.asgnmInfo.service.VEAcmdtAplctService; @@ -147,6 +148,10 @@ public class EduCnfrmMngAdultController { @Resource(name = "vEPagingUtil") private VEPagingUtil vEPagingUtil; + //알림 + @Resource(name = "iTNotiUtil") + private ITNotiUtil iTNotiUtil; + /** * 교육확정관리 목록 화면 */ @@ -585,7 +590,9 @@ public class EduCnfrmMngAdultController { } //로그인 처리==================================== LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 - + + System.out.println("================================================-------------------"); + try { String[] splitChk = vEEduAplctVO.getChk().split(","); @@ -603,6 +610,21 @@ public class EduCnfrmMngAdultController { vo.setAsgnmAprvlId(loginVO.getUniqId()); vEEduChasiInstrAsgnmService.update(vo); + + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_21, + aplctChasi[0], + aplctChasi[1], + "2", + "2" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + } } diff --git a/src/main/java/kcc/ve/oprtn/adultVisitEdu/instrActvtHstryMng/InstrActvtHstryAdultMngController.java b/src/main/java/kcc/ve/oprtn/adultVisitEdu/instrActvtHstryMng/InstrActvtHstryAdultMngController.java index 846ad7d3..6f78a3d1 100644 --- a/src/main/java/kcc/ve/oprtn/adultVisitEdu/instrActvtHstryMng/InstrActvtHstryAdultMngController.java +++ b/src/main/java/kcc/ve/oprtn/adultVisitEdu/instrActvtHstryMng/InstrActvtHstryAdultMngController.java @@ -22,6 +22,7 @@ import kcc.com.cmm.service.EgovFileMngUtil; import kcc.com.utl.user.service.CheckLoginUtil; import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.ve.cmm.VeConstants; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryService; import kcc.ve.instr.tngrVisitEdu.instrInfo.service.VEInstrDetailActvtHstryVO; @@ -80,7 +81,9 @@ public class InstrActvtHstryAdultMngController { @Resource(name = "egovCryptoUtil") EgovCryptoUtil egovCryptoUtil; - + //알림 + @Resource(name = "iTNotiUtil") + private ITNotiUtil iTNotiUtil; /** * 강사활동확인서신청관리 목록 @@ -223,6 +226,28 @@ public class InstrActvtHstryAdultMngController { vEInstrDetailActvtHstryVO.setLastUpdusrId(loginVO.getUniqId()); vEInstrDetailActvtHstryService.updateStateCd(vEInstrDetailActvtHstryVO); + VEInstrDetailActvtHstryVO vEInstrDetailActvtHstryVOInfo = new VEInstrDetailActvtHstryVO(); + vEInstrDetailActvtHstryVOInfo.setPrcsAplctPrdOrd(vEInstrDetailActvtHstryVO.getPrcsAplctPrdOrd()); + vEInstrDetailActvtHstryVOInfo = vEInstrDetailActvtHstryService.findById(vEInstrDetailActvtHstryVO); + + + if ("30".equals(vEInstrDetailActvtHstryVO.getStateCd())) { + //강사활동확인서 승인 알림 + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_72, + vEInstrDetailActvtHstryVOInfo.getUserId(), + "", + "0", + "1" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + } + modelAndView.addObject("result", "success"); return modelAndView; diff --git a/src/main/java/kcc/ve/oprtn/pblc/sndMng/web/SndMngController.java b/src/main/java/kcc/ve/oprtn/pblc/sndMng/web/SndMngController.java index 46ba691b..d6269e26 100644 --- a/src/main/java/kcc/ve/oprtn/pblc/sndMng/web/SndMngController.java +++ b/src/main/java/kcc/ve/oprtn/pblc/sndMng/web/SndMngController.java @@ -33,6 +33,7 @@ import kcc.let.uss.ion.cnt.service.EgovCntManageService; import kcc.let.uss.notify.service.NotifyManageService; import kcc.let.uss.notify.service.NotifyManageVO; import kcc.let.utl.fcc.service.EgovCryptoUtil; +import kcc.let.utl.fcc.service.ITNotiUtil; import kcc.ve.cmm.VeConstants; import kcc.ve.cmm.VeSendMail; import kcc.ve.cmm.VeSendSMS; @@ -200,6 +201,10 @@ public class SndMngController { } + //알림 + @Resource(name = "iTNotiUtil") + private ITNotiUtil iTNotiUtil; + /** * sms 발송 */ @@ -620,6 +625,25 @@ public class SndMngController { notifyManageService.insertNotifyNew(notifyManageVO, VeConstants.NOTI_STATUS_12); //교육신청 - sms 발송 }else if ("20".equals(vEEduAplctVO.getSndCd())) { notifyManageService.insertNotifyNew(notifyManageVO, VeConstants.NOTI_STATUS_13); //교육신청 - email 발송 + }else if ("61".equals(vEEduAplctVO.getSndCd())) { + + //알림 강의만족도 제출 요청 + try { + iTNotiUtil.insertNotifyNew( + "20", + loginVO.getUniqId(), + VeConstants.NOTI_STATUS_61, + vEEduAplctVO.getEduAplctOrd(), + vEEduAplctVO.getEduChasiOrd(), + "2", + "2" + ); + }catch(Exception ex) { + ex.printStackTrace(); + } + + //notifyManageService.insertNotifyNew(notifyManageVO, VeConstants.NOTI_STATUS_61); //강의만족도 제출 요청 + } diff --git a/src/main/resources/egovframework/sqlmap/let/sym/ccm/notify/VEANotify_Mng_SQL_Tibero.xml b/src/main/resources/egovframework/sqlmap/let/sym/ccm/notify/VEANotify_Mng_SQL_Tibero.xml index 1bfc4db6..5740eac5 100644 --- a/src/main/resources/egovframework/sqlmap/let/sym/ccm/notify/VEANotify_Mng_SQL_Tibero.xml +++ b/src/main/resources/egovframework/sqlmap/let/sym/ccm/notify/VEANotify_Mng_SQL_Tibero.xml @@ -58,7 +58,7 @@ + " />