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")] 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); } [HttpPost, AllowAnonymous, Route("GetTaskInfo")] public WebResponseContent GetTaskInfo() { return Service.GetTaskInfo(); } [HttpPost, AllowAnonymous, Route("GetStockInfo")] public WebResponseContent GetStockInfo() { return Service.GetStockInfo(); } /// /// 获取库存信息 /// /// [HttpPost, AllowAnonymous, Route("GetStockQuantity")] public WebResponseContent GetStockQuantity() { return Service.GetStockQuantity(); } [HttpPost, AllowAnonymous, Route("Getproductionvolume")] public WebResponseContent Getproductionvolume() { return Service.Getproductionvolume(); } [HttpPost, AllowAnonymous, Route("Getoutput")] public WebResponseContent Getoutput() { return Service.Getoutput(); } }