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 f684d06a8..0d91790b1 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 @@ -126,8 +126,16 @@ public class UnplannedIssueJobAppService var unbalanceDTOs = new List(); decimal totalDeducted = 0; + + List balances = new List(); + foreach (var item in inventory) { + BalanceDTO balanceDTO = new BalanceDTO(); + + balanceDTO.InjectFrom(item); + + var availableToDeduct = Math.Min(item.Qty, quantityToDeduct - totalDeducted); item.Qty -= availableToDeduct; totalDeducted += availableToDeduct; @@ -141,10 +149,9 @@ public class UnplannedIssueJobAppService balanceDTOs.Add(dto); if (enumLocationType == EnumLocationType.RAW) { - undto.InjectFrom(item); - - undto.Qty = item.Qty; - unbalanceDTOs.Add(undto); + //undto.InjectFrom(item); + //undto.Qty = item.Qty; + unbalanceDTOs.Add(balanceDTO); } else { @@ -153,6 +160,7 @@ public class UnplannedIssueJobAppService unbalanceDTOs.Add(undto); } } + // 如果已经扣减达到所需数量,退出循环 if (totalDeducted >= quantityToDeduct)