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