diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Console/AsnFactory.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Console/AsnFactory.cs index 7cfeeee..5ecc6d1 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Console/AsnFactory.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Console/AsnFactory.cs @@ -176,7 +176,7 @@ namespace Win_in.Sfs.Scp.WebApi.Console } private Item CreateItem(string itemCode, decimal qty, string uom, int accumQty, - string poNumber, int loadQty, decimal unitQty, List itemLabelCodes) + string poNumber, int loadQty, decimal unitQty, Dictionary itemLabelCodes) { var item = new Item(); @@ -185,7 +185,7 @@ namespace Win_in.Sfs.Scp.WebApi.Console .SetSN1(qty, uom, accumQty) .SetPRF(poNumber) .SetCLD(loadQty, unitQty) - .SetREF_LSs(itemLabelCodes); + .SetREF_LS_LTs(itemLabelCodes); return item; } 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 3bd2905..291e9cb 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 @@ -40,7 +40,7 @@ public class Item /// REFERENCE IDENTIFICATION /// 箱标签列表 /// - public List REF_LSs { get; set; } + public List REF_LS_LTs { get; set; } public override string ToString() { @@ -50,10 +50,27 @@ public class Item sb.AppendLine(SN1.ToString()); sb.AppendLine(PRF.ToString()); sb.AppendLine(CLD.ToString()); - foreach (var refLS in REF_LSs) + foreach (var ref_LS_LT in REF_LS_LTs) { - sb.AppendLine(refLS.ToString()); + sb.AppendLine(ref_LS_LT.REF_LS.ToString()); + sb.AppendLine(ref_LS_LT.REF_LT.ToString()); } return sb.ToString().Trim(); } +} + +public class REF_LS_LT +{ + public REF_LS_LT() + { + + } + public REF_LS_LT(BarcodeAndBatch itemLabelCode) + { + REF_LS = new REF(REF.RefType.LS, itemLabelCode.Barcode); + REF_LT = new REF(REF.RefType.LT, itemLabelCode.Batch); + } + + public REF REF_LS { get; } + public REF REF_LT { get; } } \ No newline at end of file diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Items/ItemExtentions.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Items/ItemExtentions.cs index 60f7f99..ec2e4af 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Items/ItemExtentions.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Items/ItemExtentions.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using System.Runtime.InteropServices; namespace Win_in.Sfs.Scp.WebApi.Asns; @@ -35,13 +36,30 @@ public static class ItemExtentions return item; } - public static Item SetREF_LSs(this Item item, List itemLabelCodes) + public static Item SetREF_LS_LTs(this Item item, List itemLabelCodes) { - item.REF_LSs = new List(); - foreach (var refLs in itemLabelCodes.Select(labelCode => new REF(REF.RefType.LS, labelCode))) + item.REF_LS_LTs = new List(); + + foreach (var ref_LS_LT in itemLabelCodes.Select(itemLabelCode => new REF_LS_LT(itemLabelCode))) { - item.REF_LSs.Add(refLs); + item.REF_LS_LTs.Add(ref_LS_LT); } return item; } +} + +public class BarcodeAndBatch +{ + public BarcodeAndBatch() + { + + } + public BarcodeAndBatch(string barcode, string batch) + { + Barcode = barcode; + Batch = batch; + } + + public string Barcode { get; set; } + public string Batch { get; set; } } \ No newline at end of file diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Shipments/ShipmentExtensions.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Shipments/ShipmentExtensions.cs index 949bf7c..7482a35 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Shipments/ShipmentExtensions.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Shipments/ShipmentExtensions.cs @@ -77,7 +77,7 @@ public static class ShipmentExtensions orphanItem.HL.HL01 = shipNotice.GetNextHl(orphanItem.SN1.Qty); orphanItem.HL.HL02 = shipment.HL.HL01; shipment.OrphanItems.Add(orphanItem); - shipNotice.AddSegment(5+orphanItem.REF_LSs.Count); + shipNotice.AddSegment(5+orphanItem.REF_LS_LTs.Count); return shipment; } diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Tares/TareExtensions.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Tares/TareExtensions.cs index 4dfbc85..9cf4b18 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Tares/TareExtensions.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.Domain.Shared/ASN_X12/Tares/TareExtensions.cs @@ -23,7 +23,7 @@ public static class TareExtensions item.HL.HL01 = shipNotice.GetNextHl(item.SN1.Qty); item.HL.HL02 = tare.HL.HL01; tare.Items.Add(item); - shipNotice.AddSegment(5+item.REF_LSs.Count); + shipNotice.AddSegment(5+item.REF_LS_LTs.Count); return tare; } diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/AsnBackgroundWorker/AsnFactory.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/AsnBackgroundWorker/AsnFactory.cs index c7dda61..e1ef836 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/AsnBackgroundWorker/AsnFactory.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/AsnBackgroundWorker/AsnFactory.cs @@ -76,16 +76,17 @@ namespace Win_in.Sfs.Scp.WebApi p.Key.PoUnit, p.Key.PoBillNum, p.Key.PackQty, - Labels = p.Select(p=>p.BarCode).ToList() + BarcodeAndBatchs = p.Select(p =>new BarcodeAndBatch ( p.BarCode, p.Batch)).ToList(), }) .ToList(); foreach (var b in group) { var accumQty = 0;//TODO 如何计算 - var loadQty = b.Labels.Count; + var loadQty = b.BarcodeAndBatchs.Count; var unitQty = b.PackQty; - var item = CreateItem(b.PartCode, loadQty * unitQty, b.PoUnit, accumQty, b.PoBillNum, loadQty, unitQty,b.Labels); + var item = CreateItem(b.PartCode, loadQty * unitQty, b.PoUnit, accumQty, + b.PoBillNum, loadQty, unitQty, b.BarcodeAndBatchs); items.Add(item); } @@ -190,7 +191,7 @@ namespace Win_in.Sfs.Scp.WebApi } private Item CreateItem(string itemCode, decimal qty, string uom, int accumQty, - string poNumber, int loadQty, decimal unitQty, List itemLabelCodes) + string poNumber, int loadQty, decimal unitQty, List itemLabelCodes) { var item = new Item(); @@ -199,7 +200,7 @@ namespace Win_in.Sfs.Scp.WebApi .SetSN1(qty, uom, accumQty) .SetPRF(poNumber) .SetCLD(loadQty, unitQty) - .SetREF_LSs(itemLabelCodes); + .SetREF_LS_LTs(itemLabelCodes); return item; } diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Program.cs b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Program.cs index 1c64f08..78bdf89 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Program.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Program.cs @@ -4,26 +4,35 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Serilog; using Serilog.Events; - +using Serilog.Sinks.MSSqlServer; namespace Win_in.Sfs.Scp.WebApi { public class Program { public static int Main(string[] args) { + IConfigurationRoot configuration = + new ConfigurationBuilder() + .AddJsonFile("serilogsettings.json", false, true) + .Build(); + Log.Logger = new LoggerConfiguration() -#if DEBUG - .MinimumLevel.Debug() -#else - .MinimumLevel.Information() -#endif - .MinimumLevel.Override("Microsoft", LogEventLevel.Information) - .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) - .Enrich.FromLogContext() - .WriteTo.Async(c => c.File("Logs/logs.txt",rollingInterval:RollingInterval.Day)) - .WriteTo.Async(c => c.Console()) + .ReadFrom.Configuration(configuration) .CreateLogger(); + // Log.Logger = new LoggerConfiguration() + // #if DEBUG + // .MinimumLevel.Debug() + // #else + // .MinimumLevel.Information() + // #endif + // .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + // .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) + // .Enrich.FromLogContext() + // .WriteTo.Async(c => c.File("Logs/logs.txt",rollingInterval:RollingInterval.Day)) + // .WriteTo.Async(c => c.Console()) + // .CreateLogger(); + try { Log.Information("Starting Win_in.Sfs.Scp.WebApi.HttpApi.Host."); diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj index be52cf2..dd75bfa 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/Win_in.Sfs.Scp.WebApi.HttpApi.Host.csproj @@ -14,6 +14,7 @@ + diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Development.json b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Development.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Development.json @@ -0,0 +1,2 @@ +{ +} diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Production.Development.json b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Production.Development.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Production.Development.json @@ -0,0 +1,2 @@ +{ +} diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Production.json b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Production.json new file mode 100644 index 0000000..e99fefa --- /dev/null +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Production.json @@ -0,0 +1,38 @@ +{ + "App": { + "SelfUrl": "https://scp.iacchina.net:9988", + "CorsOrigins": "https://scp.iacchina.net:9977,https://scp.iacchina.net:9988,https://localhost:9977,https://localhost:9988", + "RedirectAllowedUrls": "https://scp.iacchina.net:9977,https://scp.iacchina.net:9988" + }, + "ConnectionStrings": { + "Default": "Server=127.0.0.1,13314;Database=Scp_WebApi;User ID=superadmin;Password=Microsoft@2021;connection timeout=600;", + "WebApi": "Server=127.0.0.1,13314;Database=Scp_WebApi;User ID=superadmin;Password=Microsoft@2021;connection timeout=600;", + "V1Scp": "Server=127.0.0.1£º13314;Database=Scp_AC;User ID=sa;Password=Microsoft2008;connection timeout=600;" + }, + "AuthServer": { + "Authority": "https://scp.iacchina.net:9988", + "RequireHttpsMetadata": "false", + "SwaggerClientId": "WebApi_Swagger", + "SwaggerClientSecret": "1q2w3e*" + }, + "IdentityServer": { + "Clients": { + "WebApi_Web": { + "ClientId": "WebApi_Web", + "ClientSecret": "1q2w3e*", + "RootUrl": "https://scp.iacchina.net:9988" + }, + "WebApi_App": { + "ClientId": "WebApi_App", + "ClientSecret": "1q2w3e*", + "RootUrl": "https://scp.iacchina.net:9988" + }, + "WebApi_Swagger": { + "ClientId": "WebApi_Swagger", + "ClientSecret": "1q2w3e*", + "RootUrl": "https://scp.iacchina.net:9988" + } + } + }, + "AlwaysAllowAuthorization": false +} \ No newline at end of file diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Production.secrets.json b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Production.secrets.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.Production.secrets.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.json b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.json new file mode 100644 index 0000000..8b66f8e --- /dev/null +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.json @@ -0,0 +1,46 @@ +{ + "Serilog": { + "Using": [ "Serilog.Sinks.File", "Serilog.Sinks.Async", "Serilog.Sinks.Console", "Serilog.Sinks.MSSqlServer" ], + "MinimumLevel": { + "Default": "Debug", + "Override": { + "Microsoft": "Information", + "Microsoft.EntityFrameworkCore": "Warning" + } + }, + "WriteTo": [ + { + "Name": "Async", + "Args": { + "configure": [ + { + "Name": "File", + "Args": { + "path": "Logs\\log.txt", + "rollingInterval": "Day", + "restrictedToMinimumLevel": "Debug" + } + + } + ] + } + }, + { + "Name": "Console", + "Args": { + "restrictedToMinimumLevel": "Debug", + "outputTemplate": "{Timestamp:HH:mm:ss.fff zzz} [{Level}] {Message} {NewLine}{Exception}" + } + }, + { + "Name": "MSSqlServer", + "Args": { + "connectionString": "Server=127.0.0.1;Database=Scp_WebApi;User ID=sa;Password=Microsoft2008;connection timeout=600;", + "tableName": "AppLogs", + "autoCreateSqlTable": true + } + } + ], + "Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId" ] + } +} \ No newline at end of file diff --git a/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.secrets.json b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.secrets.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/WebApiService/src/Win_in.Sfs.Scp.WebApi.HttpApi.Host/serilogsettings.secrets.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file diff --git a/WebApiService/src/Win_in.Sfs.Scp.v1.Domain/Asns/TS_BARCODE.cs b/WebApiService/src/Win_in.Sfs.Scp.v1.Domain/Asns/TS_BARCODE.cs index 616cb97..fbefe27 100644 --- a/WebApiService/src/Win_in.Sfs.Scp.v1.Domain/Asns/TS_BARCODE.cs +++ b/WebApiService/src/Win_in.Sfs.Scp.v1.Domain/Asns/TS_BARCODE.cs @@ -89,4 +89,6 @@ namespace Win_in.Sfs.Scp.v1.Domain.Asns public Guid? TenantId { get; } } + + } \ No newline at end of file