diff --git a/src/WMS.Web.Domain/IService/IBoxInventoryService.cs b/src/WMS.Web.Domain/IService/IBoxInventoryService.cs index 8400c83c..e23be792 100644 --- a/src/WMS.Web.Domain/IService/IBoxInventoryService.cs +++ b/src/WMS.Web.Domain/IService/IBoxInventoryService.cs @@ -37,14 +37,6 @@ namespace WMS.Web.Domain.IService /// Task GenerateMoveBox(List dtoDatas, bool isTransaction); - /// - /// 入库回退上下架-箱库存的变更 - /// - /// - /// - /// - Task GenerateBackBox(List dtoDatas, bool isTransaction); - /// /// 入库回退上下架-箱库存的变更 /// diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index 661b1d60..636d145b 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -169,7 +169,7 @@ namespace WMS.Web.Domain.Services if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); } //5.即时库存:变更 - if (InventoryDetailsGenerateDto.Count != 0) + if (InventoryDetailsGenerateDto.Count != 0) { var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); if (!InventoryDetailsGenerate_result.IsSuccess) @@ -298,7 +298,7 @@ namespace WMS.Web.Domain.Services //3.2.2即时库存:修改箱库存的集合 InventoryDetailsGenerateDto.Add(inventoryDet); } - + }//下架 else @@ -343,7 +343,7 @@ namespace WMS.Web.Domain.Services if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); } //5.即时库存:处理 - if (InventoryDetailsGenerateDto.Count != 0) + if (InventoryDetailsGenerateDto.Count != 0) { var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); if (!InventoryDetailsGenerate_result.IsSuccess) @@ -358,18 +358,18 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task GenerateMoveBox(List dtoDatas, bool isTransaction) + public async Task GenerateMoveBox(List dtoDatas, bool isTransaction) { //1.判断来源数据是否存在 if (dtoDatas == null || dtoDatas.Count == 0) return Result.ReFailure(ResultCodes.InventoryNoSourceError); //2.箱库存集合 - var boxIds = dtoDatas.Where(x => x.BoxId != 0 && x.Type== MoveBoxType.Down).GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); + var boxIds = dtoDatas.Where(x => x.BoxId != 0 && x.Type == MoveBoxType.Down).GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); var boxInventorys = await _boxInventoryRepositories.GetList(boxIds); //2.1箱基本信息 - var boxs= await _boxRepositories.GetEntityList(boxIds); + var boxs = await _boxRepositories.GetEntityList(boxIds); //2.2组合要生成的dto var generateDtoList = new List(); @@ -380,7 +380,7 @@ namespace WMS.Web.Domain.Services generateDto.OrgCode = item.OrgCode; generateDto.StockCode = item.StockCode; generateDto.SubStockId = item.Type == MoveBoxType.Up ? item.DestSubStockId : item.SrcSubStockId; - generateDto.InventoryInOutType = item.Type== MoveBoxType.Down?(int)InventoryInOutType.Out: (int)InventoryInOutType.In; + generateDto.InventoryInOutType = item.Type == MoveBoxType.Down ? (int)InventoryInOutType.Out : (int)InventoryInOutType.In; generateDtoList.Add(generateDto); } @@ -394,7 +394,7 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task GenerateBackBox(List dtoDatas, bool isTransaction) + private async Task GenerateBackBox(List dtoDatas, bool isTransaction) { //1.判断来源数据是否存在 if (dtoDatas == null || dtoDatas.Count == 0) @@ -402,6 +402,7 @@ namespace WMS.Web.Domain.Services var update_entitys = new List(); var add_entitys = new List(); + var InventoryDetailsGenerateDto = new List(); //2.获取“箱库存集合” var boxIds = dtoDatas.GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); @@ -431,6 +432,21 @@ namespace WMS.Web.Domain.Services add_entitys.Add(addEntity); + //4.1即时库存:组装入库 + foreach (var item in box.Details) + { + //3.2.2组装即时库存dto + var inventoryDet = new InventoryDetailsGenerateDto(); + inventoryDet.MaterialId = item.MaterialId; + inventoryDet.OrgCode = dto.OrgCode; + inventoryDet.StockCode = dto.StockCode; + inventoryDet.SubStockId = dto.SubStockId; + inventoryDet.Qty = item.Qty; + inventoryDet.InventoryInOutType = (int)InventoryInOutType.In; + //3.2.2即时库存:修改箱库存的集合 + InventoryDetailsGenerateDto.Add(inventoryDet); + } + }//下架 else @@ -457,8 +473,23 @@ namespace WMS.Web.Domain.Services updateDetail.Qty = updateDetail.Qty - dtoItem.Qty; //再移除要改箱的序列号;最后就是原箱库存的新序列号 updateDetail.SerialNumbers.RemoveAll(x => dtoItem.SerialNumbers.Contains(x)); + + //4.1即时库存:组装出库 + //3.2.2组装即时库存dto + var inventoryDet = new InventoryDetailsGenerateDto(); + inventoryDet.MaterialId = dtoItem.MaterialId; + inventoryDet.OrgCode = dto.OrgCode; + inventoryDet.StockCode = dto.StockCode; + inventoryDet.SubStockId = dto.SubStockId; + inventoryDet.Qty = dtoItem.Qty; + inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out; + //3.2.2即时库存:修改箱库存的集合 + InventoryDetailsGenerateDto.Add(inventoryDet); + } update_entitys.Add(update_entity); + + } } @@ -474,6 +505,13 @@ namespace WMS.Web.Domain.Services isSuccess = await _boxInventoryRepositories.UpdateRange(update_entitys, isTransaction); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); } + //5.即时库存:处理 + if (InventoryDetailsGenerateDto.Count != 0) + { + var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); + if (!InventoryDetailsGenerate_result.IsSuccess) + return InventoryDetailsGenerate_result; + } return Result.ReSuccess(); } @@ -490,7 +528,7 @@ namespace WMS.Web.Domain.Services return Result.ReFailure(ResultCodes.InventoryNoSourceError); //2.获取“箱库存集合” - var boxIds = dtoDatas.SelectMany(x=>x.Details).GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); + 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); @@ -503,12 +541,12 @@ namespace WMS.Web.Domain.Services //2.1组织:头部 var generateDtoList_in = dtoDetails_in.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }) - .Select(x=>new BoxInventoryBackGenerateDto() - { - BoxId=x.Key.BoxId, - OrgCode=x.Key.OrgCode, - StockCode=x.Key.StockCode, - SubStockId=x.Key.SubStockId, + .Select(x => new BoxInventoryBackGenerateDto() + { + BoxId = x.Key.BoxId, + OrgCode = x.Key.OrgCode, + StockCode = x.Key.StockCode, + SubStockId = x.Key.SubStockId, InventoryInOutType = (int)InventoryInOutType.In }).ToList(); @@ -572,6 +610,17 @@ namespace WMS.Web.Domain.Services return await this.GenerateBackBox(generateDtoList, isTransaction); } + /// + /// 盘点单-箱库存的变更 + /// + /// + /// + /// + public async Task GenerateTakeBox(List dtoDatas, bool isTransaction) + { + return null; + } + /// /// 处理箱库存变更:出入库