From 4c7e3f113b80e37c52163c30b80b9256f0bee5e3 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 17 十一月 2025 13:34:39 +0800
Subject: [PATCH] #

---
 src/main/webapp/views/locMap/locMap.html                       |  110 +++-----------------------
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java |    6 +
 src/main/java/com/zy/asrs/controller/ConsoleController.java    |   44 +++++-----
 src/main/java/com/zy/asrs/controller/LocMastController.java    |    3 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |   52 +++++++++++-
 src/main/resources/mapper/LocMastMapper.xml                    |    4 +
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    3 
 src/main/java/com/zy/core/MainProcess.java                     |    2 
 src/main/java/com/zy/core/enums/RedisKeyType.java              |    2 
 src/main/java/com/zy/asrs/service/LocMastService.java          |    3 
 src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java   |    4 
 11 files changed, 107 insertions(+), 126 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index b45fedb..5d19fb7 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -1,5 +1,7 @@
 package com.zy.asrs.controller;
 
+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.Cools;
@@ -10,20 +12,16 @@
 import com.zy.asrs.domain.vo.CrnDetailVo;
 import com.zy.asrs.domain.vo.CrnLatestDataVo;
 import com.zy.asrs.domain.vo.StationLatestDataVo;
-import com.zy.asrs.entity.BasCrnpErr;
-import com.zy.asrs.entity.BasMap;
-import com.zy.asrs.entity.DeviceConfig;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.service.BasCrnpErrService;
-import com.zy.asrs.service.BasMapService;
-import com.zy.asrs.service.DeviceConfigService;
-import com.zy.asrs.service.WrkMastService;
+import com.zy.asrs.entity.*;
+import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.CodeRes;
 import com.zy.common.model.MapNode;
-import com.zy.common.model.enums.NavigationMapType;
 import com.zy.common.utils.RedisUtil;
+import com.zy.core.News;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.CrnModeType;
+import com.zy.core.enums.MapNodeType;
 import com.zy.core.enums.RedisKeyType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.protocol.CrnProtocol;
@@ -56,6 +54,8 @@
     private BasMapService basMapService;
     @Autowired
     private RedisUtil redisUtil;
+    @Autowired
+    private LocMastService locMastService;
 
     @PostMapping("/system/running/status")
     @ManagerAuth(memo = "绯荤粺杩愯鐘舵��")
@@ -264,11 +264,7 @@
     @GetMapping("/map/lev/list")
     @ManagerAuth
     public R getMapLevList() {
-        List<BasMap> basMaps = basMapService.selectList(new EntityWrapper<BasMap>().orderBy("lev", true));
-        ArrayList<Integer> levList = new ArrayList<>();
-        for (BasMap basMap : basMaps) {
-            levList.add(basMap.getLev());
-        }
+        List<Integer> levList = locMastService.getLevList();
         return R.ok().add(levList);
     }
 
@@ -276,14 +272,20 @@
      * 鑾峰彇鍦板浘鏁版嵁
      */
     @GetMapping("/map/{lev}/auth")
