From 37f8d15dd8954e04ad09445184c04a58773af17a Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 周三, 14 6月 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) {
//当前的Session 移除
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