Commit 700055ad zshaohui

客户端分配任务修改

1 个父辈 9b717212
...@@ -92,6 +92,12 @@ public class TaskService { ...@@ -92,6 +92,12 @@ public class TaskService {
*/ */
private static Map<String,String> boxPosName = Maps.newConcurrentMap(); private static Map<String,String> boxPosName = Maps.newConcurrentMap();
/**
* 出料口信息缓存
*/
public static Map<String,String> exportMap = Maps.newConcurrentMap();
// public TaskService(List<ITaskListener> listenerList){ // public TaskService(List<ITaskListener> listenerList){
// for (ITaskListener taskListener: listenerList) { // for (ITaskListener taskListener: listenerList) {
// taskListenerList.add(taskListener); // taskListenerList.add(taskListener);
...@@ -424,6 +430,7 @@ public class TaskService { ...@@ -424,6 +430,7 @@ public class TaskService {
return false; return false;
} }
/** /**
* 为 box 分配出库任务 * 为 box 分配出库任务
*/ */
...@@ -462,6 +469,7 @@ public class TaskService { ...@@ -462,6 +469,7 @@ public class TaskService {
DataLog singleOutTask = null; DataLog singleOutTask = null;
DataLog outTask = null; DataLog outTask = null;
for (DataLog task : allTasks) {//优先分配单盘任务和没有工单的任务 for (DataLog task : allTasks) {//优先分配单盘任务和没有工单的任务
if (cid.equals(task.getCid()) && task.isCheckOutTask() && task.isWait()) { if (cid.equals(task.getCid()) && task.isCheckOutTask() && task.isWait()) {
String posName = task.getPosName(); String posName = task.getPosName();
...@@ -471,10 +479,6 @@ public class TaskService { ...@@ -471,10 +479,6 @@ public class TaskService {
if (singleOutTask == null || task.getCreateDate().before(singleOutTask.getCreateDate())) { if (singleOutTask == null || task.getCreateDate().before(singleOutTask.getCreateDate())) {
singleOutTask = task; singleOutTask = task;
} }
} else {
if (outTask == null || task.getCreateDate().before(outTask.getCreateDate())) {
outTask = task;
}
} }
} }
} }
...@@ -483,28 +487,94 @@ public class TaskService { ...@@ -483,28 +487,94 @@ public class TaskService {
log.info("分配优先(单盘或无工单)出库任务" + singleOutTask.getBarcode() + "[" + singleOutTask.getPosName() + "]到 " + cid); log.info("分配优先(单盘或无工单)出库任务" + singleOutTask.getBarcode() + "[" + singleOutTask.getPosName() + "]到 " + cid);
return singleOutTask; return singleOutTask;
} }
//判断出料口位置是否一样
for (DataLog task : allTasks) {
if (cid.equals(task.getCid()) && task.isCheckOutTask() && task.isWait()) {
String posName = task.getPosName();
if (!Strings.isNullOrEmpty(posName)) {
if (!task.isSingleOut()) {
if (outTask == null || task.getCreateDate().before(outTask.getCreateDate())) {
String export = task.getExport();
String cacheExport = exportMap.get(cid);
if (StringUtils.isNotBlank(cacheExport)) {
if (cacheExport.equals(export)) {
continue;
}
}
outTask = task;
}
}
}
}
}
//如果出料口相同,则重新赋值一遍
if (outTask == null){
for (DataLog task : allTasks) {
if (cid.equals(task.getCid()) && task.isCheckOutTask() && task.isWait()) {
String posName = task.getPosName();
if (!Strings.isNullOrEmpty(posName)) {
if (outTask == null || task.getCreateDate().before(outTask.getCreateDate())) {
outTask = task;
}
}
}
}
}
//判断发送的任务与当前执行的工单是否一致 //判断发送的任务与当前执行的工单是否一致
if (outTask != null) { if (outTask != null) {
List<DataLog> dataLogList = new ArrayList<>(); //判断当前任务是不是大盘料
for (DataLog task : allTasks) { if (outTask.getW() > 7) {
if (outTask.getCid().equals(task.getCid())) { return outTask;
if (StringUtils.isNotBlank(outTask.getSourceName())) { }
if (outTask.getSourceName().equals(task.getSourceName())){
if (task.isWait()) { String sourceName = outTask.getSourceName();
dataLogList.add(task);
//判断当前工单有没有大盘料
boolean otherStorageBigReel = false;
if (StringUtils.isNotBlank(sourceName)) {
for (DataLog dataLog : allTasks) {
if (dataLog.isCheckOutTask() && dataLog.isWait() && sourceName.equals(dataLog.getSourceName()) && dataLog.getW() > 7) {
if (dataLog.getCid().equals(cid)) {
exportMap.put(dataLog.getCid(),dataLog.getExport());
return dataLog;
} else {
otherStorageBigReel = true;
}
}
}
//没有大盘料,直接返回当前任务
if (!otherStorageBigReel) {
exportMap.put(outTask.getCid(),outTask.getExport());
return outTask;
}
//如果有大盘料,取B面的料
else {
if ("B".equals(outTask.getSide())) {
exportMap.put(outTask.getCid(),outTask.getExport());
return outTask;
} else {
for (DataLog dataLog : allTasks) {
if (dataLog.isCheckOutTask() && dataLog.isWait() && sourceName.equals(dataLog.getSourceName())) {
if (dataLog.getCid().equals(cid) && "B".equals(outTask.getCid())) {
exportMap.put(dataLog.getCid(),dataLog.getExport());
return dataLog;
}
} }
} }
} }
} }
} }
if (dataLogList != null && !dataLogList.isEmpty()){
dataLogList = dataLogList.stream().sorted(Comparator.comparing(DataLog::getW).reversed()).collect(Collectors.toList());
outTask = dataLogList.get(0);
}
} }
return outTask; return outTask;
} }
/** /**
* 出库处理 * 出库处理
*/ */
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!