|
|
@ -9,8 +9,8 @@ using Microsoft.AspNetCore.Mvc; |
|
|
|
using Microsoft.Extensions.Logging; |
|
|
|
using Volo.Abp; |
|
|
|
using Volo.Abp.Application.Dtos; |
|
|
|
using Volo.Abp.Domain.Entities; |
|
|
|
using Volo.Abp.Domain.Repositories; |
|
|
|
using Win_in.Sfs.Basedata.Application.Contracts; |
|
|
|
using Win_in.Sfs.Shared.Application.Contracts; |
|
|
|
using Win_in.Sfs.Shared.Domain; |
|
|
|
using Win_in.Sfs.Shared.Domain.Shared; |
|
|
@ -38,19 +38,22 @@ public class BalanceAppService |
|
|
|
private readonly IItemBasicAclService _itemBasicAclService; |
|
|
|
private readonly ITransferLogManager _transferLogManager; |
|
|
|
private readonly IBalanceManager _balanceManager; |
|
|
|
private readonly IItemBasicAppService _itemBasicAppService; |
|
|
|
|
|
|
|
public BalanceAppService( |
|
|
|
IBalanceRepository repository, |
|
|
|
ITransferLogManager transferLogManager, |
|
|
|
IBalanceManager balanceManager, |
|
|
|
ILocationAclService locationAclService, |
|
|
|
IItemBasicAclService itemBasicAclService) : base(repository) |
|
|
|
IItemBasicAclService itemBasicAclService, |
|
|
|
IItemBasicAppService itemBasicAppService) : base(repository) |
|
|
|
{ |
|
|
|
_repository = repository; |
|
|
|
_transferLogManager = transferLogManager; |
|
|
|
_balanceManager = balanceManager; |
|
|
|
_locationAclService = locationAclService; |
|
|
|
_itemBasicAclService = itemBasicAclService; |
|
|
|
_itemBasicAppService = itemBasicAppService; |
|
|
|
} |
|
|
|
|
|
|
|
#region Update
|
|
|
@ -652,6 +655,41 @@ public class BalanceAppService |
|
|
|
|
|
|
|
#endregion Get
|
|
|
|
|
|
|
|
#region export
|
|
|
|
/// <summary>
|
|
|
|
/// 导出数据
|
|
|
|
/// </summary>
|
|
|
|
[HttpPost("export")] |
|
|
|
public override async Task<IActionResult> ExportAsync(SfsInventoryRequestInputBase input) |
|
|
|
{ |
|
|
|
var expression = input.Condition.Filters?.Count > 0 |
|
|
|
? input.Condition.Filters.ToLambda<Balance>() |
|
|
|
: p => true; |
|
|
|
var entities = await _repository.GetPagedListAsync(expression, input.SkipCount, input.MaxResultCount, |
|
|
|
input.Sorting, true).ConfigureAwait(false); |
|
|
|
var list = ObjectMapper.Map<List<Balance>, List<BalanceDTO>>(entities); |
|
|
|
|
|
|
|
//var hasDetails = typeof(TEntity) is SfsMasterAggregateRootBase<TDetail> detailEntity;
|
|
|
|
var tt = typeof(Balance).GetBaseClasses(typeof(SfsMasterAggregateRootBase<EmptyDetail>)); |
|
|
|
var hasDetails = tt.Length > 0 ? true : false; |
|
|
|
|
|
|
|
if (list.Count > 0) |
|
|
|
{ |
|
|
|
var itemCodes = list.Select(t => t.ItemCode).Distinct(); |
|
|
|
var itemBasicDtos = await _itemBasicAppService.GetByCodesAsync(itemCodes).ConfigureAwait(false); |
|
|
|
if (itemBasicDtos.Count > 0) |
|
|
|
{ |
|
|
|
list.ForEach(item => |
|
|
|
{ |
|
|
|
item.Configuration = itemBasicDtos.FirstOrDefault(t => t.Code == item.ItemCode)?.Configuration; |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return ExportImportService.Export(list, detailsProptyName: hasDetails ? nameof(EmptyDetail) : null); |
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 库存余额更新物品基础信息
|
|
|
|
/// </summary>
|
|
|
|