Browse Source

+ 路由过滤规则修改
+ 去除视频跟随融合逻辑

chen.cheng 6 months ago
parent
commit
fd7235e40f
13 changed files with 32 additions and 22 deletions
  1. 7 0
      bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/LocationInfo.java
  2. 1 1
      bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/impl/FenceBreakInEngine.java
  3. 1 1
      bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/impl/PointFusionEngine.java
  4. 1 1
      bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/impl/RoomBreakInEngine.java
  5. 10 10
      bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/impl/VideoTrailEngine.java
  6. 1 1
      bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/mqtt/UWBLocationListener.java
  7. 1 1
      bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/mqtt/UWBLocationSubscribeListener.java
  8. 1 1
      bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/socket/server/FenceVioEvtSocketServer.java
  9. 1 3
      bd-park/park-backend/park-application/src/main/resources/application.yml
  10. 1 1
      bd-park/park-backend/park-infrastructure/src/main/java/com/huashe/park/infrastructure/cfg/mqtt/MqttCfg.java
  11. 1 1
      bd-park/park-backend/park-infrastructure/src/main/java/com/huashe/park/infrastructure/socket/cfg/WebSocketConfig.java
  12. 3 0
      bd-park/park-backend/park-infrastructure/src/main/java/com/huashe/park/infrastructure/socket/client/UWBCfg.java
  13. 3 1
      bd-park/park-backend/park-infrastructure/src/main/java/com/huashe/park/infrastructure/socket/server/UwbVideoTraceSocketServer.java

+ 7 - 0
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/LocationInfo.java

@@ -85,4 +85,11 @@ public class LocationInfo implements Serializable {
     public void setBizId(String bizId) {
         this.bizId = bizId;
     }
+
+    @Override
+    public String toString() {
+        return "LocationInfo{" + "latitude=" + latitude + ", longitude=" + longitude + ", srcTimestamp=" + srcTimestamp
+            + ", handleTimestamp=" + handleTimestamp + ", evtTimestamp=" + evtTimestamp + ", bizId='" + bizId + '\''
+            + ", msg=" + msg + '}';
+    }
 }

+ 1 - 1
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/impl/FenceBreakInEngine.java

@@ -21,7 +21,7 @@ import com.alibaba.fastjson2.JSONObject;
 import com.huashe.park.application.engine.EvtFusionEngine;
 import com.huashe.park.application.engine.LocationInfo;
 import com.huashe.park.application.socket.server.FenceVioEvtSocketServer;
-import com.huashe.park.application.web.core.config.MqttCfg;
+import com.huashe.park.infrastructure.cfg.mqtt.MqttCfg;
 import com.huashe.park.common.DateTimeUtil;
 import com.huashe.park.common.consts.BDConst;
 import com.huashe.park.common.consts.enums.EvtStatus;

+ 1 - 1
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/impl/PointFusionEngine.java

@@ -4,7 +4,7 @@ import com.alibaba.fastjson2.JSONObject;
 import com.huashe.park.application.engine.EvtFusionEngine;
 import com.huashe.park.application.engine.LocationInfo;
 import com.huashe.park.application.socket.server.PointWebSocketServer;
-import com.huashe.park.application.web.core.config.MqttCfg;
+import com.huashe.park.infrastructure.cfg.mqtt.MqttCfg;
 import com.huashe.park.common.DateTimeUtil;
 import com.huashe.park.common.consts.BDConst;
 import com.huashe.park.core.service.IBdDevcTrailUwbService;

+ 1 - 1
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/impl/RoomBreakInEngine.java

@@ -24,7 +24,7 @@ import com.alibaba.fastjson2.JSONObject;
 import com.huashe.park.application.engine.EvtFusionEngine;
 import com.huashe.park.application.engine.LocationInfo;
 import com.huashe.park.application.socket.server.FenceVioEvtSocketServer;
-import com.huashe.park.application.web.core.config.MqttCfg;
+import com.huashe.park.infrastructure.cfg.mqtt.MqttCfg;
 import com.huashe.park.common.DateTimeUtil;
 import com.huashe.park.common.consts.BDConst;
 import com.huashe.park.common.consts.enums.EvtStatus;

