Browse Source

报警回放修改

gao.qiang 1 year ago
parent
commit
4c3e80f7d0

+ 2 - 1
business-service/src/main/java/com/ozs/utils/CameraUtil.java

@@ -437,7 +437,8 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
      * @return
      */
     public static String startRecording(String cameraCode, String channel) {
-        return historyUrl + "/recordpro/api/start?streamPath=" + channel + "/" + cameraCode;
+        log.info("-----startRecording------"+historyUrl + "/recordpro/api/start?streamPath=" + cameraCode + "/" + channel);
+        return historyUrl + "/recordpro/api/start?streamPath=" + cameraCode + "/" + channel;
     }
 
     /**

+ 15 - 12
vehicle-admin/src/main/java/com/ozs/web/controller/accountmanagment/BaseCameraManagementController.java

@@ -20,6 +20,7 @@ import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.file.FileUtils;
 import com.ozs.common.utils.http.HttpUtils;
 import com.ozs.common.utils.poi.ExcelUtil;
+import com.ozs.common.utils.stateSecrets.SM4Utils;
 import com.ozs.entity.*;
 import com.ozs.entity.vo.*;
 import com.ozs.framework.config.ServerConfig;
@@ -88,7 +89,7 @@ public class BaseCameraManagementController extends BaseController {
     @Autowired
     private ISysDictTypeService dictTypeService;
     @Autowired
-    private  TerminalHeartbeatLogService terminalHeartbeatLogService;
+    private TerminalHeartbeatLogService terminalHeartbeatLogService;
 
 
     /**
@@ -742,7 +743,7 @@ public class BaseCameraManagementController extends BaseController {
         List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(lw);
         if (!StringUtils.isEmptySunhh(baseCameraManagementList) && baseCameraManagementList.size() > 0) {
             String url = cameraUtil.streamConversion(baseCameraManagementList.get(0).getCameraCode());
-            return new AjaxResult(200, "ok",url );
+            return new AjaxResult(200, "ok", url);
         } else {
             return AjaxResult.error("报警里程范围内:" + msgAlarm.getAlarmMile() + "没有可查看的相机!");
         }
@@ -757,7 +758,7 @@ public class BaseCameraManagementController extends BaseController {
         if (ObjectUtils.isEmpty(one)) {
             throw new BaseException("相机编号【" + vo.getCameraCode() + "】不存在");
         }
-        return new AjaxResult(200, "ok", CameraUtil.getRecordList(one.getCameraCode(), vo.getStartTime(), vo.getEntTime(),"record"));
+        return new AjaxResult(200, "ok", CameraUtil.getRecordList(one.getCameraCode(), vo.getStartTime(), vo.getEntTime(), "record"));
     }
 
     @GetMapping("/api/recordsList")
@@ -883,7 +884,7 @@ public class BaseCameraManagementController extends BaseController {
         }
         return success(cameraTree);
     }
-    
+
     @GetMapping("/endRecording/{id}")
     @Log(title = "相机台账管理", businessType = BusinessType.OTHER)
     public AjaxResult endRecording(@PathVariable Long id) {
@@ -1022,17 +1023,19 @@ public class BaseCameraManagementController extends BaseController {
 
     @GetMapping(value = "/getAlarmRecord")
     @Log(title = "相机台账管理", businessType = BusinessType.MESSAGE)
-    public AjaxResult getAlarmRecord() {
-        List<BaseCameraManagement> list = baseCameraManagementService.list(new QueryWrapper<BaseCameraManagement>().eq("line_dir",2));
-        List<String> collect = list.stream().map(BaseCameraManagement::getCameraCode).collect(Collectors.toList());
-//        CompletableFuture.runAsync(() -> cameraUtil.playbackURLs(collect,"5"));
-        return AjaxResult.success("ok");
+    public AjaxResult getAlarmRecord(String id) {
+        MsgAlarm one = msgAlarmService.getById(id);
+        if (StringUtils.isEmpty(one.getReleasedUrl())) {
+            return AjaxResult.error("该报警还未生成报警回放视频");
+        } else {
+            return AjaxResult.success(one.getReleasedUrl());
+        }
     }
 
 
     @GetMapping(value = "/stop")
     public AjaxResult stop(String id) {
-      return cameraUtil.stop(id);
+        return cameraUtil.stop(id);
     }
 
 
@@ -1044,8 +1047,8 @@ public class BaseCameraManagementController extends BaseController {
 
     @GetMapping(value = "/terminalHeartbeatLog")
     public AjaxResult terminalHeartbeatLog() {
-        TerminalHeartbeatLog terminalHeartbeatLog=new TerminalHeartbeatLog();
-        terminalHeartbeatLog.setId(terminalHeartbeatLogService.count()+1);
+        TerminalHeartbeatLog terminalHeartbeatLog = new TerminalHeartbeatLog();
+        terminalHeartbeatLog.setId(terminalHeartbeatLogService.count() + 1);
         terminalHeartbeatLog.setCameraCode("111");
         terminalHeartbeatLog.setCreateTime(new Date());
         boolean save = terminalHeartbeatLogService.save(terminalHeartbeatLog);

+ 7 - 34
vehicle-sdk/src/main/java/com/ozs/controller/upload/GeoHazardMonitorTokenController.java

@@ -179,7 +179,6 @@ public class GeoHazardMonitorTokenController {
         if (ObjectUtils.isEmpty(svcAddress)) {
             jsonObject.put("resultCode", 0);
             jsonObject.put("message", "svcAddress参数不能为空");
-            jsonObject.put("data", "");
             return JSONObject.toJSONString(jsonObject);
         }
         LambdaQueryWrapper<SvcAddress> lw = new LambdaQueryWrapper<SvcAddress>();
@@ -189,7 +188,6 @@ public class GeoHazardMonitorTokenController {
         } else {
             jsonObject.put("resultCode", 0);
             jsonObject.put("message", "客户端编号不能为空");
-            jsonObject.put("data", "");
             return JSONObject.toJSONString(jsonObject);
         }
         SvcAddress serviceOne = svcAddressService.getOne(lw);
@@ -201,13 +199,11 @@ public class GeoHazardMonitorTokenController {
                     if (!svcAddress.getGrantType().toString().matches(PATTERNS)) {
                         jsonObject.put("resultCode", 0);
                         jsonObject.put("message", "授权类型填写错误");
-                        jsonObject.put("data", "");
                         return JSONObject.toJSONString(jsonObject);
                     }
                 } else {
                     jsonObject.put("resultCode", 0);
                     jsonObject.put("message", "授权类型不能为空");
-                    jsonObject.put("data", "");
                     return JSONObject.toJSONString(jsonObject);
                 }
                 ArrayList<String> objects = apiTokenUtils.createGeoHazardMonitorToken(svcAddress.getGrantType().toString(), svcAddress.getClientId(), sm4);
@@ -224,19 +220,16 @@ public class GeoHazardMonitorTokenController {
                 } else {
                     jsonObject.put("resultCode", 0);
                     jsonObject.put("message", "生成token失败");
-                    jsonObject.put("data", "");
                     return JSONObject.toJSONString(jsonObject);
                 }
             } else {
                 jsonObject.put("resultCode", 2);
                 jsonObject.put("message", "客户端密钥错误");
-                jsonObject.put("data", "");
                 return JSONObject.toJSONString(jsonObject);
             }
         } else {
             jsonObject.put("resultCode", 0);
             jsonObject.put("message", "参数验证失败");
-            jsonObject.put("data", "");
             return JSONObject.toJSONString(jsonObject);
         }
     }
@@ -405,6 +398,10 @@ public class GeoHazardMonitorTokenController {
                         if (urLs.contains("无视频")) {
                             return urLs;
                         }
+                        String playback = CameraUtil.startRecording(finalCode, "playback");
+                        if (!"ok".equals(playback)){
+                            return "暂无视频-" + finalCode; 
+                        }
                         return null;
                     });
                     String url = future.get();
@@ -509,7 +506,6 @@ public class GeoHazardMonitorTokenController {
         } else {
             jsonObject.put("resultCode", 2);
             jsonObject.put("message", "token验证失败");
-            jsonObject.put("data", "");
             return JSONObject.toJSONString(jsonObject);
         }
     }
@@ -1622,32 +1618,9 @@ public class GeoHazardMonitorTokenController {
                 jsonObject.put("data", "");
                 return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
             } else {
-                //获取报警里程所监控的所有相机
-                LambdaQueryWrapper<BaseCameraManagement> camera = new LambdaQueryWrapper<BaseCameraManagement>();
-                if (one.getLineDir() == 1) {
-                    camera.le(BaseCameraManagement::getBeginMile, one.getAlarmMile());
-                    camera.ge(BaseCameraManagement::getEndMile, one.getAlarmMile());
-                    camera.in(BaseCameraManagement::getMonitoringDirection, 1, 3);
-                    camera.orderByAsc(BaseCameraManagement::getInstallMile);
-                    camera.eq(BaseCameraManagement::getEnableOrNot, 1);
-                } else if (one.getLineDir() == 2) {
-                    camera.le(BaseCameraManagement::getBeginMile, one.getAlarmMile());
-                    camera.ge(BaseCameraManagement::getEndMile, one.getAlarmMile());
-                    camera.in(BaseCameraManagement::getMonitoringDirection, 2, 3);
-                    camera.orderByDesc(BaseCameraManagement::getInstallMile);
-                    camera.eq(BaseCameraManagement::getEnableOrNot, 1);
-                }
-                List<BaseCameraManagement> baseCameraManagementList = baseCameraManagementService.list(camera);
-                if (baseCameraManagementList.size() > 0) {
-                    BaseCameraManagement baseCameraManagement = baseCameraManagementList.get(0);
-                    log.info("---------获取报警回放-------------");
-                    String url = cameraUtil.streamConversion(baseCameraManagement.getCameraCode());
-                    one.setReleasedUrl(url);
-                    msgAlarmService.updateById(one);
-                } else {
+                if(StringUtils.isEmpty(one.getReleasedUrl())){
                     jsonObject.put("resultCode", 0);
-                    jsonObject.put("message", "没有该报警里程位置的相机");
-                    jsonObject.put("data", "");
+                    jsonObject.put("message", "该报警还未生成报警回放视频");
                     return SM4Utils.encryptData_ECB(JSONObject.toJSONString(jsonObject), key);
                 }
             }
@@ -1784,7 +1757,7 @@ public class GeoHazardMonitorTokenController {
             alarmHeartbeatLog.setGrantType(svcAddress.getGrantType());
             if (alarmHeartbeatLogMapper.insert(alarmHeartbeatLog) > 0) {
                 Map<String, Object> map = new HashMap<>();
-                map.put("cameraCode", svcAddress.getClientId());
+                map.put("clientId", svcAddress.getClientId());
                 jsonObject.put("resultCode", 1);
                 jsonObject.put("message", "ok");
                 jsonObject.put("data", map);