From c808221f6a427014d8c112d172f5a1e58abab197 Mon Sep 17 00:00:00 2001
From: 18516761980 <56479841@qq.com>
Date: 星期一, 26 五月 2025 18:37:12 +0800
Subject: [PATCH] 环境文件备份,数据库备份
---
src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java | 202 ++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 185 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java b/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
index a6ef2f4..d586715 100644
--- a/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
+++ b/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
@@ -29,25 +29,76 @@
return ints;
}
- //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃墠杈圭殑浣嶇疆
- public static Integer LatelyAndLessThan(List<BasDevpPosition> devpPosition, long nowPosition){
+// //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃墠杈圭殑浣嶇疆1000000===>10000==>0==>1000000
+// public static Integer LatelyAndLessThan(List<BasDevpPosition> devpPosition, long nowPosition,long perimeter){
+// Integer result = 0;
+// long Difference = perimeter;
+// 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 - perimeter)) < Difference){
+// Difference = nowPosition-(position - perimeter);
+// result = positions.getDevNo();
+// }
+// }
+// }
+// return result;
+// }
+ //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃墠杈圭殑浣嶇疆 0==>1000===>1000000==>0
+ public static Integer LatelyAndLessThan(List<BasDevpPosition> devpPosition, long nowPosition,long perimeter){
Integer result = 0;
- long Difference = 1737000L;
+ long Difference = perimeter;
for (BasDevpPosition positions : devpPosition){
Long position = positions.getPlcPosition();
- if (position<=nowPosition){
- if ((nowPosition-position) < Difference){
- Difference = nowPosition-position;
+ if (position >= nowPosition){
+ if ((position-nowPosition) < Difference){
+ Difference = position-nowPosition;
result = positions.getDevNo();
}
} else {
- if ((nowPosition-(position - 1737000L)) < Difference){
- Difference = nowPosition-(position - 1737000L);
+ if (perimeter - (nowPosition - position) < Difference){
+ Difference = perimeter - (nowPosition - position);
result = positions.getDevNo();
}
}
}
return result;
+ }
+
+// //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃悗杈圭殑浣嶇疆 1000000===>10000==>0==>1000000
+// public static Integer LatelyAndLessThanWcs(List<BasDevpPosition> devpPosition, long nowPosition,long perimeter){
+// Integer result = 0;
+// Integer integer = LatelyAndLessThan(devpPosition, nowPosition,perimeter);
+// for (BasDevpPosition basDevpPosition:devpPosition){
+// if (basDevpPosition.getDevNo().equals(integer)){
+// if (basDevpPosition.getDevNo() == 101){
+// result = 133;
+// }
+// break;
+// }
+// result = basDevpPosition.getDevNo();
+// }
+// return result;
+// }
+ //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃悗杈圭殑浣嶇疆 0==>1000===>1000000==>0
+ public static Integer LatelyAndLessThanWcs(List<BasDevpPosition> devpPosition, long nowPosition,long perimeter){
+ Integer result = -1;
+ Integer integer = LatelyAndLessThan(devpPosition, nowPosition,perimeter);
+ for (BasDevpPosition basDevpPosition:devpPosition){
+ if (basDevpPosition.getDevNo().equals(integer)){
+ if (basDevpPosition.getDevNo() == 134){
+ result = 101;
+ }
+ break;
+ }
+ result = basDevpPosition.getDevNo();
+ }
+ return result == -1? 101 : result;
}
// //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃墠杈圭殑浣嶇疆
// public static Long LatelyAndLessThan(long[] devpPosition,long nowPosition){
@@ -69,20 +120,41 @@
// return result;
// }
- //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃悗杈圭殑浣嶇疆
- public static Integer LatelyAndGreaterThan(List<List<Long>> sitePosition, long nowPosition){
- int result = 0;
- long Difference = 1737000L;
+// //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃悗杈圭殑浣嶇疆 1000000===>10000==>0==>1000000
+// public static Integer LatelyAndGreaterThan(List<List<Long>> sitePosition, long nowPosition ,long perimeter){
+// int result = 0;
+// long Difference = perimeter;
+// for (List<Long> rgvPositions: sitePosition){
+// Long position = rgvPositions.get(1);
+// if (position>nowPosition){
+// if ((position - nowPosition) < Difference){
+// Difference = position - nowPosition;
+// result = rgvPositions.get(0).intValue();
+// }
+// } else {
+// if ((perimeter - (nowPosition - position)) < Difference){
+// Difference = perimeter - (nowPosition - position);
+// result = rgvPositions.get(0).intValue();
+// }
+// }
+// }
+// return result;
+// }
+
+ //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃悗杈圭殑浣嶇疆 0==>1000===>1000000==>0
+ public static Integer LatelyAndGreaterThan(List<List<Long>> sitePosition, long nowPosition ,long perimeter){
+ int result = -1;
+ long Difference = perimeter;
for (List<Long> rgvPositions: sitePosition){
Long position = rgvPositions.get(1);
- if (position>nowPosition){
- if ((position - nowPosition) < Difference){
- Difference = position - nowPosition;
+ if (position <= nowPosition){
+ if ((nowPosition - position) < Difference){
+ Difference = nowPosition - position;
result = rgvPositions.get(0).intValue();
}
} else {
- if ((1737000L - (nowPosition - position)) < Difference){
- Difference = 1737000L - (nowPosition - position);
+ if ((perimeter - (nowPosition - position)) < Difference){
+ Difference = perimeter - (nowPosition - position);
result = rgvPositions.get(0).intValue();
}
}
@@ -386,4 +458,100 @@
// }
+ //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃墠杈圭殑浣嶇疆 0==>1000===>1000000==>0
+ public static Double LatelyAndLessThan(long devPosition,long rgvPosition,long perimeter){
+ long Difference = perimeter;
+ if (devPosition >= rgvPosition){
+// if ((devPosition-rgvPosition) < Difference){
+ Difference = devPosition-rgvPosition;
+// }
+ } else {
+// if (perimeter - (rgvPosition - devPosition) < Difference){
+ Difference = perimeter - (rgvPosition - devPosition);
+// }
+ }
+ return Double.valueOf(Difference);
+ }
+
+ public static int calculateShortestDistanceDistance(List<Integer> data, int a, int b) {
+ Result result = calculateShortestDistance(data, a, b);
+ return result.distance;
+ }
+
+ public static List<Integer> calculateShortestDistancePassedData(List<Integer> data, int a, int b) {
+ Result result = calculateShortestDistance(data, a, b);
+ return result.passedData;
+ }
+
+// public static String calculateShortestDistanceDirection(List<Integer> data, int a, int b) {
+// Result result = calculateShortestDistance(data, a, b);
+// return result.direction;
+// }
+
+ public static boolean calculateShortestDistanceDirection(List<Integer> data, int a, int b) {
+ Result result = calculateShortestDistance(data, a, b);
+ return result.direction.equals("鍚戝墠璧帮紙椤烘椂閽堬級");
+ }
+
+
+ public static void main(String[] args) {
+ List<Integer> data = new ArrayList<>();
+ // 鐢� List<Integer> 鍒濆鍖栨暟鎹�
+ for (int i = 1; i <= 9; i++) {
+ data.add(i);
+ }
+
+ int a = 3; // 璧风偣
+ int b = 3; // 缁堢偣
+
+ Result result = calculateShortestDistance(data, a, b);
+ System.out.println("鏈�杩戠殑璺濈鏄�: " + result.distance);
+ System.out.println("缁忚繃鐨勬暟鎹�: " + result.passedData);
+ System.out.println("鏂瑰悜: " + result.direction);
+ }
+
+ public static Result calculateShortestDistance(List<Integer> data, int a, int b) {
+ int length = data.size();
+ int indexA = data.indexOf(a);
+ int indexB = data.indexOf(b);
+
+ if (indexA == -1 || indexB == -1) {
+ throw new IllegalArgumentException("鍒楄〃涓湭鎵惧埌鎸囧畾鐨勫厓绱�");
+ }
+
+ // 椤烘椂閽堟柟鍚戠殑璺濈鍙婄粡杩囩殑鏁版嵁
+ List<Integer> clockwiseData = new ArrayList<>();
+ int clockwiseDistance = (indexB - indexA + length) % length;
+ for (int i = 0; i <= clockwiseDistance; i++) {
+ clockwiseData.add(data.get((indexA + i) % length));
+ }
+
+ // 閫嗘椂閽堟柟鍚戠殑璺濈鍙婄粡杩囩殑鏁版嵁
+ List<Integer> counterClockwiseData = new ArrayList<>();
+ int counterClockwiseDistance = (indexA - indexB + length) % length;
+ for (int i = 0; i <= counterClockwiseDistance; i++) {
+ counterClockwiseData.add(data.get((indexA - i + length) % length));
+ }
+
+ // 姣旇緝璺濈骞惰繑鍥炵粨鏋�
+ if (clockwiseDistance <= counterClockwiseDistance) {
+ return new Result(clockwiseDistance, clockwiseData, "鍚戝墠璧帮紙椤烘椂閽堬級");
+ } else {
+ return new Result(counterClockwiseDistance, counterClockwiseData, "鍚戝悗璧帮紙閫嗘椂閽堬級");
+ }
+ }
+
+ // 鐢ㄤ簬杩斿洖缁撴灉鐨勭被
+ static class Result {
+ public int distance;
+ public List<Integer> passedData;
+ public String direction;
+
+ public Result(int distance, List<Integer> passedData, String direction) {
+ this.distance = distance;
+ this.passedData = passedData;
+ this.direction = direction;
+ }
+ }
+
}
--
Gitblit v1.9.1