Parcourir la source

PLC数据PLC自身变更记录不在存入数据库

林豪 左 il y a 2 ans
Parent
commit
ec1b589dd3

+ 56 - 56
Projects/永冠/WCS.Service/ProtocolProxy.cs

@@ -27,69 +27,69 @@ namespace WCS.Service
 
         private static ConcurrentDictionary<Type, object[]> LastDatas = new ConcurrentDictionary<Type, object[]>();
 
-        protected override WCS_PROTOCOLDATA GetLastData(DB db)
-        {
-            if (!LastDatas.ContainsKey(this.ProtocolDataType))
-            {
-                dynamic q = SetMethod.Invoke(db.Default, null);
-                try
-                {
-                    q = DynamicQueryableExtensions.Where(q, "ISLAST==@0", true);
-                    q = DynamicQueryableExtensions.OrderBy(q, "ID");
-                    q = DynamicQueryableExtensions.Select(q, "new(it.DEVICE.CODE as Code,it as Data)");
-                    var arr = Enumerable.ToArray(q);
-                    LastDatas[this.ProtocolDataType] = arr;
-                }
-                catch (Exception ex)
-                {
-                    throw;
-                }
-            }
-            dynamic datas = LastDatas[this.ProtocolDataType];
-            var list = new List<WCS_PROTOCOLDATA>();
-            foreach (var data in datas)
-            {
-                if (data.Code == PROTOCOL.DEVICE.CODE)
-                    list.Add(data.Data);
-            }
+        //protected override WCS_PROTOCOLDATA GetLastData(DB db)
+        //{
+        //    if (!LastDatas.ContainsKey(this.ProtocolDataType))
+        //    {
+        //        dynamic q = SetMethod.Invoke(db.Default, null);
+        //        try
+        //        {
+        //            q = DynamicQueryableExtensions.Where(q, "ISLAST==@0", true);
+        //            q = DynamicQueryableExtensions.OrderBy(q, "ID");
+        //            q = DynamicQueryableExtensions.Select(q, "new(it.DEVICE.CODE as Code,it as Data)");
+        //            var arr = Enumerable.ToArray(q);
+        //            LastDatas[this.ProtocolDataType] = arr;
+        //        }
+        //        catch (Exception ex)
+        //        {
+        //            throw;
+        //        }
+        //    }
+        //    dynamic datas = LastDatas[this.ProtocolDataType];
+        //    var list = new List<WCS_PROTOCOLDATA>();
+        //    foreach (var data in datas)
+        //    {
+        //        if (data.Code == PROTOCOL.DEVICE.CODE)
+        //            list.Add(data.Data);
+        //    }
 
-            if (list.Count > 1)
-            {
-                for (int i = 0; i < list.Count - 1; i++)
-                {
-                    var obj = list[i];
-                    db.Default.Attach(obj);
-                    obj.ISLAST = false;
-                }
-                db.Default.SaveChanges();
-            }
-            var res = Enumerable.LastOrDefault(list);
-            return res;
-        }
+        //    if (list.Count > 1)
+        //    {
+        //        for (int i = 0; i < list.Count - 1; i++)
+        //        {
+        //            var obj = list[i];
+        //            db.Default.Attach(obj);
+        //            obj.ISLAST = false;
+        //        }
+        //        db.Default.SaveChanges();
+        //    }
+        //    var res = Enumerable.LastOrDefault(list);
+        //    return res;
+        //}
 
         private static int total;
 
-        protected override WCS_PROTOCOLDATA SaveNewData(DB db, WCS_PROTOCOLDATA last, WCS_PROTOCOLDATA newobj, string user)
-        {
-            total++;
+        //protected override WCS_PROTOCOLDATA SaveNewData(DB db, WCS_PROTOCOLDATA last, WCS_PROTOCOLDATA newobj, string user)
+        //{
+        //    total++;
 
-            if (last != null)
-            {
-                db.Default.Attach(last);
-                last.ISLAST = false;
-            }
+        //    if (last != null)
+        //    {
+        //        db.Default.Attach(last);
+        //        last.ISLAST = false;
+        //    }
 
-            db.Default.Attach(PROTOCOL.DEVICE);
+        //    db.Default.Attach(PROTOCOL.DEVICE);
 
-            newobj.DEVICE = PROTOCOL.DEVICE;
-            newobj.ISLAST = true;
-            newobj.UPDATETIME = DateTime.Now;
-            newobj.UPDATEUSER = user;
-            newobj.FRAME = LogicHandler.Frame;
-            db.Default.Add(newobj);
-            db.Default.SaveChanges();
-            return newobj;
-        }
+        //    newobj.DEVICE = PROTOCOL.DEVICE;
+        //    newobj.ISLAST = true;
+        //    newobj.UPDATETIME = DateTime.Now;
+        //    newobj.UPDATEUSER = user;
+        //    newobj.FRAME = LogicHandler.Frame;
+        //    db.Default.Add(newobj);
+        //    db.Default.SaveChanges();
+        //    return newobj;
+        //}
 
         //static ConcurrentQueue<PackInfo> Packs = new ConcurrentQueue<PackInfo>();
         private static Dictionary<string, Playerback> Clients = new Dictionary<string, Playerback>();

+ 9 - 9
WCS.Core/DataTrans/ProtocolProxyBase.cs

@@ -138,20 +138,20 @@ namespace WCS.Core
         { 
             var obj = Copy(this,ProtocolDataType) as WCS_PROTOCOLDATA; 
             obj.WCSVERSION = this.WCSVersion;
-            if (last == null)
-            {
-                Publish(this.PROTOCOL.DEVICE.CODE, obj);
-                last = GetLastData(db);
-            }
-            if (last != null)
-            {
+            //if (last == null)
+            //{
+            //    Publish(this.PROTOCOL.DEVICE.CODE, obj);
+            //    last = GetLastData(db);
+            //}
+            //if (last != null)
+            //{
                 if (Equals(obj, last, ProtocolType))
                     return; 
-            }
+            //}
             this.UpdateTime = DateTime.Now;
 
             Publish(this.PROTOCOL.DEVICE.CODE,obj);
-            last = SaveNewData(db,last,obj,user);
+            //last = SaveNewData(db,last,obj,user);
         }
 
         public virtual void Publish(string code,WCS_PROTOCOLDATA obj)