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