From dd25bbb3b5e61af5dbde7ad8bc7ccdabc44305a2 Mon Sep 17 00:00:00 2001 From: mahao Date: Tue, 25 Jul 2023 14:17:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=BD=99=E9=A2=9D=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=B7=BB=E5=8A=A0=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Balances/DTOs/BalanceDTO.cs | 6 +++ .../Balances/BalanceAppService.cs | 42 ++++++++++++++++++- .../Balances/BalanceAutoMapperProfile.cs | 3 +- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/DTOs/BalanceDTO.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/DTOs/BalanceDTO.cs index 6901bf067..108026c59 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/DTOs/BalanceDTO.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application.Contracts/Balances/DTOs/BalanceDTO.cs @@ -50,6 +50,12 @@ public class BalanceDTO : SfsBasicDTOBase [StringLength(SfsEfCorePropertyConst.CodeLength, ErrorMessage = "{0}最多输入{1}个字符")] public string ItemCode { get; set; } + /// + /// 配置 + /// + [Display(Name = "配置")] + public string Configuration { get; set; } + //供应商批次 /// /// 供应商批次 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 4edd22ff0..6a96bbdd2 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 @@ -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 + /// + /// 导出数据 + /// + [HttpPost("export")] + public override async Task ExportAsync(SfsInventoryRequestInputBase input) + { + var expression = input.Condition.Filters?.Count > 0 + ? input.Condition.Filters.ToLambda() + : p => true; + var entities = await _repository.GetPagedListAsync(expression, input.SkipCount, input.MaxResultCount, + input.Sorting, true).ConfigureAwait(false); + var list = ObjectMapper.Map, List>(entities); + + //var hasDetails = typeof(TEntity) is SfsMasterAggregateRootBase detailEntity; + var tt = typeof(Balance).GetBaseClasses(typeof(SfsMasterAggregateRootBase)); + 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 + /// /// 库存余额更新物品基础信息 /// diff --git a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAutoMapperProfile.cs b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAutoMapperProfile.cs index d48e72113..2643d78fc 100644 --- a/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAutoMapperProfile.cs +++ b/be/Modules/Inventory/src/Win_in.Sfs.Wms.Inventory.Application/Balances/BalanceAutoMapperProfile.cs @@ -10,7 +10,8 @@ public partial class InventoryApplicationAutoMapperProfile : Profile private void BalanceAutoMapperProfile() { CreateMap() - .ReverseMap(); + .Ignore(x => x.Configuration); + CreateMap(); CreateMap();