From b6e71d56d0dd5a4a31a8b56b3884f71eb21fb698 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 23 七月 2026 10:49:37 +0800
Subject: [PATCH] 监控

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java            |   14 +++++++++++++-
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java |    2 +-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java
index 5b2a4ec..6d586d9 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java
@@ -243,7 +243,7 @@
         if (isEzvizSuccess(result)) {
             return AjaxResult.success(result);
         }
-        return AjaxResult.error(ezvizErrorMessage(defaultMessage, result));
+        return AjaxResult.error(ezvizErrorMessage(defaultMessage, result), result);
     }
 
     private boolean isEzvizSuccess(JSONObject result) {
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java
index 1997c01..81ed634 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java
@@ -117,7 +117,12 @@
         form.put("direction", resolvePtzDirection(command));
         if ("start".equalsIgnoreCase(action)) {
             form.put("speed", normalizePtzSpeed(speed));
-            return postFormWithToken("/api/lapp/device/ptz/start", form);
+            JSONObject result = postFormWithToken("/api/lapp/device/ptz/start", form);
+            if (isCurrentOperationFailed(result)) {
+                postFormWithToken("/api/lapp/device/ptz/stop", form);
+                result = postFormWithToken("/api/lapp/device/ptz/start", form);
+            }
+            return result;
         }
         if ("stop".equalsIgnoreCase(action)) {
             return postFormWithToken("/api/lapp/device/ptz/stop", form);
@@ -166,6 +171,13 @@
         return Math.min(speed, 2);
     }
 
+    private boolean isCurrentOperationFailed(JSONObject result) {
+        return result != null
+                && !SUCCESS_CODE.equals(result.getString("code"))
+                && StringUtils.hasText(result.getString("msg"))
+                && result.getString("msg").contains("当前操作失败");
+    }
+
     /**
      * 开始云台控制。
      */

--
Gitblit v1.7.1