瀏覽代碼

上料判断优先级

yejian 3 年之前
父節點
當前提交
f4abef26d6

+ 28 - 19
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/RobotNodeServiceImpl.java

@@ -49,6 +49,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -377,15 +378,19 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                     log.info("节点{}检查机器人资源{}点位返回{}",taskNode.getId(),po.getResourceId(),po.getPointId());
                     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());
 
@@ -437,7 +442,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                             }else{
                                 dataMap.put("result", false);
                             }
-//                        }
+                        }
 
                     }else{
                         dataMap.put("result", false);
@@ -490,15 +495,19 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                 ProductionresourcePosition po = logical(robotList,flikustockInfos,taskNode);
                 log.info("节点{}检查机器人资源条件返回{}",taskNode.getId(),po);
                 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());
 
                         //目标地址和类型
@@ -560,7 +569,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                                 dataMap.put("result", false);
                             }
                         }
-//                    }
+                    }
                 }else{
                     dataMap.put("result", false);
                 }
@@ -732,7 +741,7 @@ public class RobotNodeServiceImpl implements NodeOperationService {
                 String tempAgvTaskEndPoint = map.get("tempAgvTaskEndPoint") == null?null:(String)map.get("tempAgvTaskEndPoint");
                 Storge tempAgvTaskStartPointStorge = map.get("tempAgvTaskStartPointStorge") == null?null:(Storge)map.get("tempAgvTaskStartPointStorge");
                 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)){
                     // 锁定起点终点接驳位