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(); } }