gao.qiang преди 1 година
родител
ревизия
f920d32ac2
променени са 1 файла, в които са добавени 172 реда и са изтрити 66 реда
  1. 172 66
      vehicle-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

+ 172 - 66
vehicle-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

@@ -85,6 +85,7 @@ import java.lang.reflect.Type;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Comparator;
 import java.util.Date;
 import java.util.HashMap;
@@ -658,19 +659,54 @@ public class GeoHazardMonitorTokenController {
                         List<AlarmListVo> listVos = new ArrayList<>();
                         if (baseCameraManagementList.size() > 0) {
                             String playFlv = cameraUtil.heartbeatgetUrl(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel(), type);
-                            //判断心跳相机日志表后两条数据是否包含该相机编码
-                            if (!ObjectUtils.isEmpty(codeList)) {
-                                if (!codeList.contains(baseCameraManagementList.get(0).getCameraCode())) {
-                                    //如果不包含此相机编码
-                                    for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
-                                        log.info("-----11111----");
-                                        cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(), terminalHeartbeatLog.getChannel());
+//                            //判断心跳相机日志表后两条数据是否包含该相机编码
+//                            if (!ObjectUtils.isEmpty(codeList)) {
+//                                if (!codeList.contains(baseCameraManagementList.get(0).getCameraCode())) {
+//                                    //如果不包含此相机编码
+//                                    for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
+//                                        log.info("-----11111----");
+//                                        cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(), terminalHeartbeatLog.getChannel());
+//                                    }
+//                                }
+//                            }
+//                            //添加心跳相机日志信息
+//                            int add = terminalHeartbeatLogService.add(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel());
+//                            log.info("-----add----" + add);
+
+                            ArrayList<String> list3 = new ArrayList<>();
+                            //添加缓存
+                            String code = baseCameraManagementList.get(0).getCameraCode() + "/" + baseCameraManagementList.get(0).getChannel();
+                            list3.add(code);
+                            log.info("--------------heartbeat--------------:" + list3);
+                            redisCache.setCacheObject("heartbeat", list3);
+                            //获取缓冲
+                            List<String> heartbeat = redisCache.getCacheObject("heartbeat");
+                            log.info("--------------heartbeat111--------------:" + heartbeat);
+                            List<String> cameraPlayList = redisCache.getCacheObject("cameraPlay");
+                            log.info("--------------cameraPlayList--------------:" + cameraPlayList);
+                            if (!ObjectUtils.isEmpty(heartbeat)) {
+                                if (!ObjectUtils.isEmpty(cameraPlayList)) {
+                                    heartbeat.addAll(cameraPlayList);
+                                }
+                                log.info("--------------heartbeat222--------------:" + heartbeat);
+                                List<String> rtspApiList = cameraUtil.rtspApiList();
+                                log.info("--------------rtspApiList1111--------------:" + rtspApiList);
+                                if (!ObjectUtils.isEmpty(rtspApiList)) {
+                                    rtspApiList.removeAll(heartbeat);
+                                }
+                                log.info("--------------rtspApiList2222--------------:" + rtspApiList);
+                                if (!ObjectUtils.isEmpty(rtspApiList)) {
+                                    for (String str : rtspApiList) {
+                                        log.info("--------------str--------------:" + str);
+                                        String[] parts = str.split("/");
+                                        log.info("--------------parts--------------:" + Arrays.toString(parts));
+                                        if (parts.length == 2) {
+                                            cameraUtil.stopStream(parts[0], parts[1]);
+                                        }
                                     }
                                 }
                             }
-                            //添加心跳相机日志信息
-                            int add = terminalHeartbeatLogService.add(baseCameraManagementList.get(0).getCameraCode(), baseCameraManagementList.get(0).getChannel());
-                            log.info("-----add----" + add);
+
                             respHeartbeatVo.setCurrentStream(playFlv);
                             respHeartbeatVo.setIsAlarm(1);
                             respHeartbeatVo.setCameraCode(baseCameraManagementList.get(0).getCameraCode());
@@ -735,19 +771,19 @@ public class GeoHazardMonitorTokenController {
                                 for (int o = 0; o < baseList.size(); o++) {
                                     //判断流媒体是否有流
                                     String playFlv = cameraUtil.heartbeatgetUrl(baseList.get(o).getCameraCode(), baseList.get(o).getChannel(), type);
-                                    //判断心跳相机日志表后两条数据是否包含该相机编码
-                                    if (!ObjectUtils.isEmpty(codeList)) {
-                                        if (!codeList.contains(baseList.get(o).getCameraCode())) {
-                                            //如果不包含此相机编码
-                                            for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
-                                                log.info("-----22222----");
-                                                cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(), terminalHeartbeatLog.getChannel());
-                                            }
-                                        }
-                                    }
-                                    //添加心跳相机日志信息
-                                    int add1 = terminalHeartbeatLogService.add(baseList.get(o).getCameraCode(), baseList.get(o).getChannel());
-                                    log.info("-----add1----" + add1);
+//                                    //判断心跳相机日志表后两条数据是否包含该相机编码
+//                                    if (!ObjectUtils.isEmpty(codeList)) {
+//                                        if (!codeList.contains(baseList.get(o).getCameraCode())) {
+//                                            //如果不包含此相机编码
+//                                            for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
+//                                                log.info("-----22222----");
+//                                                cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(), terminalHeartbeatLog.getChannel());
+//                                            }
+//                                        }
+//                                    }
+//                                    //添加心跳相机日志信息
+//                                    int add1 = terminalHeartbeatLogService.add(baseList.get(o).getCameraCode(), baseList.get(o).getChannel());
+//                                    log.info("-----add1----" + add1);
                                     AlarmListVo alarmListVo = new AlarmListVo();
                                     //alarmList对象
                                     alarmListVo.setCameraStream(playFlv);
@@ -761,7 +797,7 @@ public class GeoHazardMonitorTokenController {
                                     alarmInfoVo1.setAlarmContent(list.get(i).getContent());
                                     alarmInfoVo1.setAlarmLevel(list.get(i).getAlarmLevel());
                                     LambdaQueryWrapper<MsgAlarmExt> alarm = new LambdaQueryWrapper<>();
-                                    alarm.eq(MsgAlarmExt::getAlarmId, list.get(0).getAlarmId());
+                                    alarm.eq(MsgAlarmExt::getAlarmId, list.get(i).getAlarmId());
                                     List<MsgAlarmExt> list1 = msgAlarmExtService.list(alarm);
                                     if (list1.size() > 0) {
                                         AlarmFilesVo[] vo = new AlarmFilesVo[list1.size()];
@@ -775,6 +811,41 @@ public class GeoHazardMonitorTokenController {
                                     alarmListVo.setAlarmInfo(alarmInfoVo1);
                                     listVos.add(alarmListVo);
                                 }
+                                ArrayList<String> list3 = new ArrayList<>();
+                                //添加缓存
+                                for (BaseCameraManagement baseCameraManagement : baseList) {
+                                    String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
+                                    list3.add(code);
+                                }
+                                log.info("--------------heartbeat--------------:" + list3);
+                                redisCache.setCacheObject("heartbeat", list3);
+                                //获取缓冲
+                                List<String> heartbeat = redisCache.getCacheObject("heartbeat");
+                                log.info("--------------heartbeat111--------------:" + heartbeat);
+                                List<String> cameraPlayList = redisCache.getCacheObject("cameraPlay");
+                                log.info("--------------cameraPlayList--------------:" + cameraPlayList);
+                                if (!ObjectUtils.isEmpty(heartbeat)) {
+                                    if (!ObjectUtils.isEmpty(cameraPlayList)) {
+                                        heartbeat.addAll(cameraPlayList);
+                                    }
+                                    log.info("--------------heartbeat222--------------:" + heartbeat);
+                                    List<String> rtspApiList = cameraUtil.rtspApiList();
+                                    log.info("--------------rtspApiList1111--------------:" + rtspApiList);
+                                    if (!ObjectUtils.isEmpty(rtspApiList)) {
+                                        rtspApiList.removeAll(heartbeat);
+                                    }
+                                    log.info("--------------rtspApiList2222--------------:" + rtspApiList);
+                                    if (!ObjectUtils.isEmpty(rtspApiList)) {
+                                        for (String str : rtspApiList) {
+                                            log.info("--------------str--------------:" + str);
+                                            String[] parts = str.split("/");
+                                            log.info("--------------parts--------------:" + parts);
+                                            if (parts.length == 2) {
+                                                cameraUtil.stopStream(parts[0], parts[1]);
+                                            }
+                                        }
+                                    }
+                                }
                             }
                         }
                         AlarmListVo[] array = listVos.toArray(new AlarmListVo[]{});
@@ -797,20 +868,55 @@ public class GeoHazardMonitorTokenController {
                         List<BaseCameraManagement> list1 = baseCameraManagementService.list(base);
                         for (BaseCameraManagement baseCameraManagement : list1) {
                             cameraUtil.heartbeatgetUrl(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel(), type);
-                            //判断心跳相机日志表后两条数据是否包含该相机编码
-                            if (!ObjectUtils.isEmpty(codeList)) {
-                                if (!codeList.contains(baseCameraManagement.getCameraCode())) {
-                                    //如果不包含此相机编码
-                                    for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
-                                        log.info("-----3333333----");
-                                        cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(), terminalHeartbeatLog.getChannel());
-                                    }
-                                }
-                            }
+//                            //判断心跳相机日志表后两条数据是否包含该相机编码
+//                            if (!ObjectUtils.isEmpty(codeList)) {
+//                                if (!codeList.contains(baseCameraManagement.getCameraCode())) {
+//                                    //如果不包含此相机编码
+//                                    for (TerminalHeartbeatLog terminalHeartbeatLog : heartbeatLogList) {
+//                                        log.info("-----3333333----");
+//                                        cameraUtil.stopStream(terminalHeartbeatLog.getCameraCode(), terminalHeartbeatLog.getChannel());
+//                                    }
+//                                }
+//                            }
 //                            //添加心跳相机日志信息
 //                            int add2 = terminalHeartbeatLogService.add(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
 //                            log.info("-----add2----" + add2);
                         }
+                        ArrayList<String> list3 = new ArrayList<>();
+                        //添加缓存
+                        for (BaseCameraManagement baseCameraManagement : list1) {
+                            String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
+                            list3.add(code);
+                        }
+                        log.info("--------------heartbeat--------------:" + list3);
+                        redisCache.setCacheObject("heartbeat", list3);
+                        //获取缓冲
+                        List<String> heartbeat = redisCache.getCacheObject("heartbeat");
+                        log.info("--------------heartbeat111--------------:" + heartbeat);
+                        List<String> cameraPlayList = redisCache.getCacheObject("cameraPlay");
+                        log.info("--------------cameraPlayList--------------:" + cameraPlayList);
+                        if (!ObjectUtils.isEmpty(heartbeat)) {
+                            if (!ObjectUtils.isEmpty(cameraPlayList)) {
+                                heartbeat.addAll(cameraPlayList);
+                            }
+                            log.info("--------------heartbeat222--------------:" + heartbeat);
+                            List<String> rtspApiList = cameraUtil.rtspApiList();
+                            log.info("--------------rtspApiList1111--------------:" + rtspApiList);
+                            if (!ObjectUtils.isEmpty(rtspApiList)) {
+                                rtspApiList.removeAll(heartbeat);
+                            }
+                            log.info("--------------rtspApiList2222--------------:" + rtspApiList);
+                            if (!ObjectUtils.isEmpty(rtspApiList)) {
+                                for (String str : rtspApiList) {
+                                    log.info("--------------str--------------:" + str);
+                                    String[] parts = str.split("/");
+                                    log.info("--------------parts--------------:" + parts);
+                                    if (parts.length == 2) {
+                                        cameraUtil.stopStream(parts[0], parts[1]);
+                                    }
+                                }
+                            }
+                        }
                     } else {
                         //没有报警信息的时候
                         if (heartbeatVo.getLineDir() == 1) {
@@ -852,6 +958,14 @@ public class GeoHazardMonitorTokenController {
 //                                int add3 = terminalHeartbeatLogService.add(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
 //                                log.info("-----add3----" + add3);
                             }
+                            ArrayList<String> list3 = new ArrayList<>();
+                            //添加缓存
+                            for (BaseCameraManagement baseCameraManagement : list1) {
+                                String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
+                                list3.add(code);
+                            }
+                            log.info("--------------heartbeat--------------:" + list3);
+                            redisCache.setCacheObject("heartbeat", list3);
                             //获取缓冲
                             List<String> heartbeat = redisCache.getCacheObject("heartbeat");
                             log.info("--------------heartbeat111--------------:" + heartbeat);
@@ -879,14 +993,6 @@ public class GeoHazardMonitorTokenController {
                                     }
                                 }
                             }
-                            ArrayList<String> list3 = new ArrayList<>();
-                            //添加缓存
-                            for (BaseCameraManagement baseCameraManagement : list1) {
-                                String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
-                                list3.add(code);
-                            }
-                            log.info("--------------heartbeat--------------:" + list3);
-                            redisCache.setCacheObject("heartbeat", list3);
                         } else {
                             log.info("-------------->>已进入拉一路视频");
                             log.info("list1-------------->>" + list1.size());
@@ -896,6 +1002,14 @@ public class GeoHazardMonitorTokenController {
 //                                int add4 = terminalHeartbeatLogService.add(list1.get(i).getCameraCode(), list1.get(i).getChannel());
 //                                log.info("-----add4----" + add4);
                             }
+                            ArrayList<String> list3 = new ArrayList<>();
+                            //添加缓存
+                            for (BaseCameraManagement baseCameraManagement : list1) {
+                                String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
+                                list3.add(code);
+                            }
+                            log.info("--------------heartbeat--------------:" + list3);
+                            redisCache.setCacheObject("heartbeat", list3);
                             //获取缓冲
                             List<String> heartbeat = redisCache.getCacheObject("heartbeat");
                             log.info("--------------heartbeat111--------------:" + heartbeat);
@@ -923,14 +1037,6 @@ public class GeoHazardMonitorTokenController {
                                     }
                                 }
                             }
