|
|
@@ -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}");
|
|
|
//}
|
|
|
}
|
|
|
-}
|
|
|
+}
|