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