Browse Source

更新库存逻辑

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

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

@ -114,9 +114,11 @@ 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> balanceDTOs = new List<BalanceDTO>();
List<BalanceDTO> unbalanceDTOs = new List<BalanceDTO>();
decimal totalDeducted = 0; decimal totalDeducted = 0;
foreach (var item in inventory) foreach (var item in inventory)
@ -128,16 +130,25 @@ public class UnplannedIssueJobAppService
{ {
var locationDto = await _locationAppService.GetByCodeAsync(item.LocationCode).ConfigureAwait(false); var locationDto = await _locationAppService.GetByCodeAsync(item.LocationCode).ConfigureAwait(false);
BalanceDTO dto = new BalanceDTO(); BalanceDTO dto = new BalanceDTO();
if (enumLocationType == EnumLocationType.RAW) BalanceDTO undto = new BalanceDTO();
{
dto.InjectFrom(item); dto.InjectFrom(item);
dto.Qty = availableToDeduct; dto.Qty = availableToDeduct;
balanceDTOs.Add(dto); balanceDTOs.Add(dto);
if (enumLocationType == EnumLocationType.RAW)
{
undto.InjectFrom(item);
unbalanceDTOs.Add(dto);
} }
else else
{ {
dto.InjectFrom(item);
balanceDTOs.Add(dto); undto.InjectFrom(item);
undto.Qty = availableToDeduct;
unbalanceDTOs.Add(dto);
} }
} }
@ -147,6 +158,10 @@ public class UnplannedIssueJobAppService
break; break;
} }
} }
Tuple<List<BalanceDTO>, List<BalanceDTO>> tuple = new Tuple<List<BalanceDTO>, List<BalanceDTO>>( balanceDTOs,unbalanceDTOs);
// 返回实际扣减的库存数量 // 返回实际扣减的库存数量
return balanceDTOs; return balanceDTOs;
} }
@ -277,8 +292,9 @@ public class UnplannedIssueJobAppService
//实际要用库存 //实际要用库存
List<BalanceDTO> useBalances = new List<BalanceDTO>(); List<BalanceDTO> useBalances = new List<BalanceDTO>();
var returnlist=await DeductInventory(usableList, requestDtoDetail.Qty, locationDto.Type).ConfigureAwait(false); 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