| | |
| | | // 判断任务类型 |
| | | var robotTaskType = (RobotTaskTypeEnum)currentTask.RobotTaskType; |
| | | |
| | | // 只有拆盘或换盘任务需要处理入库 |
| | | if (robotTaskType == RobotTaskTypeEnum.SplitPallet || robotTaskType == RobotTaskTypeEnum.ChangePallet) |
| | | // 换盘任务:仅当所有阶段完成时才处理入库 |
| | | if (robotTaskType == RobotTaskTypeEnum.ChangePallet) |
| | | { |
| | | // 处理入库任务回传 |
| | | // useSourceAddress: true 表示使用源地址(拆盘/换盘场景) |
| | | if (state.ChangePalletPhase == 0) |
| | | { |
| | | // 所有阶段完成,处理入库 |
| | | if (await _taskProcessor.HandleInboundTaskAsync(state, useSourceAddress: true)) |
| | | { |
| | | // 入库成功,删除任务记录 |
| | | _taskProcessor.DeleteTask(currentTask.RobotTaskId); |
| | | await _socketClientGateway.SendToClientAsync(state.IPAddress, $"Swap,diskFinished"); |
| | | QuartzLogger.Info($"发送消息:【Swap,diskFinished】", state.RobotCrane.DeviceName); |
| | | |
| | | // 重置批次状态 |
| | | state.ChangePalletPhase = 0; |
| | | state.CurrentBatchIndex = 1; |
| | | state.IsInFakeBatteryMode = false; |
| | | return true; |
| | | } |
| | | } |
| | | // 中间阶段不处理,仅更新状态 |
| | | return true; |
| | | } |
| | | |
| | | // 拆盘任务:直接处理入库 |
| | | if (robotTaskType == RobotTaskTypeEnum.SplitPallet) |
| | | { |
| | | if (await _taskProcessor.HandleInboundTaskAsync(state, useSourceAddress: true)) |
| | | { |
| | | // 入库成功,删除任务记录 |
| | |
| | | // 判断任务类型 |
| | | var robotTaskType = (RobotTaskTypeEnum)currentTask.RobotTaskType; |
| | | |
| | | // 只有组盘或换盘任务需要处理入库 |
| | | if (robotTaskType == RobotTaskTypeEnum.GroupPallet || robotTaskType == RobotTaskTypeEnum.ChangePallet) |
| | | // 换盘任务:仅当所有阶段完成时才处理入库 |
| | | if (robotTaskType == RobotTaskTypeEnum.ChangePallet) |
| | | { |
| | | if (state.ChangePalletPhase == 0) |
| | | { |
| | | // 所有阶段完成,处理入库 |
| | | if (await _taskProcessor.HandleInboundTaskAsync(state, useSourceAddress: false)) |
| | | { |
| | | // 入库成功,删除任务记录 |
| | | _taskProcessor.DeleteTask(currentTask.RobotTaskId); |
| | | |
| | | // 清理状态,为下一个任务做准备 |
| | | state.CurrentTask = null; // 清除当前任务 |
| | | state.RobotTaskTotalNum = 0; // 重置任务计数 |
| | | state.CellBarcode = new List<string>(); // 清空条码列表 |
| | | |
| | | await _socketClientGateway.SendToClientAsync(state.IPAddress, $"Group,diskFinished"); |
| | | QuartzLogger.Info($"发送消息:【Group,diskFinished】", state.RobotCrane.DeviceName); |
| | | |
| | | // 重置批次状态 |
| | | state.ChangePalletPhase = 0; |
| | | state.CurrentBatchIndex = 1; |
| | | state.IsInFakeBatteryMode = false; |
| | | return true; |
| | | } |
| | | } |
| | | // 中间阶段不处理,仅更新状态 |
| | | return true; |
| | | } |
| | | |
| | | // 组盘任务:直接处理入库 |
| | | if (robotTaskType == RobotTaskTypeEnum.GroupPallet) |
| | | { |
| | | // 处理入库任务回传 |
| | | // useSourceAddress: false 表示使用目标地址(组盘/换盘场景) |
| | | // useSourceAddress: false 表示使用目标地址(组盘场景) |
| | | if (await _taskProcessor.HandleInboundTaskAsync(state, useSourceAddress: false)) |
| | | { |
| | | // 入库成功,删除任务记录 |