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_ITaskInfoService; 
 | 
using WIDESEA_Model.Models; 
 | 
  
 | 
namespace WIDESEA_WMSServer.Controllers.TaskInfo 
 | 
{ 
 | 
    /// <summary> 
 | 
    /// 任务 
 | 
    /// </summary> 
 | 
    [Route("api/Task")] 
 | 
    [ApiController] 
 | 
    public class TaskController : ApiBaseController<ITaskService, Dt_Task> 
 | 
    { 
 | 
        public TaskController(ITaskService service) : base(service) 
 | 
        { 
 | 
        } 
 | 
  
 | 
        ///// <summary> 
 | 
        ///// 将WMS任务推送至WCS 
 | 
        ///// </summary> 
 | 
        ///// <returns></returns> 
 | 
        //[HttpPost, HttpGet, Route("PushTasksToWCS"), AllowAnonymous] 
 | 
        //public WebResponseContent PushTasksToWCS() 
 | 
        //{ 
 | 
        //    return Service.PushTasksToWCS(); 
 | 
        //} 
 | 
  
 | 
        /// <summary> 
 | 
        /// 申请入库任务 
 | 
        /// </summary> 
 | 
        /// <param name="saveModel"></param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("RequestInboundTask"), AllowAnonymous] 
 | 
        public WebResponseContent RequestInboundTask([FromBody] SaveModel saveModel) 
 | 
        { 
 | 
            return Service.RequestInboundTask(saveModel); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 空箱入库 
 | 
        /// </summary> 
 | 
        /// <param name="barcode">托盘号</param> 
 | 
        /// <param name="address">地址</param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("InEmpty"), AllowAnonymous] 
 | 
        public WebResponseContent InEmpty(string barcode, string address, int WarehouseId) 
 | 
        { 
 | 
            return Service.InEmpty(barcode, address, WarehouseId); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 空箱出库 
 | 
        /// </summary> 
 | 
        /// <param name="qty">数量</param> 
 | 
        /// <param name="address">地址</param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("OutEmpty"), AllowAnonymous] 
 | 
        public WebResponseContent OutEmpty(int qty, string address, int WarehouseId) 
 | 
        { 
 | 
            return Service.OutEmpty(qty, address, WarehouseId); 
 | 
        } 
 | 
  
 | 
        [HttpPost, HttpGet, Route("DeviceRequestInboundTask"), AllowAnonymous] 
 | 
        public WebResponseContent DeviceRequestInboundTask(string stationCode, string roadwayNo, string palletCode) 
 | 
        { 
 | 
            return Service.DeviceRequestInboundTask(stationCode, roadwayNo, palletCode); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 入库任务申请分配货位 
 | 
        /// </summary> 
 | 
        /// <param name="taskNum">任务号</param> 
 | 
        /// <param name="roadwayNo">巷道号</param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("AssignInboundTaskLocation"), AllowAnonymous] 
 | 
        public WebResponseContent AssignInboundTaskLocation(int taskNum, string roadwayNo) 
 | 
        { 
 | 
            return Service.AssignInboundTaskLocation(taskNum, roadwayNo); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 入库任务完成 
 | 
        /// </summary> 
 | 
        /// <param name="taskNum"></param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("InboundTaskCompleted"), AllowAnonymous] 
 | 
        public WebResponseContent InboundTaskCompleted(int taskNum) 
 | 
        { 
 | 
            return Service.InboundTaskCompleted(taskNum); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 生成出库任务 
 | 
        /// </summary> 
 | 
        /// <param name="orderDetailId"></param> 
 | 
        /// <param name="stockSelectViews"></param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("GenerateOutboundTask"), AllowAnonymous] 
 | 
        public WebResponseContent GenerateOutboundTask(int orderDetailId, [FromBody] List<StockSelectViewDTO> stockSelectViews) 
 | 
        { 
 | 
            return Service.GenerateOutboundTask(orderDetailId, stockSelectViews); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 生成出库任务 
 | 
        /// </summary> 
 | 
        /// <param name="keys"></param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("GenerateOutboundTasks"), AllowAnonymous] 
 | 
        public WebResponseContent GenerateOutboundTask([FromBody] int[] keys) 
 | 
        { 
 | 
            return Service.GenerateOutboundTask(keys); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 出库任务完成 
 | 
        /// </summary> 
 | 
        /// <param name="taskNum">任务号</param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("OutboundTaskCompleted"), AllowAnonymous] 
 | 
        public WebResponseContent OutboundTaskCompleted(int taskNum) 
 | 
        { 
 | 
            return Service.OutboundTaskCompleted(taskNum); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 判断是否需要移库 
 | 
        /// </summary> 
 | 
        /// <param name="taskNum">任务号</param> 
 | 
        /// <param name="locationCode"></param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("IsRelocation"), AllowAnonymous] 
 | 
        public WebResponseContent IsRelocation(int taskNum, string locationCode) 
 | 
        { 
 | 
            return Service.IsRelocation(taskNum, locationCode); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 任务完成 
 | 
        /// </summary> 
 | 
        /// <param name="taskNum">任务号</param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("TaskCompleted"), AllowAnonymous] 
 | 
        public WebResponseContent TaskCompleted(int taskNum) 
 | 
        { 
 | 
            return Service.TaskCompleted(taskNum); 
 | 
        } 
 | 
  
 | 
        /// <summary> 
 | 
        /// 单个任务推送至WCS 
 | 
        /// </summary> 
 | 
        /// <param name="taskNum">任务号</param> 
 | 
        /// <param name="agvDescription"></param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, HttpGet, Route("PushTasksToWCSSingle"), AllowAnonymous] 
 | 
        public WebResponseContent PushTasksToWCSSingle(int taskNum, string agvDescription = "") 
 | 
        { 
 | 
            return Service.PushTasksToWCSSingle(taskNum, agvDescription); 
 | 
        } 
 | 
        /// <summary> 
 | 
        /// 选择库存生成出库任务 
 | 
        /// </summary> 
 | 
        /// <param name="id"></param> 
 | 
        /// <returns></returns> 
 | 
        [HttpPost, Route("Outbound"), AllowAnonymous] 
 | 
        public WebResponseContent Outbound(int id) 
 | 
        { 
 | 
            return Service.Outbound(id); 
 | 
        } 
 | 
    } 
 | 
} 
 |