40 lines
1.5 KiB
C#
40 lines
1.5 KiB
C#
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
|
||
|
|
{
|
||
|
|
/// <summary>
|
||
|
|
/// agv任务执行失败处理器
|
||
|
|
/// </summary>
|
||
|
|
public class FailedStateHandler : IAgvTaskStateHandler
|
||
|
|
{
|
||
|
|
private readonly IAGVTaskService _agvTaskService;
|
||
|
|
/// <summary>创建失败状态处理器。</summary>
|
||
|
|
/// <param name="agvTaskService">AGV 任务持久化服务。</param>
|
||
|
|
public FailedStateHandler(IAGVTaskService agvTaskService)
|
||
|
|
{
|
||
|
|
_agvTaskService=agvTaskService;
|
||
|
|
}
|
||
|
|
|
||
|
|
/// <summary>将当前 AGV 任务标记为失败并保存状态。</summary>
|
||
|
|
/// <param name="agvExcutionInfo">RCS 执行信息。</param>
|
||
|
|
/// <param name="agvTask">待更新的 AGV 任务。</param>
|
||
|
|
/// <param name="destWarehouse">目标库位。</param>
|
||
|
|
/// <returns>状态更新是否成功。</returns>
|
||
|
|
public async Task<bool> HandleAsync(AgvExcutionInfo agvExcutionInfo, AGVTaskDto agvTask, StorageRackDto destWarehouse)
|
||
|
|
{
|
||
|
|
agvTask.TaskStatus = TaskStatusEnum.Failed;
|
||
|
|
return await _agvTaskService.UpdateAgvTaskStatus(agvTask);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|