From 8ddb56008fcc7d2a721ed07ee783eb920f54258b Mon Sep 17 00:00:00 2001 From: 16337 <1633794139@qq.com> Date: Wed, 11 Mar 2026 09:48:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9AproxyImage=E6=97=A0?= =?UTF-8?q?=E6=8C=81=E4=B9=85=E5=8C=96=E8=AE=B0=E5=BD=95=E6=97=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=A7=A6=E5=8F=91=E6=88=AA=E5=9B=BE=EF=BC=8C=E9=81=BF?= =?UTF-8?q?=E5=85=8D=E9=A6=96=E6=AC=A1=E5=8A=A0=E8=BD=BD404?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DB无cos_key记录时,自动调用requestScreenshot触发Edge截图, 等待结果持久化后再代理返回图片,解决ROI页面首次加载显示损坏图片。 Co-Authored-By: Claude Opus 4.6 --- .../aiot/service/impl/AiScreenshotServiceImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java index 8de97a5a7..d447085dc 100644 --- a/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/aiot/service/impl/AiScreenshotServiceImpl.java @@ -320,8 +320,17 @@ public class AiScreenshotServiceImpl implements IAiScreenshotService { // 1. 查 DB 持久化的 cos_key(永不过期)- 优先直接操作 COS String cosKey = snapshotMapper.getCosKey(cameraCode); if (cosKey == null) { - log.warn("[AI截图] 代理图片: 无持久化记录 cameraCode={}", cameraCode); - return null; + // DB 无记录,自动触发一次截图并等待持久化 + log.info("[AI截图] 代理图片: 无持久化记录,自动触发截图 cameraCode={}", cameraCode); + Map snapResult = requestScreenshot(cameraCode, true); + if ("ok".equals(snapResult.get("status"))) { + // 截图成功,重新查 DB + cosKey = snapshotMapper.getCosKey(cameraCode); + } + if (cosKey == null) { + log.warn("[AI截图] 代理图片: 自动截图后仍无持久化记录 cameraCode={}", cameraCode); + return null; + } } // 2. 通过 CosUtil 直接生成 presigned URL