From 3322dfd299755416176cd946265577e176cae795 Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周日, 11 5月 2025 20:26:51 +0800 Subject: [PATCH] 出入库功能 --- HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAppService.cs | 39 +++++++++++++++++++++++++++++---------- 1 files changed, 29 insertions(+), 10 deletions(-) diff --git a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAppService.cs similarity index 84% rename from HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs rename to HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAppService.cs index 097119d..7389cab 100644 --- a/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAssService.cs +++ b/HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsBindInStockAppService.cs @@ -10,19 +10,21 @@ using CMS.Plugin.HIAWms.Domain.WmsMaterials; using CMS.Plugin.HIAWms.Domain.WmsPlaces; using CMS.Plugin.HIAWms.Domain.WmsTask; +using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp; +using Volo.Abp.Uow; namespace CMS.Plugin.HIAWms.Application.Implements { /// <summary> /// 缁勭洏鍏ュ簱 /// </summary> - public class WmsBindInStockAssService : CMSPluginAppService + public class WmsBindInStockAppService : CMSPluginAppService, IWmsBindInStockAppService { private readonly IWmsMaterialRepository _wmsMaterialRepository; private readonly IWmsContainerRepository _wmsContainerRepository; @@ -34,8 +36,9 @@ private readonly IWmsCommonAppService _wmsCommonAppService; private readonly IWmsTaskRepository _wmsTaskRepository; private readonly IWmsTaskAppService _wmsTaskAppService; + private readonly IServiceProvider _serviceProvider; - public WmsBindInStockAssService(IWmsMaterialRepository wmsMaterialRepository, + public WmsBindInStockAppService(IWmsMaterialRepository wmsMaterialRepository, IWmsContainerRepository wmsContainerRepository, IWmsPlaceRepository wmsPlaceRepository , @@ -45,7 +48,8 @@ IWmsMaterialStockAppService wmsMaterialStockAppService, IWmsCommonAppService wmsCommonAppService, IWmsTaskRepository wmsTaskRepository, - IWmsTaskAppService wmsTaskAppService) + IWmsTaskAppService wmsTaskAppService, + IServiceProvider serviceProvider) { _wmsMaterialRepository = wmsMaterialRepository; _wmsContainerRepository = wmsContainerRepository; @@ -57,10 +61,15 @@ _wmsCommonAppService = wmsCommonAppService; _wmsTaskRepository = wmsTaskRepository; _wmsTaskAppService = wmsTaskAppService; + _serviceProvider = serviceProvider; } public async Task BindMaterialContaienrAsync(BindInstockInput input) { + using var scope = _serviceProvider.CreateScope(); + var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); + using var uow = unitOfWorkManager.Begin(requiresNew: true); + if (string.IsNullOrEmpty(input.MaterialModel)) { throw new UserFriendlyException("璇烽�夋嫨搴撲綅缂栧彿"); } if (string.IsNullOrEmpty(input.MaterialBatch)) { throw new UserFriendlyException("璇疯緭鍏ユ壒娆″彿"); } if (input.StockNumber <= 0) { throw new UserFriendlyException("鍏ュ簱鏁伴噺蹇呴』澶т簬0"); } @@ -111,13 +120,13 @@ { containerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString(); } - var container = new WmsContainer - { - ContainerNo = containerNo, - ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI, - ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG, - }; - await _wmsContainerRepository.InsertAsync(container); + //var container = new WmsContainer + //{ + // ContainerNo = containerNo, + // ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI, + // ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.ZUPANG, + //}; + //var result = await _wmsContainerRepository.InsertAsync(container); var materialStock = new WmsMaterialStockCreateDto { @@ -132,6 +141,9 @@ EmptyContainer = Domain.Shared.Enums.YesNoEnum.N, }; await _wmsMaterialStockAppService.CreateAsync(materialStock); + + await uow.SaveChangesAsync(); + await uow.CompleteAsync(); } @@ -144,6 +156,10 @@ public async Task BindInStockAsync(BindInstockInput input) { if (string.IsNullOrEmpty(input.PlaceNo)) { throw new UserFriendlyException("璇烽�夋嫨搴撲綅缂栧彿"); } + + using var scope = _serviceProvider.CreateScope(); + var unitOfWorkManager = scope.ServiceProvider.GetRequiredService<IUnitOfWorkManager>(); + using var uow = unitOfWorkManager.Begin(requiresNew: true); input.ContainerNo = DateTime.Now.ToString("yyMMddHHmmss") + new Random(Guid.NewGuid().GetHashCode()).Next(100, 9999).ToString(); await BindMaterialContaienrAsync(input); @@ -179,6 +195,9 @@ } } await _wmsTaskRepository.InsertManyAsync(taskList); + + await uow.SaveChangesAsync(); + await uow.CompleteAsync(); } } } -- Gitblit v1.9.3