+ 10 - 10
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/engine/impl/VideoTrailEngine.java

@@ -8,7 +8,6 @@ import java.util.concurrent.LinkedBlockingQueue;
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 
-import com.huashe.park.core.redis.RedisProxy;
 import org.apache.commons.lang3.ObjectUtils;
 import org.locationtech.jts.geom.Polygon;
 import org.slf4j.Logger;
@@ -23,12 +22,13 @@ import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSONPath;
 import com.huashe.park.application.engine.EvtFusionEngine;
 import com.huashe.park.application.engine.LocationInfo;
-import com.huashe.park.application.web.core.config.MqttCfg;
 import com.huashe.park.common.DateTimeUtil;
 import com.huashe.park.common.consts.BDConst;
 import com.huashe.park.common.geo.GeoUtils;
+import com.huashe.park.core.redis.RedisProxy;
 import com.huashe.park.core.service.IBdCameraInfoService;
 import com.huashe.park.domain.dto.VideoFence;
+import com.huashe.park.infrastructure.cfg.mqtt.MqttCfg;
 import com.huashe.park.infrastructure.socket.server.UwbVideoTraceSocketServer;
 
 import cn.hutool.core.lang.UUID;
@@ -73,13 +73,14 @@ public class VideoTrailEngine extends EvtFusionEngine {
 
     @Override
     public Boolean check(LocationInfo older, LocationInfo newer) {
-        long gap = newer.getSrcTimestamp() - older.getSrcTimestamp();
-        // 将gap 转换为秒
-        gap = gap / 1000;
-
-        String oldFenceId = older.getMsg().getString("fenceId");
-        String newerFenceId = newer.getMsg().getString("fenceId");
-        return gap <= MAX_EVT_TIME_GAP && oldFenceId.equals(newerFenceId);
+        // long gap = newer.getSrcTimestamp() - older.getSrcTimestamp();
+        // // 将gap 转换为秒
+        // gap = gap / 1000;
+        //
+        // String oldFenceId = older.getMsg().getString("fenceId");
+        // String newerFenceId = newer.getMsg().getString("fenceId");
+        // logger.info("视频轨迹: {}, {},{}", older, newer, gap <= MAX_EVT_TIME_GAP && oldFenceId.equals(newerFenceId));
+        return false;
     }
 
     @Override
@@ -107,7 +108,6 @@ public class VideoTrailEngine extends EvtFusionEngine {
 
     @Override
     public void newEvtCallback(LocationInfo msg) {
-        logger.info("视频轨迹: {}", msg);
         videoTraceSocketServer.sendMessage(msg.getMsg().getString("tagId"), JSONObject.from(msg));
     }
 

+ 1 - 1
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/mqtt/UWBLocationListener.java

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
 
 import com.alibaba.fastjson2.JSON;
 import com.huashe.park.application.engine.impl.VideoTrailEngine;
-import com.huashe.park.application.web.core.config.MqttCfg;
+import com.huashe.park.infrastructure.cfg.mqtt.MqttCfg;
 import com.huashe.park.common.consts.BDConst;
 
 import net.dreamlu.iot.mqtt.codec.MqttQoS;

+ 1 - 1
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/mqtt/UWBLocationSubscribeListener.java

@@ -5,7 +5,7 @@ import com.alibaba.fastjson2.JSONObject;
 import com.huashe.park.application.engine.impl.FenceBreakInEngine;
 import com.huashe.park.application.engine.impl.PointFusionEngine;
 import com.huashe.park.application.engine.impl.RoomBreakInEngine;
-import com.huashe.park.application.web.core.config.MqttCfg;
+import com.huashe.park.infrastructure.cfg.mqtt.MqttCfg;
 import com.huashe.park.common.consts.BDConst;
 import net.dreamlu.iot.mqtt.codec.MqttQoS;
 import net.dreamlu.iot.mqtt.spring.client.MqttClientSubscribe;

+ 1 - 1
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/socket/server/FenceVioEvtSocketServer.java

@@ -14,7 +14,7 @@ import java.io.IOException;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 
-@ServerEndpoint("/ws/evt/{device}")
+@ServerEndpoint("/pkbs/evt/{device}")
 @CrossOrigin(origins = "*")
 @Component
 public class FenceVioEvtSocketServer {

+ 1 - 3
bd-park/park-backend/park-application/src/main/resources/application.yml

@@ -100,7 +100,7 @@ token:
 
 huashe:
   permit:
-    urlPatterns: /pkb/*,/pkbs/*
+    urlPatterns: /pkb/**,/pkbs/**
 # MyBatis配置
 mybatis:
   # 搜索指定包别名
@@ -134,7 +134,5 @@ xss:
   urlPatterns: /system/*,/monitor/*,/tool/*
 
 evt-fusion:
-  # 默认为false
-  enabled: false
   thread-pool-size: 2
 

+ 1 - 1
bd-park/park-backend/park-application/src/main/java/com/huashe/park/application/web/core/config/MqttCfg.java → bd-park/park-backend/park-infrastructure/src/main/java/com/huashe/park/infrastructure/cfg/mqtt/MqttCfg.java

@@ -1,4 +1,4 @@
-package com.huashe.park.application.web.core.config;
+package com.huashe.park.infrastructure.cfg.mqtt;
 
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.boot.context.properties.ConfigurationProperties;

+ 1 - 1
bd-park/park-backend/park-infrastructure/src/main/java/com/huashe/park/infrastructure/socket/cfg/WebSocketConfig.java

@@ -34,7 +34,7 @@ public class WebSocketConfig implements WebSocketConfigurer {
     public ServletServerContainerFactoryBean createWebSocketContainer() {
         ServletServerContainerFactoryBean container = new ServletServerContainerFactoryBean();
         // 设置默认会话空闲超时 以毫秒为单位 非正值意味着无限超时,默认值 0 ,默认没10s检查一次空闲就关闭
-        container.setMaxSessionIdleTimeout(10 * 1000L);
+        container.setMaxSessionIdleTimeout(3600 * 1000L);
         // 设置异步发送消息的默认超时时间 以毫秒为单位 非正值意味着无限超时 ,默认值-1,还没看到作用
         container.setAsyncSendTimeout(10 * 1000L);
         // 设置文本消息的默认最大缓冲区大小 以字符为单位,默认值 8 * 1024

+ 3 - 0
bd-park/park-backend/park-infrastructure/src/main/java/com/huashe/park/infrastructure/socket/client/UWBCfg.java

@@ -9,6 +9,7 @@ import java.util.TimerTask;
 
 import javax.annotation.Resource;
 
+import com.huashe.park.infrastructure.cfg.mqtt.MqttCfg;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.java_websocket.client.WebSocketClient;
@@ -39,11 +40,13 @@ public class UWBCfg {
     private UWBWebService uwbWebService;
 
     @Bean
+    @ConditionalOnBean(MqttCfg.class)
     public UWBSocketClient uwbWebSocketClient() throws URISyntaxException {
         return new UWBSocketClient(new URI(uwbForestCfg.getUwbSocket()));
     }
 
     @Bean
+    @ConditionalOnBean(MqttCfg.class)
     public WebSocketClient webSocketClient(UWBSocketClient uwbWebSocketClient) {
         UWBAuth uwbAuth = authUWB();
         if (ObjectUtils.isEmpty(uwbAuth)) {

+ 3 - 1
bd-park/park-backend/park-infrastructure/src/main/java/com/huashe/park/infrastructure/socket/server/UwbVideoTraceSocketServer.java

@@ -4,6 +4,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import com.alibaba.fastjson2.JSONPath;
 import org.springframework.web.socket.WebSocketSession;
 
 import com.alibaba.fastjson2.JSONObject;
@@ -26,7 +27,8 @@ public class UwbVideoTraceSocketServer extends SocketHandle {
 
     @Override
     public void sendMessage(String sessionKey, JSONObject message) {
-        super.sendMessage(sessionKey, message);
+        JSONObject msg = (JSONObject)JSONPath.eval(message, "$.msg");
+        super.sendMessage(msg.getString("key"), message);
     }
 
     @Override