using WIDESEA_DTO;
namespace WIDESEA_WMSServer.Controllers.Task;
///
/// 任务操作接口
///
[Route("api/[controller]")]
[ApiController]
public class TaskController : ApiBaseController
{
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IDt_TaskService _taskService;
public TaskController(IDt_TaskService service,
IHttpContextAccessor httpContextAccessor) : base(service)
{
_httpContextAccessor = httpContextAccessor;
}
///
/// 任务完成
///
/// 任务号
/// 成功或失败
[HttpGet,HttpPost, Route("CompleteTaskAsync"), AllowAnonymous]
public async Task CompleteTaskAsync(int taskNum)
{
return await Service.CompleteAsync(taskNum);
}
///
/// 任务取消
///
///
///
[HttpPost, HttpGet,Route("TaskCancel"), AllowAnonymous]
public WebResponseContent TaskCancel(int taskNum)
{
return Service.TaskCancel(taskNum);
}
///
/// 获取任务信息
///
///
[HttpPost, HttpGet, Route("GetTaskInfo")]
public WebResponseContent GetTaskInfo()
{
return Service.GetTaskInfo();
}
///
/// 请求入库任务
///
/// 请求数据
///
[HttpPost, HttpGet, AllowAnonymous, Route("RequestInboundTaskAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
public async Task RequestInboundTaskAsync([FromBody] RequestTaskDto input)
{
return await Service.RequestInboundTaskAsync(input);
}
///
/// 更新货位任务状态到下一个节点
///
/// 请求数据
///
[HttpPost, HttpGet, AllowAnonymous, Route("RequestLocationAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
public async Task RequestLocationAsync([FromBody] RequestTaskDto input)
{
return await Service.RequestLocationAsync(input);
}
///
/// 空托盘满盘出库请求
///
/// 请求数据
///
[HttpPost, HttpGet, AllowAnonymous, Route("RequestOutboundTaskAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
public async Task RequestOutboundTaskAsync([FromBody] RequestTaskDto taskDto)
{
return await Service.RequestOutboundTaskAsync(taskDto);
}
///
/// 出库至缓存区
///
/// 请求数据
///
[HttpPost, HttpGet, AllowAnonymous, Route("OutBoundTaskAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 2 })]
public Task OutBoundTaskAsync(string palletCode)
{
return Service.OutBoundTaskAsync(palletCode);
}
[HttpPost, HttpGet, AllowAnonymous, Route("OtherOutBoundTaskAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 2 })]
public Task OtherOutBoundTaskAsync([FromBody] List details)
{
return Service.OtherOutBoundTaskAsync(details);
}
///
/// 任务状态修改
///
/// 请求数据
///
[HttpPost,HttpGet,Route("UpdateTaskStatus") ,AllowAnonymous]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
public async Task UpdateTaskStatus([FromBody] UpdateStatusDto input)
{
return await Service.UpdateTaskStatus(input.TaskNum, input.TaskState);
}
///
/// 请求跨楼层任务2
///
///
///
[HttpPost, AllowAnonymous, Route("AcrossFloorTaskAsync")]
public async Task AcrossFloorTaskAsync([FromBody] RequestAcrossFloorTaskDto taskDto)
{
return await Service.AcrossFloorTaskAsync(taskDto);
}
[HttpPost, AllowAnonymous, Route("GetEmptyLocation")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
public async Task GetEmptyLocation(string roadWay)
{
return await Service.GetEmptyLocation(roadWay);
}
[HttpPost, AllowAnonymous, Route("GetAGVEmptyCacheLocation")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
public async Task GetAGVEmptyCacheLocation(int AreaId,DtLocationInfo location)
{
return await Service.GetAGVEmptyCacheLocation(AreaId,location);
}
[HttpPost, AllowAnonymous, Route("StackerIsNeedRelocationAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
public async Task StackerIsNeedRelocationAsync([FromBody] RequestTaskDto taskDto)
{
return await Service.StackerIsNeedRelocationAsync(taskDto);
}
[HttpPost, AllowAnonymous, Route("AGVIsNeedRelocationAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })]
public async Task AGVIsNeedRelocationAsync([FromBody] RequestTaskDto taskDto)
{
return await Service.AGVIsNeedRelocationAsync(taskDto);
}
[HttpPost, AllowAnonymous, Route("GetTaskData")]
public async Task GetTaskData()
{
return await Service.GetTaskData();
}
}