From 0b6c8b7687ff593d254cfcacacf72a75bfdf11ca Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期二, 24 六月 2025 08:20:36 +0800
Subject: [PATCH] #限制线体上托盘数量

---
 src/main/java/com/zy/asrs/utils/RouteUtils.java |  423 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 414 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java
index fd99eb5..ea72548 100644
--- a/src/main/java/com/zy/asrs/utils/RouteUtils.java
+++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java
@@ -3,6 +3,8 @@
 import java.util.ArrayList;
 import java.util.List;
 import static java.util.stream.Collectors.toList;
+
+import com.zy.asrs.entity.WrkMastSta;
 import com.zy.core.enums.RouteCollectCountType;
 import springfox.documentation.spring.web.json.Json;
 
@@ -12,19 +14,45 @@
 public class RouteUtils {
 
     public static final List<Integer> MERGE_STA_NO_One = new ArrayList<Integer>() {{
-        add(116);add(117);
+//        add(116);add(117);
+        add(104);add(122);
     }};
 
     public static final List<Integer> MERGE_STA_NO_TWO = new ArrayList<Integer>() {{
-        add(116);add(117);
+//        add(113);add(123);add(114);add(1142);
+        add(107);add(118);
     }};
 
     public static final List<Integer> MERGE_STA_NO_THREE = new ArrayList<Integer>() {{
-        add(116);add(117);
+//        add(107);add(118);add(108);add(119);
+        add(108);add(119);
     }};
 
     public static final List<Integer> MERGE_STA_NO_FOUR = new ArrayList<Integer>() {{
-        add(116);add(117);
+//        add(110);add(120);add(111);add(121);
+        add(110);add(120);
+    }};
+
+    public static final List<Integer> MERGE_STA_NO_FIVE = new ArrayList<Integer>() {{
+//        add(104);add(122);add(105);
+        add(111);add(121);
+    }};
+
+    public static final List<Integer> MERGE_STA_NO_SIX = new ArrayList<Integer>() {{
+//        add(108);add(119);add(110);add(120);
+        add(113);add(123);add(114);
+    }};
+
+    public static final List<Integer> MERGE_STA_NO_SEVEN = new ArrayList<Integer>() {{
+
+    }};
+
+    public static final List<Integer> MERGE_STA_NO_EIGHT = new ArrayList<Integer>() {{
+
+    }};
+
+    public static final List<Integer> MERGE_STA_NO_NINE = new ArrayList<Integer>() {{
+
     }};
 
 //    姝e簭
@@ -33,7 +61,7 @@
     }};
 //    鍙嶅簭
     public static final List<Integer> TRACK_POSITION_REVERSE_SEQUENCE = new ArrayList<Integer>() {{
-        add(117);add(116);add(1142);add(114);add(113);add(123);add(121);add(111);add(120);add(110);add(119);add(108);add(107);add(118);add(105);add(104);add(122);add(102);add(101);
+        add(117);add(116);add(1142);add(114);add(123);add(113);add(121);add(111);add(120);add(110);add(119);add(108);add(118);add(107);add(105);add(122);add(104);add(102);add(101);
     }};
 
     public static String zerofill(String msg, Integer count){
@@ -54,7 +82,22 @@
      * */
     public static Integer RouteIndexFarMas(int rgvNo,Integer staNo){
         List<Integer> staFall = new ArrayList<>();
-        if (MERGE_STA_NO_One.contains(staNo)){
+        if (MERGE_STA_NO_SIX.contains(staNo)){
+//            staFall = MERGE_STA_NO_SIX;
+            if (rgvNo==1){
+                if (staNo==113){
+                    return 123;
+                } else {
+                    return 114;
+                }
+            }else {
+                if (staNo==114){
+                    return 123;
+                } else {
+                    return 113;
+                }
+            }
+        }else if (MERGE_STA_NO_One.contains(staNo)){
             staFall = MERGE_STA_NO_One;
         }else if (MERGE_STA_NO_TWO.contains(staNo)){
             staFall = MERGE_STA_NO_TWO;
@@ -62,6 +105,8 @@
             staFall = MERGE_STA_NO_THREE;
         }else if (MERGE_STA_NO_FOUR.contains(staNo)){
             staFall = MERGE_STA_NO_FOUR;
+        }else if (MERGE_STA_NO_FIVE.contains(staNo)){
+            staFall = MERGE_STA_NO_FIVE;
         }else {
             return staNo;
         }
@@ -71,6 +116,270 @@
             indexNo=staFall.size()-1;
         }
         return staFall.get(indexNo);
+    }
+
+    public static Integer RouteIndexFarMasOtherNear(int rgvNo,Integer staNo){
+        if (rgvNo==1){
+            switch (staNo){
+                case 117:   return  116;
+                case 116:   return  1142;
+                case 1142:
+                case 114:   return  114;
+                case 123:   return  113;
+                case 113:   return  121;
+                case 121:   return  111;
+                case 111:   return  110;
+                case 120:
+                case 110:   return  119;
+                case 119:
+                case 108:   return  118;
+                case 118:
+                case 107:   return  105;
+                case 105:
+                case 122:   return  122;
+                case 104:   return  104;
+                case 102:   return  102;
+                case 101:   return  101;
+                default:
+                    return 102;
+            }
+        }else {
+            switch (staNo){
+                case 117:   return  117;
+                case 116:   return  116;
+                case 1142:  return  116;
+                case 114:   return  116;
+                case 123:   return  1142;
+                case 113:   return  114;
+                case 121:   return  113;
+                case 111:   return  113;
+                case 120:  return  121;
+                case 110:   return  111;
+                case 119:   return  110;
+                case 108:   return  110;
+                case 118:  return  119;
+                case 107:   return  107;
+                case 105:   return  107;
+                case 122:   return  122;
+                case 104:   return  104;
+                case 102:   return  104;
+                case 101:   return  102;
+                default:
+                    return 116;
+            }
+        }
+    }
+
+    public static Integer RouteIndexFarMasOtherNearUpMap(int rgvNo,Integer staNo){
+//        int ia = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(staNo);
+//        int ib = TRACK_POSITION_REVERSE_SEQUENCE.indexOf(staNo);
+//        if (ia<=ib){
+//            return new Integer[]{RouteIndexFarMasReverse(1,runStaStart),RouteIndexFarMasReverse(2,runStaEnd)};
+//        }else {
+//            return new Integer[]{RouteIndexFarMasReverse(1,runStaEnd),RouteIndexFarMasReverse(2,runStaStart)};
+//        }
+//        if (ia<=ib){
+//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ia),TRACK_POSITION_POSITIVE_SEQUENCE.get(ib)};
+//        }else {
+//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ib),TRACK_POSITION_POSITIVE_SEQUENCE.get(ia)};
+//        }
+//        if (rgvNo==1){
+//            if (ia-2>=1){
+//                return TRACK_POSITION_POSITIVE_SEQUENCE.get(ia-2);
+//            }else {
+//                return 102;
+//            }
+            return RouteIndexFarMasOther(rgvNo,staNo);
+//        }else {
+//            if (ib-2>=1){
+//                return TRACK_POSITION_REVERSE_SEQUENCE.get(ib-2);
+//            }else {
+//                return 116;
+//            }
+//        }
+    }
+//
+    /*
+     * 鑾峰彇骞叉秹鏈�杩滅珯鐐�
+     * */
+    public static Integer RouteIndexFarMasOther(int rgvNo,Integer staNo){
+        if (rgvNo==1){
+            switch (staNo){
+                case 101:   return  102;
+                case 102:   return  122;
+                case 104:
+                case 122:
+                case 105:   return  105;
+                case 107:
+                case 118:   return  119;
+                case 108:
+                case 119:   return  120;
+                case 110:
+                case 120:
+                case 111:   return  121;
+                case 121:   return  113;
+                case 113:   return  1142;
+                case 123:
+                case 114:   return  116;
+                default:
+                    return 116;
+            }
+        }else {
+            switch (staNo){
+                case 117:
+                case 116:   return  1142;
+                case 1142:
+                case 114:
+                case 123:   return  113;
+                case 113:   return  121;
+                case 121:
+                case 111:   return  110;
+                case 120:
+                case 110:   return 108;
+                case 119:
+                case 108:
+                case 118:
+                case 107:   return  107;
+                case 105:   return  104;
+                case 122:
+                case 104:   return  102;
+                default:
+                    return 102;
+            }
+        }
+//        if (rgvNo==1){
+//            switch (staNo){
+//                case 101:
+//                case 102: return  102;
+//                case 104:
+//                case 122: return  118;
+//                case 105: return  119;
+//                case 107:
+//                case 118: return  120;
+//                case 108:
+//                case 119: return  111;
+//                case 110:
+//                case 120: return  113;
+//                case 111:
+//                case 121: return  113;
+//                case 113: return  114;
+//                case 123:
+//                case 114: return  1142;
+//                default:
+//                    return 116;
+//            }
+//        }else {
+//            switch (staNo){
+//                case 117:
+//                case 116: return  123;
+//                case 1142:
+//                case 114: return  113;
+//                case 123:
+//                case 113: return  111;
+//                case 121:
+//                case 111: return  108;
+//                case 120:
+//                case 110: return 107;
+//                case 119:
+//                case 108: return  107;
+//                case 118:
+//                case 107: return  105;
+//                case 105:
+//                case 122:
+//                case 104: return  104;
+//                default:
+//                    return 102;
+//            }
+//        }
+    }
+
+    /*
+     * 鑾峰彇骞叉秹鏈�杩滅珯鐐�
+     * */
+    public static Integer RouteIndexFarMasReverse(int rgvNo,Integer staNo){
+        if (rgvNo==1) {
+            switch (staNo) {
+                case 101:
+                case 102:   return 102;
+                case 104:
+                case 122:
+                case 105:   return 102;
+                case 107:
+                case 118:
+                case 108:
+                case 119:   return 105;
+                case 110:
+                case 120:
+                    return 107;
+                case 111:
+                case 121:
+                    return 108;
+                case 113:
+                    return 111;
+                case 123:
+                case 114:
+                    return 121;
+                case 1142:
+                case 116:
+                case 117:
+                    return 102;
+                default:
+                    return 101;
+            }
+        }else{
+            switch (staNo) {
+                case 117:
+                case 116:
+                case 1142:
+                    return 116;
+                case 114:
+                case 123:
+                case 113:
+                    return 117;
+                case 121:return 123;
+                case 111:
+                case 120:
+                case 110:
+                    return 113;
+                case 119:
+                case 108:
+                    return 111;
+                case 118:
+                case 107:
+                    return 110;
+                case 105:
+                case 122:
+                case 104:
+                    return 107;
+                case 102:
+                case 101:
+                    return 116;
+                default:
+                    return 117;
+            }
+            /*
+            * switch (staNo){
+                case 117:
+                case 116:   return  1142;
+                case 1142:
+                case 114:
+                case 123:   return  113;
+                case 113:   return  121;
+                case 121:
+                case 111:   return  110;
+                case 120:
+                case 110:   return 108;
+                case 119:
+                case 108:
+                case 118:
+                case 107:   return  107;
+                case 105:   return  104;
+                case 122:
+                case 104:   return  102;
+                default:
+                    return 102;
+            }*/
+        }
     }
 
 
@@ -108,6 +417,62 @@
     * 鑾峰彇鏈�杩滅珯鐐�
     * */
     public static Integer RouteIndexFarMas(Integer a,Integer b,Integer c,Integer d){
+        int ia = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(a);
+        int ib = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(b);
+        int ic = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(c);
+        int id = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(d);
+        if (id == 0){
+            if (ib>ic){
+                return b;
+            }else {
+                return c;
+            }
+        }else {
+            if (ib<ic){
+                return b;
+            }else {
+                return c;
+            }
+        }
+//        if (id==0){
+//            if (ia>ib){
+//                if (ia>ic){
+//                    return a;
+//                }else {
+//                    return c;
+//                }
+//            }else {
+//                if (ib>ic){
+//                    return b;
+//                }else {
+//                    return c;
+//                }
+//            }
+//        }else {
+//            if (ia<ib){
+//                if (ia<ic){
+//                    return a;
+//                }else {
+//                    return c;
+//                }
+//            }else {
+//                if (ib<ic){
+//                    return b;
+//                }else {
+//                    return c;
+//                }
+//            }
+//        }
+    }
+
+    /*
+     * 鑾峰彇鏈�杩滅珯鐐�
+     * a:褰撳墠浣嶇疆
+     * b:寮�濮嬩綅缃�
+     * c:缁撴潫浣嶇疆
+     * d:閿佸紑濮嬩綅缃�
+     * */
+    public static Integer RouteIndexFarMasNew(Integer a,Integer b,Integer c,Integer d){
         int ia = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(a);
         int ib = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(b);
         int ic = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(c);
@@ -230,6 +595,45 @@
         return getRouteIntersection(getRoute(a, c), getRoute(b, c), RouteCollectCountType.DEDUPLICATIONUNION);
     }
 
+    public static Integer[] RgvRunSta(Integer runStaStart,Integer runStaEnd){
+        int ia = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(runStaStart);
+        int ib = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(runStaEnd);
+        if (ia<=ib){
+            return new Integer[]{RouteIndexFarMasReverse(1,runStaStart),RouteIndexFarMasReverse(2,runStaEnd)};
+        }else {
+            return new Integer[]{RouteIndexFarMasReverse(1,runStaEnd),RouteIndexFarMasReverse(2,runStaStart)};
+        }
+//        if (ia<=ib){
+//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ia),TRACK_POSITION_POSITIVE_SEQUENCE.get(ib)};
+//        }else {
+//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ib),TRACK_POSITION_POSITIVE_SEQUENCE.get(ia)};
+//        }
+//        if (ia<=ib){
+//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ia-1),TRACK_POSITION_POSITIVE_SEQUENCE.get(ib+1)};
+//        }else {
+//            return new Integer[]{TRACK_POSITION_POSITIVE_SEQUENCE.get(ib+1),TRACK_POSITION_POSITIVE_SEQUENCE.get(ia-1)};
+//        }
+    }
+
+    public static boolean RgvRunStaSign(Integer staBow,Integer runStaEnd,Integer rgvNo){
+        int ia =  TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(staBow);
+        int ib = TRACK_POSITION_POSITIVE_SEQUENCE.indexOf(runStaEnd);
+        if (rgvNo==1){
+            if (ia>ib){
+                return true;//闇�瑕侀伩璁�
+            }else {
+                return false;//涓嶉渶瑕侀伩璁�
+            }
+        }else {
+            if (ia<ib){
+                return true;//闇�瑕侀伩璁�
+            }else {
+                return false;//涓嶉渶瑕侀伩璁�
+            }
+        }
+
+    }
+
 
 
     public static void main(String[] arge){
@@ -324,15 +728,16 @@
             case 28:
                 return 116;
             default:
-                return 0;
+                return 1142;
         }
     }
 
     public static short RgvPosStaTwo(Short posId){
         switch (posId.intValue()){
             case 1:
-            case 2:
                 return 116;
+            case 2:
+                return 1142;
             case 3:
             case 4:
                 return 114;
@@ -371,7 +776,7 @@
             case 28:
                 return 104;
             default:
-                return 0;
+                return 104;
         }
     }
 

--
Gitblit v1.9.1