using WIDESEA_DTO; namespace WIDESEA_WMSServer.Controllers; /// <summary> /// 任务æ“ä½œæŽ¥å£ /// </summary> [Route("api/[controller]")] [ApiController] public class TaskController : ApiBaseController<IDt_TaskService, Dt_Task> { 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; } /// <summary> /// ä»»åŠ¡å®Œæˆ /// </summary> /// <param name="saveModel">任务å·</param> /// <returns>æˆåŠŸæˆ–å¤±è´¥</returns> [HttpGet, Route("CompleteTaskAsync"), AllowAnonymous] //[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> CompleteTaskAsync(int taskNum) { return await _taskService.CompleteAsync(taskNum); } /// <summary> /// 检查是å¦éœ€è¦è¿›è¡Œç§»åº“ /// </summary> /// <param name="taskNum">任务å·</param> /// <returns>任务</returns> [HttpGet, Route("TransferCheckAsync"), AllowAnonymous] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> TransferCheckAsync(int taskNum) { return new WebResponseContent().OK(data: await _locationService.TransferCheckAsync(taskNum)); } /// <summary> /// è¯·æ±‚ä»»åŠ¡å··é“ /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("RequestTaskAsync")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> RequestTaskAsync([FromBody] RequestTaskDto input) { return await Service.RequestTaskAsync(input); } /// <summary> /// è¯·æ±‚ä»»åŠ¡å··é“ /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("RequestInTask")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> RequestInTask([FromBody] RequestTaskDto input) { return await Service.RequestInTask(input); } /// <summary> /// è¯·æ±‚ä»»åŠ¡è´§ä½ /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("RequestLocationTaskAsync")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> UpdateExistingTask([FromBody] RequestTaskDto input) { return await Service.UpdateExistingTask(input); } /// <summary> /// 空托盘入库请求 /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("RequestTrayInTaskAsync")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> RequestTrayInTaskAsync([FromBody] RequestTaskDto input) { return await Service.RequestTrayInTaskAsync(input); } /// <summary> /// 空托盘满盘出库请求 /// </summary> /// <param name="request">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("RequestTrayOutTaskAsync")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> RequestTrayOutTaskAsync([FromBody] RequestOutTaskDto request) { return await Service.RequestTrayOutTaskAsync(request.Position, request.Tag, request.AreaCdoe, request.AreaCdoes, request.ProductionLine); } /// <summary> /// 任务状æ€ä¿®æ”¹ /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("UpdateTaskStatus")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> UpdateTaskStatus([FromBody] UpdateStatusDto input) { return await Service.UpdateTaskStatus(input.TaskNum, input.TaskState); } /// <summary> /// 获å–高温å¯å‡ºåº“åº“å˜ /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpGet, AllowAnonymous, Route("StockCheckingAsync")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public WebResponseContent StockCheckingAsync() { return Service.StockCheckingAsync(); } /// <summary> /// 创建指定任务 /// </summary> /// <param name="locationCode">è´§ä½å·</param> /// <param name="palletCode">托盘å·</param> /// <returns></returns> [HttpGet, AllowAnonymous, Route("CreateAndSendOutboundTask")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> CreateAndSendOutboundTask(string locationCode, string palletCode) { return await Service.CreateAndSendOutboundTask(locationCode, palletCode); } /// <summary> /// é™ç½®NG入库 /// </summary> /// <param name="locationCode">è´§ä½å·</param> /// <param name="palletCode">托盘å·</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("RequestInBoundTaskNG")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> RequestInBoundTaskNG([FromBody] RequestTaskDto input) { return await Service.CreateAndSendInboundTask(input.PalletCode, input.Position); } /// <summary> /// 常温补空托盘至分容 /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("GetFROutTrayToCW")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 15 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> GetFROutTrayToCW([FromBody] RequestTaskDto input) { return await Service.GetFROutTrayToCW(input); } /// <summary> /// DTSç«è¦å‡ºåº“ /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("EmergencyTask")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public WebResponseContent EmergencyTask([FromBody] object input) { return Service.EmergencyTask(input); } /// <summary> /// CW3 出库至包装 /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("RequestOutTaskToBZAsync")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> RequestOutTaskToBZAsync([FromBody] RequestTaskDto input) { return await Service.RequestOutTaskToBZAsync(input); } /// <summary> /// 分容空框入库改为直接出库 /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("SetEmptyOutbyInToOutAsync")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> SetEmptyOutbyInToOutAsync([FromBody] RequestTaskDto input) { return await Service.SetEmptyOutbyInToOutAsync(input); } /// <summary> /// 分容空框出库改为直接出库 /// </summary> /// <param name="input">请求数æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("SetEmptyOutbyInToOutOneAsync")] [TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5ç§’èŠ‚æµ public async Task<WebResponseContent> SetEmptyOutbyInToOutOneAsync([FromBody] RequestTaskDto input) { return await Service.SetEmptyOutbyInToOutOneAsync(input); } }