Commit 700055ad zshaohui

客户端分配任务修改

1 个父辈 9b717212
......@@ -92,6 +92,12 @@ public class TaskService {
*/
private static Map<String,String> boxPosName = Maps.newConcurrentMap();
/**
* 出料口信息缓存
*/
public static Map<String,String> exportMap = Maps.newConcurrentMap();
// public TaskService(List<ITaskListener> listenerList){
// for (ITaskListener taskListener: listenerList) {
// taskListenerList.add(taskListener);
......@@ -424,6 +430,7 @@ public class TaskService {
return false;
}
/**
* 为 box 分配出库任务
*/
......@@ -462,6 +469,7 @@ public class TaskService {
DataLog singleOutTask = null;
DataLog outTask = null;
for (DataLog task : allTasks) {//优先分配单盘任务和没有工单的任务
if (cid.equals(task.getCid()) && task.isCheckOutTask() && task.isWait()) {
String posName = task.getPosName();
......@@ -471,10 +479,6 @@ public class TaskService {
if (singleOutTask == null || task.getCreateDate().before(singleOutTask.getCreateDate())) {
singleOutTask = task;
}
} else {
if (outTask == null || task.getCreateDate().before(outTask.getCreateDate())) {
outTask = task;
}
}
}
}
......@@ -483,28 +487,94 @@ public class TaskService {
log.info("分配优先(单盘或无工单)出库任务" + singleOutTask.getBarcode() + "[" + singleOutTask.getPosName() + "]到 " + cid);
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) {
List<DataLog> dataLogList = new ArrayList<>();
for (DataLog task : allTasks) {
if (outTask.getCid().equals(task.getCid())) {
if (StringUtils.isNotBlank(outTask.getSourceName())) {
if (outTask.getSourceName().equals(task.getSourceName())){
if (task.isWait()) {
dataLogList.add(task);
//判断当前任务是不是大盘料
if (outTask.getW() > 7) {
return outTask;
}
String sourceName = outTask.getSourceName();
//判断当前工单有没有大盘料
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;
}
/**
* 出库处理
*/
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!