wanshenmean
昨天 1515ffa15c11e106f35e1447bc990b7867c449bb
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotSimpleCommandHandler.cs
@@ -138,11 +138,33 @@
                        // 判断任务类型
                        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))
                            {
                                // 入库成功,删除任务记录
@@ -171,11 +193,41 @@
                        // 判断任务类型
                        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))
                            {
                                // 入库成功,删除任务记录