using System.Diagnostics.CodeAnalysis;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
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();
}
}
}