From 2809d27cbacc2ee90c7d762a0f7f254a08d66f44 Mon Sep 17 00:00:00 2001 From: Zheng Date: Sat, 7 Dec 2024 10:20:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=BA=93=E7=A7=BB=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TransferNotes/TransferNoteAppService.cs | 44 ++++++++++++++++++- .../DataExchanges/TransferNoteEventHandler.cs | 11 ----- .../Transactions/TransferNoteEventHandler.cs | 22 ---------- 3 files changed, 43 insertions(+), 34 deletions(-) diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs index d1d5c3dd4..d7a5e1ace 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Notes/TransferNotes/TransferNoteAppService.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using Volo.Abp; using Volo.Abp.Application.Dtos; +using Volo.Abp.Domain.Entities; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; @@ -54,6 +55,21 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase Dictionary dictionary) { var addList = dictionary.Where(p => p.Value == EntityState.Added).Select(p => p.Key); + foreach (var addTransferNote in addList) + { + foreach (var detail in addTransferNote.Details) + { + var balanceDto = await _balanceAppService.GetByItemLocationPackingAndStatusAsync(detail.FromPackingCode, + detail.ItemCode, detail.FromLocationCode, detail.FromStatus).ConfigureAwait(false); + + if (balanceDto.Qty < detail.Qty || balanceDto.Qty < 0) + { + throw new UserFriendlyException($"您申请的【ERP料号】{detail.ItemCode}【库位】{detail.FromLocationCode}【箱码】{detail.FromPackingCode}【状态】{detail.FromStatus}【数量】{detail.Qty}的库存," + + $"在实际库存中查询到【ERP料号】{balanceDto.ItemCode}【库位】{balanceDto.LocationCode}【箱码】{balanceDto.PackingCode}【状态】{balanceDto.Status}【数量】{balanceDto.Qty}" + + $"【库存不足】"); + } + } + } foreach (var transferNote in addList) { @@ -312,7 +328,20 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase { var entity = ObjectMapper.Map(input); - entity=await _transferNoteManager.CreateAsync(entity).ConfigureAwait(false); + foreach (var detail in entity.Details) + { + var balanceDto = await _balanceAppService.GetByItemLocationPackingAndStatusAsync(detail.FromPackingCode, + detail.ItemCode, detail.FromLocationCode, detail.FromStatus).ConfigureAwait(false); + + if (balanceDto.Qty < detail.Qty || balanceDto.Qty < 0) + { + throw new UserFriendlyException($"您申请的【ERP料号】{detail.ItemCode}【库位】{detail.FromLocationCode}【箱码】{detail.FromPackingCode}【状态】{detail.FromStatus}【数量】{detail.Qty}的库存," + + $"在实际库存中查询到【ERP料号】{balanceDto.ItemCode}【库位】{balanceDto.LocationCode}【箱码】{balanceDto.PackingCode}【状态】{balanceDto.Status}【数量】{balanceDto.Qty}" + + $"【库存不足】"); + } + } + + entity =await _transferNoteManager.CreateAsync(entity).ConfigureAwait(false); var dto = ObjectMapper.Map(entity); @@ -333,6 +362,19 @@ public class TransferNoteAppService : SfsStoreWithDetailsAppServiceBase foreach (var entity in entitys) { + foreach (var detail in entity.Details) + { + var balanceDto = await _balanceAppService.GetByItemLocationPackingAndStatusAsync(detail.FromPackingCode, + detail.ItemCode, detail.FromLocationCode, detail.FromStatus).ConfigureAwait(false); + + if (balanceDto.Qty < detail.Qty || balanceDto.Qty < 0) + { + throw new UserFriendlyException($"您申请的【ERP料号】{detail.ItemCode}【库位】{detail.FromLocationCode}【箱码】{detail.FromPackingCode}【状态】{detail.FromStatus}【数量】{detail.Qty}的库存," + + $"在实际库存中查询到【ERP料号】{balanceDto.ItemCode}【库位】{balanceDto.LocationCode}【箱码】{balanceDto.PackingCode}【状态】{balanceDto.Status}【数量】{balanceDto.Qty}" + + $"【库存不足】"); + } + } + resultEntity.Add(await _transferNoteManager.CreateAsync(entity).ConfigureAwait(false)); _ = ObjectMapper.Map(entity); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/TransferNoteEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/TransferNoteEventHandler.cs index 988f11b7c..112ddd33e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/TransferNoteEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/TransferNoteEventHandler.cs @@ -35,17 +35,6 @@ namespace Win_in.Sfs.Wms.Store.Event.DataExchanges { var entity = eventData.Entity; - foreach (var detail in entity.Details) - { - var balanceDto = await _balanceAppService.GetRealQtyByPackingCodeAndItemCodeAndLocationCodeAndStatusAsync(detail.FromPackingCode, - detail.ItemCode, detail.FromLocationCode, detail.FromStatus).ConfigureAwait(false); - - if (balanceDto.Qty < detail.Qty&& balanceDto.Qty <= 0) - { - throw new UserFriendlyException($"{balanceDto.ItemCode}在库位{balanceDto.LocationCode}中库存不足"); - } - } - switch (entity.Type) { case "Transfer_Inside": diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/TransferNoteEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/TransferNoteEventHandler.cs index 7ca884bdb..13d067bdd 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/TransferNoteEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/Transactions/TransferNoteEventHandler.cs @@ -42,17 +42,6 @@ public class TransferNoteEventHandler { var entity = eventData.Entity; - foreach (var detail in entity.Details) - { - var balanceDto=await _balanceAppService.GetRealQtyByPackingCodeAndItemCodeAndLocationCodeAndStatusAsync(detail.FromPackingCode, - detail.ItemCode, detail.FromLocationCode, detail.FromStatus).ConfigureAwait(false); - - if (balanceDto.Qty < detail.Qty) - { - throw new UserFriendlyException($"{balanceDto.ItemCode}在库位{balanceDto.LocationCode}中库存不足"); - } - } - var route = entity.UseOnTheWayLocation ? EnumTransferRoute.SourceToOnTheWay : EnumTransferRoute.SourceToDestination; @@ -72,17 +61,6 @@ public class TransferNoteEventHandler { foreach (var entity in eventData.Entity) { - foreach (var detail in entity.Details) - { - var balanceDto = await _balanceAppService.GetRealQtyByPackingCodeAndItemCodeAndLocationCodeAndStatusAsync(detail.FromPackingCode, - detail.ItemCode, detail.FromLocationCode, detail.FromStatus).ConfigureAwait(false); - - if (balanceDto.Qty < detail.Qty&&balanceDto.Qty <= 0) - { - throw new UserFriendlyException($"{balanceDto.ItemCode}在库位{balanceDto.LocationCode}中库存不足"); - } - } - var route = entity.UseOnTheWayLocation ? EnumTransferRoute.SourceToOnTheWay : EnumTransferRoute.SourceToDestination;