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
|
{
|
/// <summary>
|
/// 机械手任务流程服务。
|
/// 负责机械手任务在主流程中的状态推进与完成处理。
|
/// </summary>
|
public class RobotTaskFlowService : IRobotTaskFlowService
|
{
|
/// <summary>
|
/// 接收WMS任务时初始化机械手任务。
|
/// 当前机械手任务不做额外初始化。
|
/// </summary>
|
/// <param name="task">任务实体。</param>
|
/// <param name="source">WMS任务原始数据。</param>
|
public void InitializeOnReceive([NotNull] Dt_Task task, [NotNull] WMSTaskDTO source)
|
{
|
// 当前版本机械手任务接收时不需要额外设置路由或状态。
|
}
|
|
/// <summary>
|
/// 推进机械手任务状态。
|
/// </summary>
|
/// <param name="task">任务实体。</param>
|
/// <returns>推进结果。</returns>
|
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<TaskRobotStatusEnum>();
|
if (task.TaskStatus <= 0)
|
return WebResponseContent.Instance.Error($"该任务状态不可跳转到下一步,任务号:【{task.TaskNum}】,任务状态:【{task.TaskStatus}】");
|
|
return WebResponseContent.Instance.OK();
|
}
|
|
/// <summary>
|
/// 处理堆垛机动作。
|
/// 机械手任务当前无额外完成逻辑。
|
/// </summary>
|
/// <param name="task">任务实体。</param>
|
/// <returns>处理结果。</returns>
|
public WebResponseContent CompleteStackerTask([NotNull] Dt_Task task)
|
{
|
return WebResponseContent.Instance.OK();
|
}
|
}
|
}
|