From 321ad5573868f8a421509633b3ded03a6602efbc Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 13 六月 2023 17:28:40 +0800
Subject: [PATCH] 增加查询报警点数量接口

---
 ruoyi-common/src/main/java/com/ruoyi/common/websocket/util/WebSocketUtils.java              |    1 
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java |   22 +++++++++-
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/IGlobalAlarmService.java         |    2 +
 ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java             |    1 
 ruoyi-common/src/main/java/com/ruoyi/common/websocket/service/ChatServerEndpoint.java       |   33 +++++++++-------
 ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml                   |    3 +
 ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml                             |    5 ++
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java    |    7 +++
 ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java       |    1 
 9 files changed, 58 insertions(+), 17 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java
index 3675937..fdc7516 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/controller/GlobalAlarmController.java
@@ -13,6 +13,7 @@
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName: globalAlarmController
@@ -42,4 +43,10 @@
         Object result = globalAlarmService.updateAlarmViewTime(condition);
         return AjaxResult.success(result);
     }
+    @PostMapping("/count")
+    @ApiOperation(value = "鏌ョ湅鎶ヨ鐐规暟閲�",notes = "鏌ヨ鍒锋柊鏃堕棿鍐呮姤璀︾殑鐐逛綅鏁伴噺")
+    public AjaxResult  countAlarmLog() {
+        Map<String, Integer> stringIntegerMap = globalAlarmService.selectAlarmLogsCount();
+        return AjaxResult.success(stringIntegerMap);
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/IGlobalAlarmService.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/IGlobalAlarmService.java
index 3b138b7..a06fa79 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/IGlobalAlarmService.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/IGlobalAlarmService.java
@@ -4,6 +4,7 @@
 import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmData;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName: globalAlarmService
@@ -16,4 +17,5 @@
     public List<GlobalAlarmData> selectAlarmLogs(GlobalAlarmCondition condition);
     Object updateAlarmViewTime(GlobalAlarmCondition condition);
     public void receiveAlarm(String topic,String message);
+    public Map<String,Integer> selectAlarmLogsCount();
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
index 3006be4..82b68b3 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/impl/GlobalAlarmServiceImpl.java
@@ -26,9 +26,7 @@
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;
@@ -152,4 +150,22 @@
                 break;
         }
     }
+    /**
+     * @鎻忚堪 鏌ヨ鎵�鏈夋姤璀︾殑褰撳墠鏁伴噺
+     * @鍙傛暟 []
+     * @杩斿洖鍊� java.util.Map<java.lang.String,java.lang.Integer>
+     * @鍒涘缓浜� 鍒樿嫃涔�
+     * @鍒涘缓鏃堕棿 2023/6/13 16:30
+     * @淇敼浜哄拰鍏跺畠淇℃伅
+     */
+    @Override
+    public Map<String, Integer> selectAlarmLogsCount() {
+        Map<String, Integer> countMap=new HashMap<>();
+        String refreshTime = configService.selectConfigByKey("refreshTime");
+        int count1001 = ardAlarmStealelecMapper.selectCountByStartTime(refreshTime);
+        countMap.put("1001",count1001);
+        int count1014 = ardAlarmTubeMapper.selectCountByStartTime(refreshTime);
+        countMap.put("1014 ",count1014);
+        return countMap;
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java
index ba0012f..0ec906a 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/stealAlarm/mapper/ArdAlarmStealelecMapper.java
@@ -14,5 +14,6 @@
     List<ArdAlarmStealelec> selectRealByCondition(@Param("refreshTime")String refreshTime,@Param("deptId")Long deptId);
     List<ArdAlarmStealelec> selectHistoryByCondition(GlobalAlarmCondition condition);
     List<ArdAlarmStealelec> selectListAllByCommand(@Param("refreshTime")String refreshTime);
+    int selectCountByStartTime(@Param("refreshTime")String refreshTime);
     int updateViewTimeByDescribe(@Param("describe")String describe,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime);
 }
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java b/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java
index 86c0041..ca03b00 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/tubeAlarm/mapper/ArdAlarmTubeMapper.java
@@ -64,5 +64,6 @@
     public int deleteArdAlarmTubeByIds(String[] ids);
 
     public List<ArdAlarmTube> selectListAllByCommand(@Param("refreshTime")String refreshTime);
+    int selectCountByStartTime(@Param("refreshTime")String refreshTime);
     public int updateViewTimeByTubeId(@Param("tubeId")String tubeId,@Param("alarmTime") String alarmTime,@Param("viewTime") String viewTime);
 }
