|
@@ -49,6 +49,7 @@ import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -377,15 +378,19 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
log.info("节点{}检查机器人资源{}点位返回{}",taskNode.getId(),po.getResourceId(),po.getPointId());
|
|
log.info("节点{}检查机器人资源{}点位返回{}",taskNode.getId(),po.getResourceId(),po.getPointId());
|
|
if (po != null) {
|
|
if (po != null) {
|
|
// 机器人可用,判断目标地址
|
|
// 机器人可用,判断目标地址
|
|
-
|
|
|
|
// 判断同一资源是否有优先级更高的任务需要执行,如果有重新进入队列
|
|
// 判断同一资源是否有优先级更高的任务需要执行,如果有重新进入队列
|
|
-// List<TaskNode> sameMachineTaskNodes = taskNodeService.list(Wraps.<TaskNode>lbQ().eq(TaskNode::getExeStatus,"2").ne(TaskNode::getId,taskNode.getId()).eq(TaskNode::getResourceId,taskNode.getResourceId()));
|
|
|
|
-// List<Long> taskIds = sameMachineTaskNodes.stream().map(TaskNode::getTaskId).collect(Collectors.toList());
|
|
|
|
-// List<TTask> highLevelTaskNode = tTaskMapper.selectList(Wraps.<TTask>lbQ().lt(TTask::getExpectStartTime,task.getExpectStartTime()).in(TTask::getId,taskIds));
|
|
|
|
-// log.info("节点{}查找是否有高于自己优先级的任务集合{}",taskNode.getId(), highLevelTaskNode.size());
|
|
|
|
-// if(highLevelTaskNode.size() > 0){
|
|
|
|
-// dataMap.put("result", false);
|
|
|
|
-// }else{
|
|
|
|
|
|
+ List<TTask> highLevelTaskNode = new ArrayList<>();
|
|
|
|
+ if(taskNode.getCompleteBatchSort() == 1){
|
|
|
|
+ List<TaskNode> sameMachineTaskNodes = taskNodeService.list(Wraps.<TaskNode>lbQ().eq(TaskNode::getExeStatus,"2").ne(TaskNode::getId,taskNode.getId()).eq(TaskNode::getResourceId,taskNode.getResourceId()));
|
|
|
|
+ if(sameMachineTaskNodes.size() > 0){
|
|
|
|
+ List<Long> taskIds = sameMachineTaskNodes.stream().map(TaskNode::getTaskId).collect(Collectors.toList());
|
|
|
|
+ highLevelTaskNode = tTaskMapper.selectList(Wraps.<TTask>lbQ().lt(TTask::getExpectStartTime,task.getExpectStartTime()).in(TTask::getId,taskIds));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ log.info("节点{}查找是否有高于自己优先级的任务集合{}",taskNode.getId(), highLevelTaskNode.size());
|
|
|
|
+ if(highLevelTaskNode.size() > 0){
|
|
|
|
+ dataMap.put("result", false);
|
|
|
|
+ }else{
|
|
//目标库位,可能是
|
|
//目标库位,可能是
|
|
Map returnMap = getTargetStorge(nextTaskNode,taskNode.getFindAgvFlag(),bomProcedure.getType());
|
|
Map returnMap = getTargetStorge(nextTaskNode,taskNode.getFindAgvFlag(),bomProcedure.getType());
|
|
|
|
|
|
@@ -437,7 +442,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
}else{
|
|
}else{
|
|
dataMap.put("result", false);
|
|
dataMap.put("result", false);
|
|
}
|
|
}
|
|
-// }
|
|
|
|
|
|
+ }
|
|
|
|
|
|
}else{
|
|
}else{
|
|
dataMap.put("result", false);
|
|
dataMap.put("result", false);
|
|
@@ -490,15 +495,19 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
ProductionresourcePosition po = logical(robotList,flikustockInfos,taskNode);
|
|
ProductionresourcePosition po = logical(robotList,flikustockInfos,taskNode);
|
|
log.info("节点{}检查机器人资源条件返回{}",taskNode.getId(),po);
|
|
log.info("节点{}检查机器人资源条件返回{}",taskNode.getId(),po);
|
|
if (po!=null) {
|
|
if (po!=null) {
|
|
|
|
+ List<TTask> highLevelTaskNode = new ArrayList<>();
|
|
|
|
+ if(taskNode.getCompleteBatchSort() == 1){
|
|
|
|
+ List<TaskNode> sameMachineTaskNodes = taskNodeService.list(Wraps.<TaskNode>lbQ().eq(TaskNode::getExeStatus,"2").ne(TaskNode::getId,taskNode.getId()).eq(TaskNode::getResourceId,taskNode.getResourceId()));
|
|
|
|
+ if(sameMachineTaskNodes.size() > 0){
|
|
|
|
+ List<Long> taskIds = sameMachineTaskNodes.stream().map(TaskNode::getTaskId).collect(Collectors.toList());
|
|
|
|
+ highLevelTaskNode = tTaskMapper.selectList(Wraps.<TTask>lbQ().lt(TTask::getExpectStartTime,task.getExpectStartTime()).in(TTask::getId,taskIds));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ log.info("节点{}查找是否有高于自己优先级的任务集合{}",taskNode.getId(), highLevelTaskNode.size());
|
|
|
|
+ if(highLevelTaskNode.size() > 0){
|
|
|
|
|
|
-// List<TaskNode> sameMachineTaskNodes = taskNodeService.list(Wraps.<TaskNode>lbQ().eq(TaskNode::getExeStatus,"2").ne(TaskNode::getId,taskNode.getId()).eq(TaskNode::getResourceId,taskNode.getResourceId()));
|
|
|
|
-// List<Long> taskIds = sameMachineTaskNodes.stream().map(TaskNode::getTaskId).collect(Collectors.toList());
|
|
|
|
-// List<TTask> highLevelTaskNode = tTaskMapper.selectList(Wraps.<TTask>lbQ().lt(TTask::getExpectStartTime,task.getExpectStartTime()).in(TTask::getId,taskIds));
|
|
|
|
-// log.info("节点{}查找是否有高于自己优先级的任务集合{}",taskNode.getId(), highLevelTaskNode.size());
|
|
|
|
-// if(highLevelTaskNode.size() > 0){
|
|
|
|
-//
|
|
|
|
-// dataMap.put("result", false);
|
|
|
|
-// }else{
|
|
|
|
|
|
+ dataMap.put("result", false);
|
|
|
|
+ }else{
|
|
Map returnMap = getTargetStorge(nextTaskNode,taskNode.getFindAgvFlag(),bomProcedure.getType());
|
|
Map returnMap = getTargetStorge(nextTaskNode,taskNode.getFindAgvFlag(),bomProcedure.getType());
|
|
|
|
|
|
//目标地址和类型
|
|
//目标地址和类型
|
|
@@ -560,7 +569,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
dataMap.put("result", false);
|
|
dataMap.put("result", false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-// }
|
|
|
|
|
|
+ }
|
|
}else{
|
|
}else{
|
|
dataMap.put("result", false);
|
|
dataMap.put("result", false);
|
|
}
|
|
}
|
|
@@ -732,7 +741,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
|
|
String tempAgvTaskEndPoint = map.get("tempAgvTaskEndPoint") == null?null:(String)map.get("tempAgvTaskEndPoint");
|
|
String tempAgvTaskEndPoint = map.get("tempAgvTaskEndPoint") == null?null:(String)map.get("tempAgvTaskEndPoint");
|
|
Storge tempAgvTaskStartPointStorge = map.get("tempAgvTaskStartPointStorge") == null?null:(Storge)map.get("tempAgvTaskStartPointStorge");
|
|
Storge tempAgvTaskStartPointStorge = map.get("tempAgvTaskStartPointStorge") == null?null:(Storge)map.get("tempAgvTaskStartPointStorge");
|
|
Storge tempAgvTaskEndPointStorge = map.get("tempAgvTaskEndPointStorge") == null?null:(Storge)map.get("tempAgvTaskEndPointStorge");
|
|
Storge tempAgvTaskEndPointStorge = map.get("tempAgvTaskEndPointStorge") == null?null:(Storge)map.get("tempAgvTaskEndPointStorge");
|
|
- log.info("节点接驳位不可用,动态调度接驳位起点{}、终点{}",taskNode.getId(),tempAgvTaskStartPoint,tempAgvTaskEndPoint);
|
|
|
|
|
|
+ log.info("节点{}接驳位不可用,动态调度接驳位起点{}、终点{}",taskNode.getId(),tempAgvTaskStartPoint,tempAgvTaskEndPoint);
|
|
|
|
|
|
if(StringUtils.isNotBlank(tempAgvTaskStartPoint) && StringUtils.isNotBlank(tempAgvTaskEndPoint)){
|
|
if(StringUtils.isNotBlank(tempAgvTaskStartPoint) && StringUtils.isNotBlank(tempAgvTaskEndPoint)){
|
|
// 锁定起点终点接驳位
|
|
// 锁定起点终点接驳位
|