|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 删除录制视频的零时文件
|
|
|
*/
|