From 37f8d15dd8954e04ad09445184c04a58773af17a Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期三, 14 六月 2023 09:13:37 +0800
Subject: [PATCH] 增加websocket报警点数量推送

---
 ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java |   12 +++++-------
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java                       |   26 ++++++++++++++++++--------
 2 files changed, 23 insertions(+), 15 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java
index 7ed66be..17c2f64 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java
@@ -23,12 +23,12 @@
 
 @Component
 @Slf4j(topic = "websocket")
-@ServerEndpoint("/websocket")
+@ServerEndpoint("/websocket/{userId}")
 public class ChatServerEndpoint {
 
     @OnOpen
-    public void openSession( Session session) {
-        String userId = SecurityUtils.getUserId();
+    public void openSession( @PathParam("userId")String userId, Session session) {
+
         ONLINE_USER_SESSIONS.put(userId, session);
         String message = "鐢ㄦ埛[" + userId + "] 鎴愬姛杩炴帴锛�";
         log.info("鐢ㄦ埛鐧诲綍锛�"+message);
@@ -36,17 +36,15 @@
     }
 
     @OnMessage
-    public void onMessage( String message) {
+    public void onMessage(@PathParam("userId")String userId, String message) {
         log.info("鏀跺埌娑堟伅锛�"+message);
-        String userId = SecurityUtils.getUserId();
         Session session = ONLINE_USER_SESSIONS.get(userId);
         sendMessage(session,message);
 //        sendMessageAll("鐢ㄦ埛[" + userid + "] : " + message);
     }
 
     @OnClose
-    public void onClose( Session session) {
-        String userId = SecurityUtils.getUserId();
+    public void onClose( @PathParam("userId")String userId,Session session) {
         //褰撳墠鐨凷ession 绉婚櫎
         ONLINE_USER_SESSIONS.remove(userId);
         //骞朵笖閫氱煡鍏朵粬浜哄綋鍓嶇敤鎴峰凡缁忕寮�鑱婂ぉ瀹や簡
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/StealAlarmTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
similarity index 86%
rename from ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/StealAlarmTask.java
rename to ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
index 57f3a49..1b552c7 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/StealAlarmTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
@@ -1,5 +1,6 @@
 package com.ruoyi.quartz.task;
 
+import com.ruoyi.alarm.globalAlarm.service.IGlobalAlarmService;
 import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec;
 import com.ruoyi.alarm.stealAlarm.service.IStealElecAlarmService;
 import com.ruoyi.common.core.domain.entity.SysUser;
@@ -16,20 +17,22 @@
 import static com.ruoyi.common.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
 
 /**
- * @ClassName: stealAlarmTask
+ * @ClassName: AlarmTask
  * @Description:
  * @Author: Administrator
  * @Date: 2023骞�03鏈�06鏃� 11:13
  * @Version: 1.0
  **/
-@Component("StealAlarmTask")
-@Slf4j(topic = "stealAlarm")
-public class StealAlarmTask {
+@Component("AlarmTask")
+@Slf4j(topic = "AlarmTask")
+public class AlarmTask {
 
     @Resource
     IStealElecAlarmService IStealElecAlarmService;
     @Resource
     ISysUserService sysUserService;
+    @Resource
+    IGlobalAlarmService globalAlarmService;
 
     /**
      * @鎻忚堪 鐩楃數鎶ヨ瀹炴椂鎺ㄩ�佷换鍔�
@@ -39,12 +42,12 @@
      * @鍒涘缓鏃堕棿 2023/3/6 15:10
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
-    public void alarmPush() {
+    public void stealElecAlarmPush() {
         log.info("鐩楃數鎶ヨ鎺ㄩ�佸紑濮�");
         // 寮�濮嬫椂闂�
         long stime = System.currentTimeMillis();
         try {
-            for(String userId : ONLINE_USER_SESSIONS.keySet()) {
+            for (String userId : ONLINE_USER_SESSIONS.keySet()) {
                 SysUser sysUser = sysUserService.selectUserById(userId);
                 List<ArdAlarmStealelec> alarms = IStealElecAlarmService.getRealAlarm(sysUser.getDeptId());
                 Map<String, Object> map = new HashMap<>();
@@ -81,7 +84,7 @@
                 map.put("total", alarms.size());
                 map.put("data", alarms);
                 if (alarms.size() > 0) {
-                    WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(userId),map);
+                    WebSocketUtils.sendMessage(ONLINE_USER_SESSIONS.get(userId), map);
                 }
             }
         } catch (Exception ex) {
@@ -101,7 +104,7 @@
      * @鍒涘缓鏃堕棿 2023/2/28 11:51
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
-    public void alarmPull() {
+    public void stealElecAlarmPull() {
         log.info("鐩楃數鏁版嵁鎷夊彇寮�濮�");
         // 寮�濮嬫椂闂�
         long stime = System.currentTimeMillis();
@@ -116,4 +119,11 @@
         // 璁$畻鎵ц鏃堕棿
         log.info("鐩楃數鏁版嵁鎷夊彇缁撴潫锛�" + (etime - stime) + " 姣");
     }
+
+    public void globalAlarmCountPush() {
+        Map<String, Integer> stringIntegerMap = globalAlarmService.selectAlarmLogsCount();
+        if (ONLINE_USER_SESSIONS.size() > 0) {
+                WebSocketUtils.sendMessageAll(stringIntegerMap);
+        }
+    }
 }

--
Gitblit v1.9.3