From 20468100e3b839a3117c6b59ffe2f3202d3c3e2c Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期一, 19 五月 2025 20:14:58 +0800 Subject: [PATCH] # --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java | 29 +++++++------- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java | 36 +++++++++++++++++ 2 files changed, 49 insertions(+), 16 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java index 6882508..e51f7c7 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/MainServiceImpl.java @@ -23,10 +23,7 @@ import com.zy.asrs.wcs.core.model.command.LiftCommand; import com.zy.asrs.wcs.core.model.enums.*; import com.zy.asrs.wcs.core.service.*; -import com.zy.asrs.wcs.core.utils.OpenUtils; -import com.zy.asrs.wcs.core.utils.RedisUtil; -import com.zy.asrs.wcs.core.utils.ShuttleDispatcher; -import com.zy.asrs.wcs.core.utils.Utils; +import com.zy.asrs.wcs.core.utils.*; import com.zy.asrs.wcs.rcs.News; import com.zy.asrs.wcs.rcs.cache.SlaveConnection; import com.zy.asrs.wcs.rcs.constant.DeviceRedisConstant; @@ -95,6 +92,8 @@ private OpenUtils openUtils; @Autowired private LiftAction liftAction; + @Autowired + private NavigateUtils navigateUtils; /** * 缁勬墭 @@ -779,10 +778,6 @@ * 鍑哄簱 ====>> 鍚屼竴鏃堕棿涓�鍙扮┛姊溅鍙兘鏈変竴涓嚭搴撲换鍔� */ public synchronized void analyzeOutBoundTask() { - List<Task> moveTask = taskService.selectWaitAnalyzeMoveTask(); - if (!moveTask.isEmpty()) { - return; - } List<Task> tasks = taskService.selectPakOut(); if (tasks.isEmpty()) { return; @@ -815,13 +810,11 @@ // continue; // } -// //鍚屽簱浣嶇粍鏍¢獙 -// List<String> outerLoc = Utils.getGroupOuterLoc(wrkMast.getSourceLocNo()); -// List<LocMast> outerLocMasts = locMastService.selectNotEmptyLocNos(outerLoc); -// if (!outerLocMasts.isEmpty()) { -// News.info("{}浠诲姟锛屾祬搴撲綅瀛樺湪璐х墿锛岀郴缁熺瓑寰呬腑", wrkMast.getWrkNo()); -// continue;//娴呭簱浣嶅瓨鍦ㄦ湭鎵ц浠诲姟 -// } + //妫�娴嬭揣鐗╂槸鍚﹀彲鍑� + boolean checkLocPathIsAvailable = navigateUtils.checkLocPathIsAvailable(task.getDestLoc(), task.getHostId()); + if(!checkLocPathIsAvailable) { + continue; + } if (Cools.isEmpty(task.getShuttleNo()) || task.getShuttleNo() ==0) { //鍒嗛厤灏忚溅 @@ -1312,6 +1305,12 @@ // 瑙f瀽灏忚溅杞借揣绉诲姩宸ヤ綔妗� public synchronized void analyzeLadenMoveTask() { for (Task task : taskService.selectWaitAnalyzeLadenMoveTask()) { + //妫�娴嬭揣鐗╂槸鍚﹀彲鍑� + boolean checkLocPathIsAvailable = navigateUtils.checkLocPathIsAvailable(task.getDestLoc(), task.getHostId()); + if(!checkLocPathIsAvailable) { + continue; + } + if (Cools.isEmpty(task.getShuttleNo())) { //鍒嗛厤灏忚溅 //鎼滅储绌洪棽杞� diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java index 4d998c0..a79de4f 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/utils/NavigateUtils.java @@ -2,13 +2,19 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.framework.common.SpringUtils; +import com.zy.asrs.wcs.core.entity.ShuttleStandby; import com.zy.asrs.wcs.core.model.MapNode; import com.zy.asrs.wcs.core.model.NavigateNode; import com.zy.asrs.wcs.core.model.PythonSimilarityResult; 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.ShuttleStandbyService; import com.zy.asrs.wcs.rcs.News; +import com.zy.asrs.wcs.rcs.entity.Device; +import com.zy.asrs.wcs.rcs.thread.LiftThread; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -26,9 +32,12 @@ @Value("${pythonCalcPath}") private String pythonCalcPath; - @Value("${pythonCalcSimilarity}") private String pythonCalcSimilarity; + @Autowired + private LiftDispatcher liftDispatcher; + @Autowired + private ShuttleStandbyService shuttleStandbyService; public List<NavigateNode> calcWhiteList(String startPoint, String endPoint, Integer mapType, List<int[]> shuttlePoints) { //閫氳繃寮�濮嬬紪鍙峰拰缁撴潫缂栧彿鑾峰彇瀵瑰簲鐨剎y杞村潗鏍� @@ -418,6 +427,31 @@ return 0D; } + //妫�娴嬪簱浣嶈矾寰勬槸鍚﹀彲鐢�(鐢ㄤ簬搴撲綅鏄惁鍙Щ鍔ㄦ娴�) + public boolean checkLocPathIsAvailable(String startLocNo, Long hostId) { + //鑾峰彇璺濈鐩爣浣嶇疆鏈�杩戠殑鍙崲灞傛彁鍗囨満(鍙兘涓嶇┖闂�) + LiftThread liftThread = liftDispatcher.searchLift(startLocNo, hostId, true); + if (liftThread == null) { + return false; + } + Device transferLiftDevice = liftThread.getDevice(); + + ShuttleStandby shuttleStandbyTo = shuttleStandbyService.getOne(new LambdaQueryWrapper<ShuttleStandby>() + .eq(ShuttleStandby::getDeviceId, transferLiftDevice.getId()) + .eq(ShuttleStandby::getDeviceLev, Utils.getLev(startLocNo)) + .eq(ShuttleStandby::getStatus, 1)); + + //鎻愬崌鏈哄簱浣嶅彿 + String liftLocNo = shuttleStandbyTo.getDeviceLoc(); + + //璁$畻搴撲綅鍒版彁鍗囨満搴撲綅锛岃矾寰勬槸鍚﹀彲鐢� + List<NavigateNode> nodeList = this.calc(startLocNo, liftLocNo, NavigationMapType.DFX.id, null); + if (nodeList == null) { + return false; + } + return true; + } + public static void main(String[] args) { // //璁$畻璺緞 // List<NavigateNode> calc = calc("1000901", "1800201", NavigationMapType.NONE.id, null); -- Gitblit v1.9.1