Commit a6319170 zshaohui

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

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