diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs index e44da0e5f..85943ac58 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs @@ -25,4 +25,5 @@ public interface IItemBasicAppService Task UpsertAsyncByInterface(ItemBasicEditInput input); Task UpsertStdPackQtyAsync(string itemCode, decimal stdpackqty); + Task> GetByCodesByPostAsync(IEnumerable codes); } diff --git a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs index 710271fd8..d6927705b 100644 --- a/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs +++ b/be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs @@ -14,6 +14,7 @@ using Volo.Abp.Validation; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Basedata.Domain; using Win_in.Sfs.Basedata.Domain.Shared; +using Win_in.Sfs.Shared.Application; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; @@ -212,6 +213,25 @@ public class ItemBasicAppService return itemCategorys.ToDictionary(x => x.CategoryCode, y => y.Value); } + [HttpPost("by-codes-post")] + public virtual async Task> GetByCodesByPostAsync(IEnumerable codes) + { + + var dtoList = new List(); + foreach (var code in codes) + { + var dto = await Cache.GetOrAddItemAsync( + $"{typeof(ItemBasic).Name}:{code}".ToString(), + async () => await GetFromRepositoryAsync(code).ConfigureAwait(false), + SfsCacheConst.SeveralMinutes).ConfigureAwait(false); + if (dto != null) + { + dtoList.Add(dto); + } + } + return dtoList; + } + #region 东阳 [HttpPut("upsert-stdpackqty")] diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs index 08efeb97e..5f785330a 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs @@ -731,7 +731,7 @@ public class BalanceAppService if (list.Count > 0) { var itemCodes = list.Select(t => t.ItemCode).Distinct(); - var itemBasicDtos = await _itemBasicAppService.GetByCodesAsync(itemCodes).ConfigureAwait(false); + var itemBasicDtos = await _itemBasicAppService.GetByCodesByPostAsync(itemCodes).ConfigureAwait(false); if (itemBasicDtos.Count > 0) { list.ForEach(item =>