From 7fd4327861ee2b36af01ff526742b0704f713ccc Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 26 十一月 2024 15:00:42 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/map/http.js | 318 +++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 282 insertions(+), 36 deletions(-)
diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js
index 7cdea35..3a66580 100644
--- a/zy-acs-flow/src/map/http.js
+++ b/zy-acs-flow/src/map/http.js
@@ -1,61 +1,307 @@
import request from '@/utils/request';
import * as Tool from './tool';
+import { DEVICE_TYPE } from './constants';
+import { HANDLE_APP_KEY } from '@/config/setting';
let notify;
+let mapContainer;
export function setNotify(param) {
notify = param;
}
-export const fetchMapData = async (zoneId) => {
+export function setMapContainer(param) {
+ mapContainer = param;
+}
+
+export const fetchMapData = (zoneId, setRcsStatus, setCurSprite) => {
Tool.clearMapData();
- await request.post('/map/data', {
+ return request.post('/map/data/fetch', {
zoneId: zoneId
}, {
- headers: {
- 'Content-Type': 'application/x-www-form-urlencoded'
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
+ }).then((res) => {
+ const { code, msg, data: { rcsStatus, common, point } } = res.data;
+ if (code === 200) {
+ setRcsStatus(rcsStatus);
+ const commonList = common ? eval(common) : [];
+ const pointList = point ? eval(point) : [];
+ const mapItemList = [...commonList, ...pointList];
+
+ mapItemList.forEach(item => {
+ if (item.type !== DEVICE_TYPE.AGV) {
+ const sprite = Tool.generateSprite(item.type);
+ if (sprite) {
+ Tool.initSprite(sprite, item.type);
+ // data
+ sprite.data.uuid = item.uuid;
+ sprite.data.no = item.no;
+
+ // dynamical data
+ Object.assign(sprite.data, item.property);
+
+ // graph
+ // setTimeout(() => {
+ sprite.position.set(item.positionX, item.positionY);
+ sprite.scale.set(item.scaleX, item.scaleY);
+ sprite.rotation = Tool.rotationParseNum(item.rotation);
+
+ // support
+ switch (item.type) {
+ case DEVICE_TYPE.POINT:
+ sprite.scale.set(0.85, 0.85);
+ break
+ default:
+ break
+ }
+ // }, 50);
+
+ mapContainer.addChild(sprite);
+ Tool.beInsight(sprite, setCurSprite);
+ }
+ }
+ })
+ } else {
+ notify.error(msg);
}
+ }).catch((error) => {
+ notify.error(error.message);
+ console.error(error.message);
+ })
+}
+
+export const saveMapData = async (zone) => {
+ if (!mapContainer) {
+ return;
+ }
+
+ const sprites = [];
+ mapContainer.children.forEach(child => {
+ if (child.data?.uuid) {
+ const { type, uuid, no, ...property } = child.data;
+ if (type !== DEVICE_TYPE.AGV && type !== DEVICE_TYPE.POINT && type !== DEVICE_TYPE.ROUTE) {
+ sprites.push({
+ // graph
+ positionX: child.position.x,
+ positionY: child.position.y,
+ scaleX: child.scale.x,
+ scaleY: child.scale.y,
+ rotation: Tool.rotationToNum(child.rotation),
+ // data
+ type: type,
+ uuid: uuid,
+ no: no,
+ property: property,
+ })
+ }
+ }
+ })
+
+ await request.post('/map/data/save', {
+ zoneId: zone,
+ itemList: sprites
+ }).then(res => {
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ notify.success(msg);
+ } else {
+ notify.error(msg);
+ }
+ }).catch((error) => {
+ notify.error(error.message);
+ console.error(error.message);
+ })
+}
+
+export const startupOrShutdown = async (callback) => {
+ try {
+ const res = await request.post('/map/startupOrShutdown');
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ if (callback) {
+ callback();
+ }
+ } else {
+ notify.error(msg);
+ }
+ } catch (error) {
+ notify.error(error.message);
+ console.error(error.message);
+ }
+}
+
+export const getLocGroup = async (row, bay, callback) => {
+ await request.post('/map/shelf/group', {
+ row: row,
+ bay: bay
+ }, {
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).then((res) => {
const { code, msg, data } = res.data;
if (code === 200) {
- const mapItemList = eval(data);
+ callback(data)
} else {
- notify(msg, "error")
+ notify.error(msg);
}
-
- // mapItemList.forEach(item => {
- // if (!(
- // item.type === SENSOR_TYPE.SHUTTLE
- // || item.type === SENSOR_TYPE.AGV
- // )) {
- // const sprite = generateSprite(item.type);
- // if (sprite) {
- // initSprite(sprite, item.type);
- // // data
- // sprite.data.uuid = item.uuid;
- // sprite.data.no = item.no;
-
- // // dynamical data
- // Object.assign(sprite.data, item.property);
-
- // showSheflType(sprite);
- // // graph
- // setTimeout(() => {
- // sprite.position.set(item.positionX, item.positionY);
- // sprite.scale.set(item.scaleX, item.scaleY);
- // sprite.rotation = rotationParseNum(item.rotation);
- // }, 50);
-
- // mapContainer.addChild(sprite);
- // }
- // }
- // })
-
}).catch((error) => {
- notify(error.message, "error")
+ notify.error(error.message);
+ console.error(error.message);
+ })
+}
+
+export const getAgvInfo = async (agvNo, callback) => {
+ await request.post('/map/agv/info', {
+ agvNo: agvNo,
+ }, {
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
+ }).then((res) => {
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ callback(data)
+ } else {
+ notify.error(msg);
+ }
+ }).catch((error) => {
+ notify.error(error.message);
+ console.error(error.message);
+ })
+}
+
+export const getPointInfo = async (point, callback) => {
+ await request.post('/map/point/info', {
+ codeData: point,
+ }, {
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
+ }).then((res) => {
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ callback(data)
+ } else {
+ notify.error(msg);
+ }
+ }).catch((error) => {
+ notify.error(error.message);
+ console.error(error.message);
+ })
+}
+
+export const getRouteList = async (zoneId, callback) => {
+ await request.post('/map/route/list', {
+ zoneId: zoneId,
+ }, {
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
+ }).then((res) => {
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ callback(data)
+ } else {
+ notify.error(msg);
+ }
+ }).catch((error) => {
+ notify.error(error.message);
console.error(error.message);
})
}
+export const handleControlAgv = async (param, callback) => {
+ await request.post('/handler/control/agv', param, {
+ headers: {
+ 'appKey': HANDLE_APP_KEY
+ }
+ }).then((res) => {
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ notify.success(msg);
+ if (callback) {
+ callback(data)
+ }
+ } else {
+ notify.error(msg);
+ }
+ }).catch((error) => {
+ notify.error(error.message);
+ console.error(error.message);
+ })
+}
+export const handleRestoreAgvAll = async (param, callback) => {
+ await request.post('/handler/restore/agv', param, {
+ headers: {
+ 'appKey': HANDLE_APP_KEY
+ }
+ }).then((res) => {
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ notify.success(msg);
+ if (callback) {
+ callback(data)
+ }
+ } else {
+ notify.error(msg);
+ }
+ }).catch((error) => {
+ notify.error(error.message);
+ console.error(error.message);
+ })
+}
+
+export const getFakeSign = async (param, callback) => {
+ await request.get('/fake/sign/get').then((res) => {
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ if (callback) {
+ callback(data)
+ }
+ } else {
+ notify.error(msg);
+ }
+ }).catch((error) => {
+ notify.error(error.message);
+ console.error(error.message);
+ })
+}
+
+export const setFakeSign = async (param, callback) => {
+ await request.post('/fake/sign/set', {
+ sign: param,
+ }, {
+ headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
+ }).then((res) => {
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ if (data) {
+ notify.success(msg);
+ }
+ if (callback) {
+ callback(data)
+ }
+ } else {
+ notify.error(msg);
+ }
+ }).catch((error) => {
+ notify.error(error.message);
+ console.error(error.message);
+ })
+}
+
+export const handleAgvPatrol = async (param) => {
+ try {
+ const res = await request.post('/handler/agv/patrol', param, {
+ headers: {
+ 'appKey': HANDLE_APP_KEY
+ }
+ });
+ const { code, msg, data } = res.data;
+ if (code === 200) {
+ notify.success(msg);
+ return true;
+ } else {
+ notify.error(msg);
+ }
+ } catch (error) {
+ notify.error(error.message);
+ console.error(error.message);
+ }
+ return false;
+}
\ No newline at end of file
--
Gitblit v1.9.1