diff --git a/src/main/java/kcc/let/uss/notify/service/NotifyManageService.java b/src/main/java/kcc/let/uss/notify/service/NotifyManageService.java
new file mode 100644
index 00000000..f41c5892
--- /dev/null
+++ b/src/main/java/kcc/let/uss/notify/service/NotifyManageService.java
@@ -0,0 +1,36 @@
+package kcc.let.uss.notify.service;
+
+import java.util.List;
+
+import kcc.com.cmm.service.CmmnDetailCode;
+
+/**
+ *
+ * 알림 관리자 관리
+ * @author 이호영
+ * @since 2023.12.14
+ * @version 1.0
+ * @see
+ *
+ *
+ * << 개정이력(Modification Information) >>
+ *
+ * 수정일 수정자 수정내용
+ * ------- -------- ---------------------------
+ * 2023.12.14 이호영 최초 생성
+ *
+ *
+ *
+ */
+public interface NotifyManageService {
+
+ List selectMngPagingList(NotifyManageVO notifyManageVO);
+
+ void mngInsert(NotifyManageVO notifyManageVO);
+
+ NotifyManageVO findById(NotifyManageVO notifyManageVO);
+
+ void mngUpdate(NotifyManageVO notifyManageVO);
+
+ void mngDel(NotifyManageVO notifyManageVO);
+}
diff --git a/src/main/java/kcc/let/uss/notify/service/NotifyManageVO.java b/src/main/java/kcc/let/uss/notify/service/NotifyManageVO.java
new file mode 100644
index 00000000..0fa2b6d0
--- /dev/null
+++ b/src/main/java/kcc/let/uss/notify/service/NotifyManageVO.java
@@ -0,0 +1,150 @@
+package kcc.let.uss.notify.service;
+
+import java.io.Serializable;
+
+import kcc.com.cmm.ComDefaultVO;
+
+/**
+ *
+ * 알림 관리자 관리
+ * @author 이호영
+ * @since 2023.12.14
+ * @version 1.0
+ * @see
+ *
+ *
+ * << 개정이력(Modification Information) >>
+ *
+ * 수정일 수정자 수정내용
+ * ------- -------- ---------------------------
+ * 2023.12.14 이호영 최초 생성
+ *
+ *
+ *
+ */
+public class NotifyManageVO extends ComDefaultVO implements Serializable {
+
+ /**
+ * serialVersionUID
+ */
+ private static final long serialVersionUID = 1L;
+
+ private String cmmNotifyOrd;
+ private String toUserId;
+ private String notifyCn;
+ private String notifyChk;
+ private String lctrDivCd;
+ private String notifyPath;
+ private String eduAplctOrd;
+ private String eduChasiOrd;
+ private String frstRegistPnttm;
+ private String frstRegisterId;
+ private String lastUpdtPnttm;
+ private String lastUpdusrId;
+ private String cmmNotifyMngOrd;
+ private String useYn;
+ private String mngUserId;
+ private String mngUserNm;
+ public String getCmmNotifyOrd() {
+ return cmmNotifyOrd;
+ }
+ public void setCmmNotifyOrd(String cmmNotifyOrd) {
+ this.cmmNotifyOrd = cmmNotifyOrd;
+ }
+ public String getToUserId() {
+ return toUserId;
+ }
+ public void setToUserId(String toUserId) {
+ this.toUserId = toUserId;
+ }
+ public String getNotifyCn() {
+ return notifyCn;
+ }
+ public void setNotifyCn(String notifyCn) {
+ this.notifyCn = notifyCn;
+ }
+ public String getNotifyChk() {
+ return notifyChk;
+ }
+ public void setNotifyChk(String notifyChk) {
+ this.notifyChk = notifyChk;
+ }
+ public String getLctrDivCd() {
+ return lctrDivCd;
+ }
+ public void setLctrDivCd(String lctrDivCd) {
+ this.lctrDivCd = lctrDivCd;
+ }
+ public String getNotifyPath() {
+ return notifyPath;
+ }
+ public void setNotifyPath(String notifyPath) {
+ this.notifyPath = notifyPath;
+ }
+ public String getEduAplctOrd() {
+ return eduAplctOrd;
+ }
+ public void setEduAplctOrd(String eduAplctOrd) {
+ this.eduAplctOrd = eduAplctOrd;
+ }
+ public String getEduChasiOrd() {
+ return eduChasiOrd;
+ }
+ public void setEduChasiOrd(String eduChasiOrd) {
+ this.eduChasiOrd = eduChasiOrd;
+ }
+ public String getFrstRegistPnttm() {
+ return frstRegistPnttm;
+ }
+ public void setFrstRegistPnttm(String frstRegistPnttm) {
+ this.frstRegistPnttm = frstRegistPnttm;
+ }
+ public String getFrstRegisterId() {
+ return frstRegisterId;
+ }
+ public void setFrstRegisterId(String frstRegisterId) {
+ this.frstRegisterId = frstRegisterId;
+ }
+ public String getLastUpdtPnttm() {
+ return lastUpdtPnttm;
+ }
+ public void setLastUpdtPnttm(String lastUpdtPnttm) {
+ this.lastUpdtPnttm = lastUpdtPnttm;
+ }
+ public String getLastUpdusrId() {
+ return lastUpdusrId;
+ }
+ public void setLastUpdusrId(String lastUpdusrId) {
+ this.lastUpdusrId = lastUpdusrId;
+ }
+ public String getCmmNotifyMngOrd() {
+ return cmmNotifyMngOrd;
+ }
+ public void setCmmNotifyMngOrd(String cmmNotifyMngOrd) {
+ this.cmmNotifyMngOrd = cmmNotifyMngOrd;
+ }
+ public String getUseYn() {
+ return useYn;
+ }
+ public void setUseYn(String useYn) {
+ this.useYn = useYn;
+ }
+ public String getMngUserId() {
+ return mngUserId;
+ }
+ public void setMngUserId(String mngUserId) {
+ this.mngUserId = mngUserId;
+ }
+ public String getMngUserNm() {
+ return mngUserNm;
+ }
+ public void setMngUserNm(String mngUserNm) {
+ this.mngUserNm = mngUserNm;
+ }
+
+
+
+
+
+
+}
diff --git a/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageDAO.java b/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageDAO.java
new file mode 100644
index 00000000..d90db90b
--- /dev/null
+++ b/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageDAO.java
@@ -0,0 +1,53 @@
+package kcc.let.uss.notify.service.impl;
+
+import java.util.List;
+
+import org.springframework.stereotype.Repository;
+
+import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
+import kcc.com.cmm.service.CmmnDetailCode;
+import kcc.let.sym.ccm.cde.service.CmmnDetailCodeVO;
+import kcc.let.uss.notify.service.NotifyManageVO;
+
+/**
+ *
+ * 알림 관리자 관리
+ * @author 이호영
+ * @since 2023.12.14
+ * @version 1.0
+ * @see
+ *
+ *
+ * << 개정이력(Modification Information) >>
+ *
+ * 수정일 수정자 수정내용
+ * ------- -------- ---------------------------
+ * 2023.12.14 이호영 최초 생성
+ *
+ *
+ *
+ */
+@Repository("NotifyManageDAO")
+public class NotifyManageDAO extends EgovAbstractDAO {
+
+ public List selectMngPagingList(NotifyManageVO notifyManageVO) {
+ return (List) list("VEANotifyMngDAO.selectMngPagingList", notifyManageVO);
+ }
+
+ public void mngInsert(NotifyManageVO notifyManageVO) {
+ insert("VEANotifyMngDAO.mngInsert", notifyManageVO);
+ }
+
+ public NotifyManageVO findById(NotifyManageVO notifyManageVO) {
+ return (NotifyManageVO) select("VEANotifyMngDAO.findById", notifyManageVO);
+ }
+
+ public void mngUpdate(NotifyManageVO notifyManageVO) {
+ update("VEANotifyMngDAO.mngUpdate", notifyManageVO);
+ }
+
+ public void mngDel(NotifyManageVO notifyManageVO) {
+ update("VEANotifyMngDAO.mngDel", notifyManageVO);
+ }
+
+}
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
new file mode 100644
index 00000000..5d4a32cf
--- /dev/null
+++ b/src/main/java/kcc/let/uss/notify/service/impl/NotifyManageServiceImpl.java
@@ -0,0 +1,63 @@
+package kcc.let.uss.notify.service.impl;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
+import kcc.let.uss.notify.service.NotifyManageService;
+import kcc.let.uss.notify.service.NotifyManageVO;
+
+/**
+ *
+ * 알림 관리자 관리
+ * @author 이호영
+ * @since 2023.12.14
+ * @version 1.0
+ * @see
+ *
+ *
+ * << 개정이력(Modification Information) >>
+ *
+ * 수정일 수정자 수정내용
+ * ------- -------- ---------------------------
+ * 2023.12.14 이호영 최초 생성
+ *
+ *
+ *
+ */
+@Service("NotifyManageService")
+public class NotifyManageServiceImpl extends EgovAbstractServiceImpl implements NotifyManageService {
+
+ @Resource(name="NotifyManageDAO")
+ private NotifyManageDAO notifyManageDAO;
+
+ @Override
+ public List selectMngPagingList(NotifyManageVO notifyManageVO) {
+ return notifyManageDAO.selectMngPagingList(notifyManageVO);
+ }
+
+ @Override
+ public void mngInsert(NotifyManageVO notifyManageVO) {
+ notifyManageDAO.mngInsert(notifyManageVO);
+
+ }
+
+ @Override
+ public NotifyManageVO findById(NotifyManageVO notifyManageVO) {
+ return notifyManageDAO.findById(notifyManageVO);
+ }
+
+ @Override
+ public void mngUpdate(NotifyManageVO notifyManageVO) {
+ notifyManageDAO.mngUpdate(notifyManageVO);
+ }
+
+ @Override
+ public void mngDel(NotifyManageVO notifyManageVO) {
+ notifyManageDAO.mngDel(notifyManageVO);
+ }
+
+}
diff --git a/src/main/java/kcc/let/uss/notify/web/NotifyManageController.java b/src/main/java/kcc/let/uss/notify/web/NotifyManageController.java
new file mode 100644
index 00000000..00ddf990
--- /dev/null
+++ b/src/main/java/kcc/let/uss/notify/web/NotifyManageController.java
@@ -0,0 +1,317 @@
+package kcc.let.uss.notify.web;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+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.servlet.ModelAndView;
+
+import egovframework.rte.fdl.idgnr.EgovIdGnrService;
+import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
+import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
+import kcc.com.cmm.ComDefaultCodeVO;
+import kcc.com.cmm.LoginVO;
+import kcc.com.cmm.service.CmmnDetailCode;
+import kcc.com.cmm.util.StringUtil;
+import kcc.com.utl.user.service.CheckLoginUtil;
+import kcc.let.sec.ram.service.AuthorManageVO;
+import kcc.let.uat.uia.service.SsoLoginVO;
+import kcc.let.uss.notify.service.NotifyManageService;
+import kcc.let.uss.notify.service.NotifyManageVO;
+import kcc.let.uss.umt.service.EgovUserManageService;
+import kcc.let.uss.umt.service.UserDefaultVO;
+import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
+import kcc.ve.oprtn.fndtnEnhanceTrn.prcsInfoMng.web.FndthPrcsInfoMngController;
+
+/**
+ *
+ * 알림 관리자 관리
+ * @author 이호영
+ * @since 2023.12.14
+ * @version 1.0
+ * @see
+ *
+ *
+ * << 개정이력(Modification Information) >>
+ *
+ * 수정일 수정자 수정내용
+ * ------- -------- ---------------------------
+ * 2023.12.14 이호영 최초 생성
+ *
+ *
+ *
+ */
+@Controller
+public class NotifyManageController {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(NotifyManageController.class);
+
+ //로그인 체크 util
+ @Resource(name = "checkLoginUtil")
+ private CheckLoginUtil checkLoginUtil;
+
+ @Resource(name = "NotifyManageService")
+ private NotifyManageService notifyManageService;
+
+ /** userManageService */
+ @Resource(name = "userManageService")
+ private EgovUserManageService userManageService;
+
+ //교육과정순번
+ @Resource(name="veaCmmNotifyMngOrdGnrService")
+ private EgovIdGnrService veaCmmNotifyMngOrdGnrService;
+
+
+
+ /**
+ * @methodName : selectCmmnDetailCodeDetail
+ * @author : 이호영
+ * @date : 2023.12.14
+ * @description :
+ * @param notifyManageVO
+ * @param model
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value="/uss/umt/notify/selectList.do")
+ public String selectList (@ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
+ , ModelMap model
+ ) throws Exception {
+
+ if(notifyManageVO.getPageUnit() != 10) {
+ notifyManageVO.setPageUnit(notifyManageVO.getPageUnit());
+ }
+
+ try{
+ LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
+
+
+
+ /** pageing */
+ PaginationInfo paginationInfo = new PaginationInfo();
+ paginationInfo.setCurrentPageNo(notifyManageVO.getPageIndex());
+ paginationInfo.setRecordCountPerPage(notifyManageVO.getPageUnit());
+ paginationInfo.setPageSize(notifyManageVO.getPageSize());
+
+ notifyManageVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
+ notifyManageVO.setLastIndex(paginationInfo.getLastRecordIndex());
+ notifyManageVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
+
+
+ //userSearchVO.setAdminYn("Y");
+ List resultList = notifyManageService.selectMngPagingList(notifyManageVO) ;
+
+
+ paginationInfo.setTotalRecordCount(resultList.size() > 0 ? resultList.get(0).getTotCnt() : 0);
+ model.addAttribute("paginationInfo", paginationInfo);
+
+ model.addAttribute("list", resultList);
+ }catch(Exception ex) {
+ ex.printStackTrace();
+ }
+
+
+ return "cmm/uss/umt/notify/selectList";
+ }
+
+ /**
+ * @methodName : notifyUserReg
+ * @author : 이호영
+ * @date : 2023.12.14
+ * @description : 수신자 등록
+ * @param notifyManageVO
+ * @param model
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping(value="/uss/umt/notify/notifyUserReg.do")
+ public String notifyUserReg (@ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
+ , ModelMap model
+ ) throws Exception {
+
+ UserDefaultVO userSearchVO = new UserDefaultVO();
+
+ userSearchVO.setFirstIndex(0);
+ userSearchVO.setRecordCountPerPage(500000);
+ List> adminList = userManageService.selectUserList(userSearchVO) ;
+ model.addAttribute("adminList", adminList);
+
+ return "cmm/uss/umt/notify/notifyUserReg";
+ }
+
+ @RequestMapping(value="/uss/umt/notify/notifyUserModify.do")
+ public String notifyUserModify (@ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
+ , ModelMap model
+ ) throws Exception {
+
+ UserDefaultVO userSearchVO = new UserDefaultVO();
+
+ userSearchVO.setFirstIndex(0);
+ userSearchVO.setRecordCountPerPage(500000);
+ List> adminList = userManageService.selectUserList(userSearchVO) ;
+ model.addAttribute("adminList", adminList);
+
+ NotifyManageVO resultVO = notifyManageService.findById(notifyManageVO) ;
+ model.addAttribute("info", resultVO);
+
+ return "cmm/uss/umt/notify/notifyUserModify";
+ }
+
+ /**
+ * @methodName : notifyUserRegAjax
+ * @author : 이호영
+ * @date : 2023.12.14
+ * @description : 수신자 등록 ajax
+ * @param notifyManageVO
+ * @param model
+ * @param request
+ * @return
+ * @throws Exception
+ */
+ @RequestMapping("/uss/umt/notify/notifyUserRegAjax.do")
+ public ModelAndView notifyUserRegAjax(
+ @ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
+ , ModelMap model
+ //, RedirectAttributes redirectAttributes
+ , HttpServletRequest request
+ ) throws Exception {
+
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName("jsonView");
+
+ //로그인 처리====================================
+ //로그인 정보 가져오기
+
+ String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
+ if (!"".equals(s_oprtnLoginCheckNInfo)) {
+ modelAndView.addObject("result", "loginFail");
+ return modelAndView;
+ }
+
+ //로그인 처리====================================
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+ notifyManageVO.setCmmNotifyMngOrd(veaCmmNotifyMngOrdGnrService.getNextStringId()); // 고유ID);
+ notifyManageVO.setFrstRegisterId(loginVO.getUniqId()); //esntl_id
+ notifyManageService.mngInsert(notifyManageVO);
+
+ modelAndView.addObject("result", "success");
+
+ return modelAndView;
+ }
+
+
+
+ @RequestMapping("/uss/umt/notify/notifyUserModifyAjax.do")
+ public ModelAndView notifyUserModifyAjax(
+ @ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
+ , ModelMap model
+ , HttpServletRequest request
+ ) throws Exception {
+
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName("jsonView");
+
+ //로그인 처리====================================
+ //로그인 정보 가져오기
+
+ String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
+ if (!"".equals(s_oprtnLoginCheckNInfo)) {
+ modelAndView.addObject("result", "loginFail");
+ return modelAndView;
+ }
+
+ //로그인 처리====================================
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+ notifyManageVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
+ notifyManageService.mngUpdate(notifyManageVO);
+
+ modelAndView.addObject("result", "success");
+
+ return modelAndView;
+ }
+
+ @RequestMapping("/uss/umt/notify/notifyUserDelAjax.do")
+ public ModelAndView notifyUserDelAjax(
+ @ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
+ , ModelMap model
+ , HttpServletRequest request
+ ) throws Exception {
+
+ ModelAndView modelAndView = new ModelAndView();
+ modelAndView.setViewName("jsonView");
+
+ //로그인 처리====================================
+ //로그인 정보 가져오기
+
+ String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
+ if (!"".equals(s_oprtnLoginCheckNInfo)) {
+ modelAndView.addObject("result", "loginFail");
+ return modelAndView;
+ }
+
+ //로그인 처리====================================
+ LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
+ SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
+
+ notifyManageVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
+ notifyManageService.mngDel(notifyManageVO);
+
+ modelAndView.addObject("result", "success");
+
+ return modelAndView;
+ }
+
+
+ @RequestMapping(value="/uss/umt/notify/notifyUserDetail.do")
+ public String notifyUserDetail (@ModelAttribute("notifyManageVO") NotifyManageVO notifyManageVO
+ , ModelMap model
+ ) throws Exception {
+
+ UserDefaultVO userSearchVO = new UserDefaultVO();
+
+//
+//
+// userId LIKE '%'||#searchKeyword#||'%'
+//
+//
+
+ NotifyManageVO resultVO = notifyManageService.findById(notifyManageVO) ;
+
+
+ userSearchVO.setSearchKeyword(resultVO.getMngUserId());
+ userSearchVO.setSearchCondition("0");
+ userSearchVO.setFirstIndex(0);
+ userSearchVO.setRecordCountPerPage(500000);
+ List> adminList = userManageService.selectUserList(userSearchVO) ;
+
+
+ List