using WIDESEA_DTO;
using static WIDESEA_DTO.RequestTaskDto;
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]
public async Task CompleteTaskAsync(int taskNum)
{
return await _taskService.CompleteAsync(taskNum);
}
///
/// 任务完成
///
/// 任务号
/// 成功或失败
//[HttpGet, Route("CompleteTaskByStation"), AllowAnonymous]
//public async Task CompleteTaskByStation(int taskNum)
//{
// return await _taskService.CompleteTaskByStation(taskNum);
//}
///
/// 检查是否需要进行移库
///
/// 任务号
/// 任务
[HttpPost, Route("TransferCheckAsync"), AllowAnonymous]
public async Task TransferCheckAsync([FromBody] RequestTaskDto input)
{
return new WebResponseContent().OK(data: await _locationService.TransferCheckAsync(input));
}
///
/// 请求任务巷道
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("RequestInTask")]
public async Task RequestInTask([FromBody] RequestTaskDto input)
{
return await Service.RequestInTask(input);
}
///
/// 请求任务货位
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("RequestLocationTaskAsync")]
public async Task UpdateExistingTask([FromBody] RequestTaskDto input)
{
return await Service.UpdateExistingTask(input);
}
///
/// 任务状态修改
///
/// 请求数据
///
[HttpPost, AllowAnonymous, Route("UpdateTaskStatus")]
public async Task UpdateTaskStatus([FromBody] UpdateStatusDto input)
{
return await Service.UpdateTaskStatus(input.TaskNum, input.TaskState);
}
///
/// 创建指定任务
///
/// 托盘号
///
[HttpPost, AllowAnonymous, Route("CreateAndSendOutboundTask")]
public WebResponseContent CreateAndSendOutboundTask([FromBody] SaveModel saveModel) //string palletCode, string station
{
return Service.CreateAndSendOutboundTask(saveModel);
}
}