using System.Diagnostics.CodeAnalysis; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_TaskInfoService.Flows { /// /// 机械手任务流程服务。 /// 负责机械手任务在主流程中的状态推进与完成处理。 /// public class RobotTaskFlowService : IRobotTaskFlowService { /// /// 接收WMS任务时初始化机械手任务。 /// 当前机械手任务不做额外初始化。 /// /// 任务实体。 /// WMS任务原始数据。 public void InitializeOnReceive([NotNull] Dt_Task task, [NotNull] WMSTaskDTO source) { // 当前版本机械手任务接收时不需要额外设置路由或状态。 } /// /// 推进机械手任务状态。 /// /// 任务实体。 /// 推进结果。 public WebResponseContent MoveToNextStatus([NotNull] Dt_Task task) { if (task.TaskStatus >= (int)TaskRobotStatusEnum.RobotFinish) return WebResponseContent.Instance.Error($"该任务状态不可跳转到下一步,任务号:【{task.TaskNum}】,任务状态:【{task.TaskStatus}】"); task.TaskStatus = task.TaskStatus.GetNextNotCompletedStatus(); if (task.TaskStatus <= 0) return WebResponseContent.Instance.Error($"该任务状态不可跳转到下一步,任务号:【{task.TaskNum}】,任务状态:【{task.TaskStatus}】"); return WebResponseContent.Instance.OK(); } /// /// 处理堆垛机动作。 /// 机械手任务当前无额外完成逻辑。 /// /// 任务实体。 /// 处理结果。 public WebResponseContent CompleteStackerTask([NotNull] Dt_Task task) { return WebResponseContent.Instance.OK(); } } }