From baebeeb3275273f96055c33f9eb6daa1c9ffde2f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 09 四月 2024 10:33:53 +0800
Subject: [PATCH] Merge branch 'Four-Way-Rack' of http://47.97.1.152:5880/r/zy-asrs-master into Four-Way-Rack

---
 zy-asrs-flow/src/pages/map/utils.js |   68 +++++++++++++++++++++------------
 1 files changed, 43 insertions(+), 25 deletions(-)

diff --git a/zy-asrs-flow/src/pages/map/utils.js b/zy-asrs-flow/src/pages/map/utils.js
index 64df894..373ea69 100644
--- a/zy-asrs-flow/src/pages/map/utils.js
+++ b/zy-asrs-flow/src/pages/map/utils.js
@@ -44,6 +44,7 @@
 export const SENSOR_ZINDEX = Object.freeze({
     SHELF: 1,
     POINT: 1,
+    TRAVEL_PATH: 80,
     SHUTTLE: 100,
     AGV: 100,
 })
@@ -51,6 +52,8 @@
 export const SHELF_TYPE = Object.freeze({
     STORE: 0,
     TRACK: 3,
+    LIFT: 67,
+    CHARGE: 5,
     DISABLE: 1,
 })
 
@@ -479,20 +482,25 @@
     mapContainer?.children.forEach(child => {
         if (child.data?.uuid) {
             const { type, uuid, no, ...property } = child.data;
-            mapItemList.push({
-                // data
-                type: type,
-                uuid: uuid,
-                no: no,
-                property: property,
+            if (!(
+                type === SENSOR_TYPE.SHUTTLE
+                || type === SENSOR_TYPE.AGV
+            )) {
+                mapItemList.push({
+                    // data
+                    type: type,
+                    uuid: uuid,
+                    no: no,
+                    property: property,
 
-                // graph
-                positionX: child.position.x,
-                positionY: child.position.y,
-                scaleX: child.scale.x,
-                scaleY: child.scale.y,
-                rotation: rotationToNum(child.rotation)
-            })
+                    // graph
+                    positionX: child.position.x,
+                    positionY: child.position.y,
+                    scaleX: child.scale.x,
+                    scaleY: child.scale.y,
+                    rotation: rotationToNum(child.rotation)
+                })
+            }
         }
     })
 
@@ -572,6 +580,12 @@
         case SHELF_TYPE.TRACK:
             showColor = '#faf6e9';
             break;
+        case SHELF_TYPE.LIFT:
+            showColor = '#EBDEF0';
+            break;
+        case SHELF_TYPE.CHARGE:
+            showColor = '#D4EFDF';
+            break;
         case SHELF_TYPE.DISABLE:
             showColor = '#ffc8c8';
             break;
@@ -625,30 +639,32 @@
     // shuttleVo
     for (const shuttleVo of mapVo.shuttleVos) {
         // path
-        drawPreTravelPath(shuttleVo.preTravelPath, shuttleVo.shuttleNo, curFloor);
+        drawTravelPath(shuttleVo, curFloor);
         // shuttle
-        showShuttle(shuttleVo.shuttleNo, shuttleVo.curLocNo, curFloor, setCurSPrite);
+        showShuttle(shuttleVo, curFloor, setCurSPrite);
     }
 }
 
-export const drawPreTravelPath = (path, shuttleNo, curFloor) => {
+export const drawTravelPath = (shuttleVo, curFloor) => {
+    const { shuttleNo, curLocNo, travelPath: path } = shuttleVo;
     if (!mapContainer) {
         return;
     }
     const pathLineName = 'preTravelPath-' + shuttleNo;
     let pathLine = mapContainer.getChildByName(pathLineName);
-    if (pathLine) mapContainer.removeChild(pathLine);
+    if (pathLine) {
+        mapContainer.removeChild(pathLine);
+    }
 
     pathLine = new PIXI.Graphics();
     pathLine.name = pathLineName;
-    pathLine.lineStyle(3 * (1 / mapContainer.scale.x), 0x3498db, 1);
-    pathLine.zIndex = 9999;
+    pathLine.lineStyle(2 * (1 / mapContainer.scale.x), 0x3498db, 0.8);
+    pathLine.zIndex = SENSOR_ZINDEX.TRAVEL_PATH;
     let firstNode = true;
-    for (let i = 0; i < path.length; i++) {
+    for (let i = Math.max(0, path.indexOf(curLocNo) - 1); i < path.length; i++) {
         const { row, bay, lev } = parseLocNo(path[i]);
         if (Number(lev) !== curFloor) { continue }
         const shelf = querySprite(SENSOR_TYPE.SHELF, row + '-' + bay);
-
         if (!shelf) { continue };
         let position = shelf.position;
         let x = position.x;
@@ -663,22 +679,24 @@
     mapContainer.addChild(pathLine);
 }
 
-export const showShuttle = (shuttleNo, curLocNo, curFloor, setCurSPrite) => {
+export const showShuttle = (shuttleVo, curFloor, setCurSPrite) => {
+    const { shuttleNo, curLocNo } = shuttleVo;
     if (!curLocNo) { return }
     const { row, bay, lev } = parseLocNo(curLocNo);
     if (Number(lev) !== curFloor) { return }
+
+    const shelf = querySprite(SENSOR_TYPE.SHELF, row + '-' + bay);
+    if (!shelf) { return }
 
     let shuttle = querySprite(SENSOR_TYPE.SHUTTLE, shuttleNo);
     if (!shuttle) {
         shuttle = generateSprite(SENSOR_TYPE.SHUTTLE);
         initSprite(shuttle, SENSOR_TYPE.SHUTTLE);
         shuttle.data.no = shuttleNo;
+        shuttle.position.set(shelf.position.x, shelf.position.y);
         mapContainer.addChild(shuttle);
         viewFeature(shuttle, setCurSPrite);
     }
-
-    const shelf = querySprite(SENSOR_TYPE.SHELF, row + '-' + bay);
-    if (!shelf) { return }
 
     new TWEEDLE.Tween(shuttle?.position).easing(TWEEDLE.Easing.Linear.None).to({
         x: shelf.position.x,

--
Gitblit v1.9.1