Commit a6319170 zshaohui

1.agv获取不到目的地修改

2.工单出库,单个料仓 交替着出
1 个父辈 c0bf202f
...@@ -315,85 +315,61 @@ public class XLRBoxHandler extends BaseDeviceHandler { ...@@ -315,85 +315,61 @@ public class XLRBoxHandler extends BaseDeviceHandler {
} }
} }
//获取到上一个出料口和下一个出料口 //最多有2个工单正在执行
String lastOutExport = lastOutExportMap.get(cid); List<DataLog> needOutTaskList = new ArrayList<>();
List<String> nextOutExportList = getNextOutExport(lastOutExport); Map<String, List<DataLog>> map = notEmptyExportList.stream().collect(Collectors.groupingBy(DataLog::getExport));
log.info(cid + "对应的上一个出料口为:" + lastOutExport+"获取到的出料口顺序为:"+JSON.toJSONString(nextOutExportList)); for (String key : map.keySet()) {
List<DataLog> groupByList = map.get(key);
//按出料口进行分组 Collections.sort(groupByList, (o1, o2) -> {
for (String nextOutExport : nextOutExportList) { String feederInfo1 = o1.getAppendData("feederInfo");
Map<String, List<DataLog>> map = notEmptyExportList.stream().collect(Collectors.groupingBy(DataLog::getExport)); String feederInfo2 = o2.getAppendData("feederInfo");
for (String key : map.keySet()) { return feederInfo1.compareTo(feederInfo2);
if (!key.startsWith(nextOutExport)) { });
continue; DataLog dataLog = null;
} if (groupByList != null && !groupByList.isEmpty()) {
List<DataLog> groupByList = map.get(key); dataLog = groupByList.get(0);
Collections.sort(groupByList, (o1, o2) -> { }
String feederInfo1 = o1.getAppendData("feederInfo"); if (dataLog != null && dataLog.isWait() && cid.equals(dataLog.getCid())) {
String feederInfo2 = o2.getAppendData("feederInfo"); String feederInfo = dataLog.getAppendData("feederInfo");
return feederInfo1.compareTo(feederInfo2); String feeder = StorageExportUtil.getCurrentExportFeeder(key);
}); log.info("UM口对应的feeder为:" + feeder + ",当前任务的feeder为:" + feederInfo);
DataLog dataLog = null; if (feederInfo.startsWith(feeder)) {
if (groupByList != null && !groupByList.isEmpty()) { needOutTaskList.add(dataLog);
dataLog = groupByList.get(0);
} }
if (dataLog != null && dataLog.isWait() && cid.equals(dataLog.getCid())) { }
String feederInfo = dataLog.getAppendData("feederInfo"); }
String feeder = StorageExportUtil.getCurrentExportFeeder(key);
log.info("UM口对应的feeder为:" + feeder + ",当前任务的feeder为:" + feederInfo);
if (feederInfo.startsWith(feeder)) { String lastOutSourceId = lastOutSourceIdMap.get(cid);
log.info("分配出库任务,站位号为:" + dataLog.getAppendData("feederInfo") + ",出料口为:" + key + ",barcode为:" + dataLog.getBarcode());
if (needOutTaskList != null && !needOutTaskList.isEmpty()) {
for (DataLog dataLog : needOutTaskList) {
if (StringUtils.isNotEmpty(lastOutSourceId)) {
if (!lastOutSourceId.equals(dataLog.getSourceId())) {
orderTask = dataLog; orderTask = dataLog;
break; break;
} }
} else {
orderTask = dataLog;
break;
} }
} }
if (orderTask != null) { if (orderTask == null) {
log.info(cid + "对应的下一个出料口为:" + orderTask.getExport()); needOutTaskList = needOutTaskList.stream().sorted(Comparator.comparing(DataLog::getCreateDate)).collect(Collectors.toList());
break; orderTask = needOutTaskList.get(0);
} }
} }
//如果没有找到,从头开始找
if (orderTask == null){ if (orderTask != null) {
lastOutExportMap.put(cid,""); log.info("分配出库任务,站位号为:" + orderTask.getAppendData("feederInfo") + ",出料口为:" + orderTask.getExport() + ",barcode为:" + orderTask.getBarcode());
lastOutSourceIdMap.put(cid, orderTask.getSourceId());
} else { } else {
lastOutExportMap.put(cid,orderTask.getExport()); lastOutSourceIdMap.put(cid, "");
} }
return orderTask; return orderTask;
} }
Map<String, String> lastOutExportMap = Maps.newConcurrentMap(); Map<String, String> lastOutSourceIdMap = Maps.newConcurrentMap();
private static List<String> getNextOutExport(String lastOutExport) {
List<String> exportList = new ArrayList<>();
exportList.add("UM1");
exportList.add("UM5");
exportList.add("UM2");
exportList.add("UM6");
exportList.add("UM3");
exportList.add("UM7");
exportList.add("UM4");
exportList.add("UM8");
int index = 0;
if (StringUtils.isEmpty(lastOutExport)) {
return exportList;
}
for (int i = 0; i < exportList.size(); i++) {
String export = exportList.get(i);
if (lastOutExport.startsWith(export)) {
index = i;
break;
}
}
index = (index + 1) >= exportList.size() ? 0 : (index + 1);
List<String> resultList = new ArrayList<>();
for (int i = index; i < exportList.size(); i++) {
resultList.add(exportList.get(i));
}
return resultList;
}
@Override @Override
public DeviceType getDeviceType() { public DeviceType getDeviceType() {
......
...@@ -123,8 +123,9 @@ public class StackerController { ...@@ -123,8 +123,9 @@ public class StackerController {
List<String> resultList = new ArrayList<>(); List<String> resultList = new ArrayList<>();
for (String msdCid : msdCidList) { for (String msdCid : msdCidList) {
if (StringUtils.isNotEmpty(storageCid)){ if (StringUtils.isNotEmpty(storageCid)){
if (storageCid.equals(msdCid)); if (storageCid.equals(msdCid)) {
continue; continue;
}
} }
resultList.add(msdCid); resultList.add(msdCid);
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!