From 137027254b46cda62cf13c8abe593d575ef12b8e Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Mon, 1 Dec 2025 10:17:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E8=BD=A6=E8=A7=84=E5=88=92=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=20=E5=A6=82=E6=9E=9C=E6=97=A0=E6=9C=80=E7=9F=AD?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=20=E5=88=A4=E6=96=AD=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E6=98=AF1=E5=B1=82=E5=8E=BB=E9=81=BF=E8=AE=A9=E7=82=B9?= =?UTF-8?q?=E6=88=96=E8=80=85=E5=87=BA=E5=BA=93=E7=BC=93=E5=AD=98=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduleTask/srgv/BaseSRgvThread.java | 58 ++++++++++++++++++- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java index beb9bd7..1f15d00 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/scheduleTask/srgv/BaseSRgvThread.java @@ -411,8 +411,62 @@ public class BaseSRgvThread implements Runnable, SRgvThreadInterface { //判断是否能规划出最短路径 if (shortestPath == null || shortestPath.isEmpty()) { - log.error("无最短路径 taskNo:{}", wcsSrgvQueue.getTaskNo()); - return false; + //判断是否是1层 空车取货 或者 满车放货 + if (floor==1){ + if ("2".equals(wcsSrgvQueue.getDefault02()) && "tsj".equals(wcsSrgvQueue.getStartSite()) && wcsSrgvQueue.getEndSite().equals(wcsSrgvQueue.getCargoPlaceSite())){ + //1层满车放货 + //修改终点到出库缓存点 + WcsSrgvMap wcsSrgvMapParam = new WcsSrgvMap(); + wcsSrgvMapParam.setRemark("outCache"); + List wcsSrgvMaps = wcsSrgvMapService.selectWcsSrgvMapList(wcsSrgvMapParam); + List cacheSite = wcsSrgvMaps.stream().map(WcsSrgvMap::getSiteId).collect(Collectors.toList()); + List currentSRgvSite = new ArrayList<>(); + for (String srgvCode : PlcSrgvRead.deviceSrgvMap.keySet()) { + currentSRgvSite.add(PlcSrgvRead.deviceSrgvMap.get(srgvCode).getCurrSite()); + } + cacheSite.removeAll(currentSRgvSite); + if (CollUtil.isNotEmpty(cacheSite)){ + for (String cache : cacheSite) { + WcsSrgvQueue wcsSrgvQueueParam = new WcsSrgvQueue(); + wcsSrgvQueueParam.setEndSite(cache); + List wcsSrgvQueues = wcsSagvQueueMapper.selectWcsSrgvQueueList(wcsSrgvQueueParam); + if (CollUtil.isEmpty(wcsSrgvQueues)){ + wcsSrgvQueue.setEndSite(cacheSite.get(0)); + wcsSagvQueueMapper.updateWcsSrgvQueue(wcsSrgvQueue); + break; + } + } + + } + } + if ("4".equals(wcsSrgvQueue.getDefault02()) && "tsj".equals(wcsSrgvQueue.getStartSite()) && wcsSrgvQueue.getEndSite().equals(wcsSrgvQueue.getCargoPickSite())){ + //1层空车取货 + //修改终点到避让点 + WcsSrgvMap wcsSrgvMapParam = new WcsSrgvMap(); + wcsSrgvMapParam.setRemark("cache"); + List wcsSrgvMaps = wcsSrgvMapService.selectWcsSrgvMapList(wcsSrgvMapParam); + List cacheSite = wcsSrgvMaps.stream().map(WcsSrgvMap::getSiteId).collect(Collectors.toList()); + List currentSRgvSite = new ArrayList<>(); + for (String srgvCode : PlcSrgvRead.deviceSrgvMap.keySet()) { + currentSRgvSite.add(PlcSrgvRead.deviceSrgvMap.get(srgvCode).getCurrSite()); + } + cacheSite.removeAll(currentSRgvSite); + if (CollUtil.isNotEmpty(cacheSite)){ + for (String cache : cacheSite) { + WcsSrgvQueue wcsSrgvQueueParam = new WcsSrgvQueue(); + wcsSrgvQueueParam.setEndSite(cache); + List wcsSrgvQueues = wcsSagvQueueMapper.selectWcsSrgvQueueList(wcsSrgvQueueParam); + if (CollUtil.isEmpty(wcsSrgvQueues)){ + wcsSrgvQueue.setEndSite(cacheSite.get(0)); + wcsSagvQueueMapper.updateWcsSrgvQueue(wcsSrgvQueue); + break; + } + } + + } + } + + } } //获取拐点路径