diff --git a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs index f65f15eb..b0520fa9 100644 --- a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs @@ -82,6 +82,9 @@ namespace WMS.Web.Domain.Infrastructure /// Task> GetInstockBox(int taskId); + + Task> GetInstockBoxDetailsByBoxId(List ids); + /// /// 获取最新的erp明细 /// diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs index d6fa54a0..922948fc 100644 --- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs @@ -18,6 +18,7 @@ using WMS.Web.Core.Dto.Erp.Org; using WMS.Web.Core.Dto.Erp.OutStock; using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.OutStockTask; +using WMS.Web.Core.Dto.InStockTask; using WMS.Web.Core.Help; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Entitys; @@ -41,20 +42,22 @@ namespace WMS.Web.Domain.Services private readonly IBasicsRepositories _transactionRepositories; private IOutStockRepositories _outStockRepositories; private IOutStockTaskRepositories _outStockTaskRepositories; + private IInStockTaskRepositories _inStockTaskRepositories; private readonly IErpOpsSyncDateRepositories _erpOpsSyncDateRepositories; private readonly RedisClientService _redisClientService; private readonly IErpBasicDataExtendService _erpBasicDataExtendService; private readonly ISingleDataService _singleDataService; private IBoxRepositories _boxRepositories; + private IInStockRepositories _inStockRepositories; private readonly IExportExcelService _exportExcelService; private readonly IServiceScopeFactory _serviceScopeFactory; private readonly ILogger _logger; public OutStockTaskService(IMapper mapper, IErpService erpService, ILoginService loginService, IBasicsRepositories transactionRepositories, - IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories, + IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IInStockTaskRepositories inStockTaskRepositories, IErpOpsSyncDateRepositories erpOpsSyncDateRepositories, RedisClientService redisClientService, IErpBasicDataExtendService erpBasicDataExtendService, - ISingleDataService singleDataService, IBoxRepositories boxRepositories, IExportExcelService exportExcelService, IServiceScopeFactory serviceScopeFactory, + ISingleDataService singleDataService, IBoxRepositories boxRepositories, IInStockRepositories inStockRepositories, IExportExcelService exportExcelService, IServiceScopeFactory serviceScopeFactory, ILogger logger) { _mapper = mapper; @@ -63,11 +66,13 @@ namespace WMS.Web.Domain.Services _transactionRepositories = transactionRepositories; _outStockRepositories = outStockRepositories; _outStockTaskRepositories = outStockTaskRepositories; + _inStockTaskRepositories = inStockTaskRepositories; _erpOpsSyncDateRepositories = erpOpsSyncDateRepositories; _redisClientService = redisClientService; _erpBasicDataExtendService = erpBasicDataExtendService; _singleDataService = singleDataService; _boxRepositories = boxRepositories; + _inStockRepositories = inStockRepositories; _exportExcelService = exportExcelService; _serviceScopeFactory = serviceScopeFactory; _logger = logger; @@ -599,6 +604,7 @@ namespace WMS.Web.Domain.Services _outStockRepositories = scope.ServiceProvider.GetRequiredService(); _erpService = scope.ServiceProvider.GetRequiredService(); _boxRepositories = scope.ServiceProvider.GetRequiredService(); + _inStockRepositories = scope.ServiceProvider.GetRequiredService(); } var entity = await _outStockTaskRepositories.Get(id); @@ -607,6 +613,9 @@ namespace WMS.Web.Domain.Services //获取任务单对应出库信息 var outStockList = await _outStockRepositories.GetByTaskId(id); + + + //取组织 var org_result = await _erpService.BillQueryForOrg(); List orgs = new List(); @@ -628,10 +637,7 @@ namespace WMS.Web.Domain.Services if (customer_result.IsSuccess) customers = customer_result.Data.ToList(); - var materials_result = await _erpService.BillQueryForMaterial(); - List materials = new List(); - if (materials_result.IsSuccess) - materials = materials_result.Data.ToList(); + OutStockTaskInfoResponse response = new OutStockTaskInfoResponse() { @@ -650,11 +656,24 @@ namespace WMS.Web.Domain.Services var details = outStockList.SelectMany(s => s.Details).ToList(); var boxDetails = outStockList.SelectMany(s => s.Details).SelectMany(s => s.BoxsDetails).ToList(); var boxList = await _boxRepositories.GetEntityList(boxDetails.Select(s => s.BoxId).ToList()); + //取得对应入库 + var inStockList= await _inStockRepositories.GetListBy(boxDetails.Select(s => s.BoxId).ToList()); + + + var materials_result = await _erpService.BillQueryForMaterial(); + List materials = new List(); + if (materials_result.IsSuccess) + materials = materials_result.Data.ToList(); foreach (var b in boxDetails) { var detail = details.FirstOrDefault(f => f.Id == b.DetailId); var outStock = outStockList.FirstOrDefault(f => f.Id == detail.Fid); + // var inStock= inStockList.FirstOrDefault(f=>f.) +// var inStockList = await _inStockRepositories.GetInstockBoxDetailsByBoxId(b.BoxId); + //获取箱子对应入库信息 + + var m = materials.FirstOrDefault(f => f.MaterialNumber.Equals(detail.MaterialNumber)); //var postionList = await _boxRepositories.Getuc_warehouse_position(boxDetails.Select(s => s.SubStockCode).ToList()); @@ -669,8 +688,8 @@ namespace WMS.Web.Domain.Services BoxHigh = b.BoxHigh, BoxWeight = b.BoxWeight, Qty = b.Qty, - position_code = b.SubStockCode, - position = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, b.SubStockCode+outStock.StockCode + outStock.OrgCode), + position_code = inStockList.FirstOrDefault(f => f.Details.Where(w => detail.BoxsDetails.Select(s => s.BoxId).Contains(w.BoxId)).Any())?.SubStockCode ?? "",//b.SubStockCode, + position = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, (inStockList.FirstOrDefault(f => f.Details.Where(w => detail.BoxsDetails.Select(s => s.BoxId).Contains(w.BoxId)).Any())?.SubStockCode ?? "") + outStock.StockCode + outStock.OrgCode), //shelfSpace = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, loginInfo.UserInfo.CompanyId, x.order.SubStockCode + x.order.StockCode + x.order.OrgCode), // position = postionList.FirstOrDefault(f=>f.position_code==b.SubStockCode)?.position??"", SerialNumbers = string.Join(",", b.SerialNumbers), diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs index b9f5afa6..25c3f963 100644 --- a/src/WMS.Web.Repositories/InStockRepositories.cs +++ b/src/WMS.Web.Repositories/InStockRepositories.cs @@ -290,6 +290,24 @@ namespace WMS.Web.Repositories return await _context.InStockDetails.Where(x => x.TaskId == taskId).Select(x => x.BoxId).ToListAsync(); } + /// + /// 根据任务单Id获取 + /// + /// + /// + public async Task> GetInstockBoxDetailsByBoxId(List ids) + { + var res = await _context.Instock + .Include(s => s.Details) + .Where(x => ids.Contains(x.Id)) + .ToListAsync(); + + return res.Clone(); + + + } + + /// /// 列表-分页 /// diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index 5ae038f9..0b6493c1 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -211,8 +211,8 @@ namespace WMS.Web.Repositories shelfSpace = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, x.order.SubStockCode + x.order.StockCode + x.order.OrgCode), //shelfSpace = _boxRepositories.Getuc_warehouse_position(postionList, x.order.SubStockCode), Shelfer = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId), - Receiver = "", - ReceiveTime = "", + Receiver = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId), + ReceiveTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), SerialNumbers = (string.Join(",", x.detail.SerialNumbers).TrimEnd(',')) }).ToListAsync();