wanshenmean
18 小时以前 5bf10c1dafe485d506ec534f98e5220a3b83dd17
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/Workflow/RobotPrefixCommandHandler.cs
@@ -145,20 +145,27 @@
                // 从数据库重新查询当前任务(确保获取最新状态)
                var task = await _robotTaskService.Repository.QueryFirstAsync(x => x.RobotTaskId == state.CurrentTask.RobotTaskId);
                // 根据命令前缀分发处理
                if (cmd.StartsWith("pickfinished"))
                if (task != null)
                {
                    // 处理取货完成
                    await HandlePickFinishedAsync(state, positions, task);
                }
                else if (cmd.StartsWith("putfinished"))
                {
                    // 处理放货完成
                    await HandlePutFinishedAsync(state, positions, task);
                }
                    // 根据命令前缀分发处理
                    if (cmd.StartsWith("pickfinished"))
                    {
                        // 处理取货完成
                        await HandlePickFinishedAsync(state, positions, task);
                    }
                    else if (cmd.StartsWith("putfinished"))
                    {
                        // 处理放货完成
                        await HandlePutFinishedAsync(state, positions, task);
                    }
                // 回写原消息到客户端(保持原有行为)
                await _socketClientGateway.SendMessageAsync(client, message);
                    // 回写原消息到客户端(保持原有行为)
                    await _socketClientGateway.SendMessageAsync(client, message);
                }
                else
                {
                    Console.WriteLine($"RobotJob HandleAsync Warning: Current task not found for RobotTaskId {state.CurrentTask.RobotTaskId}");
                }
            }
            catch (Exception ex)
            {
@@ -306,9 +313,12 @@
                    putSuccess = result.Data.Status && result.IsSuccess;
                    // 增加任务计数
                    state.RobotTaskTotalNum += positions.Length;
                    if (task != null)
                        task.RobotTaskTotalNum -= positions.Length;
                    if (!state.IsScanNG)
                    {
                        state.RobotTaskTotalNum += positions.Length;
                        if (task != null)
                            task.RobotTaskTotalNum -= positions.Length;
                    }
                }
            }
@@ -317,6 +327,7 @@
            {
                // 更新当前动作为"放货完成"
                state.CurrentAction = "PutFinished";
                state.IsScanNG = false;
                // 非组盘任务时增加计数(组盘任务已在上面递增)
                if (!state.IsGroupPallet)
@@ -325,18 +336,18 @@
                    if (task != null)
                        task.RobotTaskTotalNum -= positions.Length;
                }
            }
            // 如果任务存在
            if (task != null)
            {
                // 更新任务状态为"机器人放货完成"
                task.RobotTaskState = TaskRobotStatusEnum.RobotPutFinish.GetHashCode();
                // 安全更新状态到 Redis
                if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
                // 如果任务存在
                if (task != null)
                {
                    await _robotTaskService.Repository.UpdateDataAsync(task);
                    // 更新任务状态为"机器人放货完成"
                    task.RobotTaskState = TaskRobotStatusEnum.RobotPutFinish.GetHashCode();
                    // 安全更新状态到 Redis
                    if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
                    {
                        await _robotTaskService.Repository.UpdateDataAsync(task);
                    }
                }
            }
        }