From 1da002910c1d9d44cd195bd24d951b4942a4e29c Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期二, 14 一月 2025 14:58:02 +0800
Subject: [PATCH] 优化定时任务间隔及字段命名,调整环境配置

---
 src/main/java/com/zy/asrs/controller/AgvMapController.java |  156 +++++++++++++++++++++++++++++++++------------------
 1 files changed, 101 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMapController.java b/src/main/java/com/zy/asrs/controller/AgvMapController.java
index 12caa0b..f945e1b 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,36 +50,72 @@
     @GetMapping("/map/getData/{floor}/{lev}/auth")
     @ManagerAuth
     public String getMapData(@PathVariable("floor") Integer floor, @PathVariable("lev") Integer lev) {
-        BasMap basMap = agvBasMapService.selectLatestMap(1,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);
+        List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev, floor);
+
+        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) {
+                    rowIntegers.add(i);
+                }
+                i++;
+
+            }
+        }
+
         for (AgvLocMast locMast : locMasts) {
-            Integer row = locMast.getRow1();
-            Integer bay = 34 - locMast.getBay1();
-
-
+            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;
-            ////1妤�
-            //if(floor == 1){
-                x = generateMap1Row(row);
-            //    y = generateMap1Bay(bay);
-            //}
-            ////3妤�
-            //if(floor == 3){
-            //    y = generateMap3Row(row);
-            //    x = generateMap3Bay(bay);
-            //}
+            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("value", "0");
 
             jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙�
             jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵��
@@ -90,60 +127,69 @@
         return JSONObject.toJSONString(arrayLists);
     }
 
-    private Integer generateMap1Row(int row){
-        int x = 21-row;
-        if(row > 1){
-            x --;
+    private Integer generateMap1Bay(List<Integer> rightSide,int bay) {
+        int y = bay;
+        for (int i = 0; i < rightSide.size(); i++) {
+            if (bay > rightSide.get(i)) {
+                y++;
+            }
         }
-        if(row > 3){
-            x --;
+
+        return y;
+
+    }
+
+    private Integer generateMap4Row(List<Integer> rightSide, int row) {
+        int x = row;
+        for (int i = 0; i < rightSide.size(); i++) {
+            if (row > rightSide.get(i)) {
+                x++;
+            }
         }
-        if(row > 5){
-            x --;
-        }
-        if(row > 7){
-            x --;
-        }
-        if(row > 9){
-            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(List<Integer> rightSide,int row) {
+        int x = row;
+        for (int i = 0; i < rightSide.size(); i++) {
+            if (row > rightSide.get(i)) {
+                x++;
+            }
         }
-        if(y > 57){
-            y ++;
+
+        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(List<Integer> rightSide,int row) {
         int x = row;
-        Integer[] rowAdd = {2,4,6,7,8,10,12,13,15,17,19,21,23,24,26,28,30,32};
-        for(int i=0; i<rowAdd.length; i++){
-            if(row >= rowAdd[i]){
-                x ++;
+        for (int i = 0; i < rightSide.size(); i++) {
+            if (row > rightSide.get(i)) {
+                x++;
             }
         }
+        if (row > 8) x += 9;
         return x;
     }
 
-    private Integer generateMap3Bay(int bay){
-        int y = 76-bay;
-        if(bay >= 18) y --;
-        if(bay >= 26) y --;
-        if(bay >= 50) y --;
+    private Integer generateMap3Bay(int bay) {
+        int y = 76 - bay;
+        if (bay >= 18) y--;
+        if (bay >= 26) y--;
+        if (bay >= 50) y--;
         return y;
     }
 
@@ -155,7 +201,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