From 877b2519157cea762b1e63e9c57c09614216d684 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期四, 24 七月 2025 19:27:46 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/utils/NavigateUtils.java | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/zy/common/utils/NavigateUtils.java b/src/main/java/com/zy/common/utils/NavigateUtils.java index dd88872..d49b64b 100644 --- a/src/main/java/com/zy/common/utils/NavigateUtils.java +++ b/src/main/java/com/zy/common/utils/NavigateUtils.java @@ -2,6 +2,8 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.utils.Utils; import com.zy.common.model.MapNode; @@ -10,6 +12,8 @@ import com.zy.core.News; import com.zy.core.enums.MapNodeType; import com.zy.core.model.PythonSimilarityResult; +import com.zy.system.entity.Config; +import com.zy.system.service.ConfigService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -30,6 +34,10 @@ private String pythonCalcSimilarity; @Autowired private NavigateMapData navigateMapData; + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + @Autowired + private ConfigService configService; public List<NavigateNode> calc(String startPoint, String endPoint, List<NavigationMapType> mapTypes, List<int[]> shuttlePoints, List<int[]> whites) { return calcJava(startPoint, endPoint, mapTypes, shuttlePoints, whites); @@ -315,15 +323,23 @@ //灏嗘渶鍚庝竴娈垫暟鎹坊鍔犺繘鍏� list.add(data); + //鍒嗘璺緞-澶勭悊瓒呴暱鐩寸嚎娈佃矾寰� List<List<NavigateNode>> paths = getSectionPathToSplitOverLength(list); return paths; } //鍒嗘璺緞-澶勭悊瓒呴暱鐩寸嚎娈佃矾寰� public List<List<NavigateNode>> getSectionPathToSplitOverLength(List<List<NavigateNode>> list) { + int overLength = 9;//榛樿9鑺� + Config shuttleMoveOverLengthConfig = configService.selectOne(new EntityWrapper<Config>().eq("code", "shuttleMoveOverLength")); + if (shuttleMoveOverLengthConfig != null) { + overLength = Integer.parseInt(shuttleMoveOverLengthConfig.getValue()); + } + List<List<NavigateNode>> paths = new ArrayList<>(); - int overLength = 9; for (List<NavigateNode> nodes : list) { + long nextId = snowflakeIdWorker.nextId(); + if (nodes.size() > overLength) { List<NavigateNode> copy = JSON.parseArray(JSON.toJSONString(nodes), NavigateNode.class); List<NavigateNode> tmp = new ArrayList<>(); @@ -337,10 +353,12 @@ if (lastNode == null) { NavigateNode startNode = tmp.get(0); startNode.setLinePartAllowGo(true);//鐩寸嚎娈佃秴闀块儴鍒嗗厑璁哥洿鎺ヨ璧� + startNode.setLinePartFlag(nextId);//鐩寸嚎娈垫暟鎹爣璇� tmp.set(0, startNode); } NavigateNode targetNode = tmp.get(tmp.size() - 1); targetNode.setLinePartAllowGo(true);//鐩寸嚎娈佃秴闀块儴鍒嗗厑璁哥洿鎺ヨ璧� + targetNode.setLinePartFlag(nextId);//鐩寸嚎娈垫暟鎹爣璇� if (lastNode != null) { tmp.add(0, lastNode); } @@ -357,6 +375,10 @@ paths.add(tmp); } }else { + NavigateNode startNode = nodes.get(0); + startNode.setLinePartAllowGo(true);//鐩寸嚎娈佃秴闀块儴鍒嗗厑璁哥洿鎺ヨ璧� + startNode.setLinePartFlag(nextId);//鐩寸嚎娈垫暟鎹爣璇� + nodes.set(0, startNode); paths.add(nodes); } } -- Gitblit v1.9.1