From df821329eff9351eed0878e321b0b5ef7bf6abc3 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Tue, 26 Mar 2024 15:04:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/InStockTaskController.cs | 13 +++++++++++++ src/WMS.Web.Core/Dto/MaterialSubStock.cs | 7 ++++++- .../IInventoryDetailsRepositories.cs | 10 ++++++++++ .../InventoryDetailsRepositories.cs | 19 +++++++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) diff --git a/src/WMS.Web.Api/Controllers/InStockTaskController.cs b/src/WMS.Web.Api/Controllers/InStockTaskController.cs index fef94a34..990cfb3b 100644 --- a/src/WMS.Web.Api/Controllers/InStockTaskController.cs +++ b/src/WMS.Web.Api/Controllers/InStockTaskController.cs @@ -31,14 +31,17 @@ namespace WMS.Web.Api.Controllers private readonly IInStockService _inStockService; private readonly IInStockTaskService _inStockTaskService; private readonly IInStockTaskRepositories _inStockTaskRepositories; + private readonly IInventoryDetailsRepositories _inventoryDetailsRepositories; public InStockTaskController( IOptions option, IExportExcelService exportExcelService, ILoginService loginService, IInStockTaskService inStockTaskService, IInStockTaskRepositories inStockTaskRepositories, + IInventoryDetailsRepositories inventoryDetailsRepositories, IInStockService inStockService) { + _inventoryDetailsRepositories = inventoryDetailsRepositories; this._option = option?.Value; this._exportExcelService = exportExcelService; this._loginService = loginService; @@ -170,6 +173,16 @@ namespace WMS.Web.Api.Controllers return ResultList.ReFailure(ResultCodes.Token_Invalid_Error); var list= await _inStockTaskRepositories.GetListBy(new InStockTaskBillNoQueryRequest() { SourceBillNo = sourceBillNo}); + + //获取物料对应的仓位 + var materialNumbers = list.GroupBy(x => x.MaterialNumber).Select(x => x.Key).ToList(); + var stockCodes = list.GroupBy(x => x.StockCode).Select(x => x.Key).ToList(); + var materialSubStocks= await _inventoryDetailsRepositories.GetMaterialSubStocks(materialNumbers, stockCodes, loginInfo.UserInfo.CompanyId); + list.ForEach(x => + { + x.MaterialSubStocks = materialSubStocks.Where(t => t.MaterialNumber == x.MaterialNumber).ToList(); + }); + return ResultList.ReSuccess(list); } diff --git a/src/WMS.Web.Core/Dto/MaterialSubStock.cs b/src/WMS.Web.Core/Dto/MaterialSubStock.cs index d944e311..cafbf1cf 100644 --- a/src/WMS.Web.Core/Dto/MaterialSubStock.cs +++ b/src/WMS.Web.Core/Dto/MaterialSubStock.cs @@ -9,6 +9,11 @@ namespace WMS.Web.Core.Dto /// public class MaterialSubStock { + /// + /// 物料编码 + /// + public string MaterialNumber { get; set; } + /// /// 仓位编码 /// @@ -17,6 +22,6 @@ namespace WMS.Web.Core.Dto /// /// 仓位名称 /// - public string SubStockName { get; set; } + public string SubStock { get; set; } } } diff --git a/src/WMS.Web.Domain/Infrastructure/IInventoryDetailsRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IInventoryDetailsRepositories.cs index 629882d3..bc04c58c 100644 --- a/src/WMS.Web.Domain/Infrastructure/IInventoryDetailsRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IInventoryDetailsRepositories.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Text; using System.Threading.Tasks; +using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.Inventory; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Entitys; @@ -55,5 +56,14 @@ namespace WMS.Web.Domain.Infrastructure /// /// Task> GetListBy(List materialNumbers, List stockCodes, List orgCodes); + + /// + /// 获取物料对应的仓位集合 + /// + /// + /// + /// + /// + Task> GetMaterialSubStocks(List materialNumbers, List stockCodes, int companyId); } } diff --git a/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs b/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs index d6111d97..b513199e 100644 --- a/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs +++ b/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.Erp.Org; using WMS.Web.Core.Dto.Inventory; @@ -224,5 +225,23 @@ namespace WMS.Web.Repositories stockCodes.Contains(x.StockCode) && orgCodes.Contains(x.OrgCode)).ToListAsync(); } + + /// + /// 获取物料对应的仓位集合 + /// + /// + /// + /// + /// + public async Task> GetMaterialSubStocks(List materialNumbers, List stockCodes,int companyId) + { + return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) && + stockCodes.Contains(x.StockCode)).Select(x=>new MaterialSubStock() + { + MaterialNumber=x.MaterialNumber, + SubStockCode=x.SubStockCode, + SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, x.SubStockCode + x.StockCode + x.OrgCode), + }).ToListAsync(); + } } }