From 48790a2540295d8272629c693d77e214d163f826 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 26 十月 2024 17:19:56 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 9 +++-
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 2
src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java | 86 +++++++++++++++++++++++++++++++++++-------
3 files changed, 78 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 3a2bf7e..1a6f127 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -60,7 +60,7 @@
if (wrkMasts.isEmpty()){
return;
}
- List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",false));
+ List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",true));
if (basDevpPositions.isEmpty()){
log.error("鑾峰彇鎵�鏈夌珯鐐逛俊鎭紓甯�");
return;
@@ -91,7 +91,10 @@
rgvPositionList.add(rgvPosition);
}
Integer rgvNo = SortTheExecutionOfTheCarUtil.LatelyAndGreaterThan(rgvPositionList, sitePosition,perimeter);
-
+ if (rgvNo == -1){
+ log.info("鏇存柊灏忚溅鎺掑簭淇℃伅寮傚父={}",rgvNo);
+ return;
+ }
List<BasCircularShuttle> basCircularShuttleList = basCircularShuttleService.selectList(new EntityWrapper<BasCircularShuttle>().orderBy("rgv_id", true));
if (basCircularShuttleList.get(0).getRgvNo().equals(rgvNo)){
return;
@@ -189,7 +192,7 @@
if (rgvProtocol == null) {
return;
}
- List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",false));
+ List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",true));
Integer devNo = SortTheExecutionOfTheCarUtil.LatelyAndLessThan(basDevpPositions, rgvProtocol.getRgvPos(),perimeter);
BasDevpPosition[] basDevpPositionsList = SortTheExecutionOfTheCarUtil.devpNoSort(basDevpPositions, devNo);
BasDevpPosition[] basDevpPositionsListUN = SortTheExecutionOfTheCarUtil.devpNoSortUN(basDevpPositionsList);
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index 5249ea2..25570fb 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -77,7 +77,7 @@
List<WcsTaskListParam> wcsTaskListParamList = new ArrayList<>();
List<WcsRgvListParam> wcsRgvListParamList = new ArrayList<>();
List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<>());
- List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",false));
+ List<BasDevpPosition> basDevpPositions = basDevpPositionService.selectList(new EntityWrapper<BasDevpPosition>().orderBy("plc_position",true));
for (WrkMast wrkMast : wrkMastList){
WcsTaskListParam wcsTaskListParam = new WcsTaskListParam(wrkMast);
diff --git a/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java b/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
index 93fbbfa..93316ad 100644
--- a/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
+++ b/src/main/java/com/zy/asrs/utils/SortTheExecutionOfTheCarUtil.java
@@ -29,20 +29,40 @@
return ints;
}
- //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃墠杈圭殑浣嶇疆
+// //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃墠杈圭殑浣嶇疆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 = 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 - perimeter)) < Difference){
- Difference = nowPosition-(position - perimeter);
+ if (perimeter - (nowPosition - position) < Difference){
+ Difference = perimeter - (nowPosition - position);
result = positions.getDevNo();
}
}
@@ -50,14 +70,29 @@
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 = 0;
+ Integer result = -1;
Integer integer = LatelyAndLessThan(devpPosition, nowPosition,perimeter);
for (BasDevpPosition basDevpPosition:devpPosition){
if (basDevpPosition.getDevNo().equals(integer)){
- if (basDevpPosition.getDevNo() == 101){
- result = 133;
+ if (basDevpPosition.getDevNo() == 133){
+ result = 101;
}
break;
}
@@ -85,15 +120,36 @@
// return result;
// }
- //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃悗杈圭殑浣嶇疆
+// //鑾峰彇鏈�杩戝苟鍦ㄥ綋鍓嶄綅缃悗杈圭殑浣嶇疆 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 = 0;
+ 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 {
--
Gitblit v1.9.1