diff --git a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs index ab53050c..09ace893 100644 --- a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs +++ b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs @@ -33,9 +33,11 @@ namespace WMS.Web.Api.Controllers private readonly IOutStockTaskService _outStockTaskService; private readonly QiniuOptions _option; private readonly IExportExcelService _exportExcelService; + private readonly IInventoryDetailsRepositories _inventoryDetailsRepositories; public OutStockTaskController(IMapper mapper, ILoginService loginService, IOutStockTaskRepositories repositories, IOutStockService outStockService, - IOutStockTaskService outStockTaskService, IOptions option, IExportExcelService exportExcelServic) + IOutStockTaskService outStockTaskService, IOptions option, IExportExcelService exportExcelServic, + IInventoryDetailsRepositories inventoryDetailsRepositories) { _mapper = mapper; _loginService = loginService; @@ -44,6 +46,7 @@ namespace WMS.Web.Api.Controllers _outStockTaskService = outStockTaskService; _option = option?.Value; _exportExcelService = exportExcelServic; + _inventoryDetailsRepositories = inventoryDetailsRepositories; } /// /// 列表 @@ -136,6 +139,20 @@ namespace WMS.Web.Api.Controllers //var res2 = await _repositories.GetListBySourceBillNo(str); var res = await _repositories.GetOutStockTaskListByNo(billNo); + //获取物料对应的仓位 + var materialNumbers = res.SelectMany(s => s.details).GroupBy(x => x.MaterialNumber).Select(x => x.Key).ToList(); + var stockCodes = res.Select(s => s.StockCode).ToList(); + var materialSubStocks = await _inventoryDetailsRepositories.GetMaterialSubStocks(materialNumbers, stockCodes, loginInfo.UserInfo.CompanyId); + + foreach (var r in res) + { + r.details.ForEach(x => + { + x.MaterialSubStocks = materialSubStocks.Where(t => t.MaterialNumber == x.MaterialNumber).ToList(); + }); + } + + if (res == null || res.Count() == 0) return ResultList.ReFailure(ResultCodes.OutStockTaskNoData); return ResultList.ReSuccess(res); } @@ -180,6 +197,16 @@ namespace WMS.Web.Api.Controllers var res = await _repositories.GetOutStockTaskByNo(billNo); res.details = res.details.Where(w => w.AccruedQty > w.RealityQty).ToList(); if (res == null) return Result.ReFailure(ResultCodes.OutStockTaskNoData); + + //获取物料对应的仓位 + var materialNumbers = res.details.GroupBy(x => x.MaterialNumber).Select(x => x.Key).ToList(); + var stockCodes = new List() { res.StockCode }; + var materialSubStocks = await _inventoryDetailsRepositories.GetMaterialSubStocks(materialNumbers, stockCodes, loginInfo.UserInfo.CompanyId); + res.details.ForEach(x => + { + x.MaterialSubStocks = materialSubStocks.Where(t => t.MaterialNumber == x.MaterialNumber).ToList(); + }); + return Result.ReSuccess(res); } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 9d15b19c..bf6d1531 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -4659,6 +4659,11 @@ 已出库数量 + + + 物料对应的仓位有哪些 + + 模糊搜索出库任务单 diff --git a/src/WMS.Web.Core/Dto/OutStockTask/GetOutStockTaskByNoResponse.cs b/src/WMS.Web.Core/Dto/OutStockTask/GetOutStockTaskByNoResponse.cs index 2153a8c2..f6ecc1b2 100644 --- a/src/WMS.Web.Core/Dto/OutStockTask/GetOutStockTaskByNoResponse.cs +++ b/src/WMS.Web.Core/Dto/OutStockTask/GetOutStockTaskByNoResponse.cs @@ -53,5 +53,9 @@ namespace WMS.Web.Core.Dto.OutStockTask /// 已出库数量 /// public decimal RealityQty { get; set; } + /// + /// 物料对应的仓位有哪些 + /// + public List MaterialSubStocks { get; set; } = new List(); } } diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 188e7460..26d8c35a 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -252,7 +252,7 @@ namespace WMS.Web.Domain.Services.Public lis.BillNo = item[0]; lis.SupplierId = Convert.ToInt32(item[1]); lis.OrgId = Convert.ToInt32(item[2]); - lis.MaterialNumber =item[3]; + lis.MaterialNumber = item[3]; lis.StockId = Convert.ToInt32(item[4]); lis.Qty = Convert.ToDecimal(item[5]); lis.Remark = item[6]; @@ -1142,7 +1142,7 @@ namespace WMS.Web.Domain.Services.Public } catch (Exception) { - _logger.LogInformation("物料拉取按Number->错误的Json:" + error_josn+";参数:"+json); + _logger.LogInformation("物料拉取按Number->错误的Json:" + error_josn + ";参数:" + json); return null; } @@ -1810,8 +1810,10 @@ namespace WMS.Web.Domain.Services.Public //3.单据类型:标准 //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 //6.物料 物料属性=费用或资产或服务的排除 不拉取 + //7.V01.05.00: 当金蝶系统物料明细行调出仓库和调入仓库相同, 数据不需要拉取 param.FilterString = "FDocumentStatus='C' and FBillTypeID='ce8f49055c5c4782b65463a3f863bb4a'"; param.FilterString += " and FMaterialID.FERPCLSID not in (10,11,6)"; + param.FilterString += " and FSrcStockId!=FDestStockId"; //string srt = JsonConvert.SerializeObject(stocks_codes); //param.FilterString += " and FSrcStockId.FNumber in (" + stocks_codes + ")"; //param.FilterString += " and FStockOutOrgId.FNumber in (" + stocks_orgs + ")"; @@ -1904,8 +1906,10 @@ namespace WMS.Web.Domain.Services.Public //3.单据类型:标准 //4.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 //6.物料 物料属性=费用或资产或服务的排除 不拉取 + //7.V01.05.00: 当金蝶系统物料明细行调出仓库和调入仓库相同, 数据不需要拉取 param.FilterString = "FDocumentStatus='C' and FBillTypeID='de3bcacc98434ec68a358aa5abcd9183'"; param.FilterString += " and FMaterialID.FERPCLSID not in (10,11,6)"; + param.FilterString += " and FSrcStockID!=FDestStockID"; //string srt = JsonConvert.SerializeObject(stocks_codes); //param.FilterString += " and FSrcStockID.FNumber in (" + stocks_codes + ")"; //param.FilterString += " and FStockOrgID.FNumber in (" + stocks_orgs + ")"; @@ -2498,7 +2502,7 @@ namespace WMS.Web.Domain.Services.Public } } - + #endregion