diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index a792b8e0..b2c375e3 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 01f83540..c5745afa 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3983,7 +3983,7 @@ 即时库存-服务接口 - + 生成:即时库存明细 @@ -5794,7 +5794,7 @@ 即时库存-服务 - + 生成:即时库存明细 diff --git a/src/WMS.Web.Domain/IService/IInventoryDetailsService.cs b/src/WMS.Web.Domain/IService/IInventoryDetailsService.cs index 787358a4..86e62d99 100644 --- a/src/WMS.Web.Domain/IService/IInventoryDetailsService.cs +++ b/src/WMS.Web.Domain/IService/IInventoryDetailsService.cs @@ -18,7 +18,7 @@ namespace WMS.Web.Domain.IService /// /// /// - Task GenerateInventoryDetails(List dtos, bool isTransaction); + Task GenerateInventoryDetails(List dtos, bool isTransaction,string isPandian); /// /// 获取即时库存明细汇总 diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index e66019cc..6d6cb86a 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -888,7 +888,7 @@ namespace WMS.Web.Domain.Services invDetGenDtos.AddRange(invDetGenDtos_out); if (invDetGenDtos.Count != 0) { - var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction); + var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction,"0"); if (!InventoryDetailsGenerate_result.IsSuccess) return InventoryDetailsGenerate_result; } @@ -1035,7 +1035,7 @@ namespace WMS.Web.Domain.Services if (invDetGenDtos.Count != 0) { - var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction); + var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0"); if (!InventoryDetailsGenerate_result.IsSuccess) return InventoryDetailsGenerate_result; } @@ -1305,7 +1305,7 @@ namespace WMS.Web.Domain.Services invDetGenDtos.AddRange(invDetGenDtos_out); if (invDetGenDtos.Count != 0) { - var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction); + var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0"); if (!InventoryDetailsGenerate_result.IsSuccess) return InventoryDetailsGenerate_result; } @@ -1514,7 +1514,7 @@ namespace WMS.Web.Domain.Services invDetGenDtos.AddRange(invDetGenDtos_out); if (invDetGenDtos.Count != 0) { - var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction); + var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0"); if (!InventoryDetailsGenerate_result.IsSuccess) return InventoryDetailsGenerate_result; } @@ -1565,7 +1565,8 @@ namespace WMS.Web.Domain.Services inventoryDet.OrgCode = item.OrgCode; inventoryDet.StockCode = item.StockCode; inventoryDet.SubStockCode = item.SubStockCode; - inventoryDet.Qty = current_sers_info.Count; + //inventoryDet.Qty = current_sers_info.Count; + inventoryDet.Qty = current_sers_infoCount.Count; inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out; //3.2.2即时库存:修改的集合 InventoryDetailsGenerateDto1.Add(inventoryDet); @@ -1612,7 +1613,7 @@ namespace WMS.Web.Domain.Services } if (InventoryDetailsGenerateDto1.Count != 0) { - var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto1, isTransaction); + var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto1, isTransaction, "1"); if (!InventoryDetailsGenerate_result.IsSuccess) return InventoryDetailsGenerate_result; } @@ -1811,7 +1812,7 @@ namespace WMS.Web.Domain.Services _logger.LogInformation($"入库对应即时库存:{JsonConvert.SerializeObject(invDetGenDtos)} 操作时间:{DateTime.Now.ToString()}"); if (invDetGenDtos.Count != 0) { - var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction); + var InventoryDetailsGenerate_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0"); if (!InventoryDetailsGenerate_result.IsSuccess) return InventoryDetailsGenerate_result; } @@ -1964,7 +1965,7 @@ namespace WMS.Web.Domain.Services }).ToList(); if (invDetGenDtos.Count != 0) { - var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction); + var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(invDetGenDtos, isTransaction, "0"); if (!inventoryDetails_result.IsSuccess) return inventoryDetails_result; } @@ -2099,7 +2100,7 @@ namespace WMS.Web.Domain.Services //5.即时库存:变更处理 if (InventoryDetailsGenerateDto.Count != 0) { - var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction); + var inventoryDetails_result = await _inventoryDetailsService.GenerateInventoryDetails(InventoryDetailsGenerateDto, isTransaction, "0"); if (!inventoryDetails_result.IsSuccess) return inventoryDetails_result; } diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index 2c98e3d6..fea597dd 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -96,17 +96,18 @@ namespace WMS.Web.Domain.Services var boxs = await _boxInventoryRepositories.GetList(srcIds); var destIds_boxs = await _boxInventoryRepositories.GetList(destIds); - var serialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).ToList(); - var TwoserialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.TwoSerialNumbers).ToList(); + var serialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.SerialNumbers).Distinct().ToList(); + var TwoserialNumbers = dto.SelectMany(s => s.Details).SelectMany(s => s.TwoSerialNumbers).Distinct().ToList(); serialNumbers.AddRange(TwoserialNumbers); serialNumbers.Sort(); + var serialNumberList = await _serialNumbersRepositories.GetEntityList(serialNumbers); foreach (var d in dto) { if (d.SrcBoxId == 0) { //没有原箱的情况下需要验证序列号是否有箱子绑定 - var s = d.Details.SelectMany(s => s.SerialNumbers).ToList(); + var s = d.Details.SelectMany(s => s.SerialNumbers).Distinct().ToList(); var sCount = serialNumberList.Where(w => s.Contains(w.SerialNumber) && w.BoxId != 0).Count(); if (sCount > 0) return Result.ReFailure(ResultCodes.SerialNumbersBoxError); @@ -119,7 +120,7 @@ namespace WMS.Web.Domain.Services else { //有原箱的情况下验证序列号和原箱是否一致(排除没有绑定箱的老ops条码数据) - var s = d.Details.SelectMany(s => s.SerialNumbers).ToList(); + var s = d.Details.SelectMany(s => s.SerialNumbers).Distinct().ToList(); var boxCount = serialNumberList.Where(w => !(w.BoxId == 0 && w.Creator == "ops")).Where(w => s.Contains(w.SerialNumber)).GroupBy(s => s.BoxId).Select(s => s.Key).ToList(); if (boxCount.Count() > 1 || (boxCount.Count() == 1 && boxCount[0] != d.SrcBoxId)) return Result.ReFailure(ResultCodes.SerialNumbersSrcBoxError); diff --git a/src/WMS.Web.Domain/Services/InventoryDetailsService.cs b/src/WMS.Web.Domain/Services/InventoryDetailsService.cs index 5301e7e9..6d1b6db6 100644 --- a/src/WMS.Web.Domain/Services/InventoryDetailsService.cs +++ b/src/WMS.Web.Domain/Services/InventoryDetailsService.cs @@ -42,7 +42,7 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task GenerateInventoryDetails(List dtos,bool isTransaction) + public async Task GenerateInventoryDetails(List dtos,bool isTransaction,string isPanDian) { //找到物料对应的即时库存明细 var orgCodes = dtos.Select(x => x.OrgCode).ToList(); @@ -86,10 +86,28 @@ namespace WMS.Web.Domain.Services else { //出库的时候,判断是否有库存,没有就返回错误 - if (entity.Qty