|
|
@ -2,9 +2,11 @@ using System.Collections.Generic; |
|
|
|
using System.Linq; |
|
|
|
using System.Text.Json; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using Castle.Components.DictionaryAdapter; |
|
|
|
using Microsoft.Extensions.Logging; |
|
|
|
using Volo.Abp.ObjectMapping; |
|
|
|
using Win_in.Sfs.Basedata.Application.Contracts; |
|
|
|
using Win_in.Sfs.Shared.Domain.Shared; |
|
|
|
using Win_in.Sfs.Wms.DataExchange.Domain; |
|
|
|
using Win_in.Sfs.Wms.DataExchange.WMS.BackFlushNote; |
|
|
|
using Win_in.Sfs.Wms.Store.Application.Contracts; |
|
|
@ -18,13 +20,14 @@ public class BackFluConverter : IIncomingConverter |
|
|
|
private readonly IItemBasicAppService _itemBasicAppService; |
|
|
|
private readonly IObjectMapper _objectMapper; |
|
|
|
private readonly ILogger<BackFluConverter> _logger; |
|
|
|
private readonly ILocationAppService _locationAppService; |
|
|
|
public BackFluConverter( |
|
|
|
IIncomingToWmsManager incomingToWmsManager, |
|
|
|
IItemBasicAppService itemBasicAppService, |
|
|
|
IObjectMapper objectMapper, |
|
|
|
ILogger<BackFluConverter> logger |
|
|
|
, |
|
|
|
IIncomingFromExternalManager incomingFromExternalManager |
|
|
|
ILogger<BackFluConverter> logger, |
|
|
|
IIncomingFromExternalManager incomingFromExternalManager, |
|
|
|
ILocationAppService locationAppService |
|
|
|
|
|
|
|
) |
|
|
|
{ |
|
|
@ -33,6 +36,7 @@ public class BackFluConverter : IIncomingConverter |
|
|
|
_objectMapper = objectMapper; |
|
|
|
_logger = logger; |
|
|
|
_incomingFromExternalManager = incomingFromExternalManager; |
|
|
|
_locationAppService = locationAppService; |
|
|
|
} |
|
|
|
public virtual async Task ConvertAsync(List<IncomingFromExternal> incomingFromExternalList) |
|
|
|
{ |
|
|
@ -66,12 +70,41 @@ public class BackFluConverter : IIncomingConverter |
|
|
|
incomingToWms.SetEffectiveDate(first.EffectiveDate); |
|
|
|
var exchangeBack = JsonSerializer.Deserialize<BackFlushNoteExchangeDto>(first.DestinationDataContent); |
|
|
|
var wmsBack = _objectMapper.Map<BackFlushNoteExchangeDto, BackFlushNoteEditInput>(exchangeBack); |
|
|
|
var item1 = await _itemBasicAppService.GetByCodeAsync(wmsBack.ItemCode).ConfigureAwait(false); |
|
|
|
if (item1 != null) |
|
|
|
{ |
|
|
|
wmsBack.ItemName = item1.Name; |
|
|
|
wmsBack.Uom = item1.BasicUom; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
wmsBack.ItemName = ""; |
|
|
|
wmsBack.Uom = ""; |
|
|
|
} |
|
|
|
wmsBack.Details = new List<BackFlushNoteDetailInput>(); |
|
|
|
foreach (var incomingFromExternal in group.ToList()) |
|
|
|
{ |
|
|
|
var back = JsonSerializer.Deserialize<BackFlushNoteExchangeDto>(incomingFromExternal.DestinationDataContent); |
|
|
|
var wmsBackDetail = _objectMapper.Map<BackFlushNoteDetailExchangeDto, BackFlushNoteDetailInput>(back.Detail); |
|
|
|
wmsBackDetail.Lot = ""; |
|
|
|
var item = await _itemBasicAppService.GetByCodeAsync(wmsBackDetail.ItemCode).ConfigureAwait(false); |
|
|
|
|
|
|
|
if (item != null) |
|
|
|
{ |
|
|
|
wmsBackDetail.ItemName = item.Name; |
|
|
|
wmsBackDetail.Uom = item.BasicUom; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
wmsBackDetail.ItemName = ""; |
|
|
|
wmsBackDetail.Uom = ""; |
|
|
|
} |
|
|
|
var typesAndErpCodeAsync = await _locationAppService.GetListByTypesAndErpCodeAsync(new EditableList<EnumLocationType>() { EnumLocationType.WIP }, wmsBackDetail.LocationErpCode).ConfigureAwait(false); |
|
|
|
var loctioncode = typesAndErpCodeAsync.First(); |
|
|
|
wmsBackDetail.LocationCode = loctioncode.Code; |
|
|
|
wmsBackDetail.WarehouseCode = loctioncode.WarehouseCode; |
|
|
|
wmsBackDetail.LocationArea = loctioncode.AreaCode; |
|
|
|
wmsBackDetail.LocationGroup = loctioncode.LocationGroupCode; |
|
|
|
wmsBack.Details.Add(wmsBackDetail); |
|
|
|
} |
|
|
|
incomingToWms.DataContent = JsonSerializer.Serialize(wmsBack); |
|
|
|