From ddb3068a51a8af8aa9a8f8c2cb9b6e9228b0c8d9 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 28 八月 2024 11:53:27 +0800 Subject: [PATCH] 同步国标设备、点播定时任务优化 --- ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java | 18 +++++++++++++++++- 1 files changed, 17 insertions(+), 1 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java b/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java index 4749539..2464693 100644 --- a/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java +++ b/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java @@ -1,10 +1,14 @@ package com.ycl.task; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.ycl.platform.domain.entity.DeviceInfo; import com.ycl.platform.domain.vo.DeviceInfoVO; +import com.ycl.platform.mapper.DeviceInfoMapper; import com.ycl.platform.service.WorkOrderService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.List; @@ -25,6 +29,7 @@ public class WorkOrderImgTask { private final WorkOrderService workOrderService; + private final DeviceInfoMapper deviceInfoMapper; private static final ExecutorService executorService = new ThreadPoolExecutor(8, 24, @@ -37,9 +42,20 @@ public void run() { // 鏌ュ嚭鏁呴殰鐨勮澶� List<DeviceInfoVO> deviceList = workOrderService.hasErrorWorkOrderList(); + if (CollectionUtils.isEmpty(deviceList)) { + return; + } + List<DeviceInfo> gbDevices = new LambdaQueryChainWrapper<>(deviceInfoMapper) + .orderByDesc(DeviceInfo::getUpdateTime) + .last("limit 1") + .list(); + if (CollectionUtils.isEmpty(gbDevices)) { + return; + } for (DeviceInfoVO deviceInfo : deviceList) { executorService.submit(() -> { - String frameImg = workOrderService.getFrameImgByDevice(deviceInfo.getDeviceId(), deviceInfo.getChannelId()); + // 鍥芥爣璁惧鐨勭紪鐮佸氨鏄彇瑙嗛娴佺殑璁惧缂栫爜锛屽浗鏍囪澶囧氨涓�涓�傚浗鏍囪澶囩殑姣忎竴涓�氶亾浠h〃涓�涓憚鍍忓ご锛屼篃灏辨槸璁惧id鏄彇娴佺殑閫氶亾id + String frameImg = workOrderService.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), deviceInfo.getDeviceId()); if (StringUtils.hasText(frameImg)) { workOrderService.updateImgById(deviceInfo.getWorkOrderId(), frameImg); } -- Gitblit v1.8.0