using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System.DirectoryServices.Protocols; using WIDESEA_Common.CommonEnum; using WIDESEA_Core; using WIDESEA_Core.BaseController; using WIDESEA_DTO.GradingMachine; using WIDESEA_DTO.Stock; using WIDESEA_DTO.Task; using WIDESEA_ITaskInfoService; using WIDESEA_Model.Models; namespace WIDESEA_WMSServer.Controllers.TaskInfo { /// /// 任务 /// [Route("api/Task")] [ApiController] public class TaskController : ApiBaseController { public TaskController(ITaskService service) : base(service) { } /// /// 创建入库任务 /// /// /// [HttpGet, HttpPost, Route("CreateTaskInbound"), AllowAnonymous] public async Task CreateTaskInboundAsync([FromBody] CreateTaskDto taskDto) { return await Service.CreateTaskInboundAsync(taskDto); } /// /// 根据指定的任务详情异步创建新的出库任务 /// /// /// [HttpGet, HttpPost, Route("CreateTaskOutbound"), AllowAnonymous] public async Task CreateTaskOutboundAsync([FromBody] CreateTaskDto taskDto) { return await Service.CreateTaskOutboundAsync(taskDto); } /// /// 手动创建任务 /// /// 手动创建任务参数 /// [HttpGet, HttpPost, Route("CreateManualTask"), AllowAnonymous] public async Task CreateManualTaskAsync([FromBody] CreateManualTaskDto dto) { return await Service.CreateManualTaskAsync(dto); } /// /// 手动下发任务到WCS /// /// 下发任务参数列表 /// 批量下发结果 [HttpGet, HttpPost, Route("DispatchTasksToWCS"), AllowAnonymous] public async Task DispatchTasksToWCSAsync([FromBody] List dtos) { return await Service.DispatchTasksToWCSAsync(dtos); } /// /// 获取可入库货位 /// /// /// [HttpGet, HttpPost, Route("GetTasksLocation"), AllowAnonymous] public async Task GetTasksLocationAsync([FromBody] CreateTaskDto taskDto) { return await Service.GetTasksLocationAsync(taskDto); } /// /// 入库任务完成:添加库存,修改货位状态,删除任务数据,添加历史任务数据 /// /// /// [HttpGet, HttpPost, Route("InboundFinishTask"), AllowAnonymous] public async Task InboundFinishTaskAsync([FromBody] CreateTaskDto taskDto) { return await Service.InboundFinishTaskAsync(taskDto); } /// /// 出库任务完成 :修改库存,修改货位状态,删除任务数据,添加历史任务数据 /// /// /// [HttpGet, HttpPost, Route("OutboundFinishTask"), AllowAnonymous] public async Task OutboundFinishTaskAsync([FromBody] CreateTaskDto taskDto) { return await Service.OutboundFinishTaskAsync(taskDto); } /// /// 移库任务完成:修改库存位置与状态,修改源/目标货位状态,删除任务数据 /// /// /// [HttpGet, HttpPost, Route("RelocationFinishTask"), AllowAnonymous] public async Task RelocationFinishTaskAsync([FromBody] CreateTaskDto taskDto) { return await Service.RelocationFinishTaskAsync(taskDto); } /// /// 创建空托盘出库任务 /// /// /// [HttpGet, HttpPost, Route("GetOutBoundTrayTask"), AllowAnonymous] public async Task GetOutBoundTrayTaskAsync([FromBody] CreateTaskDto taskDto) { return await Service.GetOutBoundTrayTaskAsync(taskDto); } /// /// 创建空托盘入库任务 /// /// /// [HttpGet, HttpPost, Route("CreateTaskInboundTray"), AllowAnonymous] public async Task CreateTaskInboundTrayAsync([FromBody] CreateTaskDto taskDto) { return await Service.CreateTaskInboundTrayAsync(taskDto); } /// /// 空托盘出库完成 /// /// /// [HttpGet, HttpPost, Route("OutboundFinishTaskTray"), AllowAnonymous] public async Task OutboundFinishTaskTrayAsync([FromBody] CreateTaskDto taskDto) { return await Service.OutboundFinishTaskTrayAsync(taskDto); } /// /// 修改任务状态(根据任务ID修改为指定状态) /// /// /// [HttpGet, HttpPost, Route("UpdateTaskByStatus"), AllowAnonymous] public async Task UpdateTaskByStatusAsync([FromBody] UpdateTaskDto taskDto) { return await Service.UpdateTaskByStatusAsync(taskDto); } /// /// 创建机械手组盘任务 /// /// /// [HttpGet, HttpPost, Route("CreateRobotGroupPalletTask"), AllowAnonymous] public async Task CreateRobotGroupPalletTaskAsync([FromBody] StockDTO taskDto) { return await Service.CreateRobotGroupPalletTaskAsync(taskDto); } /// /// 创建机械手拆盘任务 /// /// /// [HttpGet, HttpPost, Route("CreateRobotSplitPalletTask"), AllowAnonymous] public async Task CreateRobotSplitPalletTaskAsync([FromBody] StockDTO taskDto) { return await Service.CreateRobotSplitPalletTaskAsync(taskDto); } /// /// 创建机械手换盘任务 /// /// /// [HttpGet, HttpPost, Route("CreateRobotChangePalletTask"), AllowAnonymous] public async Task CreateRobotChangePalletTaskAsync([FromBody] StockDTO taskDto) { return await Service.CreateRobotChangePalletTaskAsync(taskDto); } /// /// 堆垛机取放货完成后物流通知化成分容柜完成信号 /// /// /// [HttpGet, HttpPost, Route("InOrOutCompleted"), AllowAnonymous] public async Task InOrOutCompletedAsync([FromBody] GradingMachineInputDto input) { return await Service.InOrOutCompletedAsync(input); } /// /// 化成分容柜定时向物流更新分容柜状态信息 /// /// /// [HttpGet, HttpPost, Route("SendLocationStatus"), AllowAnonymous] public async Task SendLocationStatusAsync([FromBody] GradingMachineInputDto input) { return await Service.SendLocationStatusAsync(input); } /// /// 分容柜工作完成后调用此接口通知物流出库 /// /// /// [HttpGet, HttpPost, Route("RequestOutbound"), AllowAnonymous] public async Task RequestOutboundAsync([FromBody] GradingMachineInputDto input) { return await Service.RequestOutboundAsync(input); } /// /// 入库完成分容调用获取托盘上每个通道电芯 /// /// /// [HttpGet, HttpPost, Route("GetPalletCodeCell"), AllowAnonymous] public async Task GetPalletCodeCellAsync([FromBody] GradingMachineInputDto input) { return await Service.GetPalletCodeCellAsync(input); } #region 极卷库任务模块 /// /// 出入库申请 /// /// 请求参数 /// [HttpPost("ApplyInOut"), AllowAnonymous] public async Task ApplyInOutAsync([FromBody] ApplyInOutDto applyInOutDto) { return await Service.ApplyInOutAsync(applyInOutDto); } /// /// 手动出库完成反馈给AGV /// /// 请求参数 /// [HttpPost, Route("OutTaskComplete"), AllowAnonymous] public async Task OutTaskComplete([FromBody] OutTaskCompleteDto outTaskCompleteDto) { return await Service.OutTaskComplete(outTaskCompleteDto); } /// /// 输送线申请进入 /// /// 请求参数 /// [HttpPost("ApplyEnter"), AllowAnonymous] public async Task ApplyEnterAsync([FromBody] ApplyEnterDto applyEnterDto) { return await Service.ApplyEnterAsync(applyEnterDto); } /// /// 取放货完成 /// /// 请求参数 /// [HttpPost("TaskComplete"), AllowAnonymous] public async Task TaskCompleteAsync([FromBody] TaskCompleteDto taskCompleteDto) { return await Service.TaskCompleteAsync(taskCompleteDto); } /// /// 任务取消 /// /// 请求参数 /// [HttpPost("TaskCancel"), AllowAnonymous] public async Task TaskCancelAsync([FromBody] TaskCancelDto taskCancelDto) { return await Service.TaskCancelAsync(taskCancelDto); } #endregion 极卷库任务模块 } }