#
Junjie
2024-04-12 b7a88cf890d7259d2164bef402be3e8423a38007
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapUtils.java
@@ -1,12 +1,13 @@
package com.zy.asrs.wcs.core.utils;
import com.alibaba.fastjson.JSON;
import com.zy.asrs.common.wms.entity.BasMap;
import com.zy.asrs.framework.common.SpringUtils;
import com.zy.asrs.wcs.core.domain.dto.RedisMapDto;
import com.zy.asrs.wcs.core.model.MapNode;
import com.zy.asrs.wcs.core.model.NavigateNode;
import com.zy.asrs.wcs.core.model.enums.NavigationMapType;
import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
@@ -15,6 +16,9 @@
@Component
public class NavigateMapUtils {
    @Autowired
    private NavigateMapData navigateMapData;
    /**
     * 写入路径节点数据到redis地图中
@@ -27,8 +31,7 @@
                return true;
            }
            NavigateMapData navigateMapData = new NavigateMapData(lev);
            navigateMapData.setLev(lev);
            Object o = redisUtil.get(DeviceRedisConstant.MAP + lev);
            if (o == null) {
                return false;
@@ -37,8 +40,8 @@
            //获取小车节点
            List<int[]> shuttlePoints = Utils.getShuttlePoints(shuttleNo, lev);
            BasMap basMap = JSON.parseObject(o.toString(), BasMap.class);
            ArrayList arrayList = JSON.parseObject(basMap.getData(), ArrayList.class);
            RedisMapDto redisMap = JSON.parseObject(o.toString(), RedisMapDto.class);
            ArrayList arrayList = JSON.parseObject(redisMap.getData(), ArrayList.class);
            //带小车地图
            List<List<MapNode>> listsHasShuttle = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, shuttlePoints);//获取带小车地图数据
            List<List<MapNode>> lists = navigateMapData.filterMap(NavigationMapType.NONE.id, arrayList, lev, null, null);//获取全部地图数据
@@ -58,8 +61,8 @@
            }
            //尝试锁定/解锁路径
            NavigateMapData mapData = new NavigateMapData(nodes.get(0).getZ());
            List<List<MapNode>> realMap = mapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库)
            navigateMapData.setLev(nodes.get(0).getZ());
            List<List<MapNode>> realMap = navigateMapData.getJsonData(-1, null, null);//获取完整地图(包括入库出库)
            for (NavigateNode node : nodes) {
                if (node.getZ() != lev) {
                    continue;
@@ -79,10 +82,10 @@
                listX.set(node.getY(), mapNode);
                lists.set(node.getX(), listX);
            }
            basMap.setData(JSON.toJSONString(lists));
            basMap.setUpdateTime(new Date());
            redisMap.setData(JSON.toJSONString(lists));
            redisMap.setUpdateTime(new Date());
            //将数据库地图数据存入redis
            redisUtil.set(DeviceRedisConstant.MAP + lev, JSON.toJSONString(basMap));
            redisUtil.set(DeviceRedisConstant.MAP + lev, JSON.toJSONString(redisMap));
            return true;
        } catch (Exception e) {
            e.printStackTrace();