From ab14726215678ac69adfeafbd845ebc5b0776ea2 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 14 一月 2025 14:56:41 +0800
Subject: [PATCH] 优化订单同步逻辑及库位查找
---
src/main/java/com/zy/asrs/controller/AgvMapController.java | 135 +++++++++++++++++++--------------------------
1 files changed, 57 insertions(+), 78 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvMapController.java b/src/main/java/com/zy/asrs/controller/AgvMapController.java
index e3b35d0..f945e1b 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMapController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMapController.java
@@ -62,90 +62,75 @@
//鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁
List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev, floor);
- if (floor == 1 && lev == 2) {
- List<AgvLocMast> distinctRow = agvLocMastService.selectDistinctLocByLevAndFloor(lev, floor);
- List<Integer> integers = new ArrayList<>();
- int min = 0;
- int i =1;
+ List<AgvLocMast> distinctRow = new ArrayList<>();
+ List<Integer> rowIntegers = new ArrayList<>();
+ int min = 0;
+ int i =1;
+ if (lev == 1 && floor == 1) {
+ distinctRow = agvLocMastService.selectDistinctLocByLevAndFloorMapbay1(lev, floor);
+ for (AgvLocMast locMast : distinctRow) {
+ if (min > locMast.getMapBay1()) {
+ min = locMast.getMapBay1();
+ }
+ if (locMast.getRightSide() == 1) {
+ rowIntegers.add(i);
+ }
+ i++;
+
+ }
+ } else {
+ distinctRow = agvLocMastService.selectDistinctLocByLevAndFloorMaprow1(lev, floor);
for (AgvLocMast locMast : distinctRow) {
if (min > locMast.getMapRow1()) {
min = locMast.getMapRow1();
}
if (locMast.getRightSide() == 1) {
- integers.add(i);
+ rowIntegers.add(i);
}
i++;
}
- for (AgvLocMast locMast : locMasts) {
- Integer row = locMast.getMapRow1();
- if (row < 0) {
- row = row - min + 1;
- } else {
- row = row - min;
- }
- Integer bay = locMast.getMapBay1();
- Integer rightSide = locMast.getRightSide();
- int x = bay;
- int y = row;
- y = generateMap4Row(integers, row);
- ArrayList rowData = arrayLists.get(x);
- Object o = rowData.get(y);
+ }
- JSONObject jsonObject = JSON.parseObject(o.toString());
- jsonObject.put("value", "0");
-
- jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙�
- jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵��
- //鏇存柊list
- rowData.set(y, jsonObject);
- arrayLists.set(x, rowData);
+ for (AgvLocMast locMast : locMasts) {
+ Integer row = locMast.getMapRow1();
+ if (row < 0) {
+ row = row - min + 1;
+ } else {
+ row = row - min;
}
- } else {
- for (AgvLocMast locMast : locMasts) {
- Integer row = locMast.getRow1();
- Integer bay = locMast.getBay1();
-
-
- int x = bay;
- int y = row;
- //2妤�
- if (floor == 1 && lev == 1) {
- x = generateMap1Bay(bay);
- }
- //2妤�
- if (floor == 2) {
- y = generateMap2Row(row);
- //y = generateMap2Bay(bay);
- }
- ////3妤�
- if (floor == 3) {
- y = generateMap3Row(row);
-// x = generateMap3Bay(bay);
- }
-
- ArrayList rowData = arrayLists.get(x);
- Object o = rowData.get(y);
-
- JSONObject jsonObject = JSON.parseObject(o.toString());
- jsonObject.put("value", "0");
-
- jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙�
- jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵��
- //鏇存柊list
- rowData.set(y, jsonObject);
- arrayLists.set(x, rowData);
+ Integer bay = locMast.getMapBay1();
+ Integer rightSide = locMast.getRightSide();
+ int x = bay;
+ int y = row;
+ if (floor == 3) {
+ y = generateMap3Row(rowIntegers, row);
+ } else if (floor == 1 && lev == 1) {
+ x = generateMap1Bay(rowIntegers, bay);
+ } else {
+ y = generateMap4Row(rowIntegers, row);
}
+
+ ArrayList rowData = arrayLists.get(x);
+ Object o = rowData.get(y);
+
+ JSONObject jsonObject = JSON.parseObject(o.toString());
+ jsonObject.put("value", "0");
+
+ jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙�
+ jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵��
+ //鏇存柊list
+ rowData.set(y, jsonObject);
+ arrayLists.set(x, rowData);
}
return JSONObject.toJSONString(arrayLists);
}
- private Integer generateMap1Bay(int bay) {
+ private Integer generateMap1Bay(List<Integer> rightSide,int bay) {
int y = bay;
- Integer[] bayAdd = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
- for (int i = 0; i < bayAdd.length; i++) {
- if (bay > bayAdd[i]) {
+ for (int i = 0; i < rightSide.size(); i++) {
+ if (bay > rightSide.get(i)) {
y++;
}
}
@@ -156,9 +141,6 @@
private Integer generateMap4Row(List<Integer> rightSide, int row) {
int x = row;
-// if (rightSide == 0) {
-// x++;
-// }
for (int i = 0; i < rightSide.size(); i++) {
if (row > rightSide.get(i)) {
x++;
@@ -169,15 +151,13 @@
}
- private Integer generateMap2Row(int row) {
+ private Integer generateMap2Row(List<Integer> rightSide,int row) {
int x = row;
- Integer[] rowAdd = {2, 4, 6, 7, 8, 10, 12, 13, 15, 17, 19, 20, 22, 24};
- for (int i = 0; i < rowAdd.length; i++) {
- if (row > rowAdd[i]) {
+ for (int i = 0; i < rightSide.size(); i++) {
+ if (row > rightSide.get(i)) {
x++;
}
}
- if (row > 20) x += 9;
return x;
@@ -194,11 +174,10 @@
return y;
}
- private Integer generateMap3Row(int row) {
+ private Integer generateMap3Row(List<Integer> rightSide,int row) {
int x = row;
- Integer[] rowAdd = {2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 22, 24, 26, 28, 30, 32};
- for (int i = 0; i < rowAdd.length; i++) {
- if (row >= rowAdd[i]) {
+ for (int i = 0; i < rightSide.size(); i++) {
+ if (row > rightSide.get(i)) {
x++;
}
}
--
Gitblit v1.9.1