小车规划路径 如果无最短路径 判断是否是1层去避让点或者出库缓存点
This commit is contained in:
@@ -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<WcsSrgvMap> wcsSrgvMaps = wcsSrgvMapService.selectWcsSrgvMapList(wcsSrgvMapParam);
|
||||
List<String> cacheSite = wcsSrgvMaps.stream().map(WcsSrgvMap::getSiteId).collect(Collectors.toList());
|
||||
List<String> 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<WcsSrgvQueue> 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<WcsSrgvMap> wcsSrgvMaps = wcsSrgvMapService.selectWcsSrgvMapList(wcsSrgvMapParam);
|
||||
List<String> cacheSite = wcsSrgvMaps.stream().map(WcsSrgvMap::getSiteId).collect(Collectors.toList());
|
||||
List<String> 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<WcsSrgvQueue> wcsSrgvQueues = wcsSagvQueueMapper.selectWcsSrgvQueueList(wcsSrgvQueueParam);
|
||||
if (CollUtil.isEmpty(wcsSrgvQueues)){
|
||||
wcsSrgvQueue.setEndSite(cacheSite.get(0));
|
||||
wcsSagvQueueMapper.updateWcsSrgvQueue(wcsSrgvQueue);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//获取拐点路径
|
||||
|
||||
Reference in New Issue
Block a user