-                            ArrayList<String> list3 = new ArrayList<>();
-                            //添加缓存
-                            for (BaseCameraManagement baseCameraManagement : list1) {
-                                String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
-                                list3.add(code);
-                            }
-                            log.info("--------------heartbeat--------------:" + list3);
-                            redisCache.setCacheObject("heartbeat", list3);
                         }
                         twoMap.put("currentStream", playFlv);
                         twoMap.put("cameraCode", list1.get(0).getCameraCode());
@@ -982,6 +1088,14 @@ public class GeoHazardMonitorTokenController {
 //                            int add5 = terminalHeartbeatLogService.add(baseCameraManagement.getCameraCode(), baseCameraManagement.getChannel());
 //                            log.info("-----add5----" + add5);
                         }
+                        ArrayList<String> list3 = new ArrayList<>();
+                        //添加缓存
+                        for (BaseCameraManagement baseCameraManagement : list1) {
+                            String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
+                            list3.add(code);
+                        }
+                        log.info("--------------heartbeat--------------:" + list3);
+                        redisCache.setCacheObject("heartbeat", list3);
                         //获取缓冲
                         List<String> heartbeat = redisCache.getCacheObject("heartbeat");
                         log.info("--------------heartbeat111--------------:" + heartbeat);
@@ -1009,14 +1123,6 @@ public class GeoHazardMonitorTokenController {
                                 }
                             }
                         }
