diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs index 5912a1bf6..1e0a02ce0 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs @@ -113,10 +113,12 @@ public class UnplannedIssueJobAppService //} - - private async Task> DeductInventory(List inventory, decimal quantityToDeduct, EnumLocationType enumLocationType) + + private async Task,List>> DeductInventory(List inventory, decimal quantityToDeduct, EnumLocationType enumLocationType) { + List balanceDTOs = new List(); + List unbalanceDTOs = new List(); decimal totalDeducted = 0; foreach (var item in inventory) @@ -128,16 +130,25 @@ public class UnplannedIssueJobAppService { var locationDto = await _locationAppService.GetByCodeAsync(item.LocationCode).ConfigureAwait(false); BalanceDTO dto = new BalanceDTO(); + BalanceDTO undto = new BalanceDTO(); + dto.InjectFrom(item); + dto.Qty = availableToDeduct; + balanceDTOs.Add(dto); if (enumLocationType == EnumLocationType.RAW) { - dto.InjectFrom(item); - dto.Qty = availableToDeduct; - balanceDTOs.Add(dto); + + undto.InjectFrom(item); + unbalanceDTOs.Add(dto); + } else { - dto.InjectFrom(item); - balanceDTOs.Add(dto); + + undto.InjectFrom(item); + undto.Qty = availableToDeduct; + unbalanceDTOs.Add(dto); + + } } @@ -147,6 +158,10 @@ public class UnplannedIssueJobAppService break; } } + + Tuple, List> tuple = new Tuple, List>( balanceDTOs,unbalanceDTOs); + + // 返回实际扣减的库存数量 return balanceDTOs; } @@ -277,8 +292,9 @@ public class UnplannedIssueJobAppService //实际要用库存 List useBalances = new List(); var returnlist=await DeductInventory(usableList, requestDtoDetail.Qty, locationDto.Type).ConfigureAwait(false); - useBalances.AddRange(returnlist); - useBalancesOut.AddRange(returnlist); + + useBalances.AddRange(returnlist.Item1); + useBalancesOut.AddRange(returnlist.Item2);