From 835a4bb2154e5f446bf6a7b78546ca5cfcff2ca6 Mon Sep 17 00:00:00 2001
From: ZY <zc857179121@qq.com>
Date: 星期五, 07 二月 2025 07:53:53 +0800
Subject: [PATCH] 导入关闭的订单
---
src/main/java/com/zy/asrs/controller/AgvMapController.java | 191 ++++++++++++++++++++++++++++++++---------------
1 files changed, 128 insertions(+), 63 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/AgvMapController.java b/src/main/java/com/zy/asrs/controller/AgvMapController.java
index defe628..e3b35d0 100644
--- a/src/main/java/com/zy/asrs/controller/AgvMapController.java
+++ b/src/main/java/com/zy/asrs/controller/AgvMapController.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.annotations.ManagerAuth;
import com.core.common.R;
import com.zy.asrs.entity.AgvLocDetl;
@@ -49,103 +50,167 @@
@GetMapping("/map/getData/{floor}/{lev}/auth")
@ManagerAuth
public String getMapData(@PathVariable("floor") Integer floor, @PathVariable("lev") Integer lev) {
- BasMap basMap = agvBasMapService.selectLatestMap(lev,floor);
+
+ //to do
+// floor = 2;
+
+ BasMap basMap = agvBasMapService.selectLatestMap(lev, floor);
//瑙f瀽json鍦板浘鏁版嵁
List<ArrayList> arrayLists = JSON.parseArray(basMap.getData(), ArrayList.class);
//鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁
- List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev,floor);
- for (AgvLocMast locMast : locMasts) {
- Integer row = locMast.getRow1();
- Integer bay = locMast.getBay1();
+ 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;
+ for (AgvLocMast locMast : distinctRow) {
+ if (min > locMast.getMapRow1()) {
+ min = locMast.getMapRow1();
+ }
+ if (locMast.getRightSide() == 1) {
+ integers.add(i);
+ }
+ i++;
- int x = bay;
- int y = row;
- //1妤�
- if(floor == 1){
- x = generateMap1Row(row);
- y = generateMap1Bay(bay);
}
- //3妤�
- if(floor == 3){
- y = generateMap3Row(row);
- x = generateMap3Bay(bay);
+ 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);
}
+ } else {
+ for (AgvLocMast locMast : locMasts) {
+ Integer row = locMast.getRow1();
+ Integer bay = locMast.getBay1();
- ArrayList rowData = arrayLists.get(x);
- Object o = rowData.get(y);
+ 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);
+ }
- JSONObject jsonObject = JSON.parseObject(o.toString());
- if (DISABLE_LOC_NO.contains(locMast.getLocNo())) {
- //绂佹搴撲綅
- jsonObject.put("value", 10);//灏嗙鐢ㄥ簱浣嶈繘琛岃缃�
+ 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);
}
- 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 generateMap1Row(int row){
- int x = 21-row;
- if(row > 1){
- x --;
+ private Integer generateMap1Bay(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]) {
+ y++;
+ }
}
- if(row > 3){
- x --;
+
+ return y;
+
+ }
+
+ 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++;
+ }
}
- if(row > 4){
- x --;
- }
- if(row > 6){
- x --;
- }
- if(row > 8){
- x --;
- }
- if(row > 10){
- x --;
- }
- if(row > 12){
- x --;
- }
+
return x;
}
- private Integer generateMap1Bay(int bay){
- int y = bay;
- if(y > 28){
- y ++;
+ private Integer generateMap2Row(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]) {
+ x++;
+ }
}
- if(y > 57){
- y ++;
+ if (row > 20) x += 9;
+
+ return x;
+
+ }
+
+ private Integer generateMap2Bay(int bay) {
+ int y = bay;
+ if (y > 28) {
+ y++;
+ }
+ if (y > 57) {
+ y++;
}
return y;
}
- private Integer generateMap3Row(int row){
+ private Integer generateMap3Row(int row) {
int x = row;
- Integer[] rowAdd = {2,4,6,8,9,11,12,14,16,18,19,21,23,25,27,29,31,33};
- for(int i=0; i<rowAdd.length; i++){
- if(row >= rowAdd[i]){
- x ++;
+ 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]) {
+ x++;
}
}
+ if (row > 8) x += 9;
return x;
}
- private Integer generateMap3Bay(int bay){
- int y = 73-bay;
- if(bay >= 15) y --;
- if(bay >= 47) y --;
+ private Integer generateMap3Bay(int bay) {
+ int y = 76 - bay;
+ if (bay >= 18) y--;
+ if (bay >= 26) y--;
+ if (bay >= 50) y--;
return y;
}
@@ -157,7 +222,7 @@
@RequestParam("specs") String specs,
@RequestParam("matnr") String matnr,
@RequestParam("maktx") String maktx
- ) {
+ ) {
List<AgvLocDetl> locDetls = agvLocDetlService.searchByLike(orderNo, matnr, maktx, specs, locNo);
ArrayList<AgvLocDetl> lists = new ArrayList<>();
--
Gitblit v1.9.1