From 7ec958c241902d29dbffe9f81376b71a8458148e Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期一, 13 一月 2025 16:07:21 +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