zhanghua
2023-09-05 816041ed3de1133396bf0db4a8eadb45ae69d322
同步视频
3个文件已修改
1个文件已添加
84 ■■■■■ 已修改文件
ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java
@@ -51,6 +51,7 @@
    @ApiOperation("添加")
    @LogSave(operationType = "点位管理", contain = "添加点位")
    public CommonResult addVideoPoint(@RequestBody VideoPoint videoPoint) {
        videoPoint.setType(0);
        return CommonResult.success(iVideoPointService.save(videoPoint));
    }
ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java
@@ -6,6 +6,7 @@
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
@@ -19,10 +20,12 @@
    @NotBlank(message = "门店所有人不能为空")
    @ApiModelProperty("姓名")
    @Length(min = 2,max = 10)
    private String owner;
    @NotBlank(message = "门店名称不能为空")
    @ApiModelProperty("门店名称")
    @Length(min = 2,max = 20)
    private String storeName;
    @NotBlank(message = "手机号不能为空")
ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java
@@ -57,6 +57,7 @@
    /**
     * 设备通道码
     * 海康字段 cameraIndexCode
     */
    @TableField("plat_resource_id")
    private String platResourceId;
@@ -105,6 +106,7 @@
    /**
     * 设备码
     * 海康字段 deviceIndexCode
     */
    @TableField("code")
    private String code;
@@ -113,5 +115,8 @@
    @ApiModelProperty(value = "网格id")
    private Long gridId;
    @TableField(value = "type")
    @ApiModelProperty(value = "0-原来大华视频,1-新对接100路海康视频")
    private Integer type;
}
ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java
New file
@@ -0,0 +1,75 @@
package com.ycl.task;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ycl.dto.video.Camera;
import com.ycl.dto.video.PageResult;
import com.ycl.entity.video.VideoPoint;
import com.ycl.service.video.impl.IVideoPointService;
import com.ycl.util.VideoUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
 * 同步海康视频
 */
@Component
public class SynchronizeHKVideo {
    @Autowired
    private IVideoPointService videoPointService;
    @Autowired
    private VideoUtil videoUtil;
    @Scheduled(cron = "0/1 * * * * ?")   // 每秒执行
//    @Scheduled(cron = "0 0/1 * ?")
    @Transactional(rollbackFor = Exception.class)
    public void scheduledTask() {
        try {
            findVideoList(1, 20);
        } catch (Exception ex) {
        }
    }
    private void findVideoList(Integer pageNo, Integer pageSize) throws Exception {
        PageResult<Camera> pageResult = videoUtil.callPostCameras(pageNo, pageSize, "0");
        if (pageResult.getTotal() > 0) {
            if (pageResult.getList().size() > 0) {
                saveVideoFromCamera(pageResult.getList());
                if (pageResult.getList().size() >= pageSize) {
                    findVideoList(pageNo + 1, pageSize);
                }
            }
        }
    }
    private void saveVideoFromCamera(List<Camera> list) {
        for (Camera c : list) {
            LambdaQueryWrapper<VideoPoint> queryWrapper = new LambdaQueryWrapper<VideoPoint>()
                    .eq(VideoPoint::getPlatResourceId, c.getCameraIndexCode());
            List<VideoPoint> pointList = videoPointService.list(queryWrapper);
            if (pointList.size() == 0) {
                VideoPoint videoPoint = new VideoPoint();
                videoPoint.setType(1);
                videoPoint.setName(c.getName());
                videoPoint.setLatitude(Double.valueOf(c.getLatitude()));
                videoPoint.setLongitude(Double.valueOf(c.getLatitude()));
                videoPoint.setPlatResourceId(c.getCameraIndexCode());
                videoPoint.setCode(c.getDeviceIndexCode());
                videoPoint.setAddress(c.getInstallPlace());
                videoPoint.setEquipmentBrand("海康");
                videoPoint.setEquipmentModel(c.getCameraTypeName());
                videoPointService.save(videoPoint);
            }
        }
    }
}