From d3e4470cf9f11576573397ed061595ab2c2d5029 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 28 八月 2024 17:23:29 +0800
Subject: [PATCH] 点播定时任务优化

---
 ycl-server/src/main/java/com/ycl/task/DeviceSynTask.java                         |    6 +++---
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   25 +++++++++++++++----------
 ycl-server/src/main/java/com/ycl/utils/http/HttpUtils.java                       |    6 +++---
 3 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index 5cd3093..050a9cf 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -669,8 +669,8 @@
         if (0 == wvpResult.getCode()) {
             log.error("璇锋眰鎴愬姛");
             StreamContent data = (StreamContent) wvpResult.getData();
-            log.error("鎷垮埌鍙栨祦鍝嶅簲缁撴灉锛�" + data);
             String rtspUrl = data.getRtsp();
+            log.error("鐩爣鍦板潃锛�" + rtspUrl);
             if (StringUtils.hasText(rtspUrl)) {
                 try {
                     // 鍒涘缓FFmpegFrameGrabber瀵硅薄
@@ -678,18 +678,23 @@
                     grabber.start(); // 寮�濮嬫崟鑾�
 
                     Frame frame;
-                    if ((frame = grabber.grabFrame()) != null) {
-                        // 灏嗗抚杞崲涓哄浘鐗�
-                        Java2DFrameConverter converter = new Java2DFrameConverter();
-                        BufferedImage image = converter.convert(frame);
-                        File outputfile = new File(serverConfig.getUrl() + PlatformConfig.getUploadPath() + deviceId + IdUtils.fastSimpleUUID() + ".png");
-                        ImageIO.write(image, "png", outputfile);
-                        String imgPath = outputfile.getAbsolutePath();
-                        System.out.println("Saved " + imgPath);
-                        return imgPath;
+                    String imgPath;
+                    while (true) {
+                        frame = grabber.grabFrame();
+                        if (Objects.nonNull(frame)) {
+                            // 灏嗗抚杞崲涓哄浘鐗�
+                            Java2DFrameConverter converter = new Java2DFrameConverter();
+                            BufferedImage image = converter.convert(frame);
+                            File outputfile = new File(serverConfig.getUrl() + PlatformConfig.getUploadPath() + deviceId + IdUtils.fastSimpleUUID() + ".png");
+                            ImageIO.write(image, "png", outputfile);
+                            imgPath = outputfile.getAbsolutePath();
+                            log.error("鍥剧墖鍦板潃锛� " + imgPath);
+                            break;
+                        }
                     }
                     grabber.stop(); // 鍋滄鎹曡幏
                     grabber.release(); // 閲婃斁璧勬簮
+                    return imgPath;
                 } catch (IOException e) {
                     e.printStackTrace();
                 }
diff --git a/ycl-server/src/main/java/com/ycl/task/DeviceSynTask.java b/ycl-server/src/main/java/com/ycl/task/DeviceSynTask.java
index acc1753..0c28b73 100644
--- a/ycl-server/src/main/java/com/ycl/task/DeviceSynTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/DeviceSynTask.java
@@ -1,6 +1,7 @@
 package com.ycl.task;
 
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
 import com.github.pagehelper.PageInfo;
 import com.ycl.platform.domain.entity.DeviceInfo;
@@ -9,7 +10,6 @@
 import com.ycl.platform.wvp.WVPResult;
 import com.ycl.utils.http.HttpUtils;
 import lombok.RequiredArgsConstructor;
-import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
@@ -38,8 +38,8 @@
         String result = HttpUtils.sendGet(rtspServer + "/api/device/query/devices?page=1&count=15");
         WVPResult wvpResult = JSON.parseObject(result, WVPResult.class);
         if (0 == wvpResult.getCode()) {
-            PageInfo<Device> page = (PageInfo) wvpResult.getData();
-            List<Device> list = page.getList();
+            JSONObject data = (JSONObject) wvpResult.getData();
+            List<Device> list = data.getList("list", Device.class);
             if (! CollectionUtils.isEmpty(list)) {
                 list.stream().forEach(item -> {
                     DeviceInfo device = new LambdaQueryChainWrapper<>(deviceInfoMapper)
diff --git a/ycl-server/src/main/java/com/ycl/utils/http/HttpUtils.java b/ycl-server/src/main/java/com/ycl/utils/http/HttpUtils.java
index c6d68e0..e446221 100644
--- a/ycl-server/src/main/java/com/ycl/utils/http/HttpUtils.java
+++ b/ycl-server/src/main/java/com/ycl/utils/http/HttpUtils.java
@@ -16,7 +16,7 @@
 
 /**
  * 閫氱敤http鍙戦�佹柟娉�
- * 
+ *
  * @author ruoyi
  */
 public class HttpUtils
@@ -74,7 +74,7 @@
             {
                 result.append(line);
             }
-            log.info("recv - {}", result);
+//            log.info("recv - {}", result);
         }
         catch (ConnectException e)
         {
@@ -263,4 +263,4 @@
             return true;
         }
     }
-}
\ No newline at end of file
+}

--
Gitblit v1.8.0