Browse Source

更新

dev_DY_CC
赵新宇 7 months ago
parent
commit
49a5ed5b81
  1. 37
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedIssueJobs/UnplannedIssueJobAppService.cs
  2. 2
      be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedReceiptJobs/UnplannedReceiptJobAppService.cs

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

@ -120,16 +120,18 @@ public class UnplannedIssueJobAppService
decimal availableToDeduct = Math.Min(item.Qty, quantityToDeduct - totalDeducted);
item.Qty -= availableToDeduct;
totalDeducted += availableToDeduct;
if (availableToDeduct <= 0)
{
BalanceDTO dto = new BalanceDTO();
dto.InjectFrom(item);
dto.Qty = availableToDeduct;
balanceDTOs.Add(dto);
}
// 如果已经扣减达到所需数量,退出循环
if (totalDeducted >= quantityToDeduct)
{
break;
}
BalanceDTO dto = new BalanceDTO();
dto.InjectFrom(item);
dto.Qty = availableToDeduct;
balanceDTOs.Add(dto);
}
// 返回实际扣减的库存数量
return balanceDTOs;
@ -145,6 +147,7 @@ public class UnplannedIssueJobAppService
foreach (var requestDtoDetail in requestDto.Details)//非计划领料明细
{
var locationCodes = await _locationAppService.GetListByErpLocationCodes(new StringList(requestDtoDetail.LocationErpCode)).ConfigureAwait(false);//获取存放库位
var input = new RecommendBalanceRequestInput
{
ItemCode = requestDtoDetail.ItemCode,
@ -154,6 +157,9 @@ public class UnplannedIssueJobAppService
IsPackingCode = false
};
var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false);//获取推荐库存
usableList = usableList.Where(p => p.Qty> 0).ToList();
usableList = usableList
.OrderBy(p => p.Lot)
.ThenBy(p => p.PutInTime)
@ -198,11 +204,26 @@ public class UnplannedIssueJobAppService
{
throw new UserFriendlyException("库存余额不够!");
}
foreach (var balanceDtoGroup in useBalances.GroupBy(p => p.LocationCode))
{
var locationDto = await _locationAppService.GetByCodeAsync(balanceDtoGroup.Key).ConfigureAwait(false);
var job = new UnplannedIssueJob();
switch (locationDto.Type)
{
case EnumLocationType.RAW:
job.UnplannedIssueType = EnumUnplannedIssueType.Raw;
break;
case EnumLocationType.FG:
case EnumLocationType.DimensionalStorehouse:
case EnumLocationType.CUST:
case EnumLocationType.KittingWip:
case EnumLocationType.OUTSIDE:
case EnumLocationType.SEMI:
case EnumLocationType.WIP:
case EnumLocationType.THIRDPARTY:
job.UnplannedIssueType = EnumUnplannedIssueType.Wip;
break;
}
job.SetId(GuidGenerator.Create());
job.UnplannedIssueRequestNumber= requestDto.Number;
job.JobType = EnumJobType.UnplannedIssueJob;
@ -211,7 +232,6 @@ public class UnplannedIssueJobAppService
job.DeptCode = requestDto.DeptCode;
job.DeptName = requestDto.DeptName;
job.Worker = requestDto.Worker;
job.OANumber = requestDto.OANumber;
job.Number =await _unplannedIssueJobManager.GetNumber().ConfigureAwait(true);
job.Details = new List<UnplannedIssueJobDetail>();
@ -221,10 +241,7 @@ public class UnplannedIssueJobAppService
foreach (var balanceDto in balanceDtoGroup)
{
var jobfacDetail = new UnplannedIssueJobFacDetail();
jobfacDetail.Number = job.Number;
jobfacDetail.SetIdAndNumber(GuidGenerator, job.Id, job.Number);
jobfacDetail.CaseCode = requestDtoDetail.CaseCode;

2
be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/UnplannedReceiptJobs/UnplannedReceiptJobAppService.cs

@ -94,7 +94,7 @@ public class UnplannedReceiptJobAppService
public async Task DoByFreeAsync(string jobNumber,string worker,List<UnplannedReceiptJobDetailDTO> detailDtos)
{
var details = ObjectMapper.Map<List<UnplannedReceiptJobDetailDTO>, List<UnplannedReceiptJobDetail>>(detailDtos);
var job=await _repository.FindAsync(p => p.Number == jobNumber).ConfigureAwait(false);
var job=await _repository.FindAsync(p => p.Number == jobNumber).ConfigureAwait(false);
if (job == null)
{
throw new UserFriendlyException($"{jobNumber}【任务】不存在");

Loading…
Cancel
Save