From 714afc59c640800b22ad5f0ffd6d2010fcfa3464 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期四, 23 六月 2022 15:17:11 +0800
Subject: [PATCH] #

---
 static/js/object/CrnTask.js |  271 +++++++++++++++++++++++++++++++++++------------------
 1 files changed, 177 insertions(+), 94 deletions(-)

diff --git a/static/js/object/CrnTask.js b/static/js/object/CrnTask.js
index 226d367..ea833f3 100644
--- a/static/js/object/CrnTask.js
+++ b/static/js/object/CrnTask.js
@@ -1,3 +1,24 @@
+
+const xOffset = -1735;
+const yOffset = -289;
+const zOffset = -480;
+
+const xOffset0 = -1735;
+const yOffset0 = -117;
+const zOffset0 = -480;
+
+const xOffset1 = -1735;
+const yOffset1 = -116;
+const zOffset1 = -475;
+
+const palletX = -18;
+const palletY = 2;
+const palletZ = -46;
+
+const goodsX = -17;
+const goodsY = 5;
+const goodsZ = -6;
+
 // 鍫嗗灈鏈哄綋鍓嶈繍琛岀姸鎬佸璞�
 function CrnTask(crnData, object) {
     let that = this;
@@ -12,6 +33,7 @@
     that.preZ = 0;
     that.prePosition = null;
     that.preForkPos = -1;    // -1, "涓嶅湪瀹氫綅" 0, "璐у弶鍘熶綅" 1, "璐у弶鍦ㄥ乏渚ц繙" 2, "璐у弶鍦ㄥ乏渚�" 3, "璐у弶鍦ㄥ彸渚�"  4, "璐у弶鍦ㄥ彸渚ц繙"
+    that.preLoadPos = -1;
     // 褰撳墠鏁版嵁
     that.bay = 1 ;
     that.lev = 1 ;
@@ -20,10 +42,18 @@
     that.z = 0;
     that.position = null;
     that.forkPos = -1;
+    that.loadPos = -1;
 
     that.crnBody = null;
     that.crnLoad = null;
     that.crnFork = null;
+
+    that.pallet = null;
+    that.goods = null;
+
+    that.wrkNo = null;
+    that.sourceLocNo = null;
+    that.locNo = null;
 
     let curves = [];
 
@@ -36,110 +66,158 @@
         that.z = crnData.position.z;
         that.position = crnData.position;
         that.forkPos = crnData.forkPos;
+        that.loadPos = crnData.loadPos;
 
         that.crnBody = getArrVal(object.objects, "name", that.crnNo + "-body");
         that.crnLoad = getArrVal(object.objects, "name", that.crnNo + "-load");
         that.crnFork = getArrVal(object.objects, "name", that.crnNo + "-fork");
+
+        if (that.crnBody===null || that.crnLoad===null || that.crnFork==null) {
+            // console.log(that.crnNo + "鍙峰爢鍨涙満娌℃湁鍒濆鍖�");
+        }
     };
     init();
 
     that.modify = function (crnData) {
         if (that.run || that.crnNo === 0) {
             console.error(that.crnNo + "鍙峰爢鍨涙満鏇存柊澶辫触");
+            return;
+        }
+        if (that.crnBody===null) {
+            that.crnBody = getArrVal(object.objects, "name", that.crnNo + "-body");
+            return;
+        }
+        if (that.crnLoad===null) {
+            that.crnLoad = getArrVal(object.objects, "name", that.crnNo + "-load");
+            return;
+        }
+        if (that.crnFork===null) {
+            that.crnFork = getArrVal(object.objects, "name", that.crnNo + "-fork");
+            return;
+        }
+
+        // 鍑哄簱 / 绉诲簱
+        if (crnData.sourceLocNo != null) {
+            that.pallet = getArrVal(object.objects, "name", crnData.sourceLocNo + "-Pallet");
+            that.goods = getArrVal(object.objects, "name", crnData.sourceLocNo + "-Goods");
         } else {
-            if (JSON.stringify(crnData.position) === JSON.stringify(that.position)) {
-                return;
+            // 鍏ュ簱
+            if (crnData.wrkNo != null) {
+                that.pallet = getArrVal(object.objects, "name", crnData.wrkNo + "-Pallet");
+                that.goods = getArrVal(object.objects, "name", crnData.wrkNo + "-Goods");
             }
-            that.run = true;
-            // 涓婁竴娆�
-            that.preBay = that.bay;
-            that.preLev = that.lev;
-            that.preX = that.x;
-            that.preY = that.y;
-            that.preY = that.y;
-            that.prePosition = JSON.parse(JSON.stringify(that.position));
-            that.preForkPos = that.forkPos;
-            // 褰撳墠
-            that.bay = crnData.bay;
-            that.lev = crnData.lev;
-            that.x = crnData.position.x;
-            that.y = crnData.position.y;
-            that.z = crnData.position.z;
-            that.position = crnData.position;
-            that.forkPos = crnData.forkPos;
+        }
 
-            // create Route ------------------------------------------------
+        if (JSON.stringify(crnData.position) === JSON.stringify(that.position)) {
+            return;
+        }
+        that.run = true;
+        // 涓婁竴娆�
+        that.preBay = that.bay;
+        that.preLev = that.lev;
+        that.preX = that.x;
+        that.preY = that.y;
+        that.preZ = that.z;
+        that.prePosition = JSON.parse(JSON.stringify(that.position));
+        that.preForkPos = that.forkPos;
+        that.preLoadPos = that.loadPos;
+        // 褰撳墠
+        that.bay = crnData.bay;
+        that.lev = crnData.lev;
+        that.x = crnData.position.x;
+        that.y = crnData.position.y;
+        that.z = crnData.position.z;
+        that.position = crnData.position;
+        that.forkPos = crnData.forkPos;
+        that.loadPos = crnData.loadPos;
+        that.sourceLocNo = crnData.sourceLocNo;
+        that.locNo = crnData.locNo;
+        that.wrkNo = crnData.wrkNo;
 
-            // 鍫嗗灈鏈哄弶鐗� 浼稿弶
-            if (that.prePosition.x !== that.position.x) {
-                curves.push({
-                    start: false,
-                    progress: 0,
-                    part: 'fork',
-                    route: new Route([
-                        {
-                            x: that.prePosition.x,
-                            y: that.crnFork.position.y,
-                            z: that.crnFork.position.z
-                        },
-                        {
-                            x: that.position.x,
-                            y: that.crnFork.position.y,
-                            z: that.crnFork.position.z
-                        }
-                    ])
-                })
+        // 鏍规嵁璐у弶涓婁笅瀹氫綅 鍒ゆ柇鍫嗗灈鏈哄彇鏀捐揣浣滀笟 -----------------------------------------------
+
+        // 涓婂畾浣� ===>> 涓嬪畾浣�    鏀捐揣瀹屾垚
+        if (that.preLoadPos === 1 && that.loadPos === 0) {
+            // 鍏ュ簱 / 绉诲簱
+            if (that.locNo != null) {
+                if (that.pallet != null) {
+                    that.pallet.name = that.locNo + "-Pallet";
+                }
+                if (that.goods != null) {
+                    that.goods.name = that.locNo + "-Goods";
+                }
+            } else {
+                // 鍑哄簱
+                if (crnData.wrkNo != null) {
+                    if (that.pallet != null) {
+                        that.pallet.name = crnData.wrkNo + "-Pallet";
+                    }
+                    if (that.goods != null) {
+                        that.goods.name = crnData.wrkNo + "-Goods";
+                    }
+                }
             }
-
-            // 鍫嗗灈鏈鸿浇璐у彴鍜屽弶鐗� 绉诲姩
-            if (that.prePosition.z !== that.position.z || that.prePosition.y !== that.position.y) {
-                curves.push({
-                    start: false,
-                    progress: 0,
-                    part: 'load',
-                    route: new Route([
-                        {
-                            x: that.crnLoad.position.x,
-                            y: that.prePosition.y,
-                            z: that.prePosition.z
-                        },
-                        {
-                            x: that.crnLoad.position.x,
-                            y: that.position.y,
-                            z: that.position.z
-                        }
-                    ])
-                })
-            }
-
-            // 鍫嗗灈鏈烘湰浣撹繍鍔ㄨ建杩�
-            if (that.prePosition.z !== that.position.z && false) {
-                curves.push({
-                    start: false,
-                    progress: 0,
-                    part: 'body',
-                    route: new Route([
-                        {
-                            x: that.crnBody.position.x,
-                            y: that.crnBody.position.y,
-                            z: that.prePosition.z
-                        },
-                        {
-                            x: that.crnBody.position.x,
-                            y: that.crnBody.position.y,
-                            z: that.position.z
-                        }
-                    ])
-                })
-            }
-
-            curves.map((value, index) => {
-                console.log(value.part + " --> " + JSON.stringify(value.route.points))
-            });
-
-            curves[0].start = true;
+        // 涓嬪畾浣� ===>> 涓婂畾浣�    鍙栬揣瀹屾垚
+        } else {
 
         }
+
+        // create Route ------------------------------------------------
+
+        // 鍫嗗灈鏈哄弶鐗� 浼稿弶
+        if (that.prePosition.x !== that.position.x) {
+            curves.push({
+                start: false,
+                progress: 0,
+                part: 'fork',
+                loaded: crnData.loaded,
+                loadPos: crnData.loadPos,
+                route: new Route([
+                    {
+                        x: that.prePosition.x,
+                        y: that.crnFork.position.y,
+                        z: that.crnFork.position.z
+                    },
+                    {
+                        x: that.position.x,
+                        y: that.crnFork.position.y,
+                        z: that.crnFork.position.z
+                    }
+                ])
+            })
+        }
+
+        // 鍫嗗灈鏈鸿浇璐у彴鍜屽弶鐗� 绉诲姩
+        if (that.prePosition.z !== that.position.z || that.prePosition.y !== that.position.y) {
+            curves.push({
+                start: false,
+                progress: 0,
+                part: 'load',
+                loaded: crnData.loaded,
+                loadPos: crnData.loadPos,
+                route: new Route([
+                    {
+                        x: that.crnLoad.position.x,
+                        y: that.prePosition.y,
+                        z: that.prePosition.z
+                    },
+                    {
+                        x: that.crnLoad.position.x,
+                        y: that.position.y,
+                        z: that.position.z
+                    }
+                ])
+            })
+        }
+
+        curves.map((value, index) => {
+            if (that.crnNo === 1) {
+                // console.log(value.part + " --> " + JSON.stringify(value.route.points))
+            }
+        });
+
+        curves[0].start = true;
+
     }
 
     that.move = function () {
@@ -159,16 +237,21 @@
                         let point = curves[i].route.getPoint(curves[i].progress);
                         if ( point && point.x ) {
                             switch (curves[i].part) {
-                                case 'body':
-                                    that.crnBody.position.set(point.x, point.y, point.z);
-                                    break
                                 case 'load':
-                                    that.crnBody.position.z = point.z;
-                                    that.crnLoad.position.set(point.x, point.y, point.z);
-                                    that.crnFork.position.set(point.x, point.y, point.z);
+                                    that.crnBody.position.z = point.z + zOffset - that.crnBody.userData.crnBodyWidth/2;
+                                    that.crnLoad.position.set(point.x, point.y + yOffset0, point.z + zOffset0 - that.crnLoad.userData.crnLoadWidth/2 + 5);
+                                    that.crnFork.position.set(point.x, point.y + yOffset1, point.z + zOffset1 - that.crnLoad.userData.crnLoadWidth/2);
+                                    if (curves[i].loaded === 1 && that.pallet) {
+                                        that.pallet.position.set(point.x - xOffset + palletX, point.y + palletY, point.z + palletZ);
+                                        that.goods.position.set(point.x - xOffset + goodsX, point.y + goodsY, point.z + goodsZ);
+                                    }
                                     break
                                 case 'fork':
-                                    that.crnFork.position.set(point.x, point.y, point.z);
+                                    that.crnFork.position.set(point.x + xOffset1, point.y, point.z);
+                                    if (curves[i].loadPos === 1 && that.pallet) {
+                                        that.pallet.position.setX(point.x + palletX);
+                                        that.goods.position.setX(point.x + goodsX);
+                                    }
                                     break
                                 default:
                                     break

--
Gitblit v1.9.1