林豪 左 1 year ago
parent
commit
cafcb897f7

+ 9 - 1
WCS.Core/Extentions.cs

@@ -90,7 +90,7 @@ namespace WCS.Core
                 return attr.Description;
         }
 
-        public static object Copy(this object source, Type t)
+        public static object Copy(this object source, Type t, DateTime farme)
         {
             var obj = Activator.CreateInstance(t);
             foreach (var p in t.GetProperties())
@@ -99,9 +99,17 @@ namespace WCS.Core
                 if (p2 != null)
                 {
                     var value = p2.GetValue(source);
+                    //判断一下P2的类型是否为字符串
+                    if (p2.PropertyType == typeof(string))
+                    {
+                        var sValue = (string)value;
+                        value = sValue.Trim('\0', '\a', '\b', '\f', '\n', '\r', '\t', '\v').Trim();
+                    }
+
                     p.SetValue(obj, value);
                 }
             }
+            t.GetProperty("Frame").SetValue(obj, farme);
             return obj;
         }
     }

+ 1 - 1
WCS.Entity/TDengineBaseEntity.cs

@@ -9,7 +9,7 @@ namespace WCS.Entity
     /// </summary>
     public class TDengineBaseEntity : STable
     {
-        [SugarColumn(IsPrimaryKey = true, InsertServerTime = true)]
+        [TimeDbSplitField(DateType.Day)]
         public DateTime Frame { get; set; }
 
         public string Code { get; set; }

+ 2 - 2
WCS.Service/appsettings.json

@@ -7,7 +7,7 @@
     }
   },
   "ConnectionStrings": {
-    "Redis": "10.30.37.2:6379,database=0,prefix=Sorting:"
-    //"Redis": "10.30.37.1,password=123456,database=0,prefix=Sorting:"
+    //"Redis": "10.30.37.2:6379,database=0,prefix=Sorting:"
+    "Redis": "127.0.0.1,database=0,prefix=Sorting:"
   }
 }

+ 3 - 6
业务工程/分拣库/WCS.Entity.Protocol/TDengineBaseEntity.cs

@@ -1,6 +1,6 @@
-using System;
-using SqlSugar;
+using SqlSugar;
 using SqlSugar.TDengine;
+using System;
 
 namespace WCS.Entity
 {
@@ -9,12 +9,9 @@ namespace WCS.Entity
     /// </summary>
     public class TDengineBaseEntity : STable
     {
-        [SugarColumn(IsPrimaryKey = true, InsertServerTime = true)]
+        [TimeDbSplitField(DateType.Day)]
         public DateTime Frame { get; set; }
 
         public string Code { get; set; }
-
-        [SugarColumn(IsIgnore = true)]
-        public string CreateSql { get; set; }
     }
 }

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Extensions/DeviceExtension.cs

@@ -56,7 +56,7 @@ namespace WCS.WorkEngineering.Extensions
                         Port = 102,
                         Rack = 0,
                         Slot = 1,
-                        Type = PLCType.Siemens
+                        //Type = PLCType.Siemens
                     }
                 }
             };

+ 49 - 155
业务工程/分拣库/WCS.WorkEngineering/Systems/DataCollectionSysyem.cs

@@ -2,19 +2,15 @@
 using PlcSiemens.Core.Extension;
 using ServiceCenter.Extensions;
 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;
 
@@ -72,8 +68,8 @@ namespace WCS.WorkEngineering.Systems
                 pack.Frame = World.Frame;
                 sql.Append("INSERT INTO ");
                 var ps = pack.GetType().GetProperties().OrderBy(x => x.Name);
