소스 검색

心跳接口修改

gao.qiang 1 년 전
부모
커밋
aa26cc4a46

+ 17 - 6
business-service/src/main/java/com/ozs/utils/CameraUtil.java

@@ -323,7 +323,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
                     retryCount++;
                 }
             }
-                log.info("---------------jsonArray---" + jsonArray);
+            log.info("---------------jsonArray---" + jsonArray);
             if (!ObjectUtils.isEmpty(jsonArray)) {
                 for (int i = 0; i < jsonArray.size(); i++) {
                     JSONObject jsonObject = jsonArray.getJSONObject(i);
@@ -366,7 +366,12 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         boolean success = false;
         JSONArray jsonArray = null;
         List<String> pathList = new ArrayList<>();
-        String data = HttpUtils.sendGet(webUrl + "/rtsp/api/list");
+        String data = null;
+        try {
+            data = HttpUtils.sendGet(webUrl + "/rtsp/api/list");
+        } catch (Exception e) {
+            log.info("Exception /rtsp/api/list: " + e.getMessage());
+        }
         log.info("data------------------>" + data);
         if (StringUtils.isNotEmpty(data)) {
             while (!success && retryCount < maxRetries) {
@@ -1114,7 +1119,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         log.info("GetCameraPreviewURL----->" + result);
         long end = System.currentTimeMillis();
         log.info("接受天网接口相应时间: " + sdf.format(new Date(end)));
-        log.info("天网接口请求用时时间:" + (begin - end)  + "毫秒");
+        log.info("天网接口请求用时时间:" + (begin - end) + "毫秒");
         return result;
     }
 
@@ -1438,13 +1443,19 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
      *
      * @param baseCameraManagement
      */
-    public List<BaseCameraManagement> getBaseCameraManagementList(Long id) {
+    public List<BaseCameraManagement> getBaseCameraManagementList(Long id, Integer line) {
         //根据ID获取当前相机的信息
         BaseCameraManagement baseCameraManagement = baseCameraManagementService.getById(id);
         if (!ObjectUtils.isEmpty(baseCameraManagement)) {
+            LambdaQueryWrapper<BaseCameraManagement> wrapper = new LambdaQueryWrapper<>();
             //找出同一分组的相机
-            List<BaseCameraManagement> list = baseCameraManagementService.list(new LambdaQueryWrapper<BaseCameraManagement>()
-                    .eq(BaseCameraManagement::getGrou, baseCameraManagement.getGrou()).orderByDesc(BaseCameraManagement::getSort));
+            wrapper.eq(BaseCameraManagement::getGrou, baseCameraManagement.getGrou());
+            if (line == 1) {
+                wrapper.orderByAsc(BaseCameraManagement::getSort);
+            } else if (line == 2) {
+                wrapper.orderByDesc(BaseCameraManagement::getSort);
+            }
+            List<BaseCameraManagement> list = baseCameraManagementService.list(wrapper);
             if (!ObjectUtils.isEmpty(list)) {
                 return list;
             } else {

+ 58 - 40
vehicle-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

@@ -708,14 +708,14 @@ public class GeoHazardMonitorTokenController {
                             camera.ge(BaseCameraManagement::getEndMile, list.get(0).getAlarmMile());
                             camera.le(BaseCameraManagement::getBeginMile, list.get(0).getAlarmMile());
                             camera.in(BaseCameraManagement::getMonitoringDirection, 1, 3);
-                            camera.orderByAsc(BaseCameraManagement::getInstallMile);
+                            camera.orderByAsc(BaseCameraManagement::getGrou).orderByAsc(BaseCameraManagement::getSort);
                         }
                         if (heartbeatVo.getLineDir() == 2) {
                             log.info("-------getLineDir() == 2--------" + list.get(0).getAlarmMile());
                             camera.ge(BaseCameraManagement::getEndMile, list.get(0).getAlarmMile());
                             camera.le(BaseCameraManagement::getBeginMile, list.get(0).getAlarmMile());
                             camera.in(BaseCameraManagement::getMonitoringDirection, 2, 3);
-                            camera.orderByDesc(BaseCameraManagement::getInstallMile);
+                            camera.orderByDesc(BaseCameraManagement::getGrou).orderByDesc(BaseCameraManagement::getSort);
                         }
                         camera.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
                         camera.eq(BaseCameraManagement::getOnline, 2);
@@ -810,12 +810,12 @@ public class GeoHazardMonitorTokenController {
                                 ment.ge(BaseCameraManagement::getEndMile, list.get(i).getAlarmMile());
                                 ment.le(BaseCameraManagement::getBeginMile, list.get(i).getAlarmMile());
                                 ment.in(BaseCameraManagement::getMonitoringDirection, 1, 3);
-                                ment.orderByAsc(BaseCameraManagement::getInstallMile);
+                                ment.orderByAsc(BaseCameraManagement::getGrou).orderByAsc(BaseCameraManagement::getSort);
                             } else if (heartbeatVo.getLineDir() == 2) {
                                 ment.ge(BaseCameraManagement::getEndMile, list.get(i).getAlarmMile());
                                 ment.le(BaseCameraManagement::getBeginMile, list.get(i).getAlarmMile());
                                 ment.in(BaseCameraManagement::getMonitoringDirection, 2, 3);
-                                ment.orderByDesc(BaseCameraManagement::getInstallMile);
+                                ment.orderByDesc(BaseCameraManagement::getGrou).orderByDesc(BaseCameraManagement::getSort);
                             }
                             //获取所有报警安装里程位置的相机
                             List<BaseCameraManagement> baseList = baseCameraManagementService.list(ment);
@@ -882,11 +882,11 @@ public class GeoHazardMonitorTokenController {
                         int mile = heartbeatVo.getVisualDistance() + heartbeatVo.getCurrentMile();
                         LambdaQueryWrapper<BaseCameraManagement> base = new LambdaQueryWrapper<>();
                         if (heartbeatVo.getLineDir() == 1) {
-                            base.orderByAsc(BaseCameraManagement::getInstallMile);
+                            base.orderByAsc(BaseCameraManagement::getGrou).orderByAsc(BaseCameraManagement::getSort);
                             base.gt(BaseCameraManagement::getInstallMile, mile);
                         }
                         if (heartbeatVo.getLineDir() == 2) {
-                            base.orderByDesc(BaseCameraManagement::getInstallMile);
+                            base.orderByDesc(BaseCameraManagement::getGrou).orderByDesc(BaseCameraManagement::getSort);
                             base.lt(BaseCameraManagement::getInstallMile, mile);
                         }
                         base.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
@@ -895,7 +895,7 @@ public class GeoHazardMonitorTokenController {
                         base.last("limit 1");
                         BaseCameraManagement baseCameraManagement = baseCameraManagementService.getOne(base);
                         //根据相机ID找出分组并排序
-                        List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(baseCameraManagement.getId());
+                        List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(baseCameraManagement.getId(),heartbeatVo.getLineDir());
                         if (!ObjectUtils.isEmpty(baseCameraManagementList1)) {
                             for (BaseCameraManagement cameraManagement : baseCameraManagementList1) {
                                 String playFlv = cameraUtil.heartbeatgetPlayFlv(cameraManagement.getCameraCode(), cameraManagement.getChannel(), type);
@@ -916,14 +916,14 @@ public class GeoHazardMonitorTokenController {
                             camera.ge(BaseCameraManagement::getInstallMile, distance);
                             camera.le(BaseCameraManagement::getInstallMile, (heartbeatVo.getCurrentMile() + 10000));
                             camera.in(BaseCameraManagement::getMonitoringDirection, 1, 3);
-                            camera.orderByAsc(BaseCameraManagement::getInstallMile);
+                            camera.orderByAsc(BaseCameraManagement::getGrou).orderByAsc(BaseCameraManagement::getSort);
                         }
                         if (heartbeatVo.getLineDir() == 2) {
                             distance = heartbeatVo.getCurrentMile() - heartbeatVo.getVisualDistance();
                             camera.le(BaseCameraManagement::getInstallMile, distance);
                             camera.ge(BaseCameraManagement::getInstallMile, (heartbeatVo.getCurrentMile() - 10000));
                             camera.in(BaseCameraManagement::getMonitoringDirection, 2, 3);
-                            camera.orderByDesc(BaseCameraManagement::getInstallMile);
+                            camera.orderByDesc(BaseCameraManagement::getGrou).orderByDesc(BaseCameraManagement::getSort);;
                         }
                         camera.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
                         camera.eq(BaseCameraManagement::getOnline, 2);
@@ -973,14 +973,17 @@ public class GeoHazardMonitorTokenController {
                             log.info("--------------->>已进入拉两路视频");
                             for (BaseCameraManagement baseCameraManagement : list1) {
                                 boolean finalType = type;
-                                List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(baseCameraManagement.getId());
+                                List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(baseCameraManagement.getId(),heartbeatVo.getLineDir());
                                 if (!ObjectUtils.isEmpty(baseCameraManagementList1)) {
                                     for (BaseCameraManagement cameraManagement : baseCameraManagementList1) {
-                                        String url = cameraUtil.heartbeatgetUrl(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
-                                        if (url.contains("无视频")) {
-                                            jsonObject.put("resultCode", 0);
-                                            jsonObject.put("message", url);
-                                            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+                                        String flv = cameraUtil.heartbeatgetPlayFlv(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
+                                        if (StringUtils.isEmpty(flv)) {
+                                            String url = cameraUtil.heartbeatgetUrl(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
+                                            if (url.contains("无视频")) {
+                                                jsonObject.put("resultCode", 0);
+                                                jsonObject.put("message", url);
+                                                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+                                            }
                                         }
                                     }
                                 }
@@ -999,20 +1002,23 @@ public class GeoHazardMonitorTokenController {
                             for (int i = 1; i < list1.size(); i++) {
                                 boolean finalType = type;
                                 int finalI = i;
-                                List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(list1.get(finalI).getId());
+                                List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(list1.get(finalI).getId(),heartbeatVo.getLineDir());
                                 if (!ObjectUtils.isEmpty(baseCameraManagementList1)) {
                                     for (BaseCameraManagement cameraManagement : baseCameraManagementList1) {
-                                        String url = cameraUtil.heartbeatgetUrl(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
-                                        if (url.contains("无视频")) {
-                                            jsonObject.put("resultCode", 0);
-                                            jsonObject.put("message", url);
-                                            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+                                        String flv = cameraUtil.heartbeatgetPlayFlv(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
+                                        if (StringUtils.isEmpty(flv)) {
+                                            String url = cameraUtil.heartbeatgetUrl(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
+                                            if (url.contains("无视频")) {
+                                                jsonObject.put("resultCode", 0);
+                                                jsonObject.put("message", url);
+                                                return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+                                            }
                                         }
                                     }
                                 }
                             }
                         }
-                        List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(list1.get(0).getId());
+                        List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(list1.get(0).getId(),heartbeatVo.getLineDir());
                         if (!ObjectUtils.isEmpty(baseCameraManagementList1)) {
                             List<CameraVos> cameraVosList = new ArrayList<>();
                             for (BaseCameraManagement baseCameraManagement : baseCameraManagementList1) {
@@ -1034,7 +1040,7 @@ public class GeoHazardMonitorTokenController {
                         distance = heartbeatVo.getVisualDistance() + heartbeatVo.getCurrentMile();
                         base.ge(BaseCameraManagement::getInstallMile, distance);
                         base.in(BaseCameraManagement::getMonitoringDirection, 1, 3);
-                        base.orderByAsc(BaseCameraManagement::getInstallMile);
+                        base.orderByAsc(BaseCameraManagement::getGrou).orderByAsc(BaseCameraManagement::getSort);
                         base.le(BaseCameraManagement::getInstallMile, (heartbeatVo.getCurrentMile() + 10000));
                     }
                     if (heartbeatVo.getLineDir() == 2) {
@@ -1042,7 +1048,7 @@ public class GeoHazardMonitorTokenController {
                         base.le(BaseCameraManagement::getInstallMile, distance);
                         base.ge(BaseCameraManagement::getInstallMile, (heartbeatVo.getCurrentMile() - 10000));
                         base.in(BaseCameraManagement::getMonitoringDirection, 2, 3);
-                        base.orderByDesc(BaseCameraManagement::getInstallMile);
+                        base.orderByDesc(BaseCameraManagement::getGrou).orderByDesc(BaseCameraManagement::getSort);
                     }
                     base.eq(BaseCameraManagement::getRailwayCode, heartbeatVo.getRailwayCode());
                     base.eq(BaseCameraManagement::getOnline, 2);
@@ -1092,14 +1098,17 @@ public class GeoHazardMonitorTokenController {
                         log.info("--------------->>已进入拉两路视频");
                         for (BaseCameraManagement baseCameraManagement : list1) {
                             boolean finalType = type;
-                            List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(baseCameraManagement.getId());
+                            List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(baseCameraManagement.getId(),heartbeatVo.getLineDir());
                             if (!ObjectUtils.isEmpty(baseCameraManagementList1)) {
                                 for (BaseCameraManagement cameraManagement : baseCameraManagementList1) {
-                                    String url = cameraUtil.heartbeatgetUrl(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
-                                    if (url.contains("无视频")) {
-                                        jsonObject.put("resultCode", 0);
-                                        jsonObject.put("message", url);
-                                        return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+                                    String flv = cameraUtil.heartbeatgetPlayFlv(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
+                                    if (StringUtils.isEmpty(flv)) {
+                                        String url = cameraUtil.heartbeatgetUrl(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
+                                        if (url.contains("无视频")) {
+                                            jsonObject.put("resultCode", 0);
+                                            jsonObject.put("message", url);
+                                            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+                                        }
                                     }
                                 }
                             }
@@ -1115,20 +1124,23 @@ public class GeoHazardMonitorTokenController {
                         for (int i = 1; i < list1.size(); i++) {
                             boolean finalType = type;
                             int finalI = i;
-                            List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(list1.get(finalI).getId());
+                            List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(list1.get(finalI).getId(),heartbeatVo.getLineDir());
                             if (!ObjectUtils.isEmpty(baseCameraManagementList1)) {
                                 for (BaseCameraManagement cameraManagement : baseCameraManagementList1) {
-                                    String url = cameraUtil.heartbeatgetUrl(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
-                                    if (url.contains("无视频")) {
-                                        jsonObject.put("resultCode", 0);
-                                        jsonObject.put("message", url);
-                                        return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+                                    String flv = cameraUtil.heartbeatgetPlayFlv(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
+                                    if (StringUtils.isEmpty(flv)) {
+                                        String url = cameraUtil.heartbeatgetUrl(cameraManagement.getCameraCode(), cameraManagement.getChannel(), finalType);
+                                        if (url.contains("无视频")) {
+                                            jsonObject.put("resultCode", 0);
+                                            jsonObject.put("message", url);
+                                            return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
+                                        }
                                     }
                                 }
                             }
                         }
                     }
-                    List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(list1.get(0).getId());
+                    List<BaseCameraManagement> baseCameraManagementList1 = cameraUtil.getBaseCameraManagementList(list1.get(0).getId(),heartbeatVo.getLineDir());
                     if (!ObjectUtils.isEmpty(baseCameraManagementList1)) {
                         List<CameraVos> cameraVosList = new ArrayList<>();
                         for (BaseCameraManagement baseCameraManagement : baseCameraManagementList1) {
@@ -1179,7 +1191,7 @@ public class GeoHazardMonitorTokenController {
                     jsonObject.put("message", "ok");
                 } else {
                     jsonObject.put("resultCode", 0);
-                    jsonObject.put("message", "该相机暂无视频");
+                    jsonObject.put("message", "视频加载中");
                 }
                 log.info("---------data---结果-------" + respHeartbeatVo);
                 jsonObject.put("data", respHeartbeatVo);
@@ -1314,9 +1326,15 @@ public class GeoHazardMonitorTokenController {
                 wrapper.eq(BaseCameraManagement::getRailwayCode, cameraVo.getRailwayCode())
                         .and(w1 -> w1.eq(BaseCameraManagement::getMonitoringDirection, cameraVo.getLineDir())
                                 .or(w2 -> w2.eq(BaseCameraManagement::getMonitoringDirection, 3)));
+                wrapper.eq(BaseCameraManagement::getEnableOrNot, 1);
+                if (cameraVo.getLineDir() == 1) {
+                    wrapper.orderByAsc(BaseCameraManagement::getGrou).orderByAsc(BaseCameraManagement::getSort);
+                } else {
+                    wrapper.orderByDesc(BaseCameraManagement::getGrou).orderByDesc(BaseCameraManagement::getSort);
+                }
+            }else {
+                wrapper.orderByAsc(BaseCameraManagement::getGrou).orderByAsc(BaseCameraManagement::getSort);
             }
-            wrapper.eq(BaseCameraManagement::getEnableOrNot, 1);
-            wrapper.orderByAsc(BaseCameraManagement::getInstallMile);
             List<BaseCameraManagement> list = baseCameraManagementService.list(wrapper);
             if (list.size() <= 0) {
                 jsonObject.put("resultCode", 0);