| | |
| | | namespace Yw.Server |
| | | using Yw.Service.Basic; |
| | | using Yw.Service.Monitor; |
| | | |
| | | namespace Yw.Server |
| | | { |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public class EMWSRunAnalyChangeTimesHelper |
| | | { |
| | | private static ConcurrentDictionary<long, List<Yw.Model.MonitorRealRecord>> _dict = new();//缓存 |
| | | private static readonly ConcurrentDictionary<long, List<int>> _dict = new();//缓存 |
| | | |
| | | /// <summary> |
| | | /// 设置 |
| | | /// </summary> |
| | | public static void Set(long configureId, int changeTimes, Yw.Model.MonitorRealRecord record) |
| | | public static void Set(long configureId, int changeTimes, Yw.Model.MonitorPoint monitor, Yw.Model.MonitorRealRecord record) |
| | | { |
| | | _dict.TryAdd(configureId, new List<Yw.Model.MonitorRealRecord>()); |
| | | _dict.TryAdd(configureId, new List<int>()); |
| | | if (_dict[configureId].Count >= changeTimes) |
| | | { |
| | | _dict[configureId].RemoveAt(0); |
| | | } |
| | | if (record != null) |
| | | var rsa = Yw.Run.RunStatus.Shut; |
| | | if (monitor != null) |
| | | { |
| | | _dict[configureId].Add(record); |
| | | 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> |
| | |
| | | { |
| | | return false; |
| | | } |
| | | if (_dict[configureId].Select(x => x.DataValue).Distinct().Count() > 1) |
| | | if (_dict[configureId].Distinct().Count() > 1) |
| | | { |
| | | return false; |
| | | } |