修正命名错误
xiyunfei authored at 2023-04-09 21:10:58
1.51 KiB
NewLife.JT808
using JT808.Data.Safety;
using NewLife;
using NewLife.Log;

namespace JT808.Server.Services;

/// <summary>报警事件聚合处理服务</summary>
public class AlarmEventService
{
    /// <summary>处理报警事件</summary>
    /// <param name="deviceId">设备ID</param>
    /// <param name="kind">报警大类 1-ADAS 2-DSM 3-BSD 4-TPMS</param>
    /// <param name="code">报警事件编码</param>
    /// <param name="level">报警级别 0-紧急 1-警告</param>
    public void ProcessAlarm(Int32 deviceId, Int32 kind, Int32 code, Int32 level)
    {
        XTrace.WriteLine("报警事件:DeviceId={0}, Kind={1}, Code={2}, Level={3}", deviceId, kind, code, level);

        try
        {
            // 查找或创建报警事件(按设备+编码聚合)
            var alarmEvent = AlarmEvent.Find(AlarmEvent._.DeviceId == deviceId & AlarmEvent._.Code == code);

            if (alarmEvent == null)
            {
                alarmEvent = new AlarmEvent
                {
                    DeviceId = deviceId,
                    Kind = kind,
                    Code = code,
                    Level = level,
                    Times = 1,
                    CreateTime = DateTime.Now,
                };
                alarmEvent.Insert();
            }
            else
            {
                alarmEvent.Times++;
                alarmEvent.Update();
            }
        }
        catch (Exception ex)
        {
            XTrace.WriteLine("报警事件处理异常:{0}", ex.Message);
        }
    }
}