From c7a5f2ff3baf459d7c6b9dfbbd50c11bad58751f Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期五, 19 十二月 2025 08:37:16 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/map/tool.js                                                         |   37 ++++++++++++++++++++++++++++++++++---
 zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java |    8 ++++++--
 2 files changed, 40 insertions(+), 5 deletions(-)

diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 68068b5..c2959af 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -597,6 +597,12 @@
     if (!mapContainer || !sprite) {
         return;
     }
+    const data = sprite.data || (sprite.data = {});
+
+    if (data.rotationTween) {
+        data.rotationTween.stop();
+        data.rotationTween = null;
+    }
     // origin
     let currentRotation = sprite.rotation + rotationOffset;
     // target
@@ -612,7 +618,7 @@
     // destination
     const endRotation = sprite.rotation + rotationDifference;
 
-    new TWEEDLE.Tween(sprite)
+    const rotationTween = new TWEEDLE.Tween(sprite)
         .to({ rotation: endRotation }, ANIMATE_DURING_TIME)
         .easing(TWEEDLE.Easing.Linear.None)
         .onUpdate(() => {
@@ -622,6 +628,12 @@
             }
         })
         .start();
+    data.rotationTween = rotationTween;
+    rotationTween.onComplete(() => {
+        if (data.rotationTween === rotationTween) {
+            data.rotationTween = null;
+        }
+    });
 };
 
 export const incrementSpriteNo = (str, incrementValue) => {
@@ -843,13 +855,24 @@
 
     beInsight(agvSprite, setCurSprite);
 
-    new TWEEDLE.Tween(agvSprite.position)
+    if (agvSprite.data.moveTween) {
+        agvSprite.data.moveTween.stop();
+        agvSprite.data.moveTween = null;
+    }
+
+    const moveTween = new TWEEDLE.Tween(agvSprite.position)
         .to({
             x: codeSprite.position.x,
             y: codeSprite.position.y
         }, ANIMATE_DURING_TIME)
         .easing(TWEEDLE.Easing.Linear.None)
         .start();
+    agvSprite.data.moveTween = moveTween;
+    moveTween.onComplete(() => {
+        if (agvSprite.data?.moveTween === moveTween) {
+            agvSprite.data.moveTween = null;
+        }
+    });
 }
 
 const drawerAgvPath = (curZone, agvVo) => {
@@ -900,6 +923,14 @@
     for (let i = mapContainer.children.length - 1; i >= 0; i--) {
         const child = mapContainer.children[i];
         if (child?.data?.type === DEVICE_TYPE.AGV) {
+            if (child.data.moveTween) {
+                child.data.moveTween.stop();
+                child.data.moveTween = null;
+            }
+            if (child.data.rotationTween) {
+                child.data.rotationTween.stop();
+                child.data.rotationTween = null;
+            }
             if (child.data.jobEffect) {
                 app?.ticker.remove(child.data.jobEffect._onTick);
                 child.removeChild(child.data.jobEffect);
@@ -1203,4 +1234,4 @@
         .easing(TWEEDLE.Easing.Quadratic.Out)
         .to(targetPos, 500)
         .start();
-};
\ No newline at end of file
+};
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java
index 2035ddc..5ddf526 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AgvAreaDispatcher.java
@@ -79,9 +79,13 @@
         return areaGovernService.queryCodes(areaIds);
     }
 
+    // 鍒ゆ柇杞﹁締鏄惁琚玜rea缁戝畾锛屽鏋滅粦瀹氳繑鍥� true锛� 濡傛灉娌$粦瀹氳繑鍥� false
     public Boolean isAgvExistsInAnyArea(Long agvId) {
-        List<Long> agvIdsWithoutAreaAgv = areaAgvService.findAgvIdsWithoutAreaAgv();
-        return !Cools.isEmpty(agvIdsWithoutAreaAgv) && agvIdsWithoutAreaAgv.contains(agvId);
+        List<Long> agvIdsWithoutAreaAgv = areaAgvService.findAgvIdsWithoutAreaAgv(); // 娌℃湁琚粦瀹氱殑杞﹁締闆嗗悎
+        if (Cools.isEmpty(agvIdsWithoutAreaAgv)) {
+            return true;
+        }
+        return !agvIdsWithoutAreaAgv.contains(agvId);
     }
 
 }

--
Gitblit v1.9.1