zs
2025-05-16 edca9fd026f88d4edad94b528694d95d62246c67
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/LMesOperateAppService.cs
@@ -2,6 +2,7 @@
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.OutStockDto;
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsInOutStockOrder;
using CMS.Plugin.HIAWms.Application.Contracts.Services;
using CMS.Plugin.HIAWms.Domain.Shared.Enums;
using CMS.Plugin.HIAWms.Domain.WmsMaterials;
using CMS.Plugin.HIAWms.Domain.WmsTask;
using Microsoft.Extensions.DependencyInjection;
@@ -22,6 +23,7 @@
    {
        private readonly IWmsTaskRepository _wmsTaskRepository;
        private readonly IWmsMaterialRepository _wmsMaterialRepository;
        private readonly IWmsCommonAppService _wmsCommonAppService;
        private readonly IWmsInOutStockOrderAppService _wmsInOutStockOrderAppService;
        private readonly IWmsOutStockAppService _wmsOutStockOrderAppService;
        private readonly IServiceProvider _serviceProvider;
@@ -31,13 +33,15 @@
            IWmsInOutStockOrderAppService wmsInOutStockOrderAppService,
            IWmsOutStockAppService wmsOutStockOrderAppService
,
            IServiceProvider serviceProvider)
            IServiceProvider serviceProvider,
            IWmsCommonAppService wmsCommonAppService)
        {
            _wmsTaskRepository = wmsTaskRepository;
            _wmsMaterialRepository = wmsMaterialRepository;
            _wmsInOutStockOrderAppService = wmsInOutStockOrderAppService;
            _wmsOutStockOrderAppService = wmsOutStockOrderAppService;
            _serviceProvider = serviceProvider;
            _wmsCommonAppService = wmsCommonAppService;
        }
        /// <summary>
@@ -116,5 +120,34 @@
            return result;
        }
        /// <summary>
        /// LMes出库
        /// </summary>
        /// <returns></returns>
        public async Task LMesOutStockAsync(ReduceInput input)
        {
            if (input == null)
            {
                throw new UserFriendlyException("出库参数错误");
            }
            using var scope = _serviceProvider.CreateScope();
            var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>();
            using var uow = unitOfWorkManager.Begin(requiresNew: true);
            if (string.IsNullOrEmpty(input.MaterialMode))
            {
                throw new UserFriendlyException("出库型号不能为空");
            }
            var reduceInput = new ReduceStockInput
            {
                MaterialModel = input.MaterialMode,
                StockNumber = input.Quantity,
                PlaceNo = input.PlaceNo,
            };
            await _wmsCommonAppService.ReduceMaterialStockAsync(reduceInput);
            await uow.SaveChangesAsync();
        }
    }
}