From 8ef2bb5e46d84594e6ed632c07ea0b47a1bf6c4d Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 11 十二月 2024 16:15:17 +0800 Subject: [PATCH] #path similarity --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateMapData.java | 127 +++++++++++++++++++++++------------------- 1 files changed, 69 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 d27a157..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,8 +4,8 @@ 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; @@ -31,6 +31,8 @@ private LocService locService; @Autowired private DictService dictService; + @Autowired + private NavigateMapData navigateMapData; private Integer lev;//鍦板浘妤煎眰 @@ -54,14 +56,20 @@ * 灏濊瘯浠巖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); } /** @@ -136,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); } @@ -242,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; @@ -269,63 +288,55 @@ lists.add(list); } - //鑾峰彇涓ユ牸妯″紡鍙傛暟 - boolean mapStrict = true;//榛樿涓ユ牸妯″紡 - Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); - if (dict != null) { - mapStrict = Boolean.parseBoolean(dict.getValue()); - } + //杩囨护鏁版嵁 + //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁 + 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(); + Integer bay = loc.getBay(); - if (mapStrict) {//涓ユ牸妯″紡涓嬶紝杞藉叆搴撲綅鐘舵�� - //杩囨护鏁版嵁 - //鑾峰彇褰撳墠妤煎眰搴撲綅鏁版嵁 - List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>() - .eq(Loc::getLev, lev) - .orderByAsc(Loc::getRow, Loc::getBay)); - for (Loc loc : locs) { - Integer row = loc.getRow(); - Integer bay = loc.getBay(); - - boolean whiteFlag = false;//榛樿涓嶅瓨鍦ㄧ櫧鍚嶅崟 - if (whitePoints != null) { - for (int[] whitePoint : whitePoints) { - if (whitePoint[0] == row && whitePoint[1] == bay) { - //瀛樺湪鐧藉悕鍗� - whiteFlag = true; - break; - } + boolean whiteFlag = false;//榛樿涓嶅瓨鍦ㄧ櫧鍚嶅崟 + if (whitePoints != null) { + for (int[] whitePoint : whitePoints) { + if (whitePoint[0] == row && whitePoint[1] == bay) { + //瀛樺湪鐧藉悕鍗� + whiteFlag = true; + break; } } - if (whiteFlag) { - continue;//瀛樺湪鐧藉悕鍗曪紝涓嶆墽琛屼笅鍒楄繃婊ゆ柟妗� - } - - - List<MapNode> list = lists.get(row); - MapNode mapNode = list.get(bay); - - if (mapType == NavigationMapType.NONE.id) { - //涓嶈繃婊や换浣曟暟鎹� - } else if (mapType == NavigationMapType.DFX.id) { - //杞﹁締鏈夎揣 - //璇诲彇瀵瑰簲搴撲綅鏁版嵁锛屽皢DFX搴撲綅鐘舵�佺殑鑺傜偣缃负-1(闅滅鐗�) - if (loc.getLocSts$().equals("F") - || loc.getLocSts$().equals("D") - || loc.getLocSts$().equals("X") - ) { - mapNode.setValue(MapNodeType.DISABLE.id);//绂佺敤鑺傜偣 - } - } else if (mapType == NavigationMapType.NORMAL.id) { - //杩囨护搴撲綅鐘舵�乆 - if (loc.getLocSts$().equals("X")) { - mapNode.setValue(MapNodeType.DISABLE.id);//绂佺敤鑺傜偣 - } - } - - //鏇存柊list - list.set(bay, mapNode); - lists.set(row, list); } + if (whiteFlag) { + continue;//瀛樺湪鐧藉悕鍗曪紝涓嶆墽琛屼笅鍒楄繃婊ゆ柟妗� + } + + + List<MapNode> list = lists.get(row); + MapNode mapNode = list.get(bay); + + if (mapType == NavigationMapType.NONE.id) { + //涓嶈繃婊や换浣曟暟鎹� + } else if (mapType == NavigationMapType.DFX.id) { + //杞﹁締鏈夎揣 + //璇诲彇瀵瑰簲搴撲綅鏁版嵁锛屽皢DFX搴撲綅鐘舵�佺殑鑺傜偣缃负-1(闅滅鐗�) + if (loc.getLocStsFlag().equals("F") + || loc.getLocStsFlag().equals("D") + || loc.getLocStsFlag().equals("X") + ) { + mapNode.setValue(MapNodeType.DISABLE.id);//绂佺敤鑺傜偣 + } + } else if (mapType == NavigationMapType.NORMAL.id || mapType == NavigationMapType.NONE_LOCK.id) { + //杩囨护搴撲綅鐘舵�乆 + if (loc.getLocStsFlag().equals("X")) { + mapNode.setValue(MapNodeType.DISABLE.id);//绂佺敤鑺傜偣 + } + } + + //鏇存柊list + list.set(bay, mapNode); + lists.set(row, list); } //鍔犺浇杞﹁締鍧愭爣鍒板湴鍥句腑 -- Gitblit v1.9.1