From 816041ed3de1133396bf0db4a8eadb45ae69d322 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期二, 05 九月 2023 22:19:16 +0800 Subject: [PATCH] 同步视频 --- ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java | 1 ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java | 5 ++ ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java | 3 + ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java | 75 +++++++++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 0 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java b/ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java index 8c870e9..6de5eb9 100644 --- a/ycl-platform/src/main/java/com/ycl/controller/video/VideoPointController.java +++ b/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)); } diff --git a/ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java b/ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java index d2ecdb8..b4783b8 100644 --- a/ycl-platform/src/main/java/com/ycl/dto/store/UmsStoreInfoParam.java +++ b/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 = "鎵嬫満鍙蜂笉鑳戒负绌�") diff --git a/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java b/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java index afd026a..2dfb337 100644 --- a/ycl-platform/src/main/java/com/ycl/entity/video/VideoPoint.java +++ b/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; } diff --git a/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java b/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java new file mode 100644 index 0000000..3a3b6c9 --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/task/SynchronizeHKVideo.java @@ -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); + } + } + } +} -- Gitblit v1.8.0