Commit 33965feb zshaohui

1.亮灯指引修改,一个工单中只能有一个亮灯库位

1 个父辈 f68d9923
...@@ -55,7 +55,7 @@ public class AccShelfHandler extends BaseDeviceHandler{ ...@@ -55,7 +55,7 @@ public class AccShelfHandler extends BaseDeviceHandler{
log.info("库位[" + queueTask.getPosName() + "]+亮灯:" + color.name()); log.info("库位[" + queueTask.getPosName() + "]+亮灯:" + color.name());
} }
} }
List<DataLog> dataLogs = getLightGuideTask(outMap); List<DataLog> dataLogs = getLightGuideTask(outMap,statusBean.getCid());
for (DataLog task : for (DataLog task :
dataLogs) { dataLogs) {
statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name()); statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name());
......
...@@ -953,14 +953,76 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -953,14 +953,76 @@ public class BaseDeviceHandler implements IDeviceHandler {
return statusBean; return statusBean;
} }
protected List<DataLog> getLightGuideTask(Map<String,List<DataLog>> outMap) { protected List<DataLog> getLightGuideTask(Map<String,List<DataLog>> outMap,String cid) {
List<DataLog> dataLogs = Lists.newArrayList(); List<DataLog> dataLogs = Lists.newArrayList();
if (outMap.size() <= 0) { if (outMap.size() <= 0) {
return dataLogs; return dataLogs;
} }
//先查找正在执行中的发过去 //先查找正在执行中的发过去
for (String sourceId : outMap.keySet()) { for (String sourceId : outMap.keySet()) {
List<DataLog> dataLogList = outMap.get(sourceId);
//1.获取当前工单,所有的任务
List<DataLog> dataLogList = new ArrayList<>();
List<DataLog> allTasks = taskService.getAllTasks();
for (DataLog dataLog : allTasks) {
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() + "]");
}
}
}
}
/*List<DataLog> dataLogList = outMap.get(sourceId);
boolean isFind = false; boolean isFind = false;
for (DataLog dataLog : dataLogList) { for (DataLog dataLog : dataLogList) {
...@@ -998,7 +1060,7 @@ public class BaseDeviceHandler implements IDeviceHandler { ...@@ -998,7 +1060,7 @@ public class BaseDeviceHandler implements IDeviceHandler {
if (isFind) { if (isFind) {
break; break;
} }
} }*/
} }
return dataLogs; return dataLogs;
} }
......
...@@ -103,7 +103,7 @@ public class NLMShelfHandler extends BaseDeviceHandler { ...@@ -103,7 +103,7 @@ public class NLMShelfHandler extends BaseDeviceHandler {
} }
} }
List<DataLog> dataLogs = getLightGuideTask(outMap); List<DataLog> dataLogs = getLightGuideTask(outMap,statusBean.getCid());
for (DataLog task : for (DataLog task :
dataLogs) { dataLogs) {
// statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name()); // statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name());
......
...@@ -244,7 +244,7 @@ public class NLPShelfHandler extends BaseDeviceHandler { ...@@ -244,7 +244,7 @@ public class NLPShelfHandler extends BaseDeviceHandler {
} }
} }
List<DataLog> dataLogs = getLightGuideTask(outMap); List<DataLog> dataLogs = getLightGuideTask(outMap,statusBean.getCid());
for (DataLog task : dataLogs) { for (DataLog task : dataLogs) {
statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name()); statusBean.addData("open", task.getPosName() + "=" + ORDER_COLOR.fromRgb(task.getLightColor()).name());
} }
......
...@@ -117,7 +117,7 @@ public class NLShelfHandler extends BaseDeviceHandler { ...@@ -117,7 +117,7 @@ public class NLShelfHandler extends BaseDeviceHandler {
} }
} }
List<DataLog> dataLogs = getLightGuideTask(outMap); List<DataLog> dataLogs = getLightGuideTask(outMap,statusBean.getCid());
for (DataLog task : dataLogs) { for (DataLog task : dataLogs) {
String colorName = ORDER_COLOR.fromRgb(task.getLightColor()).name(); String colorName = ORDER_COLOR.fromRgb(task.getLightColor()).name();
statusBean.addData("open", task.getPosName() + "=" + colorName); statusBean.addData("open", task.getPosName() + "=" + colorName);
......
...@@ -34,6 +34,7 @@ import org.springframework.stereotype.Service; ...@@ -34,6 +34,7 @@ import org.springframework.stereotype.Service;
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.
...@@ -712,8 +713,8 @@ public class LiteOrderCache { ...@@ -712,8 +713,8 @@ public class LiteOrderCache {
LiteOrder order = liteOrderManager.get(sourceId); LiteOrder order = liteOrderManager.get(sourceId);
if (order != null && order.getOrderItems().size() > 0) { if (order != null && order.getOrderItems().size() > 0) {
List<LiteOrderItem> list = order.getOrderItems(); List<LiteOrderItem> list = order.getOrderItems();
//根据站位号排序 //根据站位号和id排序
Collections.sort(list); list = list.stream().sorted(Comparator.comparing(LiteOrderItem::getSlotNum).thenComparing(LiteOrderItem::getId)).collect(Collectors.toList());
order.setOrderItems(list); order.setOrderItems(list);
return order; return order;
} }
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!