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)
{
return Service.DeviceRequestInboundTask(stationCode, roadwayNo, palletCode);
}
///
/// 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("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 WebResponseContent TaskCompleted(int taskNum)
{
return 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);
}
}
}