From 868f6235606fc78eb60735cabae0262b99e0ec10 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期一, 25 十一月 2024 08:39:27 +0800
Subject: [PATCH] Merge branch 'phyzwms2' into phyzasrs-erp

---
 src/main/java/com/zy/asrs/controller/AgvMapController.java |  140 +++++++++++++++++++++++++++-------------------
 1 files changed, 81 insertions(+), 59 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/AgvMapController.java b/src/main/java/com/zy/asrs/controller/AgvMapController.java
index cba44b2..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;
@@ -32,8 +33,6 @@
     @Autowired
     private RedisUtil redisUtil;
 
-    private Integer max = 10000;
-
     private static final List<String> DISABLE_LOC_NO = new ArrayList<String>() {{
 //        add("0200101");
 //        add("0300101");
@@ -62,42 +61,81 @@
 
         //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁
         List<AgvLocMast> locMasts = agvLocMastService.selectLocByLevAndFloor(lev, floor);
-        for (AgvLocMast locMast : locMasts) {
-            Integer row = locMast.getRow1();
-            Integer bay = locMast.getBay1();
+
+        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++;
+
+            }
+            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();
 
 
-            int x = bay;
-            int y = row;
-            //2妤�
-            if (floor == 1 && lev == 1) {
-                x = generateMap1Bay(bay);
-            }
-            if (floor == 1 && lev == 2) {
-                y = generateMap4Row(row);
-            }
-            //2妤�
-            if (floor == 2) {
-                y = generateMap2Row(row);
-                //y = generateMap2Bay(bay);
-            }
-            ////3妤�
-            if (floor == 3) {
-                y = generateMap3Row(row);
+                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);
             }
-
-            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);
@@ -105,7 +143,7 @@
 
     private Integer generateMap1Bay(int bay) {
         int y = bay;
-        Integer[] bayAdd = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105};
+        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++;
@@ -116,11 +154,13 @@
 
     }
 
-    private Integer generateMap4Row(int row) {
+    private Integer generateMap4Row(List<Integer> rightSide, int row) {
         int x = row;
-        Integer[] rowAdd = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119};
-        for (int i = 0; i < rowAdd.length; i++) {
-            if (row > rowAdd[i]) {
+//        if (rightSide == 0) {
+//            x++;
+//        }
+        for (int i = 0; i < rightSide.size(); i++) {
+            if (row > rightSide.get(i)) {
                 x++;
             }
         }
@@ -131,7 +171,7 @@
 
     private Integer generateMap2Row(int row) {
         int x = row;
-        Integer[] rowAdd = {2, 4, 6, 7, 8, 10, 12, 13, 15, 17, 19, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116};
+        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++;
@@ -156,7 +196,7 @@
 
     private Integer generateMap3Row(int row) {
         int x = row;
-        Integer[] rowAdd = {2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122};
+        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++;
@@ -173,24 +213,6 @@
         if (bay >= 50) y--;
         return y;
     }
-
-
-    public static void main(String[] args) {
-        AgvMapController a = new AgvMapController();
-        System.out.println(a.generateMap4Row(4));
-
-        System.out.println(a.process(1));
-    }
-
-    private List<Integer> process(int start) {
-        List<Integer> l = new ArrayList<>();
-        while (start <= max) {
-            l.add(start);
-            start = start + 2;
-        }
-        return l;
-    }
-
 
     @RequestMapping("/map/searchData/auth")
     @ManagerAuth

--
Gitblit v1.9.1