using JSMachine.WMS.App.Dto;
using JSMachine.WMS.App.Dto.Enum;
using JSMachine.WMS.App.IService;
using JSMachine.WMS.App.ServiceImpl;
using JSMachine.WMS.Business.RcsCallBack.IService.StaePattern;
using JSMachine.WMS.RPC.RcsRPC.Dto.In;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JSMachine.WMS.Business.RcsCallBack.ServiceImpl.StatePattern
{
///
/// agv任务执行失败处理器
///
public class FailedStateHandler : IAgvTaskStateHandler
{
private readonly IAGVTaskService _agvTaskService;
/// 创建失败状态处理器。
/// AGV 任务持久化服务。
public FailedStateHandler(IAGVTaskService agvTaskService)
{
_agvTaskService=agvTaskService;
}
/// 将当前 AGV 任务标记为失败并保存状态。
/// RCS 执行信息。
/// 待更新的 AGV 任务。
/// 目标库位。
/// 状态更新是否成功。
public async Task HandleAsync(AgvExcutionInfo agvExcutionInfo, AGVTaskDto agvTask, StorageRackDto destWarehouse)
{
agvTask.TaskStatus = TaskStatusEnum.Failed;
return await _agvTaskService.UpdateAgvTaskStatus(agvTask);
}
}
}