feat(出库任务): MoveToNextStatus调用CheckSourceLineAndCreateRobotTask决策机械手任务创建方式

- 替换TODO代码段为_robotTaskService.CheckSourceLineAndCreateRobotTask调用
- IRobotTaskService接口新增CheckSourceLineAndCreateRobotTask方法定义
- 有托盘号时本地创建机械手任务,无托盘号时从WMS获取

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
已修改2个文件
16 ■■■■ 文件已修改
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IRobotTaskService.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/IRobotTaskService.cs
@@ -89,6 +89,14 @@
        /// <returns>操作结果</returns>
        WebResponseContent CreateLocalRobotTask(Dt_Task task);
        /// <summary>
        /// 检查源线体是否有托盘号,并根据结果创建机械手任务。
        /// 有托盘号时调用 CreateLocalRobotTask,无托盘号时从 WMS 获取任务。
        /// </summary>
        /// <param name="task">出库任务实体</param>
        /// <returns>操作结果</returns>
        WebResponseContent CheckSourceLineAndCreateRobotTask(Dt_Task task);
        int MapWarehouseIdConfigKey(string? targetAddress);
        string ResolveRobotRuleValue(string? targetAddress, string addressSectionName, string? fallback);
    }
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Flows/OutboundTaskFlowService.cs
@@ -106,13 +106,17 @@
            if (task.TaskStatus == (int)TaskOutStatusEnum.Line_OutFinish && task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
            {
                return WebResponseContent.Instance.OK();
                //return WebResponseContent.Instance.OK();
                //return _robotTaskService.CheckSourceLineAndCreateRobotTask(task);
                // Todo:获取对向线体是否有托盘号,如果有托盘号直接生成机械手任务
                return GetWMSOutboundTrayTask(task);
            }
            if (task.TaskStatus == (int)TaskOutStatusEnum.Line_OutFinish && task.TaskType == (int)TaskOutboundTypeEnum.OutEmpty)
            {
               return _robotTaskService.CreateLocalRobotTask(task);
                return _robotTaskService.CreateLocalRobotTask(task);
                //if (!content.Status)
                //{
                //    return content;