using Yw.Service.Basic;
|
using Yw.Service.Monitor;
|
|
namespace Yw.Server
|
{
|
/// <summary>
|
///
|
/// </summary>
|
public class EMWSRunAnalyChangeTimesHelper
|
{
|
private static readonly ConcurrentDictionary<long, List<int>> _dict = new();//缓存
|
|
/// <summary>
|
/// 设置
|
/// </summary>
|
public static void Set(long configureId, int changeTimes, Yw.Model.MonitorPoint monitor, Yw.Model.MonitorRealRecord record)
|
{
|
_dict.TryAdd(configureId, new List<int>());
|
if (_dict[configureId].Count >= changeTimes)
|
{
|
_dict[configureId].RemoveAt(0);
|
}
|
var rsa = Yw.Run.RunStatus.Shut;
|
if (monitor != null)
|
{
|
if (record != null)
|
{
|
if (int.TryParse(record.DataValue, out int intDataValue))
|
{
|
if (intDataValue > Yw.Monitor.RunStatus.Shut)
|
{
|
rsa = Yw.Run.RunStatus.Run;
|
}
|
}
|
}
|
var config_interrupt = Yw.Run.SysParas.EnableMonitorInterruptJudgement.GetPValue<bool?>();
|
if (config_interrupt.HasValue && config_interrupt.Value)
|
{
|
if (monitor.IsInterrupt(record))
|
{
|
rsa = Yw.Run.RunStatus.Shut;
|
}
|
}
|
}
|
_dict[configureId].Add(rsa);
|
}
|
|
/// <summary>
|
/// 是否改变
|
/// </summary>
|
public static bool HasChanged(long configureId, int changeTimes)
|
{
|
if (!_dict.ContainsKey(configureId))
|
{
|
return false;
|
}
|
if (_dict[configureId].Count < changeTimes)
|
{
|
return false;
|
}
|
if (_dict[configureId].Distinct().Count() > 1)
|
{
|
return false;
|
}
|
return true;
|
}
|
|
|
|
|
|
|
|
|
|
}
|
}
|