pan
2025-11-16 e31ca4e3e1774b7ddb832e8ec498b5ada24b2608
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Inbound/InboundOrderController.cs
@@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using SqlSugar;
using System.Net;
using System.Threading.Tasks;
@@ -29,22 +30,34 @@
        private readonly WIDESEA_IBasicService.IErpApiService erpApiService;
        private readonly WIDESEA_IBasicService.IInvokeMESService _invokeMESService;
        private readonly IESSApiService _eSSApiService;
        private readonly ILocationInfoService _locationInfoService;
        private readonly IDailySequenceService _dailySequenceService;
        public InboundOrderController(IInboundOrderService service, WIDESEA_IBasicService.IErpApiService erpApiService, WIDESEA_IBasicService.IInvokeMESService invokeMESService, IESSApiService eSSApiService, IDailySequenceService dailySequenceService) : base(service)
        private readonly IMaterialUnitService _materialUnitService;
        private readonly ILogger<InboundOrderController> _logger;
        public InboundOrderController(IInboundOrderService service, WIDESEA_IBasicService.IErpApiService erpApiService, WIDESEA_IBasicService.IInvokeMESService invokeMESService, IESSApiService eSSApiService, IDailySequenceService dailySequenceService, ILocationInfoService locationInfoService, ILogger<InboundOrderController> logger, IMaterialUnitService materialUnitService) : base(service)
        {
            this.erpApiService = erpApiService;
            _invokeMESService = invokeMESService;
            _eSSApiService = eSSApiService;
            _dailySequenceService = dailySequenceService;
            _locationInfoService = locationInfoService;
            _logger = logger;
            _materialUnitService = materialUnitService;
        }
        [HttpPost, Route("Test"), AllowAnonymous, MethodParamsValidate]
        public async Task<WebResponseContent> Test()
        {
            await _dailySequenceService.GetNextSequenceAsync();
           // var purchaseToStockResult = await _materialUnitService.ConvertPurchaseToStockAsync("101001-00002", 10);
           // var pdddurchaseToStockResult = await _materialUnitService.ConvertPurchaseToStockAsync("100513-00210", 10);
            var sddd = _locationInfoService.AssignLocation();
            var code = sddd.LocationCode;
            //var ssss=await _dailySequenceService.GetNextSequenceAsync();
            //var  ddddssss = "WSLOT" + DateTime.Now.ToString("yyyyMMddHHmmss") + ssss.ToString().PadLeft(5, '0');
            //erpApiService.GetSuppliersAsync();
            //erpApiService.GetMaterialUnitAsync();
@@ -64,13 +77,18 @@
            //      qty = "20.0",
            //  });
            await _eSSApiService.MoveContainerAsync(new WIDESEA_DTO.Basic.MoveContainerRequest
            {
                slotCode = "3-5",
                containerCode = "A000008006"
            });
            //  erpApiService.GetMaterialInfoAsy2nc(new WIDESEA_DTO.Basic.MaterialRequest());
            return WebResponseContent.Instance.OK();
            //await _eSSApiService.MoveContainerAsync(new WIDESEA_DTO.Basic.MoveContainerRequest
            //{
            //    slotCode = "3-5",
            //    containerCode = "A000008009"
            //});
            //await erpApiService.GetSuppliersAsync();
            //await erpApiService.GetMaterialUnitAsync();
            //await  erpApiService.GetMaterialInfoAsync(new WIDESEA_DTO.Basic.MaterialRequest());
            return WebResponseContent.Instance.OK(code);
        }
        /// <summary>
@@ -79,10 +97,14 @@
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost, Route("ReceiveInboundOrder"), AllowAnonymous, MethodParamsValidate]
        public WebResponseContent ReceiveInboundOrder([FromBody] InboundRequestModel model)
        public async Task<WebResponseContent> ReceiveInboundOrder([FromBody] InboundRequestModel model)
        {
            if(model.inBounds == null || !model.inBounds.Any())
            {
                return WebResponseContent.Instance.Error("入库单不能为空");
            }
            _logger.LogInformation("InboundOrderController ReceiveInboundOrder:  " +  JsonConvert.SerializeObject(model));
            List<Dt_InboundOrder> inboundOrders = new List<Dt_InboundOrder>();
            foreach (var item in model.inBounds)
@@ -124,7 +146,9 @@
                            BatchNo = detailitem.batchNo,
                            Unit = detailitem.unit,
                            WarehouseCode = detailitem.warehouseCode,
                            OrderQuantity = detailitem.qty
                            OrderQuantity = detailitem.qty,
                            BarcodeUnit = detailitem.unit,
                            BarcodeQty = detailitem.qty,
                        };
                        dt_InboundOrder.Details.Add(inboundOrderDetail);
                    }
@@ -138,7 +162,7 @@
                inboundOrders.Add(dt_InboundOrder);
            }
            var content = Service.ReceiveInboundOrder(inboundOrders, model.operationType);
            var content =await Service.ReceiveInboundOrder(inboundOrders, model.operationType);
            if (content.Status) return WebResponseContent.Instance.OK(200);
            else return WebResponseContent.Instance.Error(content.Message);
@@ -171,5 +195,17 @@
        }
        [HttpPost, Route("UnPalletQuantity"), AllowAnonymous, MethodParamsValidate]
        public WebResponseContent UnPalletQuantity(string orderNo)
        {
            return Service.UnPalletQuantity(orderNo);
        }
        [HttpPost, Route("BatchOrderFeedbackToMes"), AllowAnonymous]
        public async Task<WebResponseContent> BatchOrderFeedbackToMes([FromBody]  BatchOrderFeedbackToMesDto request)
        {
           return await _invokeMESService.BatchOrderFeedbackToMes(request.orderNos, request.inout);
        }
    }
}