-    @ManagerAuth
-    public R getMapFromRedis(@PathVariable Integer lev) {
-        Object data = redisUtil.get(RedisKeyType.MAP.key + lev);
-        if (data == null) {
-            return R.error();
+    public R getLocMap(@PathVariable Integer lev) {
+        Object object = redisUtil.get(RedisKeyType.LOC_MAP_BASE.key);
+        if (object == null) {
+            return R.error("鍦板浘鏈垵濮嬪寲");
         }
-
-        return R.ok();
+        List<List<HashMap<String, Object>>> mapNodeList = (List<List<HashMap<String, Object>>>) object;
+        List<LocMast> locMastList = locMastService.selectLocByLev(lev);
+        for (LocMast locMast : locMastList) {
+            String[] locType = locMast.getLocType().split("-");
+            HashMap<String, Object> mapNode = mapNodeList.get(Integer.parseInt(locType[0])).get(Integer.parseInt(locType[1]));
+            mapNode.put("locSts", locMast.getLocSts());
+            mapNode.put("locNo", locMast.getLocNo());
+        }
+        return R.ok().add(mapNodeList);
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java
index 9f2d29e..d3beb2f 100644
--- a/src/main/java/com/zy/asrs/controller/LocMastController.java
+++ b/src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -188,10 +188,13 @@
                 LocMast locMast = new LocMast();
                 int row = (int) map.get("row");
                 int bay = (int) map.get("bay");
+                int mapX = (int) map.get("mapX");
+                int mapY = (int) map.get("mapY");
                 locMast.setLocNo(Utils.getLocNo(row, bay, finalLev));
                 locMast.setRow1(row);
                 locMast.setBay1(bay);
                 locMast.setLev1(finalLev);
+                locMast.setLocType(Utils.getLocNo(mapX, mapY, finalLev));
                 locMast.setStatus(1);
                 locMast.setAppeTime(new Date());
                 locMastService.insert(locMast);
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 388b99a..1588dd6 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -21,4 +21,7 @@
     List<LocMast> selectEmptyLocNos(@Param("locNos") List<String> locNos);
 
     List<LocMast> selectNotEmptyLocNos(@Param("locNos") List<String> locNos);
+
+    //鏌ヨ鎵�鏈夋ゼ灞�
+    List<Integer> getLevList();
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index de5270c..92edc4c 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -17,4 +17,7 @@
     List<LocMast> selectEmptyLocNos(List<String> locNos);
 
     List<LocMast> selectNotEmptyLocNos(List<String> locNos);
+
+    //鏌ヨ鎵�鏈夋ゼ灞�
+    List<Integer> getLevList();
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index 3fabe71..84f3c58 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -1,7 +1,6 @@
 package com.zy.asrs.service.impl;
 
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
-import com.core.common.Cools;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.mapper.LocMastMapper;
 import com.zy.asrs.service.LocMastService;
@@ -41,4 +40,9 @@
         }
         return this.baseMapper.selectNotEmptyLocNos(locNos);
     }
+
+    @Override
+    public List<Integer> getLevList() {
+        return this.baseMapper.getLevList();
+    }
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index a2afd87..89b3b41 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1,13 +1,22 @@
 package com.zy.asrs.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.core.common.Cools;
 import com.zy.asrs.entity.BasMap;
+import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.service.BasMapService;
+import com.zy.asrs.utils.Utils;
+import com.zy.common.utils.RedisUtil;
+import com.zy.core.enums.MapNodeType;
+import com.zy.core.enums.RedisKeyType;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -19,14 +28,47 @@
 
     @Autowired
     private BasMapService basMapService;
+    @Autowired
+    private RedisUtil redisUtil;
 
-    // 鍒濆鍖栧簱浣嶅湴鍥�
+    //鍒濆鍖栧簱浣嶅湴鍥炬暟鎹粨鏋�
     public void initLocMap() {
-        List<BasMap> basMaps = basMapService.selectList(new EntityWrapper<BasMap>().orderBy("lev", true));
-        ArrayList<Integer> levList = new ArrayList<>();
-        for (BasMap basMap : basMaps) {
-            levList.add(basMap.getLev());
+        Object object = redisUtil.get(RedisKeyType.LOC_MAP_BASE.key);
+        if (object != null) {
+            return;
         }
+
+        BasMap basMap = basMapService.selectOne(new EntityWrapper<BasMap>().eq("lev", 1));
+        if (Cools.isEmpty(basMap)){
+            //缂哄皯鍒濆鍖栧簱浣嶅湴鍥�
+            return;
+        }
+
+        List<List<JSONObject>> dataList = JSON.parseObject(basMap.getData(), List.class);
+        List<List<HashMap<String, Object>>> mapNodeList = new ArrayList<>();
+        for (int i = 0; i < dataList.size(); i++) {
+            List<JSONObject> row = dataList.get(i);
+            List<HashMap<String, Object>> mapNodeRow = new ArrayList<>();
+
+            for (int j = 0; j < row.size(); j++) {
+                JSONObject map = row.get(j);
+
+                HashMap<String, Object> mapNode = new HashMap<>();
+                mapNode.put("id", i + "-" + j);
+
+                String nodeType = map.getString("type");
+                if("shelf".equals(nodeType)) {
+                    mapNode.put("value", MapNodeType.NORMAL_PATH.id);
+                }else {
+                    mapNode.put("value", MapNodeType.DISABLE.id);
+                }
+
+                mapNodeRow.add(mapNode);
+            }
+            mapNodeList.add(mapNodeRow);
+        }
+
+        redisUtil.set(RedisKeyType.LOC_MAP_BASE.key, mapNodeList);
     }
 
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index fcb313a..0ddb41a 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -41,7 +41,7 @@
                         continue;
                     }
 
-                    // 鍒濆鍖栧簱浣嶅湴鍥�
+                    // 鍒濆鍖栧簱浣嶅湴鍥炬暟鎹粨鏋�
                     mainService.initLocMap();
 
                     // 闂撮殧
diff --git a/src/main/java/com/zy/core/enums/RedisKeyType.java b/src/main/java/com/zy/core/enums/RedisKeyType.java
index 8c44cd7..b62c040 100644
--- a/src/main/java/com/zy/core/enums/RedisKeyType.java
+++ b/src/main/java/com/zy/core/enums/RedisKeyType.java
@@ -17,7 +17,7 @@
     LOG_LIMIT("log_limit_"),
     SYSTEM_CONFIG_MAP("system_config_map"),
 
-    MAP("map_"),
+    LOC_MAP_BASE("loc_map_base"),
     ;
 
     public String key;
diff --git a/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java b/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
index 4629f30..694ef52 100644
--- a/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
@@ -167,7 +167,7 @@
                     }
                 }
                 idx++;
