using Newtonsoft.Json;
using PlcSiemens.Core.Extension;
using ServiceCenter.Extensions;
using ServiceCenter.Logs;
using ServiceCenter.Redis;
using ServiceCenter.SqlSugars;
using SqlSugar;
using System.Collections.Concurrent;
using System.ComponentModel;
using System.Diagnostics;
using System.Text;
using WCS.Core;
using WCS.Entity.Protocol.BCR;
using WCS.Entity.Protocol.DataStructure;
using WCS.Entity.Protocol.RGV;
using WCS.Entity.Protocol.Robot;
using WCS.Entity.Protocol.SRM;
using WCS.Entity.Protocol.Station;
using WCS.Entity.Protocol.Truss;
using WCS.WorkEngineering.Extensions;
using WCS.WorkEngineering.Worlds;
namespace WCS.WorkEngineering.Systems
{
    /// 
    ///  数据处理
    /// 
    [BelongTo(typeof(MainWorld))]
    [Description("数据处理")]
    public class MainSysyem : SystemBase
    {
        public override void Update(List list)
        {
            var sql = new StringBuilder();
            try
            {
                var sw = new Stopwatch();
                sw.Start();
                var number = new List();
                number.AddRange(new[] { 1, 2, 3, 4, 5 });
                Parallel.ForEach(number, n =>
                {
                    var db = new SqlSugarHelper().PLC;
                    var pack = RedisHub.Monitor.LPop("DataCollectionpacks"); ;
                    if (pack == null) return;
                    Parallel.ForEach(pack.GetType().GetProperties().OrderBy(x => x.Name), ps =>
                    {
                        var sw10 = new Stopwatch();
                        sw10.Start();
                        var typeName = "";
                        try
                        {
                            //if (ps.PropertyType == typeof(ProtocolData[]))
                            //{
                            //    if (pack.BCR80.Any())
                            //    {
                            //        var value = pack.BCR80.Select(x => x.Data).ToList();
                            //        var sql = db.Insertable(value).ToSqlString();
                            //        db.Ado.ExecuteCommand(sql);
                            //        typeName = typeof(WCS_BCR80).Name;
                            //    }
                            //}
                            //else if (ps.PropertyType == typeof(ProtocolData[]))
                            //{
                            //    if (pack.BCR81.Any())
                            //    {
                            //        var value = pack.BCR81.Select(x => x.Data).ToList();
                            //        var sql = db.Insertable(value).ToSqlString();
                            //        db.Ado.ExecuteCommand(sql);
                            //        typeName = typeof(WCS_BCR81).Name;
                            //    }
                            //}
                            //else if (ps.PropertyType == typeof(ProtocolData[]))
                            //{
                            //    if (pack.BCR83.Any())
                            //    {
                            //        var value = pack.BCR83.Select(x => x.Data).ToList();
                            //        var sql = db.Insertable(value).ToSqlString();
                            //        db.Ado.ExecuteCommand(sql);
                            //        typeName = typeof(WCS_BCR83).Name;
                            //    }
                            //}
                            if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.RGV520.Any())
                                {
                                    var value = pack.RGV520.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_RGV520).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.RGV521.Any())
                                {
                                    var value = pack.RGV521.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_RGV521).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.RGV523.Any())
                                {
                                    var value = pack.RGV523.Select(x => new QuestDb_RGV523()
                                    {
                                        Alarm = Convert.ToString(x.Data.Alarm),
                                        Code = x.Data.Code,
                                        Frame = x.Data.Frame.ToLocalTime()
                                    }).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(GetString(sql));
                                    typeName = typeof(WCS_RGV523).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Robot520.Any())
                                {
                                    var value = pack.Robot520.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Robot520).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Robot521.Any())
                                {
                                    var value = pack.Robot521.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Robot521).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Robot522.Any())
                                {
                                    var value = pack.Robot522.Select(x => new QuestDb_Robot522()
                                    {
                                        Alarm = Convert.ToString(x.Data.Alarm),
                                        Code = x.Data.Code,
                                        Frame = x.Data.Frame.ToLocalTime()
                                    }).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Robot522).Name;
                                }
                            }
                            //else if (ps.PropertyType == typeof(ProtocolData[]))
                            //{
                            //    if (pack.Robot530.Any())
                            //    {
                            //        var value = pack.Robot530.Select(x => x.Data).ToList();
                            //        var sql = db.Insertable(value).ToSqlString();
                            //        db.Ado.ExecuteCommand(sql);
                            //        typeName = typeof(WCS_Robot530).Name;
                            //    }
                            //}
                            //else if (ps.PropertyType == typeof(ProtocolData[]))
                            //{
                            //    if (pack.Robot531.Any())
                            //    {
                            //        var value = pack.Robot531.Select(x => x.Data).ToList();
                            //        var sql = db.Insertable(value).ToSqlString();
                            //        db.Ado.ExecuteCommand(sql);
                            //        typeName = typeof(WCS_Robot531).Name;
                            //    }
                            //}
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.SRM520.Any())
                                {
                                    var value = pack.SRM520.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_SRM520).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.SRM521.Any())
                                {
                                    var value = pack.SRM521.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_SRM521).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.SRM523.Any())
                                {
                                    var value = pack.SRM523.Select(x => new QuestDb_SRM523()
                                    {
                                        Alarm = $"{Convert.ToString(x.Data.Alarm1)},{Convert.ToString(x.Data.Alarm1)}",
                                        Code = x.Data.Code,
                                        Frame = x.Data.Frame.ToLocalTime()
                                    }).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(GetString(sql));
                                    typeName = typeof(WCS_SRM523).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Station520.Any())
                                {
                                    var value = pack.Station520.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Station520).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Station521.Any())
                                {
                                    var value = pack.Station521.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Station521).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Station523.Any())
                                {
                                    var value = pack.Station523.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Station523).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Station524.Any())
                                {
                                    var value = pack.Station524.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Station524).Name;
                                }
                            }
                            //else if (ps.PropertyType == typeof(ProtocolData[]))
                            //{
                            //    if (pack.Station525.Any())
                            //    {
                            //        var value = pack.Station525.Select(x => x.Data).ToList();
                            //        var sql = db.Insertable(value).ToSqlString();
                            //        db.Ado.ExecuteCommand(sql);
                            //        typeName = typeof(WCS_Station525).Name;
                            //    }
                            //}
                            //else if (ps.PropertyType == typeof(ProtocolData[]))
                            //{
                            //    if (pack.Station90.Any())
                            //    {
                            //        var value = pack.Station90.Select(x => x.Data).ToList();
                            //        var sql = db.Insertable(value).ToSqlString();
                            //        db.Ado.ExecuteCommand(sql);
                            //        typeName = typeof(WCS_Station90).Name;
                            //    }
                            //}
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Station91.Any())
                                {
                                    var value = pack.Station91.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Station91).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Truss520.Any())
                                {
                                    var value = pack.Truss520.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Truss520).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Truss521.Any())
                                {
                                    var value = pack.Truss521.Select(x => x.Data).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Truss521).Name;
                                }
                            }
                            else if (ps.PropertyType == typeof(ProtocolData[]))
                            {
                                if (pack.Truss523.Any())
                                {
                                    var value = pack.Truss523.Select(x => new QuestDb_Truss523()
                                    {
                                        Alarm = Convert.ToString(x.Data.Alarm),
                                        Code = x.Data.Code,
                                        Frame = x.Data.Frame.ToLocalTime()
                                    }).ToList();
                                    var sql = db.Insertable(value).ToSqlString();
                                    db.Ado.ExecuteCommand(sql);
                                    typeName = typeof(WCS_Truss523).Name;
                                }
                            }
                            //else if (ps.PropertyType == typeof(ProtocolData[]))
                            //{
                            //    if (pack.Truss530.Any())
                            //    {
                            //        var value = pack.Truss530.Select(x => x.Data).ToList();
                            //        var sql = db.Insertable(value).ToSqlString();
                            //        db.Ado.ExecuteCommand(sql);
                            //        typeName = typeof(WCS_Truss530).Name;
                            //    }
                            //}
                            //else if (ps.PropertyType == typeof(ProtocolData[]))
                            //{
                            //    if (pack.Truss531.Any())
                            //    {
                            //        var value = pack.Truss531.Select(x => x.Data).ToList();
                            //        var sql = db.Insertable(value).ToSqlString();
                            //        db.Ado.ExecuteCommand(sql);
                            //        typeName = typeof(WCS_Truss531).Name;
                            //    }
                            //}
                        }
                        catch (Exception e)
                        {
                            World.Log($"错误内容:{e.Message}");
                        }
                        finally
                        {
                            sw10.Stop();
                            World.Log($"执行耗时:{typeName}:{sw10.ElapsedMilliseconds}");
                        }
                    });
                });
                //var db = new SqlSugarHelper().PLC;
                //var pack = RedisHub.Monitor.LPop("DataCollectionpacks"); ;
                //if (pack == null) return;
                //Parallel.ForEach(pack.GetType().GetProperties().OrderBy(x => x.Name), ps =>
                //{
                //    var sw10 = new Stopwatch();
                //    sw10.Start();
                //    var typeName = "";
                //    try
                //    {
                //        //if (ps.PropertyType == typeof(ProtocolData[]))
                //        //{
                //        //    if (pack.BCR80.Any())
                //        //    {
                //        //        var value = pack.BCR80.Select(x => x.Data).ToList();
                //        //        var sql = db.Insertable(value).ToSqlString();
                //        //        db.Ado.ExecuteCommand(sql);
                //        //        typeName = typeof(WCS_BCR80).Name;
                //        //    }
                //        //}
                //        //else if (ps.PropertyType == typeof(ProtocolData[]))
                //        //{
                //        //    if (pack.BCR81.Any())
                //        //    {
                //        //        var value = pack.BCR81.Select(x => x.Data).ToList();
                //        //        var sql = db.Insertable(value).ToSqlString();
                //        //        db.Ado.ExecuteCommand(sql);
                //        //        typeName = typeof(WCS_BCR81).Name;
                //        //    }
                //        //}
                //        //else if (ps.PropertyType == typeof(ProtocolData[]))
                //        //{
                //        //    if (pack.BCR83.Any())
                //        //    {
                //        //        var value = pack.BCR83.Select(x => x.Data).ToList();
                //        //        var sql = db.Insertable(value).ToSqlString();
                //        //        db.Ado.ExecuteCommand(sql);
                //        //        typeName = typeof(WCS_BCR83).Name;
                //        //    }
                //        //}
                //        if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.RGV520.Any())
                //            {
                //                var value = pack.RGV520.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_RGV520).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.RGV521.Any())
                //            {
                //                var value = pack.RGV521.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_RGV521).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.RGV523.Any())
                //            {
                //                var value = pack.RGV523.Select(x => new QuestDb_RGV523()
                //                {
                //                    Alarm = Convert.ToString(x.Data.Alarm),
                //                    Code = x.Data.Code,
                //                    Frame = x.Data.Frame.ToLocalTime()
                //                }).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(GetString(sql));
                //                typeName = typeof(WCS_RGV523).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Robot520.Any())
                //            {
                //                var value = pack.Robot520.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Robot520).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Robot521.Any())
                //            {
                //                var value = pack.Robot521.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Robot521).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Robot522.Any())
                //            {
                //                var value = pack.Robot522.Select(x => new QuestDb_Robot522()
                //                {
                //                    Alarm = Convert.ToString(x.Data.Alarm),
                //                    Code = x.Data.Code,
                //                    Frame = x.Data.Frame.ToLocalTime()
                //                }).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Robot522).Name;
                //            }
                //        }
                //        //else if (ps.PropertyType == typeof(ProtocolData[]))
                //        //{
                //        //    if (pack.Robot530.Any())
                //        //    {
                //        //        var value = pack.Robot530.Select(x => x.Data).ToList();
                //        //        var sql = db.Insertable(value).ToSqlString();
                //        //        db.Ado.ExecuteCommand(sql);
                //        //        typeName = typeof(WCS_Robot530).Name;
                //        //    }
                //        //}
                //        //else if (ps.PropertyType == typeof(ProtocolData[]))
                //        //{
                //        //    if (pack.Robot531.Any())
                //        //    {
                //        //        var value = pack.Robot531.Select(x => x.Data).ToList();
                //        //        var sql = db.Insertable(value).ToSqlString();
                //        //        db.Ado.ExecuteCommand(sql);
                //        //        typeName = typeof(WCS_Robot531).Name;
                //        //    }
                //        //}
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.SRM520.Any())
                //            {
                //                var value = pack.SRM520.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_SRM520).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.SRM521.Any())
                //            {
                //                var value = pack.SRM521.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_SRM521).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.SRM523.Any())
                //            {
                //                var value = pack.SRM523.Select(x => new QuestDb_SRM523()
                //                {
                //                    Alarm = $"{Convert.ToString(x.Data.Alarm1)},{Convert.ToString(x.Data.Alarm1)}",
                //                    Code = x.Data.Code,
                //                    Frame = x.Data.Frame.ToLocalTime()
                //                }).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(GetString(sql));
                //                typeName = typeof(WCS_SRM523).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Station520.Any())
                //            {
                //                var value = pack.Station520.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Station520).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Station521.Any())
                //            {
                //                var value = pack.Station521.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Station521).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Station523.Any())
                //            {
                //                var value = pack.Station523.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Station523).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Station524.Any())
                //            {
                //                var value = pack.Station524.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Station524).Name;
                //            }
                //        }
                //        //else if (ps.PropertyType == typeof(ProtocolData[]))
                //        //{
                //        //    if (pack.Station525.Any())
                //        //    {
                //        //        var value = pack.Station525.Select(x => x.Data).ToList();
                //        //        var sql = db.Insertable(value).ToSqlString();
                //        //        db.Ado.ExecuteCommand(sql);
                //        //        typeName = typeof(WCS_Station525).Name;
                //        //    }
                //        //}
                //        //else if (ps.PropertyType == typeof(ProtocolData[]))
                //        //{
                //        //    if (pack.Station90.Any())
                //        //    {
                //        //        var value = pack.Station90.Select(x => x.Data).ToList();
                //        //        var sql = db.Insertable(value).ToSqlString();
                //        //        db.Ado.ExecuteCommand(sql);
                //        //        typeName = typeof(WCS_Station90).Name;
                //        //    }
                //        //}
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Station91.Any())
                //            {
                //                var value = pack.Station91.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Station91).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Truss520.Any())
                //            {
                //                var value = pack.Truss520.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Truss520).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Truss521.Any())
                //            {
                //                var value = pack.Truss521.Select(x => x.Data).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Truss521).Name;
                //            }
                //        }
                //        else if (ps.PropertyType == typeof(ProtocolData[]))
                //        {
                //            if (pack.Truss523.Any())
                //            {
                //                var value = pack.Truss523.Select(x => new QuestDb_Truss523()
                //                {
                //                    Alarm = Convert.ToString(x.Data.Alarm),
                //                    Code = x.Data.Code,
                //                    Frame = x.Data.Frame.ToLocalTime()
                //                }).ToList();
                //                var sql = db.Insertable(value).ToSqlString();
                //                db.Ado.ExecuteCommand(sql);
                //                typeName = typeof(WCS_Truss523).Name;
                //            }
                //        }
                //        //else if (ps.PropertyType == typeof(ProtocolData[]))
                //        //{
                //        //    if (pack.Truss530.Any())
                //        //    {
                //        //        var value = pack.Truss530.Select(x => x.Data).ToList();
                //        //        var sql = db.Insertable(value).ToSqlString();
                //        //        db.Ado.ExecuteCommand(sql);
                //        //        typeName = typeof(WCS_Truss530).Name;
                //        //    }
                //        //}
                //        //else if (ps.PropertyType == typeof(ProtocolData[]))
                //        //{
                //        //    if (pack.Truss531.Any())
                //        //    {
                //        //        var value = pack.Truss531.Select(x => x.Data).ToList();
                //        //        var sql = db.Insertable(value).ToSqlString();
                //        //        db.Ado.ExecuteCommand(sql);
                //        //        typeName = typeof(WCS_Truss531).Name;
                //        //    }
                //        //}
                //    }
                //    catch (Exception e)
                //    {
                //        World.Log($"错误内容:{e.Message}");
                //    }
                //    finally
                //    {
                //        sw10.Stop();
                //        World.Log($"执行耗时:{typeName}:{sw10.ElapsedMilliseconds}");
                //    }
                //});
                sw.Stop();
                World.Log($"数据处理耗时:{sw.ElapsedMilliseconds}");
            }
            catch (Exception e)
            {
                World.Log($"错误内容:{e.Message}");
            }
        }
        private Type GetProtocolType(Type source)
        {
            var t = source.GetInterfaces().FirstOrDefault(v => v.GetInterfaces().Any(d => d.Name == "IProtocol"));
            var t1 = source.GetInterfaces().FirstOrDefault(v => v.GetInterfaces().Any(d => d.Name == "IProtocol"));
            return t;
        }
        private object AppendLock = new object();
        public StringBuilder Append(StringBuilder sql, string value)
        {
            lock (AppendLock)
            {
                return sql.Append(value);
            }
        }
        public string GetString(string value)
        {
            return value.Replace(",N'", ",'")
                .Replace("\0", "")
                .Replace("(N'", "('") + "\r";
        }
        public override List