-                        ArrayList<String> list3 = new ArrayList<>();
-                        //添加缓存
-                        for (BaseCameraManagement baseCameraManagement : list1) {
-                            String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
-                            list3.add(code);
-                        }
-                        log.info("--------------heartbeat--------------:" + list3);
-                        redisCache.setCacheObject("heartbeat", list3);
 //                        List<String> finalCodeList2 = codeList;
 //                        CompletableFuture.runAsync(() -> {
 //                            log.info("-------------->>finalCodeList2-------" + finalCodeList2);
@@ -1041,6 +1147,14 @@ public class GeoHazardMonitorTokenController {
 //                            int add6 = terminalHeartbeatLogService.add(list1.get(i).getCameraCode(), list1.get(i).getChannel());
 //                            log.info("-----add6----" + add6);
                         }
+                        ArrayList<String> list3 = new ArrayList<>();
+                        //添加缓存
+                        for (BaseCameraManagement baseCameraManagement : list1) {
+                            String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
+                            list3.add(code);
+                        }
+                        log.info("--------------heartbeat--------------:" + list3);
+                        redisCache.setCacheObject("heartbeat", list3);
                         //获取缓冲
                         List<String> heartbeat = redisCache.getCacheObject("heartbeat");
                         log.info("--------------heartbeat111--------------:" + heartbeat);
@@ -1068,14 +1182,6 @@ public class GeoHazardMonitorTokenController {
                                 }
                             }
                         }
-                        ArrayList<String> list3 = new ArrayList<>();
-                        //添加缓存
-                        for (BaseCameraManagement baseCameraManagement : list1) {
-                            String code = baseCameraManagement.getCameraCode() + "/" + baseCameraManagement.getChannel();
-                            list3.add(code);
-                        }
-                        log.info("--------------heartbeat--------------:" + list3);
-                        redisCache.setCacheObject("heartbeat", list3);
                     }
                     twoMap.put("currentStream", playFlv);
                     twoMap.put("cameraCode", list1.get(0).getCameraCode());