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