From 23733d8b91d0a5e83dc47978db12f6aea102975a Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 27 二月 2025 08:58:16 +0800
Subject: [PATCH] #
---
zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java | 95 ++++++++++++++++++-----------------------------
1 files changed, 37 insertions(+), 58 deletions(-)
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
index 19641c9..d527847 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java
@@ -4,11 +4,12 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.zy.asrs.common.wms.entity.BasMap;
import com.zy.asrs.framework.common.SpringUtils;
+import com.zy.asrs.wcs.core.domain.dto.BasMapDto;
import com.zy.asrs.wcs.core.domain.dto.RedisMapDto;
import com.zy.asrs.wcs.core.entity.Loc;
import com.zy.asrs.wcs.core.model.MapNode;
+import com.zy.asrs.wcs.core.model.enums.MapNodeType;
import com.zy.asrs.wcs.core.model.enums.NavigationMapType;
import com.zy.asrs.wcs.core.service.LocService;
import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant;
@@ -30,6 +31,8 @@
private LocService locService;
@Autowired
private DictService dictService;
+ @Autowired
+ private NavigateMapData navigateMapData;
private Integer lev;//鍦板浘妤煎眰
@@ -46,63 +49,27 @@
}
public int[][] getData() {
- return getData(NavigationMapType.NONE.id, null, null);//榛樿璇诲彇鏃犺繃婊ょ殑鍏ㄩ儴鍦板浘鏁版嵁
- }
-
- public int[][] getData(Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
- try {
- String mapFilename = "map_" + lev + ".json";
-
- String fileName = this.getClass().getClassLoader().getResource(mapFilename).getPath();//鑾峰彇鏂囦欢璺緞
- 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();
-
- //瑙f瀽json鍦板浘鏁版嵁
- ArrayList arrayList = JSON.parseObject(stringBuffer.toString(), ArrayList.class);
- List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
- int[][] map = new int[lists.size()][];
- int j = 0;
- for (List<MapNode> list : lists) {
- int[] tmp = new int[list.size()];
- int i = 0;
- for (MapNode mapNode : list) {
- //灏嗘暟鎹坊鍔犺繘浜岀淮鏁扮粍
- tmp[i++] = mapNode.getValue();
- }
- //鏁版嵁娣诲姞杩涗竴缁存暟缁�
- map[j++] = tmp;
- }
-
- return map;
- } else {
- System.out.println("鏂囦欢涓嶅瓨鍦�!");
- }
- } catch (IOException ioException) {
- ioException.printStackTrace();
- }
- return null;
+ return getDataFromRedis(NavigationMapType.NONE.id, null, null);//榛樿璇诲彇鏃犺繃婊ょ殑鍏ㄩ儴鍦板浘鏁版嵁
}
/**
* 灏濊瘯浠巖edis鑾峰彇鏁版嵁
*/
public int[][] getDataFromRedis(Integer mapType, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+ String constantMap = DeviceRedisConstant.MAP;
+ if(mapType == NavigationMapType.NONE_LOCK.id){
+ constantMap = DeviceRedisConstant.BASE_MAP;
+ }
+
RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
- Object o = redisUtil.get(DeviceRedisConstant.MAP + lev);
+ Object o = redisUtil.get(constantMap + lev);
if (o == null) {
return null;
}
- BasMap basMap = JSON.parseObject(o.toString(), BasMap.class);
- return this.getDataFormString(basMap.getData(), mapType, whitePoints, shuttlePoints);
+ BasMapDto basMap = JSON.parseObject(o.toString(), BasMapDto.class);
+ String mapData = basMap.getData();
+ return this.getDataFormString(mapData, mapType, whitePoints, shuttlePoints);
}
/**
@@ -177,6 +144,17 @@
mapNode.setNo(object.getString("row") + "-" + object.getString("bay"));
mapNode.setXBase(object.getInteger("refx"));
mapNode.setYBase(object.getInteger("refy"));
+
+ if(mapNode.getValue() == MapNodeType.CONVEYOR.id) {
+ //杈撻�佺嚎,鍒ゆ柇灏忚溅鏄惁鍙蛋
+ if (object.containsKey("conveyorHasGo")) {
+ if(object.getBoolean("conveyorHasGo")) {
+ //灏忚溅鍙蛋
+ mapNode.setValue(MapNodeType.CONVEYOR_CAR_GO.id);
+ }
+ }
+ }
+
nodes.add(mapNode);
}
@@ -199,7 +177,7 @@
//瀛樺湪绌虹己鑺傜偣锛岃嚜鍔ㄨˉ瓒�
for (int i = defaultBay; i < node.getBay(); i++) {
MapNode mapNode = new MapNode();
- mapNode.setValue(-1);
+ mapNode.setValue(MapNodeType.DISABLE.id);
mapNode.setTop(1000);
mapNode.setBottom(1000);
mapNode.setLeft(1000);
@@ -226,7 +204,7 @@
ArrayList<ArrayList<MapNode>> lists = entry.getValue();//鑾峰彇鍦板浘
MapNode mapNode = new MapNode();
- mapNode.setValue(-1);
+ mapNode.setValue(MapNodeType.DISABLE.id);
mapNode.setTop(1000);
mapNode.setBottom(1000);
mapNode.setLeft(1000);
@@ -283,7 +261,7 @@
return null;
}
- BasMap basMap = JSON.parseObject(o.toString(), BasMap.class);
+ BasMapDto basMap = JSON.parseObject(o.toString(), BasMapDto.class);
ArrayList arrayList = JSON.parseObject(basMap.getData(), ArrayList.class);
List<List<MapNode>> lists = filterMap(mapType, arrayList, lev, whitePoints, shuttlePoints);//杩囨护鍦板浘鏁版嵁
return lists;
@@ -314,6 +292,7 @@
//鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁
List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>()
.eq(Loc::getLev, lev)
+ .eq(Loc::getStatus, 1)
.orderByAsc(Loc::getRow, Loc::getBay));
for (Loc loc : locs) {
Integer row = loc.getRow();
@@ -342,16 +321,16 @@
} else if (mapType == NavigationMapType.DFX.id) {
//杞﹁締鏈夎揣
//璇诲彇瀵瑰簲搴撲綅鏁版嵁锛屽皢DFX搴撲綅鐘舵�佺殑鑺傜偣缃负-1(闅滅鐗�)
- if (loc.getLocSts$().equals("F")
- || loc.getLocSts$().equals("D")
- || loc.getLocSts$().equals("X")
+ if (loc.getLocStsFlag().equals("F")
+ || loc.getLocStsFlag().equals("D")
+ || loc.getLocStsFlag().equals("X")
) {
- mapNode.setValue(-1);//绂佺敤鑺傜偣
+ mapNode.setValue(MapNodeType.DISABLE.id);//绂佺敤鑺傜偣
}
- } else if (mapType == NavigationMapType.NORMAL.id) {
+ } else if (mapType == NavigationMapType.NORMAL.id || mapType == NavigationMapType.NONE_LOCK.id) {
//杩囨护搴撲綅鐘舵�乆
- if (loc.getLocSts$().equals("X")) {
- mapNode.setValue(-1);//绂佺敤鑺傜偣
+ if (loc.getLocStsFlag().equals("X")) {
+ mapNode.setValue(MapNodeType.DISABLE.id);//绂佺敤鑺傜偣
}
}
@@ -367,7 +346,7 @@
int y = points[1];
List<MapNode> list = lists.get(x);
MapNode mapNode = list.get(y);
- mapNode.setValue(66);//璁剧疆涓鸿溅杈嗕唬鐮�66
+ mapNode.setValue(MapNodeType.CAR.id);//璁剧疆涓鸿溅杈嗕唬鐮�66
//鏇存柊list
list.set(y, mapNode);
lists.set(x, list);
--
Gitblit v1.9.1