Browse Source

添加定时任务修改相机状态

gao.qiang 10 months ago
parent
commit
d8dfa55bb8
1 changed files with 51 additions and 7 deletions
  1. 51 7
      hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

+ 51 - 7
hazard-admin/src/main/java/com/ozs/web/core/util/CameraUtil.java

@@ -13,8 +13,7 @@ import java.io.PrintWriter;
 import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.ZonedDateTime;
+import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeParseException;
 import java.time.temporal.ChronoUnit;
@@ -36,16 +35,12 @@ import java.util.stream.Collectors;
 import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.jcraft.jsch.Channel;
 import com.jcraft.jsch.ChannelExec;
 import com.jcraft.jsch.JSch;
 import com.jcraft.jsch.JSchException;
 import com.jcraft.jsch.Session;
-import io.minio.ListObjectsArgs;
-import io.minio.MinioClient;
-import io.minio.RemoveObjectArgs;
-import io.minio.Result;
-import io.minio.messages.Item;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -965,6 +960,55 @@ ffmpeg -i "concat:1.ts|2.ts" -c copy output.mp4
 
     }
 
+    /**
+     * 修改相机状态
+     */
+    public void updateCameraManagementState() {
+        //离线的
+        ArrayList<String> offLine = new ArrayList<>();
+        List<BaseDeviceDynamicManagement> list = baseDeviceDynamicManagementService.list();
+        for (BaseDeviceDynamicManagement baseDeviceDynamicManagement : list) {
+            // 格式化输入时间
+            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+            Instant instant = baseDeviceDynamicManagement.getUpdateTime().toInstant();
+            // 将Instant对象转换为LocalDateTime对象
+            LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();
+
+
+            // 获取当前时间
+            LocalDateTime currentTime = LocalDateTime.now();
+
+            // 计算时间差
+            Duration duration = Duration.between(localDateTime, currentTime);
+
+            // 检查时间差是否大于3小时
+            if (duration.toHours() > 3) {
+                offLine.add(baseDeviceDynamicManagement.getCameraCode());
+            }
+        }
+        //修改离线相机
+        if (!ObjectUtils.isEmpty(offLine)) {
+            LambdaUpdateWrapper<BaseDeviceDynamicManagement> updateWrapper = Wrappers.lambdaUpdate();
+            updateWrapper.in(BaseDeviceDynamicManagement::getCameraCode, offLine);
+
+            // 执行批量修改操作
+            BaseDeviceDynamicManagement update = new BaseDeviceDynamicManagement();
+            update.setIsDisable(2);
+            baseDeviceDynamicManagementService.update(update, updateWrapper);
+        }
+
+        //修改在线相机
+        LambdaUpdateWrapper<BaseDeviceDynamicManagement> wrapper = Wrappers.lambdaUpdate();
+        if (!ObjectUtils.isEmpty(offLine)) {
+            wrapper.notIn(BaseDeviceDynamicManagement::getCameraCode, offLine);
+        }
+
+        // 执行批量修改操作
+        BaseDeviceDynamicManagement baseDeviceDynamicManagement = new BaseDeviceDynamicManagement();
+        baseDeviceDynamicManagement.setIsDisable(1);
+        baseDeviceDynamicManagementService.update(baseDeviceDynamicManagement, wrapper);
+    }
+
     /**
      * 删除录制视频的零时文件
      */