diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/PutawayNoteEventHandler.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/PutawayNoteEventHandler.cs index da7e53b71..708656921 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/PutawayNoteEventHandler.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Event/DataExchanges/PutawayNoteEventHandler.cs @@ -1,8 +1,10 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Microsoft.VisualBasic; using Volo.Abp.EventBus; using Volo.Abp.Uow; +using Win_in.Sfs.Shared.Domain.Shared; using Win_in.Sfs.Shared.Event; using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain; @@ -37,10 +39,44 @@ public class PutawayNoteEventHandler { await detail.TrySetLocationAsync(LocationAclService).ConfigureAwait(false); } - var exchangeData = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, ExchangeDataType, dtos).ConfigureAwait(false); - await AddManyAsync(exchangeData).ConfigureAwait(false); - //EOS - var exchangeData_eos = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.EOS, ExchangeDataType, dtos).ConfigureAwait(false); - await AddManyAsync(exchangeData_eos).ConfigureAwait(false); + + //采购上架 + var putaway_Purchase = entities.Where(p => p.Type == EnumPutawayType.PurchasePutaway).ToList(); + if (putaway_Purchase.Count > 0) + { + var exchangeData_Purchase = + await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, ExchangeDataType, + putaway_Purchase).ConfigureAwait(false); + await AddManyAsync(exchangeData_Purchase).ConfigureAwait(false); + //EOS + var exchangeData_eos_Purchase = + await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.EOS, ExchangeDataType, + putaway_Purchase).ConfigureAwait(false); + await AddManyAsync(exchangeData_eos_Purchase).ConfigureAwait(false); + } + + //半成品上架 + var putaway_Semi_temp = entities.Where(p => p.Type == EnumPutawayType.SemiPutaway).ToList(); + foreach (var putawayNoteTemp in putaway_Semi_temp) + { + var putawayNoteDetails= new List(); + + foreach (var putawayNoteDetail_temp in putawayNoteTemp.Details) + { + if (putawayNoteDetail_temp.FromLocationErpCode != putawayNoteDetail_temp.ToLocationErpCode) + { + putawayNoteDetails.Add(putawayNoteDetail_temp); + } + } + + putawayNoteTemp.Details = putawayNoteDetails; + } + putaway_Semi_temp=putaway_Semi_temp.Where(p => p.Details.Any()).ToList(); + if (putaway_Semi_temp.Count > 0) + { + var exchangeData_Semi = await BuildExchangeDataAsync(StoreEventConsts.WMS, StoreEventConsts.ERP, + EnumExchangeDataType.Transfer, putaway_Semi_temp).ConfigureAwait(false); + await AddManyAsync(exchangeData_Semi).ConfigureAwait(false); + } } }