diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index fdf94ddb..7bdd97bb 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -3152,6 +3152,11 @@ 仓库编码 + + + 仓位 + + 物料编码 diff --git a/src/WMS.Web.Core/Dto/Inventory/InventoryDetailsQueryRequest.cs b/src/WMS.Web.Core/Dto/Inventory/InventoryDetailsQueryRequest.cs index dee34e7f..0b7ab48f 100644 --- a/src/WMS.Web.Core/Dto/Inventory/InventoryDetailsQueryRequest.cs +++ b/src/WMS.Web.Core/Dto/Inventory/InventoryDetailsQueryRequest.cs @@ -14,6 +14,11 @@ namespace WMS.Web.Core.Dto.Inventory /// public string StockCode { get; set; } + /// + /// 仓位 + /// + public int? SubStockId { get; set; } + /// /// 物料编码 /// diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index 84dd9ea6..bb12b055 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -647,36 +647,40 @@ namespace WMS.Web.Domain.Services var tagBox = targetBoxInventorys.Where(x => x.BoxId == dto.TargetBoxId).FirstOrDefault(); if (tagBox != null) { + var subStockId = tagBox.SubStockId; + var stockCode = tagBox.StockCode; + var orgCode = tagBox.OrgCode; + var tag_update_entity = tagBox; //2.2.1这里为了重新上架,改变仓库和仓位的需求 if (!string.IsNullOrEmpty(dto.StockCode) && dto.SubStockId.HasValue) { - //2.2.2仓位和原来的目标箱的仓位不一致的情况下-》》把目标箱原来仓位的物料进行-即时库存的变更-(减库存) - if (dto.SubStockId.Value != tag_update_entity.SubStockId) - { - foreach (var item in tag_update_entity.Details) - { - //2.2.2组装即时库存dto - var inventoryDet = new InventoryDetailsGenerateDto(); - inventoryDet.MaterialId = item.MaterialId; - inventoryDet.OrgCode = tag_update_entity.OrgCode; - inventoryDet.StockCode = tag_update_entity.StockCode; - inventoryDet.SubStockId = tag_update_entity.SubStockId; - inventoryDet.Qty = item.Qty; - inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out; - //2.2.2即时库存:修改箱库存的集合 - InventoryDetailsGenerateDto.Add(inventoryDet); - } - } - //2.2.3.在变更目标箱的-仓库-仓位-组织 tag_update_entity.StockCode = dto.StockCode; tag_update_entity.SubStockId = dto.SubStockId.Value; - tag_update_entity.OrgCode = dto.TargetBoxOrgCode; - - + tag_update_entity.OrgCode = dto.TargetBoxOrgCode; } tag_update_entity.Details = tagBox.Details; + + + //2.2.2仓位和原来的目标箱的仓位不一致的情况下-》》把目标箱原来仓位的物料进行-即时库存的变更-(减库存) + if (subStockId != tag_update_entity.SubStockId) + { + foreach (var item in tag_update_entity.Details) + { + //2.2.2组装即时库存dto + var inventoryDet = new InventoryDetailsGenerateDto(); + inventoryDet.MaterialId = item.MaterialId; + inventoryDet.OrgCode = orgCode; + inventoryDet.StockCode = stockCode; + inventoryDet.SubStockId = subStockId; + inventoryDet.Qty = item.Qty; + inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out; + //2.2.2即时库存:修改箱库存的集合 + InventoryDetailsGenerateDto.Add(inventoryDet); + } + } + //2.2.1遍历改变的明细 foreach (var item in dto.Details) { diff --git a/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs b/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs index 2372bbb5..37c74100 100644 --- a/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs +++ b/src/WMS.Web.Repositories/InventoryDetailsRepositories.cs @@ -92,6 +92,9 @@ namespace WMS.Web.Repositories query = query.Where(w => w.StockCode == splitStrs[0] && w.OrgCode == splitStrs[1]); } + if (dto.SubStockId.HasValue) + query = query.Where(w => w.SubStockId == dto.SubStockId.Value); + if (dto.Qty.HasValue) query = query.Where(w => w.Qty == dto.Qty);