diff --git a/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml b/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
index dcc4c42..2a423f8 100644
--- a/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
+++ b/ard-work/src/main/resources/mapper/alarm/ArdAlarmTubeMapper.xml
@@ -149,6 +149,11 @@
              ) T
         WHERE T.rn = 1
     </select>
+    <select id="selectCountByStartTime" resultType="Integer">
+        SELECT COUNT(DISTINCT aat.tube_id)
+        FROM ard_alarm_tube aat
+        WHERE aat.alarm_time >= CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE
+    </select>
     <update id="updateViewTimeByTubeId" parameterType="String">
         update ard_alarm_tube
         set view_time=#{viewTime}
diff --git a/ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml b/ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml
index 0e2a338..04e532e 100644
--- a/ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml
+++ b/ard-work/src/main/resources/mapper/stealAlarm/ArdAlarmStealelecMapper.xml
@@ -79,6 +79,9 @@
                  LEFT JOIN ard_alarm_stealelec aas ON A.ID = aas.ID
         ORDER BY aas.start_time DESC LIMIT 50
     </select>
+    <select id="selectCountByStartTime" resultType="Integer">
+        select count(DISTINCT aas."describe") from ard_alarm_stealelec aas where aas.start_time >= ( CURRENT_TIMESTAMP - INTERVAL '%${refreshTime}%' MINUTE )
+    </select>
     <update id="updateViewTimeByDescribe" parameterType="String">
         update ard_alarm_stealelec
         set view_time=#{viewTime}
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 c9b7180..7ed66be 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
@@ -1,5 +1,6 @@
 package com.ruoyi.common.websocket.service;
 
+import com.ruoyi.common.utils.SecurityUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
@@ -9,8 +10,7 @@
 import javax.websocket.server.ServerEndpoint;
 import java.io.IOException;
 
-import static com.ruoyi.common.websocket.util.WebSocketUtils.ONLINE_USER_SESSIONS;
-import static com.ruoyi.common.websocket.util.WebSocketUtils.sendMessageAll;
+import static com.ruoyi.common.websocket.util.WebSocketUtils.*;
 
 
 /**
@@ -23,30 +23,35 @@
 
 @Component
 @Slf4j(topic = "websocket")
-@ServerEndpoint("/websocket/{userid}")
+@ServerEndpoint("/websocket")
 public class ChatServerEndpoint {
 
     @OnOpen
-    public void openSession(@PathParam("userid") String userid, Session session) {
-        ONLINE_USER_SESSIONS.put(userid, session);
-        String message = "鐢ㄦ埛[" + userid + "] 鎴愬姛杩炴帴锛�";
+    public void openSession( Session session) {
+        String userId = SecurityUtils.getUserId();
+        ONLINE_USER_SESSIONS.put(userId, session);
+        String message = "鐢ㄦ埛[" + userId + "] 鎴愬姛杩炴帴锛�";
         log.info("鐢ㄦ埛鐧诲綍锛�"+message);
-        sendMessageAll(message);
+        sendMessage(session,message);
     }
 
     @OnMessage
-    public void onMessage(@PathParam("userid") String userid, String message) {
-        log.info("鍙戦�佹秷鎭細"+message);
-        sendMessageAll("鐢ㄦ埛[" + userid + "] : " + message);
+    public void onMessage( 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(@PathParam("userid") String userid, Session session) {
+    public void onClose( Session session) {
+        String userId = SecurityUtils.getUserId();
         //褰撳墠鐨凷ession 绉婚櫎
-        ONLINE_USER_SESSIONS.remove(userid);
+        ONLINE_USER_SESSIONS.remove(userId);
         //骞朵笖閫氱煡鍏朵粬浜哄綋鍓嶇敤鎴峰凡缁忕寮�鑱婂ぉ瀹や簡
-        String message="鐢ㄦ埛[" + userid + "] 鏂紑杩炴帴锛�";
-        sendMessageAll(message);
+        String message="鐢ㄦ埛[" + userId + "] 鏂紑杩炴帴锛�";
+        sendMessage(session,message);
         log.info("鍙戦�佹秷鎭細"+message);
         try {
             session.close();
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/websocket/util/WebSocketUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/util/WebSocketUtils.java
index 846d800..91a7730 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/websocket/util/WebSocketUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/websocket/util/WebSocketUtils.java
@@ -36,6 +36,7 @@
         }
         synchronized(session) {
             try {
+                log.info("鍙戦�佹秷鎭細"+message);
                 session.getBasicRemote().sendText(message);
             } catch (IOException e) {
                 log.error("sendMessage IOException ",e);

--
Gitblit v1.9.3