Browse Source

新增getbycode方法

master
郑勃旭 8 months ago
parent
commit
6cf75d39b3
  1. 1
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application.Contracts/ItemBasics/IItemBasicAppService.cs
  2. 20
      be/Modules/BaseData/src/Win_in.Sfs.Basedata.Application/Items/ItemBasicAppService.cs
  3. 2
      be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAppService.cs

1
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<List<ItemBasicDTO>> GetByCodesByPostAsync(IEnumerable<string> codes);
}

20
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<List<ItemBasicDTO>> GetByCodesByPostAsync(IEnumerable<string> codes)
{
var dtoList = new List<ItemBasicDTO>();
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")]

2
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 =>

Loading…
Cancel
Save