From 16b7570b56ee975ff6dbd6ebcc3b854e5f3e679f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EC=84=9D=20=EC=B5=9C?= Date: Thu, 24 Nov 2022 18:00:50 +0900 Subject: [PATCH] =?UTF-8?q?=EC=95=8C=EB=9E=8C=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=9E=91=EC=97=85=20=EC=99=84=EB=A3=8C.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dbnt/faisp/config/BaseController.java | 1 - .../java/com/dbnt/faisp/config/BaseModel.java | 2 + .../dbnt/faisp/config/FaispInterceptor.java | 1 + .../main/menuMgt/service/MenuMgtService.java | 5 + .../faisp/main/userInfo/MyInfoController.java | 28 +++++ .../faisp/main/userInfo/model/UserAlarm.java | 7 ++ .../userInfo/service/UserAlarmService.java | 12 ++ .../mybatisMapper/UserInfoMapper.xml | 11 +- src/main/resources/static/css/common.css | 14 +++ src/main/resources/static/js/common.js | 14 +++ src/main/resources/static/js/faRpt/faRpt.js | 9 ++ .../igActivities/fpiMgt/affair/affairMgt.js | 9 ++ .../js/igActivities/fpiMgt/plan/planMgt.js | 9 ++ .../igActivities/fpiMgt/result/resultMgt.js | 9 ++ .../static/js/igActivities/fpiMgt/sri/sri.js | 12 ++ .../resources/templates/fragments/header.html | 39 +++++- .../resources/templates/user/myAlarm.html | 116 ++++++++++++++++++ 17 files changed, 293 insertions(+), 5 deletions(-) create mode 100644 src/main/resources/templates/user/myAlarm.html diff --git a/src/main/java/com/dbnt/faisp/config/BaseController.java b/src/main/java/com/dbnt/faisp/config/BaseController.java index 125e02d5..e973d933 100644 --- a/src/main/java/com/dbnt/faisp/config/BaseController.java +++ b/src/main/java/com/dbnt/faisp/config/BaseController.java @@ -24,7 +24,6 @@ public class BaseController { private final CodeMgtService codeMgtService; private final OrganConfigService organConfigService; private final MenuMgtService menuMgtService; - private final UserInfoService userInfoService; @GetMapping("/") public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser) { diff --git a/src/main/java/com/dbnt/faisp/config/BaseModel.java b/src/main/java/com/dbnt/faisp/config/BaseModel.java index 93054111..210b07cb 100644 --- a/src/main/java/com/dbnt/faisp/config/BaseModel.java +++ b/src/main/java/com/dbnt/faisp/config/BaseModel.java @@ -37,6 +37,8 @@ public class BaseModel { private String endDate; @Transient private Boolean dashboardFlag = false; + @Transient + private Integer refDocKey; public void setQueryInfo(){ setFirstIndex((getPageIndex()-1)*getRowCnt()); diff --git a/src/main/java/com/dbnt/faisp/config/FaispInterceptor.java b/src/main/java/com/dbnt/faisp/config/FaispInterceptor.java index f0e8e41b..f35004e8 100644 --- a/src/main/java/com/dbnt/faisp/config/FaispInterceptor.java +++ b/src/main/java/com/dbnt/faisp/config/FaispInterceptor.java @@ -32,6 +32,7 @@ public class FaispInterceptor implements HandlerInterceptor { param.setViewYn("N"); param.setQueryInfo(); mav.addObject("alarmList", userAlarmService.selectAlarmList(param)); + mav.addObject("alarmListCnt", userAlarmService.selectAlarmListCnt(param)); } } } diff --git a/src/main/java/com/dbnt/faisp/main/menuMgt/service/MenuMgtService.java b/src/main/java/com/dbnt/faisp/main/menuMgt/service/MenuMgtService.java index 802be2c1..f2de68fb 100644 --- a/src/main/java/com/dbnt/faisp/main/menuMgt/service/MenuMgtService.java +++ b/src/main/java/com/dbnt/faisp/main/menuMgt/service/MenuMgtService.java @@ -167,4 +167,9 @@ public class MenuMgtService { }); return firstMenuList; } + + public String selectMenuUrl(Integer menuKey) { + MenuMgt menuMgt = menuMgtRepository.findById(menuKey).orElse(new MenuMgt()); + return menuMgt.getMenuUrl(); + } } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/MyInfoController.java b/src/main/java/com/dbnt/faisp/main/userInfo/MyInfoController.java index e0c33884..efd66496 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/MyInfoController.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/MyInfoController.java @@ -2,8 +2,11 @@ package com.dbnt.faisp.main.userInfo; import com.dbnt.faisp.kwms.service.KwmsService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.main.menuMgt.service.MenuMgtService; import com.dbnt.faisp.main.userInfo.model.DashboardConfig; +import com.dbnt.faisp.main.userInfo.model.UserAlarm; import com.dbnt.faisp.main.userInfo.model.UserInfo; +import com.dbnt.faisp.main.userInfo.service.UserAlarmService; import com.dbnt.faisp.main.userInfo.service.UserInfoService; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; @@ -19,6 +22,8 @@ public class MyInfoController { private final UserInfoService userInfoService; private final CodeMgtService codeMgtService; + private final UserAlarmService userAlarmService; + private final MenuMgtService menuMgtService; private final KwmsService kwmsService; @GetMapping("/myInfoPage") @@ -70,4 +75,27 @@ public class MyInfoController { userInfoService.updateUserInfo(loginUser,kwmsInfo); } } + @GetMapping("/moveAlarmBoard") + public ModelAndView moveAlarmBoard(UserAlarm alarm){ + alarm = userAlarmService.selectAlarm(alarm); + String url = menuMgtService.selectMenuUrl(alarm.getMenuKey()); + if(url.contains("?")){ + url+="&refDocKey="+alarm.getRefDocKey(); + }else{ + url+="?refDocKey="+alarm.getRefDocKey(); + } + return new ModelAndView("redirect:"+url); + } + + @GetMapping("/myAlarm") + public ModelAndView myAlarm(@AuthenticationPrincipal UserInfo loginUser, UserAlarm alarm){ + ModelAndView mav = new ModelAndView("user/myAlarm"); + alarm.setQueryInfo(); + alarm.setUserSeq(loginUser.getUserSeq()); + mav.addObject("pageAlarmList", userAlarmService.selectAlarmList(alarm)); + alarm.setContentCnt(userAlarmService.selectAlarmListCnt(alarm)); + alarm.setPaginationInfo(); + mav.addObject("searchParams", alarm); + return mav; + } } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/model/UserAlarm.java b/src/main/java/com/dbnt/faisp/main/userInfo/model/UserAlarm.java index ae228a94..6d009ab3 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/model/UserAlarm.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/model/UserAlarm.java @@ -37,6 +37,13 @@ public class UserAlarm extends BaseModel { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime wrtDt; + @Transient + private String cat1Cd; + @Transient + private String cat2Cd; + @Transient + private String cat3Cd; + @Embeddable @Data @NoArgsConstructor diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserAlarmService.java b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserAlarmService.java index 43e6e0d3..10cbd055 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserAlarmService.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserAlarmService.java @@ -63,4 +63,16 @@ public class UserAlarmService { alarmList.add(alarm); saveAlarmList(alarmList); } + + public UserAlarm selectAlarm(UserAlarm alarm) { + alarm = userAlarmRepository.findById(new UserAlarm.UserAlarmId(alarm.getAlarmKey(), alarm.getUserSeq())).orElse(null); + alarm.setViewYn("Y"); + updateAlarm(alarm); + return alarm; + } + + @Transactional + public void updateAlarm(UserAlarm alarm) { + userAlarmRepository.save(alarm); + } } diff --git a/src/main/resources/mybatisMapper/UserInfoMapper.xml b/src/main/resources/mybatisMapper/UserInfoMapper.xml index 50106a58..9a1b6fbf 100644 --- a/src/main/resources/mybatisMapper/UserInfoMapper.xml +++ b/src/main/resources/mybatisMapper/UserInfoMapper.xml @@ -393,19 +393,24 @@ and a.user_seq = #{userSeq} + + and a.view_yn = #{viewYn} + select count(*) from user_alarm a - inner join menu_mgt b on a.menu_key = b.menu_key + inner join menu_mgt b on a.menu_key = b.menu_key \ No newline at end of file diff --git a/src/main/resources/static/css/common.css b/src/main/resources/static/css/common.css index 14093413..71cd5c17 100644 --- a/src/main/resources/static/css/common.css +++ b/src/main/resources/static/css/common.css @@ -1,3 +1,4 @@ + #fadeDiv{ width: 100%; height: 100%; @@ -34,6 +35,19 @@ background-color: #ffffff; } +#alarmCntDiv{ + width: 16px; + height: 16px; + left: 12px; + top: -4px; +} +#alarmListDiv{ + width: 500px; + left: -300px; + top: 30px; + z-index: 5000; +} + .activeTr{ --bs-bg-opacity: 0.25; background-color: rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important; diff --git a/src/main/resources/static/js/common.js b/src/main/resources/static/js/common.js index 6e620bee..abc67a81 100644 --- a/src/main/resources/static/js/common.js +++ b/src/main/resources/static/js/common.js @@ -16,6 +16,20 @@ function searchFade(action){ } } +$(document).on('click', '#bellIcon', function (){ + const alarmListDiv = $("#alarmListDiv")[0]; + if(alarmListDiv.className.includes('d-none')){ + alarmListDiv.className = "position-absolute bg-white card"; + }else{ + alarmListDiv.className = "position-absolute bg-white card d-none"; + } +}) +$(document).on('click', '.alarmTr', function (){ + location.href = "/myInfo/moveAlarmBoard?" + + "alarmKey="+$(this).find(".alarmKey").val()+ + "&userSeq="+$(this).find(".userSeq").val(); +}) + $(document).on('click', '.allChk', function (){ $(this).parents('table').find('[type="checkbox"]').prop("checked", this.checked); }) diff --git a/src/main/resources/static/js/faRpt/faRpt.js b/src/main/resources/static/js/faRpt/faRpt.js index eda55e6e..ef0bd847 100644 --- a/src/main/resources/static/js/faRpt/faRpt.js +++ b/src/main/resources/static/js/faRpt/faRpt.js @@ -1,5 +1,14 @@ let selectedList = []; $(function(){ + if(location.search.includes("refDocKey")){ + const params = location.search.split('&'); + $.each(params, function (idx, param){ + if(param.includes("refDocKey")){ + const faRptKey = param.slice(param.indexOf("=")+1, param.length); + getFaRptViewModal(faRptKey); + } + }) + } $("#dateSelectorDiv").datepicker({ format: "yyyy-mm-dd", language: "ko", diff --git a/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js b/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js index d55f52f6..d38c6a2d 100644 --- a/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js +++ b/src/main/resources/static/js/igActivities/fpiMgt/affair/affairMgt.js @@ -1,5 +1,14 @@ $(function(){ + if(location.search.includes("refDocKey")){ + const params = location.search.split('&'); + $.each(params, function (idx, param){ + if(param.includes("refDocKey")){ + const key = param.slice(param.indexOf("=")+1, param.length); + getAffairViewModal(key); + } + }) + } $("#dateSelectorDiv").datepicker({ format: "yyyy-mm-dd", language: "ko", diff --git a/src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js b/src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js index 4f71f0c8..0c9ba067 100644 --- a/src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js +++ b/src/main/resources/static/js/igActivities/fpiMgt/plan/planMgt.js @@ -1,5 +1,14 @@ $(function(){ + if(location.search.includes("refDocKey")){ + const params = location.search.split('&'); + $.each(params, function (idx, param){ + if(param.includes("refDocKey")){ + const key = param.slice(param.indexOf("=")+1, param.length); + getPlanViewModal(key); + } + }) + } $("#dateSelectorDiv").datepicker({ format: "yyyy-mm-dd", language: "ko", diff --git a/src/main/resources/static/js/igActivities/fpiMgt/result/resultMgt.js b/src/main/resources/static/js/igActivities/fpiMgt/result/resultMgt.js index b3fc1f19..5580c7e0 100644 --- a/src/main/resources/static/js/igActivities/fpiMgt/result/resultMgt.js +++ b/src/main/resources/static/js/igActivities/fpiMgt/result/resultMgt.js @@ -1,5 +1,14 @@ $(function(){ + if(location.search.includes("refDocKey")){ + const params = location.search.split('&'); + $.each(params, function (idx, param){ + if(param.includes("refDocKey")){ + const key = param.slice(param.indexOf("=")+1, param.length); + getResultViewModal(key); + } + }) + } $("#dateSelectorDiv").datepicker({ format: "yyyy-mm-dd", language: "ko", diff --git a/src/main/resources/static/js/igActivities/fpiMgt/sri/sri.js b/src/main/resources/static/js/igActivities/fpiMgt/sri/sri.js index cf9f8b66..6abd0cdc 100644 --- a/src/main/resources/static/js/igActivities/fpiMgt/sri/sri.js +++ b/src/main/resources/static/js/igActivities/fpiMgt/sri/sri.js @@ -1,5 +1,17 @@ let selectedList = []; +$(function() { + if (location.search.includes("refDocKey")) { + const params = location.search.split('&'); + $.each(params, function (idx, param) { + if (param.includes("refDocKey")) { + const key = param.slice(param.indexOf("=") + 1, param.length); + getSriViewModal(key); + } + }) + } +}) + $(document).on('click', '#addSriBtn', function (){ getSriEditModal({faSriKey: null}) }) diff --git a/src/main/resources/templates/fragments/header.html b/src/main/resources/templates/fragments/header.html index 6e862249..302eb193 100644 --- a/src/main/resources/templates/fragments/header.html +++ b/src/main/resources/templates/fragments/header.html @@ -50,7 +50,43 @@