|
@ -2,7 +2,6 @@ using System.Collections.Generic; |
|
|
using System.Linq; |
|
|
using System.Linq; |
|
|
using System.Text.Json; |
|
|
using System.Text.Json; |
|
|
using System.Threading.Tasks; |
|
|
using System.Threading.Tasks; |
|
|
using AutoMapper.Internal; |
|
|
|
|
|
using Castle.Components.DictionaryAdapter; |
|
|
using Castle.Components.DictionaryAdapter; |
|
|
using Volo.Abp; |
|
|
using Volo.Abp; |
|
|
using Volo.Abp.EventBus; |
|
|
using Volo.Abp.EventBus; |
|
@ -521,11 +520,8 @@ public class KittingIssueRequestEventHandler |
|
|
{ |
|
|
{ |
|
|
var usableLocationCode = |
|
|
var usableLocationCode = |
|
|
JsonSerializer.Deserialize<List<string>>(productionLineItemDto.RawLocationCodeListJson); |
|
|
JsonSerializer.Deserialize<List<string>>(productionLineItemDto.RawLocationCodeListJson); |
|
|
if (!usableLocationCode.Any()) |
|
|
if (usableLocationCode.Any()) |
|
|
{ |
|
|
{ |
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//获取可用库存
|
|
|
//获取可用库存
|
|
|
var input = new RecommendBalanceRequestInput |
|
|
var input = new RecommendBalanceRequestInput |
|
|
{ |
|
|
{ |
|
@ -546,21 +542,20 @@ public class KittingIssueRequestEventHandler |
|
|
//因为是原料所以按箱叫料
|
|
|
//因为是原料所以按箱叫料
|
|
|
kittingIssueJobEditInputs.AddRange( |
|
|
kittingIssueJobEditInputs.AddRange( |
|
|
await CreateKittingIssueJobWithBoxQtyTypeAsync(kittingIssueRequest, |
|
|
await CreateKittingIssueJobWithBoxQtyTypeAsync(kittingIssueRequest, |
|
|
new EditableList<KittingIssueRequestDetail> { kittingIssueRequestDetail }, usableList, |
|
|
new EditableList<KittingIssueRequestDetail> { kittingIssueRequestDetail }, |
|
|
|
|
|
usableList, |
|
|
useBalanceList).ConfigureAwait(false)); |
|
|
useBalanceList).ConfigureAwait(false)); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//半成品
|
|
|
//半成品
|
|
|
if (!string.IsNullOrEmpty(productionLineItemDto.ProductLocationCodeListJson)) //因为一个零件 要不是原料 要不是半成品
|
|
|
if (!string.IsNullOrEmpty(productionLineItemDto.ProductLocationCodeListJson)) //因为一个零件 要不是原料 要不是半成品
|
|
|
{ |
|
|
{ |
|
|
var usableLocationCode = |
|
|
var usableLocationCode = |
|
|
JsonSerializer.Deserialize<List<string>>(productionLineItemDto.ProductLocationCodeListJson); |
|
|
JsonSerializer.Deserialize<List<string>>(productionLineItemDto.ProductLocationCodeListJson); |
|
|
if (!usableLocationCode.Any()) |
|
|
if (usableLocationCode.Any()) |
|
|
{ |
|
|
{ |
|
|
continue; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//获取可用库存
|
|
|
//获取可用库存
|
|
|
var input = new RecommendBalanceRequestInput |
|
|
var input = new RecommendBalanceRequestInput |
|
|
{ |
|
|
{ |
|
@ -568,7 +563,8 @@ public class KittingIssueRequestEventHandler |
|
|
Qty = kittingIssueRequestDetail.Qty, |
|
|
Qty = kittingIssueRequestDetail.Qty, |
|
|
Statuses = new EditableList<EnumInventoryStatus> { EnumInventoryStatus.OK }, |
|
|
Statuses = new EditableList<EnumInventoryStatus> { EnumInventoryStatus.OK }, |
|
|
Locations = |
|
|
Locations = |
|
|
JsonSerializer.Deserialize<List<string>>(productionLineItemDto.ProductLocationCodeListJson), |
|
|
JsonSerializer.Deserialize<List<string>>(productionLineItemDto |
|
|
|
|
|
.ProductLocationCodeListJson), |
|
|
IsPackingCode = false |
|
|
IsPackingCode = false |
|
|
}; |
|
|
}; |
|
|
var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false); |
|
|
var usableList = await _balanceAppService.GetUsableListAsync(input).ConfigureAwait(false); |
|
@ -599,13 +595,16 @@ public class KittingIssueRequestEventHandler |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (kittingIssueJobEditInputs.Count > 0) //有库存 可以创建任务
|
|
|
if (kittingIssueJobEditInputs.Count > 0) //有库存 可以创建任务
|
|
|
{ |
|
|
{ |
|
|
//新增任务
|
|
|
//新增任务
|
|
|
var addKittingIssueJobDtos= await _kittingIssueJobAppService.CreateManyAsync(kittingIssueJobEditInputs).ConfigureAwait(false); |
|
|
var addKittingIssueJobDtos = await _kittingIssueJobAppService.CreateManyAsync(kittingIssueJobEditInputs) |
|
|
|
|
|
.ConfigureAwait(false); |
|
|
|
|
|
|
|
|
await UpdateKittingIssueRequestDetailQtyAsync(kittingIssueRequest, addKittingIssueJobDtos).ConfigureAwait(false); |
|
|
await UpdateKittingIssueRequestDetailQtyAsync(kittingIssueRequest, addKittingIssueJobDtos) |
|
|
|
|
|
.ConfigureAwait(false); |
|
|
|
|
|
|
|
|
return addKittingIssueJobDtos; |
|
|
return addKittingIssueJobDtos; |
|
|
} |
|
|
} |
|
@ -619,10 +618,12 @@ public class KittingIssueRequestEventHandler |
|
|
/// <param name="kittingIssueRequest"></param>
|
|
|
/// <param name="kittingIssueRequest"></param>
|
|
|
/// <param name="addKittingIssueJobDtos"></param>
|
|
|
/// <param name="addKittingIssueJobDtos"></param>
|
|
|
/// <returns></returns>
|
|
|
/// <returns></returns>
|
|
|
private async Task UpdateKittingIssueRequestDetailQtyAsync(KittingIssueRequest kittingIssueRequest, List<KittingIssueJobDTO> addKittingIssueJobDtos) |
|
|
private async Task UpdateKittingIssueRequestDetailQtyAsync(KittingIssueRequest kittingIssueRequest, |
|
|
|
|
|
List<KittingIssueJobDTO> addKittingIssueJobDtos) |
|
|
{ |
|
|
{ |
|
|
//原有任务
|
|
|
//原有任务
|
|
|
var existKittingIssueJobDtos = await _kittingIssueJobAppService.GetByRequestNumberAsync(kittingIssueRequest.Number) |
|
|
var existKittingIssueJobDtos = await _kittingIssueJobAppService |
|
|
|
|
|
.GetByRequestNumberAsync(kittingIssueRequest.Number) |
|
|
.ConfigureAwait(false); |
|
|
.ConfigureAwait(false); |
|
|
|
|
|
|
|
|
//新增的任务和已有的任务总和
|
|
|
//新增的任务和已有的任务总和
|
|
|