From f43a65438cbfb5c11675bea8b643de8e0770f52b Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 13 一月 2026 13:50:45 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/map/constants.js | 23 ++++++++++++++++++-----
zy-acs-flow/src/map/http.js | 20 ++++++++++++++++++++
zy-acs-flow/src/map/tool.js | 3 +--
zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java | 11 +++++++++++
zy-acs-flow/src/map/MapPage.jsx | 3 ++-
5 files changed, 52 insertions(+), 8 deletions(-)
diff --git a/zy-acs-flow/src/map/MapPage.jsx b/zy-acs-flow/src/map/MapPage.jsx
index 4981505..de4e424 100644
--- a/zy-acs-flow/src/map/MapPage.jsx
+++ b/zy-acs-flow/src/map/MapPage.jsx
@@ -8,7 +8,7 @@
useTheme,
Fab,
} from '@mui/material';
-import { MAP_MODE, MAP_DEFAULT_ROTATION } from "./constants";
+import { MAP_MODE, MAP_DEFAULT_ROTATION, setMapPreferences } from "./constants";
import Player from './player';
import * as Tool from './tool';
import { NotificationProvider, useNotification } from './Notification';
@@ -85,6 +85,7 @@
Tool.setThemeMode(themeMode);
Http.setNotify(notify);
Http.setMapContainer(player.mapContainer);
+ await Http.fetchMapPreferences(curZone, setMapPreferences);
websocket = new WebSocketClient('/ws/map/websocket');
await Http.fetchMapData(curZone, setRcsStatus, setCurSprite);
diff --git a/zy-acs-flow/src/map/constants.js b/zy-acs-flow/src/map/constants.js
index 6875e15..0af14fe 100644
--- a/zy-acs-flow/src/map/constants.js
+++ b/zy-acs-flow/src/map/constants.js
@@ -1,12 +1,25 @@
-export const MAP_DEFAULT_ROTATION = 180;
-
-export const AGV_ANGLE_OFFSET_VAL = 90;
-
-export const MAP_MIRROR = true;
+export const MAP_DEFAULT_ROTATION = 0;
export const ANIMATE_DURING_TIME = 300;
+export let AGV_ANGLE_OFFSET_VAL = 0;
+
+export let MAP_MIRROR = false;;
+
+export const setMapPreferences = (preferences = {}) => {
+ if (preferences == null || typeof preferences !== 'object') {
+ return;
+ }
+ const { agvAngleOffsetVal, mapMirror } = preferences;
+ if (typeof agvAngleOffsetVal === 'number' && !isNaN(agvAngleOffsetVal)) {
+ AGV_ANGLE_OFFSET_VAL = agvAngleOffsetVal;
+ }
+ if (typeof mapMirror === 'boolean') {
+ MAP_MIRROR = mapMirror;
+ }
+};
+
export const MAP_MODE = Object.freeze({
OBSERVER_MODE: "1",
MOVABLE_MODE: "2",
diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js
index 4754b48..f1be56e 100644
--- a/zy-acs-flow/src/map/http.js
+++ b/zy-acs-flow/src/map/http.js
@@ -14,6 +14,26 @@
mapContainer = param;
}
+export const fetchMapPreferences = async (zoneId, setMapPreferences) => {
+ try {
+ const res = await request.post('/map/config/preferences', {
+ zoneId: zoneId
+ }, {
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
+ });
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ setMapPreferences(data);
+ return data || {};
+ }
+ notify?.error(msg);
+ } catch (error) {
+ notify?.error(error.message);
+ console.error(error.message);
+ }
+ return {};
+}
+
export const fetchMapData = (zoneId, setRcsStatus, setCurSprite) => {
Tool.clearMapData();
return request.post('/map/data/fetch', {
diff --git a/zy-acs-flow/src/map/tool.js b/zy-acs-flow/src/map/tool.js
index abc1b4f..c348d14 100644
--- a/zy-acs-flow/src/map/tool.js
+++ b/zy-acs-flow/src/map/tool.js
@@ -801,8 +801,6 @@
}
}
-const agvRotationOffset = rotationParseNum(AGV_ANGLE_OFFSET_VAL);
-
const showAgvSprite = (curZone, agvVo, setCurSprite) => {
const { agvNo, agvModel, code, direction, battery, jobType, backpack: backpackCount, slots, error } = agvVo;
if (!code) { return; }
@@ -810,6 +808,7 @@
if (!codeSprite) { return; }
const targetRotation = rotationParseNum(direction);
+ const agvRotationOffset = rotationParseNum(AGV_ANGLE_OFFSET_VAL);
// const backpackCount = backpack?.filter(item => item.loaded === true).length || 0;
let agvSprite = querySprite(DEVICE_TYPE.AGV, agvNo);
diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
index babdeee..bb31f02 100644
--- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
+++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/controller/MapController.java
@@ -87,6 +87,17 @@
}
@PreAuthorize("hasAuthority('manager:loc:list')")
+ @PostMapping("/config/preferences")
+ public R configPreferences(@RequestParam(required = false) Long zoneId, @RequestParam(required = false) Integer floor) {
+ Integer dashboardAgvAngleOffsetVal = configService.getVal("dashboardAgvAngleOffsetVal", Integer.class);
+ Boolean dashMapMirror = configService.getVal("dashMapMirror", Boolean.class);
+ return R.ok().add(Cools
+ .add("agvAngleOffsetVal", Optional.ofNullable(dashboardAgvAngleOffsetVal).orElse(0))
+ .add("mapMirror", Optional.ofNullable(dashMapMirror).orElse(Boolean.FALSE))
+ );
+ }
+
+ @PreAuthorize("hasAuthority('manager:loc:list')")
@PostMapping("/data/fetch")
public R fetch(@RequestParam(required = false) Long zoneId, @RequestParam(required = false) Integer floor) {
// code
--
Gitblit v1.9.1