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); } } 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(); } 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; } } 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); } 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); } 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} 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} 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(); //当前的Session 移除 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(); 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);