heshaofeng
2025-11-17 6786e08f840750756261583fa9e55decdad2c8ab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
using Autofac.Core;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
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
{
    /// <summary>
    /// 出库单
    /// </summary>
    [Route("api/OutboundOrder")]
    [ApiController]
    public class OutboundOrderController : ApiBaseController<IOutboundOrderService, Dt_OutboundOrder>
    {
        private readonly ILogger<OutboundOrderController> _logger;
        public OutboundOrderController(IOutboundOrderService service, ILogger<OutboundOrderController> logger) : base(service)
        {
            _logger = logger;
        }
        /// <summary>
        /// 接收MES出库单信息
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("ReceiveOutBoundOrder"), AllowAnonymous, MethodParamsValidate]
        public WebResponseContent ReceiveOutBoundOrder([FromBody] OutboundRequestModel model)
        {
            _logger.LogInformation("OutboundOrderController ReceiveOutBoundOrder:  " + JsonConvert.SerializeObject(model));
            Dt_OutboundOrder dt_OutboundOrder = new Dt_OutboundOrder() { Details = new List<Dt_OutboundOrderDetail>() };
            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,
                    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 = Service.ReceiveOutboundOrder(dt_OutboundOrder, model.operationType);
 
            if (content.Status) return WebResponseContent.Instance.OK(200);
            else return WebResponseContent.Instance.Error(content.Message);
        }
 
        /// <summary>
        /// 根据ID获取出库单
        /// </summary>ss
        [HttpGet, Route("GetById"), AllowAnonymous, MethodParamsValidate]
        public async Task<WebResponseContent> GetById(int id)
        {
            var order = await Service.GetById(id);
            if (order == null)
            {
                return WebResponseContent.Instance.Error("未找到出库单信息");
            }
            return WebResponseContent.Instance.OK(null, order);
        }
    }
}