-                Thread.sleep(500L);
+                Thread.sleep(500);
             } while (idx < 5);
 
             if (command.getAckFinish() == 0) {
@@ -184,7 +184,7 @@
                         }
                     }
                     i++;
-                    Thread.sleep(500L);
+                    Thread.sleep(500);
                 } while (i < 5);
             }
 
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 85017c4..153d314 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -56,4 +56,8 @@
         and loc_sts not in ('O')
         order by row1
     </select>
+
+    <select id="getLevList" resultType="java.lang.Integer">
+        select distinct lev1 from asr_loc_mast
+    </select>
 </mapper>
diff --git a/src/main/webapp/views/locMap/locMap.html b/src/main/webapp/views/locMap/locMap.html
index bf5fa32..a8a34d1 100644
--- a/src/main/webapp/views/locMap/locMap.html
+++ b/src/main/webapp/views/locMap/locMap.html
@@ -238,101 +238,22 @@
           }
         });
       },
-      getShuttleStateInfo() {
-        this.sendWs(JSON.stringify({
-          "url": "/shuttle/table/shuttle/state",
-          "data": {}
-        }))
-      },
-      setShuttleStateInfo(res) {
-        // 鍥涘悜绌挎杞︿俊鎭〃鑾峰彇
-        let that = this
-        if (res.code == 200) {
-          let currentLevShuttle = []//褰撳墠妤煎眰灏忚溅闆嗗悎
-          res.data.forEach((item,idx) => {
-            if (item != null && item.point != undefined && item.point != null) {
-              if (item.point.z == that.currentLev) {
-                currentLevShuttle.push(item);
-              }
-            }
-          })
-          that.shuttleList = res.data
-          if (that.shuttleColorList.length == 0) {
-            let colorList = []//闅忔満灏忚溅棰滆壊
-            res.data.forEach((item,idx) => {
-              colorList[item.shuttleNo] = that.colorRGB()
-            })
-            that.shuttleColorList = colorList
-          }
-
-          const result = this.findShuttleDiffList(this.currentLevShuttleList, currentLevShuttle);
-          if (!result) {
-            //灏忚溅瀛樺湪鍙樺姩锛岄噸鏂版覆鏌撳叏閮ㄥ皬杞�
-            pixiShuttleMap.forEach((shuttle,index) => {
-              pixiApp.stage.removeChild(shuttle)
-              pixiShuttleMap.delete(index)
-            })
-
-            currentLevShuttle.forEach((item,index) => {
-              pixiApp.loader.load((loader, resources) => {
-                // 绾圭悊鍒涘缓灏忚溅
-                const shuttle = new PIXI.Sprite(resources.shuttle.texture);
-                shuttle.width = width
-                shuttle.height = height
-                shuttle.x = (item.wcsPoint.y - 0) * width;//鏇存柊鍧愭爣x
-                shuttle.y = (item.wcsPoint.x - 1) * height;//鏇存柊鍧愭爣y
-                shuttle.updateMoveStatus = true;//鍔ㄧ敾鎵ц瀹屾垚
-                shuttle.interactive = true; // 蹇呴』瑕佽缃墠鑳芥帴鏀朵簨浠�
-                shuttle.buttonMode = true; // 璁╁厜鏍囧湪hover鏃跺彉涓烘墜鍨嬫寚閽�
-                shuttle.on('pointerdown', (e) => {
-                  this.drawerShuttle = true;
-                  this.drawerShuttleData = item;
-                })
-                pixiApp.stage.addChild(shuttle);
-                pixiShuttleMap.set(item.shuttleNo, shuttle);
-              })
-
-              if (item.moveAdvancePath != null && item.moveAdvancePath.length > 0) {//瀛樺湪棰勮璺緞锛岃繘琛屾覆鏌�
-                this.addMoveAdvancePath(item.moveAdvancePath, item.shuttleNo);//娣诲姞棰勮璺緞
-              }
-
-            })
-          }else {
-            //灏忚溅涓嶅瓨鍦ㄥ彉鍔紝娓叉煋灏忚溅浣嶇疆
-            currentLevShuttle.forEach((item,index) => {
-              this.updateShuttleXY(item)
-            })
-
-            const resultPath = this.findShuttlePathDiffList(JSON.parse(JSON.stringify(this.currentLevShuttleList)), JSON.parse(JSON.stringify(currentLevShuttle)));
-            if (!resultPath) {
-              //棰勮璺緞瀛樺湪鍙樺姩锛屾覆鏌撹矾寰�
-              currentLevShuttle.forEach((item,index) => {
-                //鍒犻櫎棰勮璺緞
-                this.removeMoveAdvancePath(item.shuttleNo);
-                if (item.moveAdvancePath != null && item.moveAdvancePath.length > 0) {//瀛樺湪棰勮璺緞锛岃繘琛屾覆鏌�
-                  this.addMoveAdvancePath(item.moveAdvancePath, item.shuttleNo);//娣诲姞棰勮璺緞
-                }
-              })
-            }
-          }
-          that.currentLevShuttleList = currentLevShuttle;
-        }
-      },
       //鑾峰彇鍦板浘鏁版嵁
       getMap(lev) {
-        this.sendWs(JSON.stringify({
-          "url": "/console/locMap/auth",
-          "data": lev
-        }))
-      },
-      setMap(res) {
-        //鑾峰彇鍦板浘鏁版嵁
-        let data = res.data
-        let tmp = []
-        for (let i = 1; i < data.length - 1; i++) {
-          tmp.push(data[i])
-        }
-        this.createMapData(tmp)
+        let that = this;
+          $.ajax({
+              url: baseUrl + "/console/map/" + lev + "/auth",
+              headers: {
+                  'token': localStorage.getItem('token')
+              },
+              data: {},
+              method: 'get',
+              success: function(res) {
+                //鑾峰彇鍦板浘鏁版嵁
+                let data = res.data
+                that.createMapData(data)
+              }
+          })
       },
       changeFloor(lev) {
         this.currentLev = lev
@@ -365,7 +286,7 @@
         pixiApp.loader.add('shuttle', '../static/images/sxcar.png');
 
         // 浠嶨raphics瀵硅薄鍒涘缓涓�涓汗鐞�
-		graphicsF = pixiApp.renderer.generateTexture(getContainer(1000));
+		    graphicsF = pixiApp.renderer.generateTexture(getContainer(1000));
         graphics0 = pixiApp.renderer.generateTexture(getContainer(0));
         graphics3 = pixiApp.renderer.generateTexture(getContainer(3));
         graphics4 = pixiApp.renderer.generateTexture(getContainer(4));
@@ -478,7 +399,6 @@
           this.reloadMap = false
           pixiStageList = [map.length]//鍒濆鍖栧垪琛�
           pixiStaMap = new Map();//閲嶇疆
-
           objectsContainer.removeChildren()
           map.forEach((item,index) => {
             pixiStageList[index] = [item.length]

--
Gitblit v1.9.1