-                //var db = new SqlSugarHelper().PLC;
-
+                var db = new SqlSugarHelper().PLC;
+                var frame = DateTime.Now;
                 Parallel.ForEach(ps, p =>
                 {
                     if (!p.PropertyType.IsArray) return;
@@ -92,6 +88,10 @@ namespace WCS.WorkEngineering.Systems
                             try
                             {
                                 var protObj = x.Protocol(protType, World) as ProtocolProxyBase;
+                                if (protObj.Frame < DateTime.Now.AddYears(-24))
+                                {
+                                    protObj.Frame = frame;
+                                }
                                 if (protObj.Db.failed)
                                 {
                                     return;
@@ -99,12 +99,10 @@ namespace WCS.WorkEngineering.Systems
 
                                 var obj = Activator.CreateInstance(t);
                                 t.GetProperty("Code").SetValue(obj, x.Code);
-                                var value = WCS.Core.Extentions.Copy(protObj, entType);
+                                var value = WCS.Core.Extentions.Copy(protObj, entType, protObj.Frame);
                                 t.GetProperty("Data").SetValue(obj, value);
                                 t.GetProperty("Frame").SetValue(obj, protObj.Frame);
                                 entType.GetProperty("Code").SetValue(value, x.Code);
-                                //var sql1 = GetSql(entType, value, db);
-                                //Append(sql, sql1);
                                 arr.Add(obj);
                             }
                             catch
@@ -219,11 +217,37 @@ namespace WCS.WorkEngineering.Systems
 
                 sw3.Stop();
                 World.Log($"redis存储耗时:{sw3.ElapsedMilliseconds}");
-                //var sw4 = new Stopwatch();
-                //sw4.Start();
-                //db.Ado.ExecuteCommand(sql.ToString());
-                //sw4.Stop();
-                //World.Log($"执行SQL耗时:{sw4.ElapsedMilliseconds}");
+
+                var sw4 = new Stopwatch();
+                sw4.Start();
+
+                if (pack.BCR80.Any()) db.Insertable(pack.BCR80.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.BCR81.Any()) db.Insertable(pack.BCR81.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.BCR83.Any()) db.Insertable(pack.BCR83.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.RGV520.Any()) db.Insertable(pack.RGV520.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.RGV521.Any()) db.Insertable(pack.RGV521.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Robot520.Any()) db.Insertable(pack.Robot520.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Robot521.Any()) db.Insertable(pack.Robot521.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Robot522.Any()) db.Insertable(pack.Robot522.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Robot530.Any()) db.Insertable(pack.Robot530.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Robot531.Any()) db.Insertable(pack.Robot531.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.SRM520.Any()) db.Insertable(pack.SRM520.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.SRM521.Any()) db.Insertable(pack.SRM521.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.SRM537.Any()) db.Insertable(pack.SRM537.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Station520.Any()) db.Insertable(pack.Station520.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Station521.Any()) db.Insertable(pack.Station521.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Station523.Any()) db.Insertable(pack.Station523.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Station524.Any()) db.Insertable(pack.Station524.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Station525.Any()) db.Insertable(pack.Station525.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Station90.Any()) db.Insertable(pack.Station90.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Station91.Any()) db.Insertable(pack.Station91.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Truss520.Any()) db.Insertable(pack.Truss520.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Truss521.Any()) db.Insertable(pack.Truss521.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Truss523.Any()) db.Insertable(pack.Truss523.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Truss530.Any()) db.Insertable(pack.Truss530.Select(x => x.Data).ToList()).ExecuteCommand();
+                if (pack.Truss531.Any()) db.Insertable(pack.Truss531.Select(x => x.Data).ToList()).ExecuteCommand();
+                sw4.Stop();
+                World.Log($"执行SQL耗时:{sw4.ElapsedMilliseconds}");
 
                 sw.Stop();
 
@@ -260,145 +284,6 @@ namespace WCS.WorkEngineering.Systems
             }
         }
 
-        public string GetSql(Type type, object entity, SqlSugarScopeProvider db)
-        {
-            string sql = string.Empty;
-
-            //var ty = entity.GetType().GetProperty("CreateSql");
-            switch (type.Name)
-            {
-                case nameof(WCS_SRM520):
-                    var item = entity as WCS_SRM520;
-                    sql = GetString(db.Insertable(item).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_SRM521):
-                    var item1 = entity as WCS_SRM521;
-                    sql = GetString(db.Insertable(item1).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_SRM537):
-                    var item2 = entity as WCS_SRM537;
-                    sql = GetString(db.Insertable(item2).ToSqlString());
-                    //ty.SetValue(entity, GetString(db.Insertable(item2).ToSqlString()));
-                    break;
-
-                case nameof(WCS_RGV520):
-                    var item3 = entity as WCS_RGV520; sql = GetString(db.Insertable(item3).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_RGV521):
-                    var item4 = entity as WCS_RGV521; sql = GetString(db.Insertable(item4).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_BCR80):
-                    var item5 = entity as WCS_BCR80; sql = GetString(db.Insertable(item5).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_BCR81):
-                    var item6 = entity as WCS_BCR81; sql = GetString(db.Insertable(item6).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_BCR83):
-                    var item7 = entity as WCS_BCR83; sql = GetString(db.Insertable(item7).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Station520):
-                    var item8 = entity as WCS_Station520; sql = GetString(db.Insertable(item8).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Station521):
-                    var item9 = entity as WCS_Station521; sql = GetString(db.Insertable(item9).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Station523):
-                    var item10 = entity as WCS_Station523; sql = GetString(db.Insertable(item10).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Station524):
-                    var item11 = entity as WCS_Station524; sql = GetString(db.Insertable(item11).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Station525):
-                    var item12 = entity as WCS_Station525; sql = GetString(db.Insertable(item12).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Station90):
-                    var item13 = entity as WCS_Station90; sql = GetString(db.Insertable(item13).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Station91):
-                    var item14 = entity as WCS_Station91; sql = GetString(db.Insertable(item14).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Truss520):
-                    var item15 = entity as WCS_Truss520; sql = GetString(db.Insertable(item15).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Truss521):
-                    var item16 = entity as WCS_Truss521; sql = GetString(db.Insertable(item16).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Truss523):
-                    var item17 = entity as WCS_Truss523; sql = GetString(db.Insertable(item17).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Truss530):
-                    var item18 = entity as WCS_Truss530; sql = GetString(db.Insertable(item18).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Truss531):
-                    var item19 = entity as WCS_Truss531; sql = GetString(db.Insertable(item19).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Robot520):
-                    var item20 = entity as WCS_Robot520; sql = GetString(db.Insertable(item20).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Robot521):
-                    var item21 = entity as WCS_Robot521; sql = GetString(db.Insertable(item21).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Robot522):
-                    var item22 = entity as WCS_Robot522; sql = GetString(db.Insertable(item22).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Robot530):
-                    var item23 = entity as WCS_Robot530; sql = GetString(db.Insertable(item23).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-
-                case nameof(WCS_Robot531):
-                    var item24 = entity as WCS_Robot531; sql = GetString(db.Insertable(item24).ToSqlString());
-                    //ty.SetValue(entity, sql);
-                    break;
-            }
-
-            return sql;
-        }
-
         public string GetString(string value)
         {
             return value.Replace("INSERT INTO ", "")
@@ -431,7 +316,7 @@ namespace WCS.WorkEngineering.Systems
     }
 
     /// <summary>
-    ///  设备报警
+    ///  设备状态信息
     /// </summary>
     public class EquipmentStatus
     {
@@ -455,4 +340,13 @@ namespace WCS.WorkEngineering.Systems
         /// </summary>
         public DateTime Time { get; set; }
     }
+
+    /// <summary>
+    ///
+    /// </summary>
+    /// <typeparam name="T"></typeparam>
+    public class Quest<T>
+    {
+        public T Data { get; set; }
+    }
 }

+ 30 - 31
业务工程/分拣库/WCS.WorkEngineering/WorkStart.cs

@@ -1,7 +1,6 @@
 using ServiceCenter;
 using ServiceCenter.SqlSugars;
 using WCS.Core;
-using WCS.Entity;
 using WCS.Entity.Protocol.BCR;
 using WCS.Entity.Protocol.RGV;
 using WCS.Entity.Protocol.Robot;
@@ -1143,36 +1142,36 @@ namespace WCS.WorkEngineering
 
                         case "PLC"://PLC
 
-                            //SqlSugarHelper.SetPLC(connectionString.Key);
-
-                            //_db.DbMaintenance.CreateDatabase();
-                            //_db.CodeFirst.InitTables<WCS_Log>();
-                            //_db.CodeFirst.InitTables<WCS_SRM520>();
-                            //_db.CodeFirst.InitTables<WCS_SRM521>();
-                            //_db.CodeFirst.InitTables<WCS_SRM537>();
-                            //_db.CodeFirst.InitTables<WCS_RGV520>();
-                            //_db.CodeFirst.InitTables<WCS_RGV521>();
-                            //_db.CodeFirst.InitTables<WCS_BCR80>();
-                            //_db.CodeFirst.InitTables<WCS_BCR81>();
-                            //_db.CodeFirst.InitTables<WCS_BCR83>();
-                            //_db.CodeFirst.InitTables<WCS_Station520>();
-                            //_db.CodeFirst.InitTables<WCS_Station521>();
-                            //_db.CodeFirst.InitTables<WCS_Station523>();
-                            //_db.CodeFirst.InitTables<WCS_Station524>();
-                            //_db.CodeFirst.InitTables<WCS_Station525>();
-                            //_db.CodeFirst.InitTables<WCS_Station90>();
-                            //_db.CodeFirst.InitTables<WCS_Station91>();
-                            //_db.CodeFirst.InitTables<WCS_Truss520>();
-                            //_db.CodeFirst.InitTables<WCS_Truss521>();
-                            //_db.CodeFirst.InitTables<WCS_Truss523>();
-                            //_db.CodeFirst.InitTables<WCS_Truss530>();
-                            //_db.CodeFirst.InitTables<WCS_Truss531>();
-                            //_db.CodeFirst.InitTables<WCS_Robot520>();
-                            //_db.CodeFirst.InitTables<WCS_Robot521>();
-                            //_db.CodeFirst.InitTables<WCS_Robot522>();
-                            //_db.CodeFirst.InitTables<WCS_Robot530>();
-                            //_db.CodeFirst.InitTables<WCS_Robot531>();
-                            //var a = false;
+                            SqlSugarHelper.SetPLC(connectionString.Key);
+
+                            _db.DbMaintenance.CreateDatabase();
+                            _db.CodeFirst.InitTables<WCS_Log>();
+                            _db.CodeFirst.InitTables<WCS_SRM520>();
+                            _db.CodeFirst.InitTables<WCS_SRM521>();
+                            _db.CodeFirst.InitTables<WCS_SRM537>();
+                            _db.CodeFirst.InitTables<WCS_RGV520>();
+                            _db.CodeFirst.InitTables<WCS_RGV521>();
+                            _db.CodeFirst.InitTables<WCS_BCR80>();
+                            _db.CodeFirst.InitTables<WCS_BCR81>();
+                            _db.CodeFirst.InitTables<WCS_BCR83>();
+                            _db.CodeFirst.InitTables<WCS_Station520>();
+                            _db.CodeFirst.InitTables<WCS_Station521>();
+                            _db.CodeFirst.InitTables<WCS_Station523>();
+                            _db.CodeFirst.InitTables<WCS_Station524>();
+                            _db.CodeFirst.InitTables<WCS_Station525>();
+                            _db.CodeFirst.InitTables<WCS_Station90>();
+                            _db.CodeFirst.InitTables<WCS_Station91>();
+                            _db.CodeFirst.InitTables<WCS_Truss520>();
+                            _db.CodeFirst.InitTables<WCS_Truss521>();
+                            _db.CodeFirst.InitTables<WCS_Truss523>();
+                            _db.CodeFirst.InitTables<WCS_Truss530>();
+                            _db.CodeFirst.InitTables<WCS_Truss531>();
+                            _db.CodeFirst.InitTables<WCS_Robot520>();
+                            _db.CodeFirst.InitTables<WCS_Robot521>();
+                            _db.CodeFirst.InitTables<WCS_Robot522>();
+                            _db.CodeFirst.InitTables<WCS_Robot530>();
+                            _db.CodeFirst.InitTables<WCS_Robot531>();
+                            var a = false;
                             break;
 
                         default: //其他库