Browse Source

更新库存逻辑

dev_DY_CC
赵新宇 6 months ago
parent
commit
89fead2b90
  1. 34
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs

34
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs

@ -113,10 +113,12 @@ public class UnplannedIssueJobAppService
//}
private async Task<List<BalanceDTO>> DeductInventory(List<BalanceDTO> inventory, decimal quantityToDeduct, EnumLocationType enumLocationType)
private async Task<Tuple<List<BalanceDTO>,List<BalanceDTO>>> DeductInventory(List<BalanceDTO> inventory, decimal quantityToDeduct, EnumLocationType enumLocationType)
{
List<BalanceDTO> balanceDTOs = new List<BalanceDTO>();
List<BalanceDTO> unbalanceDTOs = new List<BalanceDTO>();
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<BalanceDTO>, List<BalanceDTO>> tuple = new Tuple<List<BalanceDTO>, List<BalanceDTO>>( balanceDTOs,unbalanceDTOs);
// 返回实际扣减的库存数量
return balanceDTOs;
}
@ -277,8 +292,9 @@ public class UnplannedIssueJobAppService
//实际要用库存
List<BalanceDTO> useBalances = new List<BalanceDTO>();
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);

Loading…
Cancel
Save