Browse Source

MQTT超时监测

gao.qiang 1 year ago
parent
commit
45e928d3c8
1 changed files with 63 additions and 30 deletions
  1. 63 30
      hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

+ 63 - 30
hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -14,11 +14,13 @@ import com.ozs.common.utils.http.HttpUtils;
 import com.ozs.framework.config.ServerConfig;
 import com.ozs.service.entity.BaseCameraManagement;
 import com.ozs.service.entity.BaseDeviceDynamicManagement;
+import com.ozs.service.entity.CameraLogDetail;
 import com.ozs.service.entity.MqLog;
 import com.ozs.service.entity.MsgAlarm;
 import com.ozs.service.entity.MsgWebPush;
 import com.ozs.service.service.BaseCameraManagementService;
 import com.ozs.service.service.BaseDeviceDynamicManagementService;
+import com.ozs.service.service.CameraLogDetailService;
 import com.ozs.service.service.MqLogService;
 import com.ozs.service.service.MsgAlarmService;
 import com.ozs.system.mapper.SysDictDataMapper;
@@ -93,6 +95,9 @@ public class CameraUtil {
     @Autowired
     BaseDeviceDynamicManagementService baseDeviceDynamicManagementService;
 
+    @Autowired
+    CameraLogDetailService cameraLogDetailService;
+
 
     /**
      * 历史回放
@@ -843,14 +848,14 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
     /**
      * 相机状态修改
      */
-    public void cameraBlockUp(){
+    public void cameraBlockUp() {
         //当前时间戳
         long dades = System.currentTimeMillis();
         //当前时间5分钟之前的时间戳
         long time2 = dades - 300000L;
-        LambdaQueryWrapper<MqLog> mqLog=new LambdaQueryWrapper<>();
-        mqLog.ge(MqLog::getCreateTime,new Date(time2));
-        mqLog.le(MqLog::getCreateTime,new Date(dades));
+        LambdaQueryWrapper<MqLog> mqLog = new LambdaQueryWrapper<>();
+        mqLog.ge(MqLog::getCreateTime, new Date(time2));
+        mqLog.le(MqLog::getCreateTime, new Date(dades));
         List<MqLog> list = mqLogService.list(mqLog);
         List<String> log = list.stream().map(MqLog::getCameraCode).collect(Collectors.toList());
         List<BaseDeviceDynamicManagement> dynamicManagements = baseDeviceDynamicManagementService.list();
@@ -860,34 +865,62 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
         List<String> collect = ones.stream().map(BaseDeviceDynamicManagement::getCameraCode).collect(Collectors.toList());
         //找出相机表中包含日志表相机的数据
         base.retainAll(log);
-        LambdaUpdateWrapper<BaseDeviceDynamicManagement> queryWrapper=new LambdaUpdateWrapper<>();
-        queryWrapper.in(BaseDeviceDynamicManagement::getCameraCode,base);
-        queryWrapper.set(BaseDeviceDynamicManagement::getIsDisable,1);
-        baseDeviceDynamicManagementService.saveOrUpdate(null,queryWrapper);
-
-        LambdaUpdateWrapper<BaseDeviceDynamicManagement> wrapper=new LambdaUpdateWrapper<>();
-        wrapper.in(BaseDeviceDynamicManagement::getCameraCode,collect);
-        wrapper.set(BaseDeviceDynamicManagement::getIsDisable,2);
-        baseDeviceDynamicManagementService.saveOrUpdate(null,wrapper);
+        LambdaUpdateWrapper<BaseDeviceDynamicManagement> queryWrapper = new LambdaUpdateWrapper<>();
+        queryWrapper.in(BaseDeviceDynamicManagement::getCameraCode, base);
+        queryWrapper.set(BaseDeviceDynamicManagement::getIsDisable, 1);
+        baseDeviceDynamicManagementService.saveOrUpdate(null, queryWrapper);
+
+        LambdaUpdateWrapper<BaseDeviceDynamicManagement> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.in(BaseDeviceDynamicManagement::getCameraCode, collect);
+        wrapper.set(BaseDeviceDynamicManagement::getIsDisable, 2);
+        baseDeviceDynamicManagementService.saveOrUpdate(null, wrapper);
+    }
+
+    /**
+     * MQTT超时监测
+     */
+    public void updateCameraLogDetail() {
+        LambdaQueryWrapper<CameraLogDetail> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(CameraLogDetail::getStatus, 2);
+        List<CameraLogDetail> list = cameraLogDetailService.list();
+        //当前时间戳
+        long dades = System.currentTimeMillis();
+        for (CameraLogDetail cameraLogDetail : list) {
+            //文件的时间戳
+            long time1 = cameraLogDetail.getUpdateTime().getTime();
+            //当前时间1分钟之前的时间戳
+            if (dades - time1 > 60000L) {
+                cameraLogDetail.setStatus(3);
+                cameraLogDetail.setRemark("MQ接收消息超时");
+                cameraLogDetailService.updateById(cameraLogDetail);
+            }
+        }
+
     }
 
     public static void main(String[] args) {
-    
-            // 创建一个集合
-            ArrayList<String> one = new ArrayList<>();
-            one.add("a");
-            one.add("b");
-            one.add("c");
-            System.out.println("ArrayList 1: " + one);
-
-            // 创建另一个集合
-            ArrayList<String> other = new ArrayList<>();
-            other.add("a");
-            other.add("b");
-            System.out.println("ArrayList 2: " + other);
-
-
-        List<String> ones = one.stream().filter(o -> !other.contains(o)).collect(Collectors.toList());
-            System.out.println("ArrayList 1: " + one + " ; isRetainAll:" + ones);
+
+//            // 创建一个集合
+//            ArrayList<String> one = new ArrayList<>();
+//            one.add("a");
+//            one.add("b");
+//            one.add("c");
+//            System.out.println("ArrayList 1: " + one);
+//
+//            // 创建另一个集合
+//            ArrayList<String> other = new ArrayList<>();
+//            other.add("a");
+//            other.add("b");
+//            System.out.println("ArrayList 2: " + other);
+//
+//
+//        List<String> ones = one.stream().filter(o -> !other.contains(o)).collect(Collectors.toList());
+//            System.out.println("ArrayList 1: " + one + " ; isRetainAll:" + ones);
+        long dades = System.currentTimeMillis();
+        System.out.println(new Date(dades));
+        long time2 = dades - 60000L;
+        System.out.println(dades);
+        System.out.println(time2);
+        System.out.println(new Date(time2));
     }
 }