‘liusuyi’
2023-06-14 37f8d15dd8954e04ad09445184c04a58773af17a
增加websocket报警点数量推送
已重命名1个文件
已修改1个文件
38 ■■■■■ 文件已修改
ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
        //并且通知其他人当前用户已经离开聊天室了
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/AlarmTask.java
ÎļþÃû´Ó ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/StealAlarmTask.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);
        }
    }
}