From 050abb296f847e787432197c161f746c128e5956 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 19 十月 2024 13:05:09 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java |  110 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 97 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java b/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
index e502e64..6a3dbf6 100644
--- a/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
+++ b/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
@@ -1,5 +1,6 @@
 package com.zy.asrs.utils;
 
+import com.zy.asrs.entity.BasDevpPosition;
 import com.zy.core.enums.RouteCollectCountType;
 
 import java.util.Arrays;
@@ -27,27 +28,106 @@
         }
         return ints;
     }
-    //鎺掑簭
-    public static int ReorderSteId2(int[][] steList,int steNoStart){
-        int[][] ints = new int[steList.length][2];
-        int Difference = 0;
-        for (int[] steNo : steList){
-            if (steNo[0] == steNoStart){
-                Difference = steNo[1] - 1;
+
+    //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃墠杈圭殑浣嶇疆
+    public static Integer LatelyAndLessThan(List<BasDevpPosition> devpPosition, long nowPosition){
+        Integer result = 0;
+        long Difference = 1737000L;
+        for (BasDevpPosition positions : devpPosition){
+            Long position = positions.getPlcPosition();
+            if (position<=nowPosition){
+                if ((nowPosition-position) < Difference){
+                    Difference = nowPosition-position;
+                    result = positions.getDevNo();
+                }
+            } else {
+                if ((nowPosition-(position - 1737000L)) < Difference){
+                    Difference = nowPosition-(position - 1737000L);
+                    result = positions.getDevNo();
+                }
+            }
+        }
+        return result;
+    }
+    //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃墠杈圭殑浣嶇疆
+    public static Long LatelyAndLessThan(long[] devpPosition,long nowPosition){
+        long result = 0L;
+        long Difference = 1737000L;
+        for (long position : devpPosition){
+            if (position<=nowPosition){
+                if ((nowPosition-position) < Difference){
+                    Difference = nowPosition-position;
+                    result = position;
+                }
+            } else {
+                if ((nowPosition-(position - 1737000L)) < Difference){
+                    Difference = nowPosition-(position - 1737000L);
+                    result = position;
+                }
+            }
+        }
+        return result;
+    }
+
+    //id鍒濆鍖�
+    public static List<BasDevpPosition> devpNoInit(List<BasDevpPosition> devpPosition){
+        long i = 0;
+        for (BasDevpPosition basDevpPosition : devpPosition){
+            i++;
+            basDevpPosition.setId(i);
+        }
+        return devpPosition;
+    }
+
+
+    //绔欑偣鎺掑簭
+    public static BasDevpPosition[] devpNoSort(List<BasDevpPosition> devpPosition1,Integer devpNo){
+        List<BasDevpPosition> devpPosition = devpNoInit(devpPosition1);
+        BasDevpPosition[] basDevpPositions = new BasDevpPosition[devpPosition.size()];
+        long Difference = 0L;
+        for (BasDevpPosition basDevpPosition : devpPosition){
+            if (basDevpPosition.getDevNo().equals(devpNo)){
+                Difference = basDevpPosition.getId() - 1L;
                 break;
             }
         }
-        for (int[] steNo : steList){
-            int i = steNo[1];
+        for (BasDevpPosition basDevpPosition : devpPosition){
+            long i = basDevpPosition.getId();
             if (i > Difference){
-                steNo[1] = i - Difference;
+                basDevpPosition.setId(i - Difference);
             } else {
-                steNo[1] = steList.length + i-Difference;
+                basDevpPosition.setId(devpPosition.size() + i - Difference);
             }
-            ints[steNo[0]-1] = steNo;
+            basDevpPositions[basDevpPosition.getId().intValue()-1] = basDevpPosition;
         }
-        return 0;
+        return basDevpPositions;
     }
+
+    //閫嗗簭鎺掑垪
+    public static BasDevpPosition[] devpNoSortUN(BasDevpPosition[] devpPosition){
+        BasDevpPosition[] basDevpPositions = new BasDevpPosition[devpPosition.length];
+        for (BasDevpPosition basDevpPosition : devpPosition){
+            basDevpPositions[devpPosition.length - basDevpPosition.getId().intValue()] = basDevpPosition;
+        }
+        return basDevpPositions;
+    }
+
+    //閫嗗簭鎺掑垪
+    public static boolean devpNoSortbj(BasDevpPosition[] devpPosition,Integer souDevpNo,Integer endDevpNo){
+        int sou = 0;
+        int end = 0;
+        for (int i = 0;i<devpPosition.length;i++){
+            if (devpPosition[i].getDevNo().equals(souDevpNo)){
+                sou = i;
+            }
+            if (devpPosition[i].getDevNo().equals(endDevpNo)){
+                end = i;
+            }
+        }
+
+        return sou>end;
+    }
+
     public static void main(String[] args) {
         int[][] ints = new int[][]{{1,1},{3,3},{2,2},{4,4},{5,5},{6,6},{7,7},{8,8},{9,9},{10,10}};
 
@@ -55,5 +135,9 @@
         for (int[] ste : reorderSteId){
             System.out.println(Arrays.toString(ste));
         }
+
+        long[] longs = new long[]{1L,1000L,200000L,1100000L,1600000L};
+        long l = LatelyAndLessThan(longs, 1100000L);
+        System.out.println("l:"+l);
     }
 }

--
Gitblit v1.9.1