diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 9dc71ea5..620087b6 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -2205,14 +2205,6 @@ - - - 入库回退上下架-箱库存的变更 - - - - - 入库回退上下架-箱库存的变更 @@ -3310,6 +3302,14 @@ + + + 盘点单-箱库存的变更 + + + + + 处理箱库存变更:出入库 diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index 636d145b..f25b6267 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -407,8 +407,6 @@ namespace WMS.Web.Domain.Services //2.获取“箱库存集合” var boxIds = dtoDatas.GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); var boxInventorys = await _boxInventoryRepositories.GetList(boxIds); - var boxs = await _boxRepositories.GetEntityList(boxIds); - var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(boxIds); //3.遍历:dto foreach (var dto in dtoDatas) { @@ -419,21 +417,15 @@ namespace WMS.Web.Domain.Services var ishave = boxInventorys.Where(x => x.BoxId == dto.BoxId).Any(); if (ishave) return Result.ReFailure(ResultCodes.BoxInventoryHaveInventoryError); - //3.1.1取箱信息 - var box = boxs.Where(x => x.Id == dto.BoxId).FirstOrDefault(); - if (box == null) - return Result.ReFailure(ResultCodes.BoxNoData); - //3.1.2去箱对应的序列号信息 - var box_serialNumbers = serialNumbers.Where(x => x.BoxId == dto.BoxId).Select(x => new { x.MaterialId, x.SerialNumber }).ToList(); //3.2组装要新增的箱库存信息:箱和明细和序列号 var addEntity = _mapper.Map(dto); - addEntity.Details = _mapper.Map>(box.Details); + addEntity.Details = _mapper.Map>(dto.Details); add_entitys.Add(addEntity); //4.1即时库存:组装入库 - foreach (var item in box.Details) + foreach (var item in dto.Details) { //3.2.2组装即时库存dto var inventoryDet = new InventoryDetailsGenerateDto(); @@ -527,12 +519,6 @@ namespace WMS.Web.Domain.Services if (dtoDatas == null || dtoDatas.Count == 0) return Result.ReFailure(ResultCodes.InventoryNoSourceError); - //2.获取“箱库存集合” - var boxIds = dtoDatas.SelectMany(x => x.Details).GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); - var boxInventorys = await _boxInventoryRepositories.GetList(boxIds); - var boxs = await _boxRepositories.GetEntityList(boxIds); - var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(boxIds); - var generateDtoList = new List(); #region 入库组装 @@ -618,6 +604,11 @@ namespace WMS.Web.Domain.Services /// public async Task GenerateTakeBox(List dtoDatas, bool isTransaction) { + //1.判断来源数据是否存在 + if (dtoDatas == null || dtoDatas.Count == 0) + return Result.ReFailure(ResultCodes.InventoryNoSourceError); + + var generateDtoList = new List(); return null; } diff --git a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs index 92b21480..c970cf94 100644 --- a/src/WMS.Web.Repositories/BoxInventoryRepositories.cs +++ b/src/WMS.Web.Repositories/BoxInventoryRepositories.cs @@ -114,12 +114,25 @@ namespace WMS.Web.Repositories .SelectMany(x => x.ts.DefaultIfEmpty(), (p, box) => new { p.boxinvent, box }) .Where(x => 1 == 1 && x.box.BoxBillNo==boxBillNo).Select(x=>x.boxinvent).FirstOrDefaultAsync(); + + + var response = _mapper.Map(entity); if (response != null) { + var serialNumbs = await _context.SerialNumbers.Where(x => x.BoxId == response.BoxId).ToListAsync(); + response.Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, response.StockCode + response.OrgCode); response.SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, response.SubStockId); response.Details = _mapper.Map>(entity.Details); + if (response.Details != null && response.Details.Count != 0) + { + response.Details.ForEach(x => + { + x.SerialNumbers = serialNumbs.Where(x => x.MaterialId == x.MaterialId).Select(x=>x.SerialNumber).ToList(); + }); + } + response.TotalCount = response.Details.Count(); }