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