|
|
@@ -1,6 +1,14 @@
|
|
|
-using WCS.Core;
|
|
|
+using ServiceCenter.SqlSugars;
|
|
|
+using WCS.Core;
|
|
|
+using WCS.Entity.Protocol;
|
|
|
+using WCS.Entity.Protocol.BCR;
|
|
|
using WCS.Entity.Protocol.DataStructure;
|
|
|
using WCS.Entity.Protocol.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.Systems;
|
|
|
|
|
|
namespace WCS.WorkEngineering
|
|
|
@@ -33,10 +41,10 @@ namespace WCS.WorkEngineering
|
|
|
{
|
|
|
if (!datas.ContainsKey(Device.Code)) datas[Device.Code] = new SRMData { Code = Device.Code };
|
|
|
}
|
|
|
- //else if (Device.Code.Contains("Truss"))
|
|
|
- //{
|
|
|
- // if (!datas.ContainsKey(Device.Code)) datas[Device.Code] = new TrussData() { Code = Device.Code };
|
|
|
- //}
|
|
|
+ else if (Device.Code.Contains("Truss"))
|
|
|
+ {
|
|
|
+ if (!datas.ContainsKey(Device.Code)) datas[Device.Code] = new TrussData() { Code = Device.Code };
|
|
|
+ }
|
|
|
else if (Device.Code.Contains("Robot"))
|
|
|
{
|
|
|
if (!datas.ContainsKey(Device.Code)) datas[Device.Code] = new RobotData() { Code = Device.Code };
|
|
|
@@ -54,7 +62,7 @@ namespace WCS.WorkEngineering
|
|
|
//{
|
|
|
//}
|
|
|
if (p == null) return;
|
|
|
- p.SetValue(data, DictionaryToEntity(ProtocolDataType, Items));
|
|
|
+ p.SetValue(data, DictionaryToEntity(ProtocolDataType, Items, data));
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
@@ -62,19 +70,170 @@ namespace WCS.WorkEngineering
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public object DictionaryToEntity(Type type, Dictionary<string, PlcItem> items)
|
|
|
+ public object DictionaryToEntity(Type type, Dictionary<string, PlcItem> plcItems, DeviceData data)
|
|
|
{
|
|
|
- var a = Activator.CreateInstance(type);
|
|
|
- foreach (var ty in type.GetProperties())
|
|
|
+ var entity = Activator.CreateInstance(type);
|
|
|
+ //采集量
|
|
|
+ Parallel.ForEach(type.GetProperties(), ty =>
|
|
|
+ {
|
|
|
+ if (plcItems.Any(x => x.Key == ty.Name))
|
|
|
+ {
|
|
|
+ var item = plcItems.First(x => ty.Name == x.Key);
|
|
|
+ ty.SetValue(entity, item.Value.Value);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ Parallel.ForEach(type.GetProperties(), ty =>
|
|
|
{
|
|
|
- foreach (var item in items.Where(item => ty.Name == item.Key))
|
|
|
+ var items = data.GetType().GetProperties();
|
|
|
+ if (items.Any(x => x.Name == ty.Name))
|
|
|
{
|
|
|
- ty.SetValue(a, item.Value.Value);
|
|
|
- break;
|
|
|
+ var item = items.First(x => ty.Name == x.Name);
|
|
|
+ ty.SetValue(entity, item.GetValue(data));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ foreach (var ty in type.GetProperties().Where(x => x.Name == nameof(TDengineBaseEntity.CreateSql)))
|
|
|
+ {
|
|
|
+ var db = new SqlSugarHelper().PLC;
|
|
|
+ switch (type.Name)
|
|
|
+ {
|
|
|
+ case nameof(WCS_SRM520):
|
|
|
+ var item = entity as WCS_SRM520;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_SRM521):
|
|
|
+ var item1 = entity as WCS_SRM521;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item1).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_SRM537):
|
|
|
+ var item2 = entity as WCS_SRM537;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item2).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_RGV520):
|
|
|
+ var item3 = entity as WCS_RGV520;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item3).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_RGV521):
|
|
|
+ var item4 = entity as WCS_RGV521;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item4).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_BCR80):
|
|
|
+ var item5 = entity as WCS_BCR80;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item5).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_BCR81):
|
|
|
+ var item6 = entity as WCS_BCR81;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item6).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_BCR83):
|
|
|
+ var item7 = entity as WCS_BCR83;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item7).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Station520):
|
|
|
+ var item8 = entity as WCS_Station520;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item8).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Station521):
|
|
|
+ var item9 = entity as WCS_Station521;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item9).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Station523):
|
|
|
+ var item10 = entity as WCS_Station523;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item10).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Station524):
|
|
|
+ var item11 = entity as WCS_Station524;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item11).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Station525):
|
|
|
+ var item12 = entity as WCS_Station525;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item12).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Station90):
|
|
|
+ var item13 = entity as WCS_Station90;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item13).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Station91):
|
|
|
+ var item14 = entity as WCS_Station91;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item14).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Truss520):
|
|
|
+ var item15 = entity as WCS_Truss520;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item15).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Truss521):
|
|
|
+ var item16 = entity as WCS_Truss521;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item16).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Truss523):
|
|
|
+ var item17 = entity as WCS_Truss523;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item17).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Truss530):
|
|
|
+ var item18 = entity as WCS_Truss530;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item18).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Truss531):
|
|
|
+ var item19 = entity as WCS_Truss531;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item19).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Robot520):
|
|
|
+ var item20 = entity as WCS_Robot520;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item20).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Robot521):
|
|
|
+ var item21 = entity as WCS_Robot521;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item21).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Robot522):
|
|
|
+ var item22 = entity as WCS_Robot522;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item22).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Robot530):
|
|
|
+ var item23 = entity as WCS_Robot530;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item23).ToSqlString()));
|
|
|
+ break;
|
|
|
+
|
|
|
+ case nameof(WCS_Robot531):
|
|
|
+ var item24 = entity as WCS_Robot531;
|
|
|
+ ty.SetValue(entity, GetString(db.Insertable(item24).ToSqlString()));
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
+ return entity;
|
|
|
+ }
|
|
|
|
|
|
- return a;
|
|
|
+ public string GetString(string value)
|
|
|
+ {
|
|
|
+ return value.Replace("INSERT INTO ", "")
|
|
|
+ .Replace(",N'", ",'")
|
|
|
+ .Replace("\0", "")
|
|
|
+ .Replace("wcs_", "")
|
|
|
+ .Replace("(N'", "('") + "\r";
|
|
|
}
|
|
|
}
|
|
|
}
|