using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using WIDESEA_Common.CommonEnum; using WIDESEA_Core; using WIDESEA_Core.BaseController; 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) { } ///// ///// 将WMS任务推送至WCS ///// ///// //[HttpPost, HttpGet, Route("PushTasksToWCS"), AllowAnonymous] //public WebResponseContent PushTasksToWCS() //{ // return Service.PushTasksToWCS(); //} /// /// 申请入库任务 /// /// /// [HttpPost, HttpGet, Route("RequestInboundTask"), AllowAnonymous] public WebResponseContent RequestInboundTask([FromBody] SaveModel saveModel) { return Service.RequestInboundTask(saveModel); } /// /// 空箱入库 /// /// 托盘号 /// 地址 /// [HttpPost, HttpGet, Route("InEmpty"), AllowAnonymous] public WebResponseContent InEmpty(string barcode, string address, int WarehouseId) { return Service.InEmpty(barcode, address, WarehouseId); } /// /// 空箱出库 /// /// 数量 /// 地址 /// [HttpPost, HttpGet, Route("OutEmpty"), AllowAnonymous] public WebResponseContent OutEmpty(int qty, string address, int WarehouseId, string barcode) { return Service.OutEmpty(qty, address, WarehouseId, barcode); } /// /// WCS申请入库任务(分配货位) /// /// /// /// /// [HttpPost, HttpGet, Route("DeviceRequestInboundTask"), AllowAnonymous] public WebResponseContent DeviceRequestInboundTask(string stationCode, string roadwayNo, string palletCode,string materielBoxCode = "") { return Service.DeviceRequestInboundTask(stationCode, roadwayNo, palletCode, materielBoxCode); } /// /// WCS申请入库任务(不分配货位) /// /// /// /// [HttpPost, HttpGet, Route("DeviceRequestInboundTaskSimple"), AllowAnonymous] public WebResponseContent DeviceRequestInboundTaskSimple(string stationCode, string palletCode) { return Service.DeviceRequestInboundTaskSimple(stationCode, palletCode); } /// /// /// /// /// /// /// /// [HttpPost, HttpGet, Route("DeviceRequestInboundTaskByRoadways"), AllowAnonymous] public WebResponseContent DeviceRequestInboundTaskByRoadways(string stationCode, string palletCode, int heightType, [FromBody] List roadwayNos) { return Service.DeviceRequestInboundTaskByRoadways(stationCode, palletCode, roadwayNos, heightType); } /// /// 入库任务申请分配货位 /// /// 任务号 /// 巷道号 /// [HttpPost, HttpGet, Route("AssignInboundTaskLocation"), AllowAnonymous] public WebResponseContent AssignInboundTaskLocation(int taskNum, string roadwayNo) { return Service.AssignInboundTaskLocation(taskNum, roadwayNo); } /// /// /// /// /// /// /// [HttpPost, HttpGet, Route("AssignInboundTaskLocationByHeight"), AllowAnonymous] public WebResponseContent AssignInboundTaskLocationByHeight(int taskNum, string roadwayNo, int heightType) { return Service.AssignInboundTaskLocationByHeight(taskNum, roadwayNo, heightType); } /// /// 入库任务完成 /// /// /// [HttpPost, HttpGet, Route("InboundTaskCompleted"), AllowAnonymous] public WebResponseContent InboundTaskCompleted(int taskNum) { return Service.InboundTaskCompleted(taskNum); } /// /// 生成出库任务 /// /// /// /// [HttpPost, HttpGet, Route("GenerateOutboundTask"), AllowAnonymous] public WebResponseContent GenerateOutboundTask(int orderDetailId, [FromBody] List stockSelectViews) { return Service.GenerateOutboundTask(orderDetailId, stockSelectViews); } /// /// 平库直接出库 /// /// /// /// [HttpPost, HttpGet, Route("GeneratePKOutboundTask"), AllowAnonymous] public WebResponseContent GeneratePKOutboundTask(int orderDetailId, [FromBody] List stockSelectViews) { return Service.GeneratePKOutboundTask(orderDetailId, stockSelectViews); } /// /// 生成出库任务 /// /// /// [HttpPost, HttpGet, Route("GenerateOutboundTasks"), AllowAnonymous] public WebResponseContent GenerateOutboundTasks([FromBody] int[] keys) { return Service.GenerateOutboundTasks(keys); } /// /// 生成成品出库任务 /// /// 出库订单号 /// 站台地址 /// [HttpPost, HttpGet, Route("OutProductTask"), AllowAnonymous] public async Task OutProductTask([FromBody] int[] keys, string StationCode, int Grade) { return await Service.OutProductTask(keys, StationCode, Grade); } /// /// 成品余料退库入仓 /// /// /// /// [HttpPost, HttpGet, Route("BackProductTask"), AllowAnonymous] public WebResponseContent BackProductTask(string barCode, string startPoint) { return Service.BackProductTask(barCode, startPoint); } /// /// 成品空框回库 /// /// /// /// [HttpPost, HttpGet, Route("EmptyBackTask"), AllowAnonymous] public WebResponseContent EmptyBackTask(string barCode, string startPoint) { return Service.EmptyBackTask(barCode, startPoint); } /// /// 生成成品提库任务 /// [HttpPost, HttpGet, Route("OutProRworkTask"), AllowAnonymous] public async Task OutProRworkTask([FromBody] int[] keys, string StationCode, int Grade) { return await Service.OutProductTask(keys, StationCode, Grade); } ///// ///// 生成MESPP仓大卷出库任务 ///// ///// ///// //[HttpPost, HttpGet, Route("MESPPGenerateOutboundTasks"), AllowAnonymous] //public WebResponseContent MESPPGenerateOutboundTasks([FromBody] int[] keys) //{ // return Service.MESPPGenerateOutboundTasks(keys); //} /// /// 出库任务完成 /// /// 任务号 /// [HttpPost, HttpGet, Route("OutboundTaskCompleted"), AllowAnonymous] public WebResponseContent OutboundTaskCompleted(int taskNum) { return Service.OutboundTaskCompleted(taskNum); } /// /// 判断是否需要移库 /// /// 任务号 /// /// [HttpPost, HttpGet, Route("IsRelocation"), AllowAnonymous] public WebResponseContent IsRelocation(int taskNum, string locationCode) { return Service.IsRelocation(taskNum, locationCode); } /// /// 任务完成 /// /// 任务号 /// [HttpPost, HttpGet, Route("TaskCompleted"), AllowAnonymous] public async Task TaskCompleted(int taskNum) { return await Service.TaskCompleted(taskNum); } /// /// 单个任务推送至WCS /// /// 任务号 /// /// [HttpPost, HttpGet, Route("PushTasksToWCSSingle"), AllowAnonymous] public WebResponseContent PushTasksToWCSSingle(int taskNum, string agvDescription = "") { return Service.PushTasksToWCSSingle(taskNum, agvDescription); } /// /// 选择库存生成出库任务 /// /// /// [HttpPost, Route("Outbound"), AllowAnonymous] public WebResponseContent Outbound(int id) { return Service.Outbound(id); } /// /// 分配巷道(带任务号及高度) /// /// /// /// /// [HttpPost, Route("AssignRoadwayByHeight"), AllowAnonymous] public WebResponseContent AssignRoadwayByHeight([FromBody] List roadwayNos, int taskNum, int heightType = 0) { return Service.AssignRoadwayByHeight(roadwayNos, taskNum, heightType); } /// /// /// /// /// /// /// [HttpPost, Route("AssignRoadwayByHeightAndCode"), AllowAnonymous] public WebResponseContent AssignRoadwayByHeightAndCode([FromBody] List roadwayNos, string palletCode, int heightType = 0) { return Service.AssignRoadwayByHeightAndCode(roadwayNos, palletCode, heightType); } /// /// 分配巷道(带任务号) /// /// /// /// [HttpPost, Route("AssignRoadway"), AllowAnonymous] public WebResponseContent AssignRoadway(int taskNum, [FromBody] List roadwayNos,int heightType) { return Service.AssignRoadway(taskNum, roadwayNos, heightType); } /// /// 分配巷道 /// /// /// [HttpPost, Route("SingleAssignRoadway"), AllowAnonymous] public WebResponseContent SingleAssignRoadway([FromBody] List roadwayNos) { return Service.SingleAssignRoadway(roadwayNos); } /// /// /// /// /// [HttpPost, Route("HandSubstrateOut")] public WebResponseContent HandSubstrateOut(int orderId) { return Service.HandSubstrateOut(orderId); } /// /// 修改任务状态 /// /// /// [HttpPost, Route("UpdateTaskInfo"), AllowAnonymous] public WebResponseContent UpdateTaskInfo([FromBody] WCSTaskDTO task) { return Service.UpdateTaskInfo(task); } /// /// PP仓AGV搬运任务 /// /// /// [HttpPost, Route("AGVTasks"), AllowAnonymous] public WebResponseContent AGVTasks([FromBody] SaveModel saveModel) { return Service.AGVTasks(saveModel); } /// /// 成品指定出库 /// /// /// [HttpPost, Route("OutProductSelect"), AllowAnonymous] public WebResponseContent OutProductSelect(int orderDetailId,[FromBody] List proStockViews) { return Service.OutProductSelect(orderDetailId, proStockViews); } } }