From c7feb49880a74b18149efec5fb515fdab3b8ccd5 Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期四, 18 七月 2024 10:52:10 +0800 Subject: [PATCH] # --- src/main/java/com/zy/asrs/utils/RouteUtils.java | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 211 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/zy/asrs/utils/RouteUtils.java b/src/main/java/com/zy/asrs/utils/RouteUtils.java index 9fbe2da..a4e9594 100644 --- a/src/main/java/com/zy/asrs/utils/RouteUtils.java +++ b/src/main/java/com/zy/asrs/utils/RouteUtils.java @@ -11,13 +11,33 @@ */ public class RouteUtils { + public static final List<Integer> MERGE_STA_NO_One = new ArrayList<Integer>() {{ + add(116);add(117); + }}; + + public static final List<Integer> MERGE_STA_NO_TWO = new ArrayList<Integer>() {{ + add(113);add(123);add(114);add(1142); + }}; + + public static final List<Integer> MERGE_STA_NO_THREE = new ArrayList<Integer>() {{ + add(107);add(118);add(108);add(119); + }}; + + public static final List<Integer> MERGE_STA_NO_FOUR = new ArrayList<Integer>() {{ + add(110);add(120);add(111);add(121); + }}; + + public static final List<Integer> MERGE_STA_NO_FIVE = new ArrayList<Integer>() {{ + add(113);add(123);add(114);add(1142); + }}; + // 姝e簭 public static final List<Integer> TRACK_POSITION_POSITIVE_SEQUENCE = new ArrayList<Integer>() {{ - add(101);add(102);add(104);add(105);add(107);add(118);add(108);add(119);add(110);add(120);add(111);add(121);add(113);add(114);add(116);add(117); + add(101);add(102);add(104);add(122);add(105);add(107);add(118);add(108);add(119);add(110);add(120);add(111);add(121);add(113);add(123);add(114);add(1142);add(116);add(117); }}; // 鍙嶅簭 public static final List<Integer> TRACK_POSITION_REVERSE_SEQUENCE = new ArrayList<Integer>() {{ - add(117);add(116);add(114);add(113);add(121);add(111);add(120);add(110);add(119);add(108);add(118);add(107);add(105);add(104);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){ @@ -33,6 +53,30 @@ return msgBuilder.toString(); } } + /* + * 鑾峰彇骞叉秹鏈�杩滅珯鐐� + * */ + public static Integer RouteIndexFarMas(int rgvNo,Integer staNo){ + List<Integer> staFall = new ArrayList<>(); + 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; + }else if (MERGE_STA_NO_THREE.contains(staNo)){ + staFall = MERGE_STA_NO_THREE; + }else if (MERGE_STA_NO_FOUR.contains(staNo)){ + staFall = MERGE_STA_NO_FOUR; + }else { + return staNo; + } + + int indexNo = 0; + if (rgvNo==1){ + indexNo=staFall.size()-1; + } + return staFall.get(indexNo); + } + // 鑾峰彇褰撳墠灏忚溅鏈璧扮殑璺嚎闆嗗悎 public static List<Integer> getRoute(Integer groupStart,Integer groupEnd){ @@ -68,6 +112,49 @@ * 鑾峰彇鏈�杩滅珯鐐� * */ 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 (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); @@ -228,4 +315,126 @@ } } + public static short RgvPosSta(Integer rgvId,Short posId){ + switch (rgvId){ + case 1: + return RgvPosStaOne(posId); + case 2: + return RgvPosStaTwo(posId); + default: + return 1; + } + } + + public static short RgvPosStaOne(Short posId){ + switch (posId.intValue()){ + case 1: + case 2: + return 102; + case 3: + case 4: + return 122; + case 5: + case 6: + return 105; + case 7: + case 8: + return 118; + case 9: + case 10: + case 11: + return 119; + case 12: + case 13: + case 14: + return 110; + case 15: + return 120; + case 16: + case 17: + case 18: + return 111; + case 19: + return 121; + case 20: + case 21: + case 22: + return 113; + case 23: + case 24: + return 123; + case 25: + return 114; + case 26: + case 27: + return 1142; + case 28: + return 116; + default: + return 1142; + } + } + + public static short RgvPosStaTwo(Short posId){ + switch (posId.intValue()){ + case 1: + return 116; + case 2: + return 1142; + case 3: + case 4: + return 114; + case 5: + return 123; + case 6: + case 7: + case 8: + return 113; + case 9: + case 10: + return 121; + case 11: + case 12: + case 13: + case 14: + return 120; + case 15: + return 110; + case 16: + case 17: + case 18: + return 119; + case 19: + return 108; + case 20: + case 21: + case 22: + return 107; + case 23: + case 24: + return 105; + case 25: + case 26: + case 27: + case 28: + return 104; + default: + return 104; + } + } + + public static Integer CrnStaEnd(Integer endSta,Integer souSta) { + switch (souSta) { + case 100: + case 103: + case 106: + case 109: + case 112: + case 115: + return souSta + 1; + default: + return endSta; + } + } + } -- Gitblit v1.9.1