using WIDESEA_DTO;
namespace WIDESEA_WMSServer.Controllers;
///
/// 任务操作接口
///
[Route("api/[controller]")]
[ApiController]
public class TaskController : ApiBaseController
{
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IDt_TaskService _taskService;
private readonly ILocationInfoService _locationService;
public TaskController(IDt_TaskService taskService,
IHttpContextAccessor httpContextAccessor,
ILocationInfoService locationService) : base(taskService)
{
_httpContextAccessor = httpContextAccessor;
_taskService = taskService;
_locationService = locationService;
}
///
/// 任务完成
///
/// 任务号
/// 成功或失败
[HttpGet, Route("CompleteTaskAsync"), AllowAnonymous]
//[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task CompleteTaskAsync(int taskNum)
{
return await _taskService.CompleteAsync(taskNum);
}
///
/// 检查是否需要进行移库
///
/// 任务号
/// 任务
[HttpGet, Route("TransferCheckAsync"), AllowAnonymous]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task TransferCheckAsync(int taskNum)
{
return new WebResponseContent().OK(data: await _locationService.TransferCheckAsync(taskNum));
}
///
/// 请求任务巷道
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("RequestTaskAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task RequestTaskAsync([FromBody] RequestTaskDto input)
{
return await Service.RequestTaskAsync(input);
}
///
/// 请求任务巷道
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("RequestInTask")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task RequestInTask([FromBody] RequestTaskDto input)
{
return await Service.RequestInTask(input);
}
///
/// 请求任务货位
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("RequestLocationTaskAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task UpdateExistingTask([FromBody] RequestTaskDto input)
{
return await Service.UpdateExistingTask(input);
}
///
/// 空托盘入库请求
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("RequestTrayInTaskAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task RequestTrayInTaskAsync([FromBody] RequestTaskDto input)
{
return await Service.RequestTrayInTaskAsync(input);
}
///
/// 空托盘满盘出库请求
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("RequestTrayOutTaskAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task RequestTrayOutTaskAsync([FromBody] RequestOutTaskDto request)
{
return await Service.RequestTrayOutTaskAsync(request.Position, request.Tag, request.AreaCdoe, request.AreaCdoes, request.ProductionLine);
}
///
/// 任务状态修改
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("UpdateTaskStatus")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task UpdateTaskStatus([FromBody] UpdateStatusDto input)
{
return await Service.UpdateTaskStatus(input.TaskNum, input.TaskState);
}
///
/// 获取高温可出库库存
///
/// 请求数据
///
[HttpGet, AllowAnonymous, Route("StockCheckingAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public WebResponseContent StockCheckingAsync()
{
return Service.StockCheckingAsync();
}
///
/// 创建指定任务
///
/// 货位号
/// 托盘号
///
[HttpGet, AllowAnonymous, Route("CreateAndSendOutboundTask")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task CreateAndSendOutboundTask(string locationCode, string palletCode)
{
return await Service.CreateAndSendOutboundTask(locationCode, palletCode);
}
///
/// 静置NG入库
///
/// 货位号
/// 托盘号
///
[HttpPost, AllowAnonymous, Route("RequestInBoundTaskNG")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task RequestInBoundTaskNG([FromBody] RequestTaskDto input)
{
return await Service.CreateAndSendInboundTask(input.PalletCode, input.Position);
}
///
/// 常温补空托盘至分容
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("GetFROutTrayToCW")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 15 })] // 5秒节流
public async Task GetFROutTrayToCW([FromBody] RequestTaskDto input)
{
return await Service.GetFROutTrayToCW(input);
}
///
/// DTS火警出库
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("EmergencyTask")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public WebResponseContent EmergencyTask([FromBody] object input)
{
return Service.EmergencyTask(input);
}
///
/// CW3 出库至包装
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("RequestOutTaskToBZAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task RequestOutTaskToBZAsync([FromBody] RequestTaskDto input)
{
return await Service.RequestOutTaskToBZAsync(input);
}
///
/// 分容空框入库改为直接出库
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("SetEmptyOutbyInToOutAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task SetEmptyOutbyInToOutAsync([FromBody] RequestTaskDto input)
{
return await Service.SetEmptyOutbyInToOutAsync(input);
}
///
/// 分容空框出库改为直接出库
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("SetEmptyOutbyInToOutOneAsync")]
[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5秒节流
public async Task SetEmptyOutbyInToOutOneAsync([FromBody] RequestTaskDto input)
{
return await Service.SetEmptyOutbyInToOutOneAsync(input);
}
}