From c5736834f88a5fd43abadaec50dd2b1e6dceb4ba Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期四, 15 九月 2022 10:36:52 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/utils/Utils.java                  |   13 ++----
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   26 +++++--------
 src/main/java/com/zy/core/enums/SteTaskModeType.java        |   68 +++++++++++++++++++++++++++++-----
 3 files changed, 73 insertions(+), 34 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 5af651e..9cb939d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -483,7 +483,7 @@
                 if (steNo != null) {
                     // 灏忚溅琛岃蛋鍒板爢鍨涙満寰呮惉绉荤偣
                     if (wrkMast.getWrkSts() == 2L && wrkMast.getSteNo() == null) {
-                        this.letCarBeReady(wrkMast, steNo);
+                        this.letCarBeReady(wrkMast, steNo, wrkMast.getLocNo());
                     }
                     // 灏忚溅鎼蛋
                     if (wrkMast.getWrkSts() == 3L) {
@@ -539,7 +539,7 @@
                 if (steNo != null) {
                     // 灏忚溅琛岃蛋鍒板爢鍨涙満寰呮惉绉荤偣
                     if (wrkMast.getWrkSts() == 2L && wrkMast.getSteNo() == null) {
-                        this.letCarBeReady(wrkMast, steNo);
+                        this.letCarBeReady(wrkMast, steNo, wrkMast.getLocNo());
                     }
                     // 鍫嗗灈鏈哄皢璐ф斁鑷冲皬杞︿笂 3.灏忚溅寰呮惉锛堝皬杞︿笉鐢ㄦ惉杩愶紝宸茬粡鍦ㄥ綋鍓嶇粍搴撲綅锛� / 6.灏忚溅寰呭叆  ===>> 7.鍚婅溅鍏ュ簱涓�
                     if (wrkMast.getWrkSts() == 3L || wrkMast.getWrkSts() == 6L) {
@@ -587,7 +587,7 @@
                         SteThread steThread = queryIdleCar(wrkMast);
                         if (steThread != null) {
                             // 璁╁皬杞︾瓑寰呮惉杩愬緟缁�
-                            this.letCarBeReady(wrkMast, steThread.getSlave().getId());
+                            this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getLocNo());
                         }
                     }
                     // 鍫嗗灈鏈烘惉杩愬皬杞�
@@ -681,7 +681,7 @@
                 // 涓嶆槸鏈�澶栧眰搴撲綅锛岄渶瑕佷娇鐢ㄧ┛姊溅鎼繍鍚庯紝鍐嶅爢鍨涙満鍑哄簱
                 } else {
                     // 褰撳墠缁勫簱浣嶆槸鍚︽湁绌挎杞�
-                    Integer steNo = this.hasCarOfIdle(wrkMast.getLocNo());
+                    Integer steNo = this.hasCarOfIdle(wrkMast.getSourceLocNo());
                     // 鏈夊皬杞�
                     if (steNo != null) {
                         if (wrkMast.getWrkSts() == 11L && wrkMast.getSteNo() == null) {
@@ -696,12 +696,8 @@
                                 SteCommand steCommand = new SteCommand();
                                 steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
                                 steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
-                                steCommand.setTaskMode(SteTaskModeType.TO_B); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
+                                steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
 
-                                SteABType ab = Utils.selectAB(steProtocol.getRow().intValue());
-
-
-                                // todo:luxiaotao
                                 if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
                                     log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
                                 } else {
@@ -757,7 +753,7 @@
                             SteThread steThread = queryIdleCar(wrkMast);
                             if (steThread != null) {
                                 // 璁╁皬杞︾瓑寰呮惉杩愬緟缁�
-                                this.letCarBeReady(wrkMast, steThread.getSlave().getId());
+                                this.letCarBeReady(wrkMast, steThread.getSlave().getId(), wrkMast.getSourceLocNo());
                             }
                         }
                         // 鍫嗗灈鏈烘惉杩愬皬杞�
@@ -811,7 +807,7 @@
      * 璁╁皬杞︿粠 杩滅偣 ====>> 绉诲姩鍒拌繎鐐�
      *  绛夊緟鍫嗗灈鏈烘惉杩�
      */
-    public void letCarBeReady(WrkMast wrkMast, Integer steNo) {
+    public void letCarBeReady(WrkMast wrkMast, Integer steNo, String locNo) {
         // 鑾峰彇绌挎杞︿俊鎭�
         SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, steNo);
         SteProtocol steProtocol = steThread.getSteProtocol();
@@ -822,7 +818,7 @@
             SteCommand steCommand = new SteCommand();
             steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
             steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
-            steCommand.setTaskMode(SteTaskModeType.TO_B); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
+            steCommand.setTaskMode(SteTaskModeType.findOriginByLoc(locNo)); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
 
             steCommand.setRow(Utils.getGroupRow(steProtocol.getRow().intValue()).shortValue());
             steCommand.setBay(steProtocol.getBay());
@@ -1014,8 +1010,7 @@
                             SteCommand steCommand = new SteCommand();
                             steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
                             steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
-                            steCommand.setTaskMode(SteTaskModeType.TO_B); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
-                            // todo:luxiaotao
+                            steCommand.setTaskMode(SteTaskModeType.findInByLoc(wrkMast.getLocNo())); // 浠诲姟妯″紡: 鎼叆搴�
                             if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
                                 log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
                             } else {
@@ -1087,8 +1082,7 @@
                         SteCommand steCommand = new SteCommand();
                         steCommand.setSteNo(steNo); // 绌挎杞︾紪鍙�
                         steCommand.setTaskNo(wrkMast.getWrkNo()); // 宸ヤ綔鍙�
-                        steCommand.setTaskMode(SteTaskModeType.TO_B); // 浠诲姟妯″紡:  鍘昏繎鐐� 绛夊緟鍫嗗灈鏈哄弶鍙�
-                        // todo:luxiaotao
+                        steCommand.setTaskMode(SteTaskModeType.findOutByLoc(wrkMast.getSourceLocNo())); // 浠诲姟妯″紡:  鎼嚭搴�
                         if (!MessageQueue.offer(SlaveType.Ste, steNo, new Task(2, steCommand))) {
                             log.error("绌挎杞﹀懡浠や笅鍙戝け璐ワ紝绌挎杞﹀彿={}锛屼换鍔℃暟鎹�={}", steNo, JSON.toJSON(steCommand));
                         } else {
diff --git a/src/main/java/com/zy/asrs/utils/Utils.java b/src/main/java/com/zy/asrs/utils/Utils.java
index f67c4fc..2fd4f42 100644
--- a/src/main/java/com/zy/asrs/utils/Utils.java
+++ b/src/main/java/com/zy/asrs/utils/Utils.java
@@ -37,6 +37,11 @@
         }
     }
 
+    public static Integer getGroupRow(String locNo){
+        int row = getRow(locNo);
+        return getGroupRow(row);
+    }
+
     public static Integer getGroupRow(Integer row) {
         switch (row) {
             case 1:
@@ -70,14 +75,6 @@
                 throw new RuntimeException("搴撲綅瑙f瀽寮傚父");
         }
     }
-
-
-    public static Integer getGroupRow(String locNo){
-        int row = getRow(locNo);
-        return getGroupRow(row);
-    }
-
-
 
     public static SteABType selectAB(Integer row) {
         switch (row) {
diff --git a/src/main/java/com/zy/core/enums/SteTaskModeType.java b/src/main/java/com/zy/core/enums/SteTaskModeType.java
index 01e51b4..5e1af9e 100644
--- a/src/main/java/com/zy/core/enums/SteTaskModeType.java
+++ b/src/main/java/com/zy/core/enums/SteTaskModeType.java
@@ -1,5 +1,8 @@
 package com.zy.core.enums;
 
+import com.core.exception.CoolException;
+import com.zy.asrs.utils.Utils;
+
 public enum SteTaskModeType {
 
     INIT(0, "鍒濆"),    // 鍒濆
@@ -7,17 +10,17 @@
     OUT_RIGHT(2, "鍙冲嚭搴�"),    // 鍙冲嚭搴�
     IN_LEFT(3, "宸﹀叆搴�"),    // 宸﹀叆搴�
     IN_RIGHT(4, "鍙冲叆搴�"),    // 鍙冲叆搴�
-    MOVE_LEFT(5, "宸︾Щ搴�"),    // 宸︾Щ搴�
-    MOVE_RIGHT(6, "鍙崇Щ搴�"),    // 鍙崇Щ搴�
-    GO_ORIGIN(7, "鍥炲師鐐�"),    // 鍥炲師鐐�
-    BACK_ORIGIN(8, "鍥炲弽鍘熺偣"),      // 鍥炲弽鍘熺偣
-    TO_A(9, "A鐐�"),        // A鐐�
-    TO_B(10, "B鐐�"),       // B鐐�
-    FIT_LEFT(11, "宸︽惉绉�"),   // 宸︽惉绉�
-    FIT_RIGHT(12, "鍙虫惉绉�"),      // 鍙虫惉绉�
+//    MOVE_LEFT(5, "宸︾Щ搴�"),    // 宸︾Щ搴�
+//    MOVE_RIGHT(6, "鍙崇Щ搴�"),    // 鍙崇Щ搴�
+    GO_ORIGIN(7, "鍘诲彸绔�"),    // 鍥炲師鐐�
+    BACK_ORIGIN(8, "鍘诲乏绔�"),      // 鍥炲弽鍘熺偣
+//    TO_A(9, "A鐐�"),        // A鐐�
+//    TO_B(10, "B鐐�"),       // B鐐�
+//    FIT_LEFT(11, "宸︽惉绉�"),   // 宸︽惉绉�
+//    FIT_RIGHT(12, "鍙虫惉绉�"),      // 鍙虫惉绉�
     CHARGE(13, "鍏呯數"),         // 鍏呯數
-    CHECK_LEFT(14, "宸︾洏鐐�"),     // 宸︾洏鐐�
-    CHECK_RIGHT(15, "鍙崇洏鐐�"),    // 鍙崇洏鐐�
+//    CHECK_LEFT(14, "宸︾洏鐐�"),     // 宸︾洏鐐�
+//    CHECK_RIGHT(15, "鍙崇洏鐐�"),    // 鍙崇洏鐐�
     ;
 
     public Integer id;
@@ -51,4 +54,49 @@
         return null;
     }
 
+    public static SteTaskModeType findOriginByLoc(String locNo) {
+        switch (Utils.getGroupRow(locNo)) {
+            case 3:
+            case 11:
+            case 18:
+                return SteTaskModeType.GO_ORIGIN;   // 鍙�
+            case 4:
+            case 12:
+            case 19:
+                return SteTaskModeType.BACK_ORIGIN; // 宸�
+            default:
+                throw new CoolException("瑙f瀽绌挎杞﹀師鐐瑰畾浣嶅け璐�");
+        }
+    }
+
+    public static SteTaskModeType findInByLoc(String locNo) {
+        switch (Utils.getGroupRow(locNo)) {
+            case 3:
+            case 11:
+            case 18:
+                return SteTaskModeType.IN_RIGHT;   // 鍙�
+            case 4:
+            case 12:
+            case 19:
+                return SteTaskModeType.IN_LEFT;    // 宸�
+            default:
+                throw new CoolException("瑙f瀽绌挎杞﹀師鐐瑰畾浣嶅け璐�");
+        }
+    }
+
+    public static SteTaskModeType findOutByLoc(String locNo) {
+        switch (Utils.getGroupRow(locNo)) {
+            case 3:
+            case 11:
+            case 18:
+                return SteTaskModeType.OUT_RIGHT;   // 鍙�
+            case 4:
+            case 12:
+            case 19:
+                return SteTaskModeType.OUT_LEFT;    // 宸�
+            default:
+                throw new CoolException("瑙f瀽绌挎杞﹀師鐐瑰畾浣嶅け璐�");
+        }
+    }
+
 }

--
Gitblit v1.9.1