648540858
2022-03-02 1dcdbc3742835ccab28a8983ae002d2bbdba87eb
src/main/java/com/genersoft/iot/vmp/gb28181/task/GPSSubscribeTask.java
@@ -36,7 +36,6 @@
        SubscribeInfo subscribe = redisCatchStorage.getSubscribe(key);
        if (subscribe != null) {
            System.out.println("发送GPS消息");
            ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(platformId);
            if (parentPlatform == null || parentPlatform.isStatus()) {
                // TODO 暂时只处理视频流的回复,后续增加对国标设备的支持
@@ -45,10 +44,21 @@
                    for (GbStream gbStream : gbStreams) {
                        String gbId = gbStream.getGbId();
                        GPSMsgInfo gpsMsgInfo = redisCatchStorage.getGpsMsgInfo(gbId);
                        if (gpsMsgInfo != null && gbStream.isStatus()) {
                            // 发送GPS消息
                            sipCommanderForPlatform.sendMobilePosition(parentPlatform, gpsMsgInfo, subscribe);
                        if (gbStream.isStatus()) {
                            if (gpsMsgInfo != null) {
                                // 发送GPS消息
                                sipCommanderForPlatform.sendNotifyMobilePosition(parentPlatform, gpsMsgInfo, subscribe);
                            }else {
                                // 没有在redis找到新的消息就使用数据库的消息
                                gpsMsgInfo = new GPSMsgInfo();
                                gpsMsgInfo.setId(gbId);
                                gpsMsgInfo.setLat(gbStream.getLongitude());
                                gpsMsgInfo.setLng(gbStream.getLongitude());
                                // 发送GPS消息
                                sipCommanderForPlatform.sendNotifyMobilePosition(parentPlatform, gpsMsgInfo, subscribe);
                            }
                        }
                    }
                }
            }