using Autofac.Core; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Newtonsoft.Json; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEA_Core.Attributes; using WIDESEA_Core.BaseController; using WIDESEA_Core.CodeConfigEnum; using WIDESEA_DTO.Inbound; using WIDESEA_DTO.Outbound; using WIDESEA_IOutboundService; using WIDESEA_Model.Models; using WIDESEA_WMSServer.Controllers.Inbound; namespace WIDESEA_WMSServer.Controllers.Outbound { /// /// 出库单 /// [Route("api/OutboundOrder")] [ApiController] public class OutboundOrderController : ApiBaseController { private readonly ILogger _logger; public OutboundOrderController(IOutboundOrderService service, ILogger logger) : base(service) { _logger = logger; } /// /// 接收MES出库单信息 /// /// /// [HttpPost, Route("ReceiveOutBoundOrder"), AllowAnonymous, MethodParamsValidate] public async Task ReceiveOutBoundOrder([FromBody] OutboundRequestModel model) { _logger.LogInformation("OutboundOrderController ReceiveOutBoundOrder: " + JsonConvert.SerializeObject(model)); Dt_OutboundOrder dt_OutboundOrder = new Dt_OutboundOrder() { Details = new List() }; foreach (var detailitem in model.details) { Dt_OutboundOrderDetail inboundOrderDetail = new Dt_OutboundOrderDetail() { lineNo = detailitem.lineNo, MaterielCode = detailitem.materialCode, SupplyCode = detailitem.supplyCode, BatchNo = detailitem.batchNo, Unit = detailitem.unit, WarehouseCode = detailitem.warehouseCode, MoveQty = detailitem.moveQty, BarcodeMoveQty=detailitem.moveQty, BarcodeQty=detailitem.qty, BarcodeUnit=detailitem.unit, OrderQuantity = detailitem.qty }; dt_OutboundOrder.Details.Add(inboundOrderDetail); } dt_OutboundOrder.UpperOrderNo = model.orderNo; dt_OutboundOrder.BusinessType = model.business_type; dt_OutboundOrder.IsBatch = model.isBatch; dt_OutboundOrder.FactoryArea = model.factoryArea; var content =await Service.ReceiveOutboundOrder(dt_OutboundOrder, model.operationType); if (content.Status) return WebResponseContent.Instance.OK(200); else return WebResponseContent.Instance.Error(content.Message); } /// /// 根据ID获取出库单 /// ss [HttpGet, Route("GetById"), AllowAnonymous, MethodParamsValidate] public async Task GetById(int id) { var order = await Service.GetById(id); if (order == null) { return WebResponseContent.Instance.Error("未找到出库单信息"); } return WebResponseContent.Instance.OK(null, order); } } }