From c7e0e0a645707b5e1faf4c11421691d56772fae6 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期六, 13 四月 2024 14:47:44 +0800
Subject: [PATCH] 增加库位平面图

---
 src/main/java/com/zy/asrs/controller/MapController.java |  122 +++++++++++++++++-----------------------
 1 files changed, 53 insertions(+), 69 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MapController.java b/src/main/java/com/zy/asrs/controller/MapController.java
index 826b77e..e36642e 100644
--- a/src/main/java/com/zy/asrs/controller/MapController.java
+++ b/src/main/java/com/zy/asrs/controller/MapController.java
@@ -8,14 +8,18 @@
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.service.LocDetlService;
 import com.zy.asrs.service.LocMastService;
+import com.zy.asrs.utils.LocMapConstants;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.io.*;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @RestController
 
@@ -26,78 +30,58 @@
     @Autowired
     private LocDetlService locDetlService;
 
-    private static final List<String> DISABLE_LOC_NO = new ArrayList<String>() {{
-
-    }};
-
     @GetMapping("/map/getData/auth")
     @ManagerAuth
-    public String getMapData(@RequestParam Integer lev,@RequestParam Integer area) {
-        try {
-            String mapFilename = "map.json";
-//            String fileName ="file:" + new ClassPathResource(mapFilename).getPath();
-            //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁
-            List<LocMast> locMasts = locMastService.selectNodeLocByLev(lev);
+    public String getMapData(@RequestParam String area, @RequestParam Integer lev) {
 
-            String fileName = this.getClass().getClassLoader().getResource(mapFilename).getPath();//鑾峰彇鏂囦欢璺緞
-//            File file = new File("D:\\workspace\\zy-asrs\\src\\main\\resources\\map.json");
-            File file = new File(fileName);
-            StringBuffer stringBuffer = new StringBuffer();
-            if (file.isFile() && file.exists()) {
-                InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GBK");
-                BufferedReader br = new BufferedReader(isr);
-                String lineTxt = null;
-                while ((lineTxt = br.readLine()) != null) {
-                    stringBuffer.append(lineTxt);
-                }
-                br.close();
+        //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁
+        List<LocMast> locMasts = locMastService.selectNodeLocByLev(area, lev);
 
-                //瑙f瀽json鍦板浘鏁版嵁
-                List<ArrayList> arrayLists = JSON.parseArray(stringBuffer.toString(), ArrayList.class);
-                for (String locNo : DISABLE_LOC_NO) {//绂佺敤璁剧疆搴撲綅
-                    int row = Utils.getRow(locNo);
-                    int bay = Utils.getBay(locNo);
-                    if (row >= 2 && row <= 12) {
-                        row++;
-                    }else if (row == 13) {
-                        row += 2;
-                    }
-                    ArrayList rowData = arrayLists.get(row);
-                    Object o = rowData.get(bay);
-                    JSONObject jsonObject = JSON.parseObject(o.toString());
-                    jsonObject.put("value", 10);//灏嗙鐢ㄥ簱浣嶈繘琛岃缃�
-                    //鏇存柊list
-                    rowData.set(bay, jsonObject);
-                    arrayLists.set(row, rowData);
-                }
-
-
-
-                for (LocMast locMast : locMasts) {
-
-                    Integer row = locMast.getRow1();
-                    Integer bay = locMast.getBay1();
-
-                    ArrayList rowData = arrayLists.get(row);
-                    Object o = rowData.get(bay);
-                    JSONObject jsonObject = JSON.parseObject(o.toString());
-                    jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙�
-                    jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵��
-                    //jsonObject.put("locSts$", locMast.getLocSts$());//搴撲綅鐘舵��
-                    //鏇存柊list
-                    rowData.set(bay, jsonObject);
-                    arrayLists.set(row, rowData);
-
-                }
-
-                return JSONObject.toJSONString(arrayLists);
-            } else {
-                System.out.println("鏂囦欢涓嶅瓨鍦�!");
-            }
-        } catch (IOException ioException) {
-            ioException.printStackTrace();
+        // 鍔犺浇搴撳尯瀵瑰簲鍦板浘鏁版嵁
+        List<ArrayList> arrayLists;
+        switch (area) {
+            case "B":
+                arrayLists = LocMapConstants.B_LOC_MAP_FINAL;
+                break;
+            case "C":
+                arrayLists = LocMapConstants.C_LOC_MAP_FINAL;
+                break;
+            case "D":
+                arrayLists = LocMapConstants.D_LOC_MAP_FINAL;
+                break;
+            case "E":
+                arrayLists = LocMapConstants.E_LOC_MAP_FINAL;
+                break;
+            default:
+                arrayLists = LocMapConstants.A_LOC_MAP_FINAL;
+                break;
         }
-        return null;
+
+        // 闄搴撳尯澶栵紝鍏朵粬鍖烘病鏈夊眰锛岃�屼笖鎶婂垪瀛樺埌浜嗗眰鐨勬暟鎹噷锛岄渶瑕佽浆鎹㈠洖鏉�
+        if (!"A".equals(area)) {
+            locMasts = locMasts.stream().peek(locMast -> locMast.setBay1(locMast.getLev1())).collect(Collectors.toList());
+        }
+
+        for (LocMast locMast : locMasts) {
+
+            Integer row = locMast.getRow1();
+            Integer bay = locMast.getBay1();
+            // CDE鍙湁涓�鍒�,鎵�浠ュ垪鍙崇Щ
+            if ("C".equals(area) || "D".equals(area) || "E".equals(area)) {
+                ++ bay ;
+            }
+
+            ArrayList rowData = arrayLists.get(row);
+            Object o = rowData.get(bay);
+            JSONObject jsonObject = JSON.parseObject(o.toString());
+            jsonObject.put("locNo", locMast.getLocNo());//璁剧疆搴撲綅鍙�
+            jsonObject.put("locSts", locMast.getLocSts());//搴撲綅鐘舵��
+            //鏇存柊list
+            rowData.set(bay, jsonObject);
+            arrayLists.set(row, rowData);
+        }
+
+        return JSONObject.toJSONString(arrayLists);
     }
 
     @RequestMapping("/map/searchData/auth")

--
Gitblit v1.9.1