This commit is contained in:
tongfei
2024-03-26 15:04:29 +08:00
parent 217b197ed5
commit df821329ef
4 changed files with 48 additions and 1 deletions

View File

@@ -31,14 +31,17 @@ namespace WMS.Web.Api.Controllers
private readonly IInStockService _inStockService; private readonly IInStockService _inStockService;
private readonly IInStockTaskService _inStockTaskService; private readonly IInStockTaskService _inStockTaskService;
private readonly IInStockTaskRepositories _inStockTaskRepositories; private readonly IInStockTaskRepositories _inStockTaskRepositories;
private readonly IInventoryDetailsRepositories _inventoryDetailsRepositories;
public InStockTaskController( public InStockTaskController(
IOptions<QiniuOptions> option, IOptions<QiniuOptions> option,
IExportExcelService exportExcelService, IExportExcelService exportExcelService,
ILoginService loginService, ILoginService loginService,
IInStockTaskService inStockTaskService, IInStockTaskService inStockTaskService,
IInStockTaskRepositories inStockTaskRepositories, IInStockTaskRepositories inStockTaskRepositories,
IInventoryDetailsRepositories inventoryDetailsRepositories,
IInStockService inStockService) IInStockService inStockService)
{ {
_inventoryDetailsRepositories = inventoryDetailsRepositories;
this._option = option?.Value; this._option = option?.Value;
this._exportExcelService = exportExcelService; this._exportExcelService = exportExcelService;
this._loginService = loginService; this._loginService = loginService;
@@ -170,6 +173,16 @@ namespace WMS.Web.Api.Controllers
return ResultList<SourceBillNoQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error); return ResultList<SourceBillNoQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
var list= await _inStockTaskRepositories.GetListBy(new InStockTaskBillNoQueryRequest() { SourceBillNo = sourceBillNo}); 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<SourceBillNoQueryResponse>.ReSuccess(list); return ResultList<SourceBillNoQueryResponse>.ReSuccess(list);
} }

View File

@@ -9,6 +9,11 @@ namespace WMS.Web.Core.Dto
/// </summary> /// </summary>
public class MaterialSubStock public class MaterialSubStock
{ {
/// <summary>
/// 物料编码
/// </summary>
public string MaterialNumber { get; set; }
/// <summary> /// <summary>
/// 仓位编码 /// 仓位编码
/// </summary> /// </summary>
@@ -17,6 +22,6 @@ namespace WMS.Web.Core.Dto
/// <summary> /// <summary>
/// 仓位名称 /// 仓位名称
/// </summary> /// </summary>
public string SubStockName { get; set; } public string SubStock { get; set; }
} }
} }

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core.Dto;
using WMS.Web.Core.Dto.Inventory; using WMS.Web.Core.Dto.Inventory;
using WMS.Web.Core.Internal.Results; using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Entitys;
@@ -55,5 +56,14 @@ namespace WMS.Web.Domain.Infrastructure
/// <param name="orgCodes"></param> /// <param name="orgCodes"></param>
/// <returns></returns> /// <returns></returns>
Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes, List<string> orgCodes); Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes, List<string> orgCodes);
/// <summary>
/// 获取物料对应的仓位集合
/// </summary>
/// <param name="materialNumbers"></param>
/// <param name="stockCodes"></param>
/// <param name="companyId"></param>
/// <returns></returns>
Task<List<MaterialSubStock>> GetMaterialSubStocks(List<string> materialNumbers, List<string> stockCodes, int companyId);
} }
} }

View File

@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core.Dto;
using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.Erp;
using WMS.Web.Core.Dto.Erp.Org; using WMS.Web.Core.Dto.Erp.Org;
using WMS.Web.Core.Dto.Inventory; using WMS.Web.Core.Dto.Inventory;
@@ -224,5 +225,23 @@ namespace WMS.Web.Repositories
stockCodes.Contains(x.StockCode) && stockCodes.Contains(x.StockCode) &&
orgCodes.Contains(x.OrgCode)).ToListAsync(); orgCodes.Contains(x.OrgCode)).ToListAsync();
} }
/// <summary>
/// 获取物料对应的仓位集合
/// </summary>
/// <param name="materialNumbers"></param>
/// <param name="stockCodes"></param>
/// <param name="companyId"></param>
/// <returns></returns>
public async Task<List<MaterialSubStock>> GetMaterialSubStocks(List<string> materialNumbers, List<string> 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();
}
} }
} }