From 38bf0e4d569c2e4a4346e09a75aba7e8a7a7e7ea Mon Sep 17 00:00:00 2001 From: "mingliang.tang" Date: Mon, 17 Apr 2023 11:37:09 +0800 Subject: [PATCH] =?UTF-8?q?MES=20=20=E8=80=97=E7=94=A8=E5=8D=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Backflus/Backflu.cs | 56 +++++++++ .../Backflus/BackfluManager.cs | 29 +++++ .../Backflus/IBackfluManager.cs | 10 ++ .../Backflus/IBackfluRepository.cs | 7 ++ .../Backflus/BackfluManager.cs | 9 +- .../Backflus/IBackfluManager.cs | 2 +- ...ackflusDbContextModelCreatingExtensions.cs | 31 +++++ .../Backflus/BackflusEfCoreRepository.cs | 12 ++ ...xchangeDbContextModelCreatingExtensions.cs | 2 +- ...ExchangeEntityFrameworkCoreFawtygModule.cs | 1 + .../IMesDbContext.cs | 1 + .../MesDbContext.cs | 1 + .../Incoming/BackFluConverter.cs | 83 +++++++++++++ .../Incoming/BackFluReader.cs | 112 ++++++++++++++++++ .../Incoming/MesIncomingBackgroundWorker.cs | 21 ++-- ...fs.Wms.DataExchange.Fawtyg.MesAgent.csproj | 1 + .../appsettings.json | 14 +-- .../Incoming/BackFluReader.cs | 2 +- .../AgentModule.cs | 4 +- .../IncomingToWmsWorker.cs | 34 +++--- 20 files changed, 395 insertions(+), 37 deletions(-) create mode 100644 be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/Backflu.cs create mode 100644 be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/BackfluManager.cs create mode 100644 be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/IBackfluManager.cs create mode 100644 be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/IBackfluRepository.cs create mode 100644 be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Backflus/BackflusDbContextModelCreatingExtensions.cs create mode 100644 be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Backflus/BackflusEfCoreRepository.cs create mode 100644 be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluConverter.cs create mode 100644 be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluReader.cs diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/Backflu.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/Backflu.cs new file mode 100644 index 000000000..5b25c9d82 --- /dev/null +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/Backflu.cs @@ -0,0 +1,56 @@ +using Volo.Abp.Domain.Entities; + +namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes; +public class Backflu : Entity +{ + + /// + /// MES写入时间 + /// + public string scmout_dt_w { get; set; } + /// + /// 单据类型 + /// + public string scmout_type { get; set; } + /// + /// TYRP单号 + /// + public string scmout_nbr { get; set; } + /// + /// 料号 + /// + public string scmout_part { get; set; } + /// + /// 追加码/预定交货日/序号/储位 + /// + public string scmout_no { get; set; } + /// + /// TYRP异动储位 + /// + public string scmout_loc { get; set; } + /// + /// 库存交易年月 + /// + public string scmout_ym { get; set; } + /// + /// 库存交易日 + /// + public string scmout_date { get; set; } + /// + /// 数量 + /// + public decimal scmout_qty { get; set; } + /// + /// 调入储位 + /// + public string scmout_in_loc { get; set; } + /// + /// 有效码 + /// + public string scmout_stat { get; set; } + + public override object[] GetKeys() + { + return new object[] { scmout_type + scmout_nbr + scmout_part + scmout_no }; + } +} diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/BackfluManager.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/BackfluManager.cs new file mode 100644 index 000000000..ad133c5f1 --- /dev/null +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/BackfluManager.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.Domain.Services; + +namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes; +public class BackfluManager : DomainService, IBackfluManager +{ + private readonly IBackfluLinq2DbRepository _repository; + public BackfluManager(IBackfluLinq2DbRepository repository) + { + _repository = repository; + } + + public async Task> GetToBeProcessedListAsync() + { + var Backflu = await _repository.GetListAsync().ConfigureAwait(false); + + return Backflu.ToList(); + } + public virtual async Task UpdateProcessedListAsync(List entities) + { + foreach (var entitie in entities) + { + entitie.scmout_stat = "N"; + await _repository.UpdateAsync(entitie).ConfigureAwait(false); + } + } +} diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/IBackfluManager.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/IBackfluManager.cs new file mode 100644 index 000000000..d87b62978 --- /dev/null +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/IBackfluManager.cs @@ -0,0 +1,10 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Volo.Abp.Domain.Services; + +namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes; +public interface IBackfluManager : IDomainService +{ + Task> GetToBeProcessedListAsync(); + Task UpdateProcessedListAsync(List entities); +} diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/IBackfluRepository.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/IBackfluRepository.cs new file mode 100644 index 000000000..26f50aeb3 --- /dev/null +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes/Backflus/IBackfluRepository.cs @@ -0,0 +1,7 @@ +using Volo.Abp.Domain.Repositories; + +namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes; +public interface IBackfluRepository : IRepository +{ + +} diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/Backflus/BackfluManager.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/Backflus/BackfluManager.cs index fbdaa8e1d..d25f37ee5 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/Backflus/BackfluManager.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/Backflus/BackfluManager.cs @@ -19,5 +19,12 @@ public class BackfluManager : DomainService, IBackfluManager return Backflu.ToList(); } - + public virtual async Task UpdateProcessedListAsync(List entities) + { + foreach (var entitie in entities) + { + entitie.scmout_stat = "N"; + await _repository.UpdateAsync(entitie).ConfigureAwait(false); + } + } } diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/Backflus/IBackfluManager.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/Backflus/IBackfluManager.cs index c7face679..6de3f20b1 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/Backflus/IBackfluManager.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp/Backflus/IBackfluManager.cs @@ -7,5 +7,5 @@ namespace Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Tyrp; public interface IBackfluManager : IDomainService { Task> GetToBeProcessedListAsync(); - //Task UpdateProcessedListAsync(List entities); + Task UpdateProcessedListAsync(List entities); } diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Backflus/BackflusDbContextModelCreatingExtensions.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Backflus/BackflusDbContextModelCreatingExtensions.cs new file mode 100644 index 000000000..46b15138e --- /dev/null +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Backflus/BackflusDbContextModelCreatingExtensions.cs @@ -0,0 +1,31 @@ + +using Microsoft.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore.Modeling; +using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes; + +namespace Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes; +public static class BackfluDbContextModelCreatingExtensions +{ + public static void ConfigureBackflu(this ModelBuilder builder, MesModelBuilderConfigurationOptions options) + { + builder.Entity(b => + { + //Configure table & schema Name + b.ToTable(options.TablePrefix + "scmout", options.Schema); + //Configure ABP properties + b.ConfigureByConvention(); + b.Property(q => q.scmout_dt_w).HasMaxLength(20); + b.Property(q => q.scmout_type).HasMaxLength(6); + b.Property(q => q.scmout_nbr).HasMaxLength(12); + b.Property(q => q.scmout_part).HasMaxLength(20); + b.Property(q => q.scmout_no).HasMaxLength(10); + b.Property(q => q.scmout_loc).HasMaxLength(10); + b.Property(q => q.scmout_ym).HasMaxLength(6); + b.Property(q => q.scmout_date).HasMaxLength(8); + b.Property(q => q.scmout_qty).HasPrecision(10, 2); + b.Property(q => q.scmout_in_loc).HasMaxLength(10); + b.Property(q => q.scmout_stat).HasMaxLength(1); + }); + + } +} diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Backflus/BackflusEfCoreRepository.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Backflus/BackflusEfCoreRepository.cs new file mode 100644 index 000000000..b0b452778 --- /dev/null +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/Backflus/BackflusEfCoreRepository.cs @@ -0,0 +1,12 @@ +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; +using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes; + +namespace Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes; +public class BackfluEfCoreRepository : EfCoreRepository, IBackfluRepository +{ + public BackfluEfCoreRepository(IDbContextProvider dbContextProvider) + : base(dbContextProvider) + { + } +} diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeDbContextModelCreatingExtensions.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeDbContextModelCreatingExtensions.cs index d9a084b20..3d5d56d79 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeDbContextModelCreatingExtensions.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeDbContextModelCreatingExtensions.cs @@ -26,6 +26,6 @@ public static class DataExchangeDbContextModelCreatingExtensions builder.ConfigurePullTask(options); builder.ConfigureScrap(options); builder.ConfigurePck(options); - + builder.ConfigureBackflu(options); } } diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeEntityFrameworkCoreFawtygModule.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeEntityFrameworkCoreFawtygModule.cs index 13459e207..ea5d271be 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeEntityFrameworkCoreFawtygModule.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/DataExchangeEntityFrameworkCoreFawtygModule.cs @@ -31,5 +31,6 @@ public class DataExchangeEntityFrameworkCoreFawtygModule : AbpModule context.Services.AddTransient(); context.Services.AddTransient(); context.Services.AddTransient(); + context.Services.AddTransient(); } } diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/IMesDbContext.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/IMesDbContext.cs index 10caffc24..60810373f 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/IMesDbContext.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/IMesDbContext.cs @@ -19,4 +19,5 @@ public interface IMesDbContext : IEfCoreDbContext DbSet MesOuts { get; } DbSet PullTasks { get; } + DbSet Backflu { get; } } diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/MesDbContext.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/MesDbContext.cs index f99c3cac6..775047674 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/MesDbContext.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.EntityFrameworkCore.Fawtyg.Mes/MesDbContext.cs @@ -20,6 +20,7 @@ public class MesDbContext : public virtual DbSet PullTasks { get; } public virtual DbSet Issue { get; } + public virtual DbSet Backflu { get; } public MesDbContext(DbContextOptions options) : base(options) diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluConverter.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluConverter.cs new file mode 100644 index 000000000..87a025842 --- /dev/null +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluConverter.cs @@ -0,0 +1,83 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text.Json; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Volo.Abp.ObjectMapping; +using Win_in.Sfs.Basedata.Application.Contracts; +using Win_in.Sfs.Wms.DataExchange.Domain; +using Win_in.Sfs.Wms.DataExchange.WMS.BackFlushNote; +using Win_in.Sfs.Wms.Store.Application.Contracts; + +namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming; + +public class BackFluConverter : IIncomingConverter +{ + private readonly IIncomingFromExternalManager _incomingFromExternalManager; + private readonly IIncomingToWmsManager _incomingToWmsManager; + private readonly IItemBasicAppService _itemBasicAppService; + private readonly IObjectMapper _objectMapper; + private readonly ILogger _logger; + public BackFluConverter( + IIncomingToWmsManager incomingToWmsManager, + IItemBasicAppService itemBasicAppService, + IObjectMapper objectMapper, + ILogger logger +, + IIncomingFromExternalManager incomingFromExternalManager + +) + { + _incomingToWmsManager = incomingToWmsManager; + _itemBasicAppService = itemBasicAppService; + _objectMapper = objectMapper; + _logger = logger; + _incomingFromExternalManager = incomingFromExternalManager; + } + public virtual async Task ConvertAsync(List incomingFromExternalList) + { + if (!incomingFromExternalList.Any()) + { + _logger.LogInformation("no backflus"); + return; + } + var incomingToWmsDataList = await BuildIncomingToWmsOfPurchaseOrderAsync(incomingFromExternalList).ConfigureAwait(false); + await _incomingToWmsManager.CreateManyAsync(incomingToWmsDataList).ConfigureAwait(false); + //归档 + await _incomingFromExternalManager.ArchiveBulkAsync(incomingFromExternalList).ConfigureAwait(false); + + } + + private async Task> BuildIncomingToWmsOfPurchaseOrderAsync(List incomingDataList) + { + await Task.CompletedTask.ConfigureAwait(false); + var incomingToWmsList = new List(); + var groups = incomingDataList.GroupBy(p => p.SourceDataGroupCode); + foreach (var group in groups) + { + var first = group.First(); + var incomingToWms = new IncomingToWms() + { + DataType = first.DataType, + DataAction = first.DataAction, + SourceSystem = first.SourceSystem, + DataIdentityCode = first.SourceDataGroupCode, + }; + incomingToWms.SetEffectiveDate(first.EffectiveDate); + var exchangeBack = JsonSerializer.Deserialize(first.DestinationDataContent); + var wmsBack = _objectMapper.Map(exchangeBack); + wmsBack.Details = new List(); + foreach (var incomingFromExternal in group.ToList()) + { + var back = JsonSerializer.Deserialize(incomingFromExternal.DestinationDataContent); + var wmsBackDetail = _objectMapper.Map(back.Detail); + + wmsBack.Details.Add(wmsBackDetail); + } + incomingToWms.DataContent = JsonSerializer.Serialize(wmsBack); + incomingToWmsList.Add(incomingToWms); + } + return incomingToWmsList; + } + +} diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluReader.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluReader.cs new file mode 100644 index 000000000..f479fed59 --- /dev/null +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/BackFluReader.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.Json; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Logging; +using Win_in.Sfs.Wms.DataExchange.Domain; +using Win_in.Sfs.Wms.DataExchange.Domain.Fawtyg.Mes; +using Win_in.Sfs.Wms.DataExchange.Domain.Shared; + +using Win_in.Sfs.Wms.DataExchange.WMS.BackFlushNote; + +namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.Incoming; + +public class BackFluReader : IReader +{ + private readonly IBackfluManager _ibackfluManager; + private readonly IIncomingFromExternalManager _incomingFromExternalManager; + private readonly ILogger _logger; + private readonly IConfiguration _configuration; + public BackFluReader( + IBackfluManager ibackfuManager + , IIncomingFromExternalManager incomingFromExternalManager + , ILogger logger + , IConfiguration configuration + ) + { + _ibackfluManager = ibackfuManager; + _incomingFromExternalManager = incomingFromExternalManager; + _logger = logger; + _configuration = configuration; + } + public virtual async Task> ReadAsync() + { + //从Tyrp读取待处理bom + var BackFull = await _ibackfluManager.GetToBeProcessedListAsync().ConfigureAwait(false); + var toBeProcessedBack = BackFull.Where(p => p.scmout_stat == "Y").ToList(); + if (!toBeProcessedBack.Any()) + { + _logger.LogInformation("no backflus"); + return new List(); + } + //bom逐一转换为bomNote + var incomingDataList = BuildIncomingFromExternalFromBomAsync(toBeProcessedBack); + await _incomingFromExternalManager.CreateManyAsync(incomingDataList).ConfigureAwait(false); + await _ibackfluManager.UpdateProcessedListAsync(toBeProcessedBack).ConfigureAwait(false); + return incomingDataList; + } + private List BuildIncomingFromExternalFromBomAsync(List toBeProcessedIssue) + { + var incomingDataList = new List(); + foreach (var backflu in toBeProcessedIssue) + { + var incomingData = BuildIncomingFromExternal(backflu); + + incomingData.SetEffectiveDate(DateTime.Now); + + try + { + var bm = BuildScrapNoteOrderExchangeMes(backflu); + incomingData.DestinationDataContent = JsonSerializer.Serialize(backflu); + } + catch (Exception ex) + { + incomingData.SetError(EnumExchangeDataErrorCode.Exception, ex.Message, ex.ToString()); + } + + incomingDataList.Add(incomingData); + + } + return incomingDataList; + } + private IncomingFromExternal BuildIncomingFromExternal(Backflu backflu) + { + var incomingData = new IncomingFromExternal() + { + DataType = EnumIncomingDataType.BackFlush.ToString(), + DataAction = EnumExchangeDataAction.Add, + SourceSystem = EnumSystemType.ERP.ToString(), + SourceDataId = backflu.scmout_type, + SourceDataGroupCode = backflu.scmout_nbr, + SourceDataDetailCode = backflu.scmout_part, + SourceDataContent = JsonSerializer.Serialize(backflu), + WriteTime = DateTime.Now, + Writer = nameof(MesIncomingBackgroundWorker), + DestinationSystem = EnumSystemType.ERP.ToString(), + }; + return incomingData; + } + + private static BackFlushNoteExchangeDto BuildScrapNoteOrderExchangeMes(Backflu backflu) + { + + var back = new BackFlushNoteExchangeDto() + { + + ActiveDate = Convert.ToDateTime(backflu.scmout_dt_w.Substring(0, 4) + "-" + backflu.scmout_dt_w.Substring(4, 2) + "-" + backflu.scmout_dt_w.Substring(6, 2)), + ItemCode = backflu.scmout_part, + Number = backflu.scmout_nbr + }; + var bakcdetail = new BackFlushNoteDetailExchangeDto() + { + Number = backflu.scmout_nbr, + ItemCode = backflu.scmout_part, + Qty = backflu.scmout_qty, + LocationErpCode = backflu.scmout_loc + }; + back.Detail = bakcdetail; + return back; + } +} diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesIncomingBackgroundWorker.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesIncomingBackgroundWorker.cs index 558588868..f0072f735 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesIncomingBackgroundWorker.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Incoming/MesIncomingBackgroundWorker.cs @@ -34,13 +34,13 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase Logger.LogInformation($"{Incoming} is not active!"); return; } - Logger.LogInformation($"Read MesOut");//缴库 - var mesOutReader = workerContext.ServiceProvider.GetRequiredService(); - var mesOutConverter = workerContext.ServiceProvider.GetRequiredService(); - //读取并保存MesOut - var mesOutsFromExternalList = await mesOutReader.ReadAsync().ConfigureAwait(false); - //转换MesOut - await mesOutConverter.ConvertAsync(mesOutsFromExternalList).ConfigureAwait(false); + //Logger.LogInformation($"Read MesOut");//缴库 + //var mesOutReader = workerContext.ServiceProvider.GetRequiredService(); + //var mesOutConverter = workerContext.ServiceProvider.GetRequiredService(); + ////读取并保存MesOut + //var mesOutsFromExternalList = await mesOutReader.ReadAsync().ConfigureAwait(false); + ////转换MesOut + //await mesOutConverter.ConvertAsync(mesOutsFromExternalList).ConfigureAwait(false); Logger.LogInformation($"Read PullTask");//拉动任务 var pullTaskReader = workerContext.ServiceProvider.GetRequiredService(); @@ -66,6 +66,13 @@ public class MesIncomingBackgroundWorker : AsyncPeriodicBackgroundWorkerBase //转换Pck await pckConverter.ConvertAsync(pcksFromExternalList).ConfigureAwait(false); + Logger.LogInformation($"Read BackFlush");//耗用单 + var BackFlushReader = workerContext.ServiceProvider.GetRequiredService(); + var BackFlushConverter = workerContext.ServiceProvider.GetRequiredService(); + //读取并保存Customer + var backFlushsFromExternalList = await BackFlushReader.ReadAsync().ConfigureAwait(false); + //转换Customer + await BackFlushConverter.ConvertAsync(backFlushsFromExternalList).ConfigureAwait(false); Logger.LogInformation($"Completed: Handling {Incoming}"); } diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.csproj b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.csproj index 47d6bcd34..3637b0414 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.csproj +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent.csproj @@ -28,6 +28,7 @@ + diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json index 72ca5624c..2ea101bee 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.MesAgent/appsettings.json @@ -1,12 +1,12 @@ { "ConnectionStrings": { - "Default": "Server=dev.ccwin-in.com,13319;Database=DyWmsAuth;uid=ccwin-in;pwd=Microsoft@2022;", - "DataExchange": "Server=dev.ccwin-in.com,21195;Database=DataExchange_Main;uid=sa;pwd=aA123456!;", - "MES": "Server=dev.ccwin-in.com;Port=13306;Database=MES;Uid=ccwinin;Pwd=Microsoft@2022;" + "Default": "Server=dev.ccwin-in.com,21195;Database= WMS;uid=sa;pwd=aA123456!;TrustServerCertificate=True;", + "DataExchange": "Server=dev.ccwin-in.com,21195;Database=DataExchange_Main;uid=sa;pwd=aA123456!;TrustServerCertificate=True;", + "MES": "Server=10.164.1.12;Port=3306;Database=erp;Uid=wms;Pwd=123456;" }, "AuthServer": { - "Authority": "http://dev.ccwin-in.com:59093/", + "Authority": "http://dev.ccwin-in.com:21293/", "RequireHttpsMetadata": "false", "SwaggerClientId": "admin", "SwaggerClientSecret": "1q2w3E*", @@ -24,13 +24,13 @@ "RemoteServices": { "BaseData": { - "BaseUrl": "http://dev.ccwin-in.com:59094/" + "BaseUrl": "http://dev.ccwin-in.com:21294/" }, "Store": { - "BaseUrl": "http://dev.ccwin-in.com:59095/" + "BaseUrl": "http://dev.ccwin-in.com:21295/" }, "Label": { - "BaseUrl": "http://dev.ccwin-in.com:59092/" + "BaseUrl": "http://dev.ccwin-in.com:21292/" } }, "MesOptions": { diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BackFluReader.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BackFluReader.cs index 933f3328b..a8676a368 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BackFluReader.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.TyrpAgent/Incoming/BackFluReader.cs @@ -43,7 +43,7 @@ public class BackFluReader : IReader //bom逐一转换为bomNote var incomingDataList = BuildIncomingFromExternalFromBomAsync(toBeProcessedBack); await _incomingFromExternalManager.CreateManyAsync(incomingDataList).ConfigureAwait(false); - //await _ibackfluManager.UpdateProcessedListAsync(toBeProcessedBack); + await _ibackfluManager.UpdateProcessedListAsync(toBeProcessedBack).ConfigureAwait(false); return incomingDataList; } private List BuildIncomingFromExternalFromBomAsync(List toBeProcessedIssue) diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/AgentModule.cs b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/AgentModule.cs index de009e0fb..3b5a3402e 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/AgentModule.cs +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/AgentModule.cs @@ -149,7 +149,7 @@ public class AgentModule : AbpModule public override void OnApplicationInitialization( ApplicationInitializationContext context) { - // context.AddBackgroundWorkerAsync(); - context.AddBackgroundWorkerAsync(); + context.AddBackgroundWorkerAsync(); + //context.AddBackgroundWorkerAsync(); } } diff --git a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsWorker.cs b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsWorker.cs index 907622f56..9dafc2553 100644 --- a/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsWorker.cs +++ b/be/DataExchange/src/Win_in.Sfs.Wms.DataExchange.Agent/IncomingToWmsWorker.cs @@ -79,64 +79,64 @@ public class IncomingToWmsWorker : AsyncPeriodicBackgroundWorkerBase switch (dataType) { case EnumIncomingDataType.Department: - await incomingToWms.HandleDepartmentsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleDepartmentsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.User: - await incomingToWms.HandleUsersAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleUsersAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.Item: - await incomingToWms.HandleItemsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleItemsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.Location: await incomingToWms.HandleErpLocationsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.Bom: - await incomingToWms.HandleBomsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleBomsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.Dict: await incomingToWms.HandleDictsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.Supplier: - await incomingToWms.HandleSuppliersAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleSuppliersAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.SupplierItem: - await incomingToWms.HandleSupplierItemsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleSupplierItemsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.ItemPack: - await incomingToWms.HandleItemPacksAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleItemPacksAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.Customer: - await incomingToWms.HandleCustomersAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleCustomersAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.CustomerItem: - await incomingToWms.HandleCustomerItemsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleCustomerItemsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.InterfaceCalendar: - await incomingToWms.HandleInterfaceCalendarsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleInterfaceCalendarsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.PurchaseOrder: - await incomingToWms.HandlePurchaseOrdersAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandlePurchaseOrdersAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.SaleOrder: - await incomingToWms.HandleSaleOrdersAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleSaleOrdersAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.SupplierAsn: - await incomingToWms.HandleAsnsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleAsnsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.ProductReceipt: - await incomingToWms.HandleProductReceiptsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleProductReceiptsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.MaterialRequest: await incomingToWms.HandleMaterialRequestsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.Scrap: - await incomingToWms.HandleScrapsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleScrapsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.IssueConfirm: - await incomingToWms.HandleIssueNoteConfirmAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleIssueNoteConfirmAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.PurchaseLabel: - await incomingToWms.HandleInventoryLabelsAsync(workerContext).ConfigureAwait(false); + //await incomingToWms.HandleInventoryLabelsAsync(workerContext).ConfigureAwait(false); break; case EnumIncomingDataType.BackFlush: await incomingToWms.HandleBackFlushsAsync(workerContext).ConfigureAwait(false);