From b78edd51bfb8b938dbbb92e0c13c5d98bf3d44ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=BE=E8=8D=A3=E5=9B=BD?= Date: Sat, 20 Aug 2022 13:29:06 +0800 Subject: [PATCH] =?UTF-8?q?[fix]EDI=E5=8E=BB=E9=99=A4=E7=AE=B1=E7=9A=84LT?= =?UTF-8?q?=EF=BC=8CLS=20=E5=85=A8=E9=83=A8ASN=E5=85=A8=E9=83=A8=E5=8F=91?= =?UTF-8?q?=E7=BB=99WMS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AsnBackgroundWorker.cs | 20 +++++++++---------- .../Win_in.Sfs.Scp.WebApi.Agent.csproj | 4 ++-- .../appsettings.json | 2 ++ .../ASN_X12/Items/Item.cs | 14 ++++++++----- .../AsnOptions.cs | 3 +++ 5 files changed, 25 insertions(+), 18 deletions(-) diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/AsnBackgroundWorker/AsnBackgroundWorker.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/AsnBackgroundWorker/AsnBackgroundWorker.cs index 5266cfa..2341874 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/AsnBackgroundWorker/AsnBackgroundWorker.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/AsnBackgroundWorker/AsnBackgroundWorker.cs @@ -30,7 +30,7 @@ namespace Win_in.Sfs.Scp.WebApi { public class AsnBackgroundWorker : AsyncPeriodicBackgroundWorkerBase { - private readonly IOptions _options; + private readonly AsnOptions _options; private readonly IObjectMapper _objectMapper; public AsnBackgroundWorker( @@ -40,7 +40,7 @@ namespace Win_in.Sfs.Scp.WebApi IObjectMapper objectMapper ) : base(timer, serviceScopeFactory) { - _options = options; + _options = options.Value; _objectMapper = objectMapper; Timer.Period = options.Value.PeriodSeconds * 1000; //default 5 minutes } @@ -49,7 +49,7 @@ namespace Win_in.Sfs.Scp.WebApi protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext) { Logger.LogInformation("Get ASN from SCP: Start"); - if (!_options.Value.Active) + if (!_options.Active) { Logger.LogInformation("Get ASN from SCP: Switch is closed!"); return; @@ -64,7 +64,7 @@ namespace Win_in.Sfs.Scp.WebApi var dataFilter = workerContext.ServiceProvider.GetRequiredService(); //Do the work - foreach (var site in _options.Value.Sites) + foreach (var site in _options.Sites) { var asnX12List = new List(); // var noPoAsnList = new List(); @@ -93,7 +93,7 @@ namespace Win_in.Sfs.Scp.WebApi Logger.LogInformation($"{siteCode}: Last UID is {lastUid}"); var scpAsns = - await scpAsnManager.GetUnreadAsnsAsync(siteCode, lastUid, _options.Value.BatchSize); + await scpAsnManager.GetUnreadAsnsAsync(siteCode, lastUid, _options.BatchSize); Logger.LogInformation($"{siteCode}: {scpAsns.Count} ASNs were Found"); @@ -101,16 +101,14 @@ namespace Win_in.Sfs.Scp.WebApi { var barcodes = await scpAsnManager.GetBarcodesAsync(siteCode, asn.AsnBillNum); - if (string.IsNullOrEmpty(asn.PoBillNum)) //without PO - { - var noPoAsn = CreateNoPoAsn(asn, barcodes); - asnX12List.Add(noPoAsn); - } - else //with PO + if (asn.AsnBillNum.StartsWith(_options.QadAsnPrefix))//ASN to QAD { var asnX12 = CreateX12Asn(site, asn, barcodes); asnX12List.Add(asnX12); } + var noPoAsn = CreateNoPoAsn(asn, barcodes); + asnX12List.Add(noPoAsn); + Logger.LogInformation($"{siteCode}:{asn.Id} {asn.AsnBillNum} was loaded"); } } diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/Win_in.Sfs.Scp.WebApi.Agent.csproj b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/Win_in.Sfs.Scp.WebApi.Agent.csproj index 8deb618..5aa8b75 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/Win_in.Sfs.Scp.WebApi.Agent.csproj +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/Win_in.Sfs.Scp.WebApi.Agent.csproj @@ -3,8 +3,8 @@ Exe net5.0 - 1.22.0810.1 - 1.22.0810.1 + 1.22.0820.1 + 1.22.0820.1 diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/appsettings.json b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/appsettings.json index 1f588bd..add1033 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/appsettings.json +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Agent/appsettings.json @@ -52,6 +52,8 @@ "RetryTimes": 3, "BatchSize": 20, "MaxCount": 100, + "QadAsnPrefix": "B", + "NoPoAsnPrefix": "T", "Sites": [ { "Code": "T8", diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Items/Item.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Items/Item.cs index 291e9cb..803f9fc 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Items/Item.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Items/Item.cs @@ -50,11 +50,15 @@ public class Item sb.AppendLine(SN1.ToString()); sb.AppendLine(PRF.ToString()); sb.AppendLine(CLD.ToString()); - foreach (var ref_LS_LT in REF_LS_LTs) - { - sb.AppendLine(ref_LS_LT.REF_LS.ToString()); - sb.AppendLine(ref_LS_LT.REF_LT.ToString()); - } + + // 北美提出不要标签号和批次信息 @20220820 + // foreach (var ref_LS_LT in REF_LS_LTs) + // { + // sb.AppendLine(ref_LS_LT.REF_LS.ToString()); + // sb.AppendLine(ref_LS_LT.REF_LT.ToString()); + // } + // 北美提出不要标签号和批次信息 @20220820 + return sb.ToString().Trim(); } } diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/AsnOptions.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/AsnOptions.cs index 0eb5065..1f9604d 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/AsnOptions.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/AsnOptions.cs @@ -10,6 +10,9 @@ public class AsnOptions public int BatchSize { get; set; } = 10; public int MaxCount { get; set; } = 100; public string ValidPoPre { get; set; } = "PO"; + public string QadAsnPrefix { get; set; } = "B"; + public string NoPoAsnPrefix { get; set; } = "T"; + public List Sites { get; set; } =new() ; public class Site