Commit decac0ea zshaohui

亮灯指引逻辑修改

1 个父辈 d71ed583
...@@ -60,6 +60,7 @@ import org.springframework.stereotype.Service; ...@@ -60,6 +60,7 @@ import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/** /**
* Created by sunke on 2021/7/12. * Created by sunke on 2021/7/12.
...@@ -978,129 +979,48 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -978,129 +979,48 @@ public class BaseDeviceHandler implements IDeviceHandler {
return statusBean; return statusBean;
} }
protected List<DataLog> getLightGuideTask(Map<String,List<DataLog>> outMap,String cid) { protected List<DataLog> getLightGuideTask(Map<String, List<DataLog>> outMap, String cid) {
List<DataLog> dataLogs = Lists.newArrayList(); List<DataLog> dataLogs = new ArrayList<>();
if (outMap.size() <= 0) { if (outMap.size() <= 0) {
return dataLogs; return dataLogs;
} }
//先查找正在执行中的发过去 //找到所有任务
for (String sourceId : outMap.keySet()) { List<DataLog> needLightTask = new ArrayList<>();
List<DataLog> allTasks = taskService.getAllTasks();
//1.获取当前工单,所有的任务 for (DataLog dataLog : allTasks) {
List<DataLog> dataLogList = new ArrayList<>(); if (dataLog.isCheckOutTask() && (dataLog.isWait() || dataLog.isExecuting())) {
List<DataLog> allTasks = taskService.getAllTasks(); if (StringUtils.isNotEmpty(dataLog.getSubSourceId())) {
for (DataLog dataLog : allTasks) { needLightTask.add(dataLog);
if (dataLog.isWait() || dataLog.isExecuting()){
if (sourceId.equals(dataLog.getSourceId())){
dataLogList.add(dataLog);
}
}
}
//2.判断有没有正在执行的任务
boolean hasExecuting = false;
for (DataLog dataLog : dataLogList) {
if (dataLog.isExecuting()){
hasExecuting = true;
if (cid.equals(dataLog.getCid())){
dataLogs.add(dataLog);
}
}
}
//3.判断工单是否存在
if (!hasExecuting) {
LiteOrder order = liteOrderCache.getOrderSortItems(sourceId);
if (order == null) {
log.error("ACCSHELF: sourceId=" + sourceId + "的工单号未找到");
continue;
}
//3.获取到站位信息对应的任务
DataLog needSendLog = null;
for (LiteOrderItem orderItem : order.getOrderItems()) {
for (DataLog dataLog : dataLogList) {
if (orderItem.getId().equals(dataLog.getSubSourceId())) {
needSendLog = dataLog;
break;
}
}
if (needSendLog != null) {
break;
}
}
//4.处理任务
if (needSendLog != null) {
if (cid.equals(needSendLog.getCid())) {
if (needSendLog.isWait()) {
needSendLog.setStatus(OP_STATUS.EXECUTING.name());
taskService.updateQueueTask(needSendLog);
dataLogs.add(needSendLog);
log.info("ACCSHELF: sourceId=" + sourceId + "的工单[" + order.getOrderNo() + "]开始执行任务:[" + needSendLog.getPosName() + "][" + needSendLog.getPartNumber() + "][" + needSendLog.getBarcode() + "]");
}
}
String subSourceId = needSendLog.getSubSourceId();
if (StringUtils.isNotEmpty(subSourceId)) {
for (DataLog dataLog : taskService.getAllTasks()) {
if (dataLog.isWait() && cid.equals(dataLog.getCid()) && subSourceId.equals(dataLog.getSubSourceId())) {
if (!needSendLog.getBarcode().equals(dataLog.getBarcode())) {
dataLog.setStatus(OP_STATUS.EXECUTING.name());
taskService.updateQueueTask(dataLog);
dataLogs.add(dataLog);
log.info("ACCSHELF: sourceId=" + sourceId + "的工单[" + order.getOrderNo() + "]开始执行任务:[" + dataLog.getPosName() + "][" + dataLog.getPartNumber() + "][" + dataLog.getBarcode() + "]");
}
}
}
}
} }
} }
}
//按创建时间最早的进行排序
if (needLightTask != null && !needLightTask.isEmpty()) {
needLightTask = needLightTask.stream().sorted(Comparator.comparing(DataLog :: getCreateDate)).collect(Collectors.toList());
/*List<DataLog> dataLogList = outMap.get(sourceId); //获取到工单ID
String itemId = "";
boolean isFind = false; for (DataLog dataLog : needLightTask) {
for (DataLog dataLog : dataLogList) { if (StringUtils.isNotEmpty(dataLog.getSubSourceId())){
if (dataLog.getStatus().equals(OP_STATUS.EXECUTING.name())) { itemId = dataLog.getSubSourceId();
dataLogs.add(dataLog);
isFind = true;
break; break;
} }
} }
if (isFind) { //开始发送亮灯指令
break; if (StringUtils.isNotEmpty(itemId)){
} for (DataLog dataLog : needLightTask) {
//排序 if (itemId.equals(dataLog.getSubSourceId())){
LiteOrder order = liteOrderCache.getOrderSortItems(sourceId); if (cid.equals(dataLog.getCid()) && dataLog.isWait()){
if (order == null) {
log.error("ACCSHELF: sourceId=" + sourceId + "的工单号未找到");
break;
}
for (LiteOrderItem item : order.getOrderItems()) {
for (DataLog dataLog : dataLogList) {
if (dataLog.getStatus().equals(OP_STATUS.WAIT.name())) {
if ((ObjectUtil.isNotEmpty(item.getPn()) && item.getPn().equals(dataLog.getPartNumber())) ||
(ObjectUtil.isNotEmpty(item.getRi()) && item.getRi().equals(dataLog.getBarcode()))
) {
dataLog.setStatus(OP_STATUS.EXECUTING.name()); dataLog.setStatus(OP_STATUS.EXECUTING.name());
taskService.updateQueueTask(dataLog);
dataLogs.add(dataLog);
log.info("ACCSHELF: sourceId=" + dataLog.getSourceId() + "的工单[" + dataLog.getSourceName() + "]开始执行任务:[" + dataLog.getPosName() + "][" + dataLog.getPartNumber() + "][" + dataLog.getBarcode() + "]");
} }
taskService.updateQueueTask(dataLog);
log.info("ACCSHELF: sourceId=" + sourceId + "的工单[" + order.getOrderNo() + "]开始执行任务:[" + dataLog.getPosName() + "][" + dataLog.getPartNumber() + "][" + dataLog.getBarcode() + "]");
dataLogs.add(dataLog);
isFind = true;
break;
} }
} }
if (isFind) { }
break;
}
}*/
} }
return dataLogs; return dataLogs;
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!