From 55c0b973855662af93473ec1a70c1260ad06bb40 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@gmail.com>
Date: 星期一, 05 一月 2026 14:14:51 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/page/agvModel/AgvModelCreate.jsx | 2 +
zy-acs-flow/src/map/tool.js | 98 ++++++++++++++++++++++++++-----------------------
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 9 ++++
zy-acs-flow/src/page/agvModel/AgvModelEdit.jsx | 2 +
4 files changed, 64 insertions(+), 47 deletions(-)
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index 32a05dc..017d65b 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -85,7 +85,7 @@
return { mapX: mapPoint.x, mapY: mapPoint.y };
}
-export const generateSprite = (deviceType, texture) => {
+export const generateSprite = (deviceType, texture, agvModel) => {
let sprite;
switch (deviceType) {
case DEVICE_TYPE.SHELF:
@@ -118,14 +118,14 @@
if (texture) {
sprite = new PIXI.Sprite(PIXI.Texture.from(texture, { resourceOptions: { scale: 1 } }));
}
- sprite.width = 750;
- sprite.height = 1300;
sprite.zIndex = DEVICE_Z_INDEX.AGV;
- // // sprite.width = 750;
- // // sprite.height = 1300;
- // sprite.zIndex = DEVICE_Z_INDEX.AGV;
- // sprite.scale.set(12, 10)
+ if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') {
+ sprite.scale.set(13, 11);
+ } else {
+ sprite.width = 750;
+ sprite.height = 1300;
+ }
break
case DEVICE_TYPE.POINT:
sprite = new PIXI.Sprite(PIXI.Texture.from(point, { resourceOptions: { scale: 1 } }));
@@ -699,43 +699,47 @@
}
}
-export const generateAgvSpriteTexture = (agvStatusMode) => {
- switch (agvStatusMode) {
- case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
- return ctuEmptyNoBattery;
- case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
- return ctuEmptyHalfBattery;
- case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
- return ctuEmptyFullBattery;
- case AGV_STATUS_MODE.LOADED_NO_BATTERY:
- return ctuLoadedNoBattery;
- case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
- return ctuLoadedHalfBattery;
- case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
- return ctuLoadedFullBattery;
- default:
- return;
+export const generateAgvSpriteTexture = (agvModel, agvStatusMode) => {
+ if (!agvModel) {
+ console.error("failed to load agv model");
+ return;
+ }
+ if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') {
+ switch (agvStatusMode) {
+ case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
+ return ASREmptyNoBattery;
+ case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
+ return ASREmptyHalfBattery;
+ case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
+ return ASREmptyFullBattery;
+ case AGV_STATUS_MODE.LOADED_NO_BATTERY:
+ return ASRLoadedNoBattery;
+ case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
+ return ASRLoadedHalfBattery;
+ case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
+ return ASRLoadedFullBattery;
+ default:
+ return;
+ }
+ } else {
+ switch (agvStatusMode) {
+ case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
+ return ctuEmptyNoBattery;
+ case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
+ return ctuEmptyHalfBattery;
+ case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
+ return ctuEmptyFullBattery;
+ case AGV_STATUS_MODE.LOADED_NO_BATTERY:
+ return ctuLoadedNoBattery;
+ case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
+ return ctuLoadedHalfBattery;
+ case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
+ return ctuLoadedFullBattery;
+ default:
+ return;
+ }
}
}
-
-// export const generateAgvSpriteTexture = (agvStatusMode) => {
-// switch (agvStatusMode) {
-// case AGV_STATUS_MODE.EMPTY_NO_BATTERY:
-// return ASREmptyNoBattery;
-// case AGV_STATUS_MODE.EMPTY_HALF_BATTERY:
-// return ASREmptyHalfBattery;
-// case AGV_STATUS_MODE.EMPTY_FULL_BATTERY:
-// return ASREmptyFullBattery;
-// case AGV_STATUS_MODE.LOADED_NO_BATTERY:
-// return ASRLoadedNoBattery;
-// case AGV_STATUS_MODE.LOADED_HALF_BATTERY:
-// return ASRLoadedHalfBattery;
-// case AGV_STATUS_MODE.LOADED_FULL_BATTERY:
-// return ASRLoadedFullBattery;
-// default:
-// return;
-// }
-// }
export function createAgvJobPanel(parentContainer, text) {
const panelScale = 4;
@@ -800,7 +804,7 @@
const agvRotationOffset = rotationParseNum(AGV_ANGLE_OFFSET_VAL);
const showAgvSprite = (curZone, agvVo, setCurSprite) => {
- const { agvNo, code, direction, battery, jobType, backpack: backpackCount, slots, error } = agvVo;
+ const { agvNo, agvModel, code, direction, battery, jobType, backpack: backpackCount, slots, error } = agvVo;
if (!code) { return; }
const codeSprite = querySprite(DEVICE_TYPE.POINT, code);
if (!codeSprite) { return; }
@@ -811,8 +815,8 @@
let agvSprite = querySprite(DEVICE_TYPE.AGV, agvNo);
if (!agvSprite) {
const agvStatusMode = getAgvStatusMode(backpackCount, battery);
- const agvTexture = generateAgvSpriteTexture(agvStatusMode);
- agvSprite = generateSprite(DEVICE_TYPE.AGV, agvTexture);
+ const agvTexture = generateAgvSpriteTexture(agvModel, agvStatusMode);
+ agvSprite = generateSprite(DEVICE_TYPE.AGV, agvTexture, agvModel);
initSprite(agvSprite, DEVICE_TYPE.AGV);
@@ -831,7 +835,9 @@
});
agvText.anchor.set(0.5, 0.5);
agvText.position.set(0, 8);
- // agvText.position.set(0, 18);
+ if (agvModel === 'HEAVY_LOAD_STACKING_ROBOT') {
+ agvText.position.set(0, 20);
+ }
agvText.scale.set(MAP_MIRROR ? -1 : 1, 1)
agvSprite.addChild(agvText);
diff --git a/zy-acs-flow/src/page/agvModel/AgvModelCreate.jsx b/zy-acs-flow/src/page/agvModel/AgvModelCreate.jsx
index 4b58a6b..cbd0f58 100644
--- a/zy-acs-flow/src/page/agvModel/AgvModelCreate.jsx
+++ b/zy-acs-flow/src/page/agvModel/AgvModelCreate.jsx
@@ -157,12 +157,14 @@
<NumberInput
label="table.field.agvModel.lowBattery"
source="lowBattery"
+ validate={required()}
/>
</Grid>
<Grid item xs={6} display="flex" gap={1}>
<NumberInput
label="table.field.agvModel.quaBattery"
source="quaBattery"
+ validate={required()}
/>
</Grid>
<Grid item xs={6} display="flex" gap={1}>
diff --git a/zy-acs-flow/src/page/agvModel/AgvModelEdit.jsx b/zy-acs-flow/src/page/agvModel/AgvModelEdit.jsx
index f2de69c..5b78e04 100644
--- a/zy-acs-flow/src/page/agvModel/AgvModelEdit.jsx
+++ b/zy-acs-flow/src/page/agvModel/AgvModelEdit.jsx
@@ -122,10 +122,12 @@
<NumberInput
label="table.field.agvModel.lowBattery"
source="lowBattery"
+ validate={required()}
/>
<NumberInput
label="table.field.agvModel.quaBattery"
source="quaBattery"
+ validate={required()}
/>
</Stack>
<Stack direction='row' gap={2}>
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
index 97ca4cd..fedc29c 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java
@@ -120,7 +120,7 @@
}
@Override
- public Agv modify(Agv agv, Long userId) {
+ public synchronized Agv modify(Agv agv, Long userId) {
if (agv == null || agv.getId() == null) {
throw new CoolException("Update Fail");
}
@@ -139,6 +139,9 @@
Agv oldAgv = this.getById(agv.getId());
String oldAgvNo = oldAgv.getUuid();
+ AgvModelServiceImpl.AGV_ID_MODEL_CACHE.remove(agv.getId());
+ AgvModelServiceImpl.AGV_NO_MODEL_CACHE.remove(oldAgvNo);
+
agv.setUpdateBy(userId);
agv.setUpdateTime(now);
if (!this.updateById(agv)) {
@@ -157,6 +160,10 @@
AGV_NO_MAP.put(newAgv.getId(), newAgvNo);
}
+// AgvModel agvModel = agvModelService.getById(agv.getAgvModel());
+// AgvModelServiceImpl.AGV_ID_MODEL_CACHE.put(agv.getId(), agvModel);
+// AgvModelServiceImpl.AGV_NO_MODEL_CACHE.put(newAgvNo, agvModel);
+
return newAgv;
}
--
Gitblit v1.9.1