林豪 左 2 ani în urmă
părinte
comite
b2606014f9
1 a modificat fișierele cu 17 adăugiri și 48 ștergeri
  1. 17 48
      Projects/永冠OPP/WCS.Service/Helpers/LogHelper.cs

+ 17 - 48
Projects/永冠OPP/WCS.Service/Helpers/LogHelper.cs

@@ -1,7 +1,6 @@
 using DBHelper;
 using Microsoft.EntityFrameworkCore;
 using System;
-using System.Diagnostics;
 using System.Linq;
 using WCS.Entity;
 using WCS.Service.Log;
@@ -10,37 +9,7 @@ namespace WCS.Service.Helpers
 {
     public class LogHelper
     {
-        ///// <summary>
-        ///// 添加异常记录
-        ///// </summary>
-        ///// <param name="msg">异常信息</param>
-        ///// <param name="time">时间</param>
-        //public static void AddWCS_EXCEPTION(string msg, DateTime time)
-        //{
-        //    DB.Do(db =>
-        //    {
-        //        var exp = db.Default.Set<WCS_EXCEPTION>()
-        //        .Where(v => EF.Functions.DateDiffSecond(v.UPDATETIME, DateTime.Now) < 5)
-        //        .Where(v => v.MSG == msg)
-        //        .OrderByDescending(v => v.ID)
-        //        .FirstOrDefault();
-
-        //        if (exp == null)
-        //        {
-        //            exp = db.Default.Set<WCS_EXCEPTION>().Add(new WCS_EXCEPTION
-        //            {
-        //                MSG = msg,
-        //                STARTTIME = DateTime.Now,
-        //                TIMES = 0,
-        //                UPDATETIME = DateTime.Now,
-        //                UPDATEUSER = "WCS"
-        //            }).Entity;
-        //        }
-        //        exp.TIMES++;
-        //        exp.UPDATETIME = DateTime.Now;
-        //        db.Default.SaveChanges();
-        //    });
-        //}
+        private static readonly object lockObject = new();
 
         /// <summary>
         /// 添加异常记录
@@ -50,17 +19,17 @@ namespace WCS.Service.Helpers
         /// <param name="type">异常类型</param>
         public static void AddWCS_EXCEPTION(string msg, string device, string type)
         {
-            DB.Do(db =>
+            lock (lockObject)
             {
-                var exp = db.Default.Set<WCS_EXCEPTION>()
-                .Where(v => EF.Functions.DateDiffSecond(v.UPDATETIME, DateTime.Now) < 5)
-                .Where(v => v.MSG == msg)
-                .OrderByDescending(v => v.ID)
-                .FirstOrDefault();
-
-                if (exp == null)
+                DB.Do(db =>
                 {
-                    exp = db.Default.Set<WCS_EXCEPTION>().Add(new WCS_EXCEPTION
+                    var exp = db.Default.Set<WCS_EXCEPTION>()
+                    .Where(v => EF.Functions.DateDiffSecond(v.UPDATETIME, DateTime.Now) < 5)
+                    .Where(v => v.MSG == msg)
+                    .OrderByDescending(v => v.ID)
+                    .FirstOrDefault();
+
+                    exp ??= db.Default.Set<WCS_EXCEPTION>().Add(new WCS_EXCEPTION
                     {
                         MSG = msg,
                         DEVICE = device,
@@ -70,11 +39,11 @@ namespace WCS.Service.Helpers
                         UPDATETIME = DateTime.Now,
                         UPDATEUSER = "WCS"
                     }).Entity;
-                }
-                exp.TIMES++;
-                exp.UPDATETIME = DateTime.Now;
-                db.Default.SaveChanges();
-            });
+                    exp.TIMES++;
+                    exp.UPDATETIME = DateTime.Now;
+                    db.Default.SaveChanges();
+                });
+            }
         }
 
         /// <summary>
@@ -97,9 +66,9 @@ namespace WCS.Service.Helpers
         //{
         //    var timer = new Stopwatch();
         //    timer.Start();
-          
+
         //    timer.Stop();
         //    InfoLog.INFO_TIMING(msg + $"{timer.ElapsedMilliseconds}");
         //}
     }
-}
+}