|
@@ -128,6 +128,7 @@ public class CameraUtil {
|
|
|
private static RedisCache rc;
|
|
|
private static ServerConfig sc;
|
|
|
private static String recordUrl;
|
|
|
+ private static String isEnable;
|
|
|
|
|
|
public final static String tsFilekey = "mergeVideoTsFile";
|
|
|
|
|
@@ -1013,6 +1014,7 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
sc = serverConfig;
|
|
|
wsUrl = caneraConfig.getWsUrl();
|
|
|
recordUrl = caneraConfig.getRecordUrl();
|
|
|
+ isEnable=caneraConfig.getIsEnable();
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1088,44 +1090,45 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
|
|
|
* 相机状态修改
|
|
|
*/
|
|
|
public void cameraBlockUp() {
|
|
|
- long baseTime = 60000L;
|
|
|
- //当前时间戳
|
|
|
- long currentTimestamp = System.currentTimeMillis();
|
|
|
- //字典中设置的值
|
|
|
- List<SysDictData> heartIntervalTime = dictDataMapper.selectDictDataByType("heart_interval_time");
|
|
|
- List<SysDictData> triggerWarningFrequency = dictDataMapper.selectDictDataByType("trigger_warning_frequency");
|
|
|
- // 计算时间间隔
|
|
|
- long timeInterval = baseTime;
|
|
|
- if (!ObjectUtils.isEmpty(heartIntervalTime)) {
|
|
|
- timeInterval *= Long.valueOf(heartIntervalTime.get(0).getDictValue());
|
|
|
- }
|
|
|
- if (!ObjectUtils.isEmpty(triggerWarningFrequency)) {
|
|
|
- timeInterval *= Long.valueOf(triggerWarningFrequency.get(0).getDictValue());
|
|
|
- }
|
|
|
- if (ObjectUtils.isEmpty(heartIntervalTime) || ObjectUtils.isEmpty(triggerWarningFrequency)) {
|
|
|
- timeInterval = baseTime * 5 * 3; // 默认值
|
|
|
+ if (isEnable.equals("true")) {
|
|
|
+ long baseTime = 60000L;
|
|
|
+ //当前时间戳
|
|
|
+ long currentTimestamp = System.currentTimeMillis();
|
|
|
+ //字典中设置的值
|
|
|
+ List<SysDictData> heartIntervalTime = dictDataMapper.selectDictDataByType("heart_interval_time");
|
|
|
+ List<SysDictData> triggerWarningFrequency = dictDataMapper.selectDictDataByType("trigger_warning_frequency");
|
|
|
+ // 计算时间间隔
|
|
|
+ long timeInterval = baseTime;
|
|
|
+ if (!ObjectUtils.isEmpty(heartIntervalTime)) {
|
|
|
+ timeInterval *= Long.valueOf(heartIntervalTime.get(0).getDictValue());
|
|
|
+ }
|
|
|
+ if (!ObjectUtils.isEmpty(triggerWarningFrequency)) {
|
|
|
+ timeInterval *= Long.valueOf(triggerWarningFrequency.get(0).getDictValue());
|
|
|
+ }
|
|
|
+ if (ObjectUtils.isEmpty(heartIntervalTime) || ObjectUtils.isEmpty(triggerWarningFrequency)) {
|
|
|
+ timeInterval = baseTime * 5 * 3; // 默认值
|
|
|
+ }
|
|
|
+ // 计算查询的时间范围(前五分钟)
|
|
|
+ long startTime = currentTimestamp - timeInterval;
|
|
|
+ // 查询 MQ 日志
|
|
|
+ LambdaQueryWrapper<MqLog> mqLogQuery = new LambdaQueryWrapper<>();
|
|
|
+ mqLogQuery.between(MqLog::getCreateTime, new Date(startTime), new Date(currentTimestamp));
|
|
|
+ List<MqLog> mqLogs = mqLogService.list(mqLogQuery);
|
|
|
+ Set<String> loggedCameraCodes = mqLogs.stream().map(MqLog::getCameraCode).collect(Collectors.toSet());
|
|
|
+ // 获取所有设备
|
|
|
+ List<BaseDeviceDynamicManagement> devices = baseDeviceDynamicManagementService.list();
|
|
|
+ Set<String> allCameraCodes = devices.stream().map(BaseDeviceDynamicManagement::getCameraCode).collect(Collectors.toSet());
|
|
|
+ // 找出未记录日志的设备
|
|
|
+ Set<String> inactiveCameraCodes = new HashSet<>(allCameraCodes);
|
|
|
+ inactiveCameraCodes.removeAll(loggedCameraCodes);
|
|
|
+ // 保存设备状态变更记录
|
|
|
+ saveDeviceResume(loggedCameraCodes, 1);
|
|
|
+ saveDeviceResume(inactiveCameraCodes, 2);
|
|
|
+
|
|
|
+ // 更新设备状态
|
|
|
+ updateDeviceStatus(loggedCameraCodes, 1); // 启用设备
|
|
|
+ updateDeviceStatus(inactiveCameraCodes, 2); // 禁用设备
|
|
|
}
|
|
|
- // 计算查询的时间范围(前五分钟)
|
|
|
- long startTime = currentTimestamp - timeInterval;
|
|
|
- // 查询 MQ 日志
|
|
|
- LambdaQueryWrapper<MqLog> mqLogQuery = new LambdaQueryWrapper<>();
|
|
|
- mqLogQuery.between(MqLog::getCreateTime, new Date(startTime), new Date(currentTimestamp));
|
|
|
- List<MqLog> mqLogs = mqLogService.list(mqLogQuery);
|
|
|
- Set<String> loggedCameraCodes = mqLogs.stream().map(MqLog::getCameraCode).collect(Collectors.toSet());
|
|
|
- // 获取所有设备
|
|
|
- List<BaseDeviceDynamicManagement> devices = baseDeviceDynamicManagementService.list();
|
|
|
- Set<String> allCameraCodes = devices.stream().map(BaseDeviceDynamicManagement::getCameraCode).collect(Collectors.toSet());
|
|
|
- // 找出未记录日志的设备
|
|
|
- Set<String> inactiveCameraCodes = new HashSet<>(allCameraCodes);
|
|
|
- inactiveCameraCodes.removeAll(loggedCameraCodes);
|
|
|
- // 保存设备状态变更记录
|
|
|
- saveDeviceResume(loggedCameraCodes, 1);
|
|
|
- saveDeviceResume(inactiveCameraCodes, 2);
|
|
|
-
|
|
|
- // 更新设备状态
|
|
|
- updateDeviceStatus(loggedCameraCodes, 1); // 启用设备
|
|
|
- updateDeviceStatus(inactiveCameraCodes, 2); // 禁用设备
|
|
|
-
|
|
|
}
|
|
|
|
|
|
// 辅助方法:更新设备状态
|