| | |
| | | // ===== 同 NextAddress 无可用任务,尝试不同 NextAddress 的任务 ===== |
| | | // 查找其他可用的出库站台 |
| | | // 查询其他站台的出库任务 |
| | | var tasks = _taskService.QueryStackerCraneOutTasks(deviceCode, new List<string> { candidateTask.NextAddress }, false); |
| | | var tasks = _taskService.QueryStackerCraneOutTasks(deviceCode, new List<string> { candidateTask.NextAddress }, false) |
| | | .GroupBy(x => x.TargetAddress) |
| | | .Select(g => g.FirstOrDefault()) |
| | | .ToList(); |
| | | foreach (var alternativeTask in tasks) |
| | | { |
| | | selectedTask = TrySelectOutboundTask(alternativeTask); |
| | |
| | | { |
| | | // 先进行本地站台检查(PLC 读取,快速),避免不必要的 WMS HTTP 调用 |
| | | |
| | | // 判断 TargetAddress 输送线站台是否空闲 |
| | | if (!IsTargetAddressConveyorStationAvailable(outboundTask)) |
| | | if (outboundTask.TaskType != (int)TaskOutboundTypeEnum.OutEmpty) |
| | | { |
| | | return null; |
| | | // 判断 TargetAddress 输送线站台是否空闲 |
| | | if (!IsTargetAddressConveyorStationAvailable(outboundTask)) |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | // 判断 NextAddress 出库站台是否可用 |