diff --git a/Service/Charger/Handler/UpAlarmHandler.cs b/Service/Charger/Handler/UpAlarmHandler.cs index 093d000..e6f1ee4 100644 --- a/Service/Charger/Handler/UpAlarmHandler.cs +++ b/Service/Charger/Handler/UpAlarmHandler.cs @@ -5,9 +5,13 @@ using Service.Charger.Client; using Service.Charger.Msg.Charger.Resp; using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; +using Common.Const; +using Entity.DbModel.Station; +using Repository.Station; namespace Service.Charger.Handler { @@ -17,6 +21,74 @@ namespace Service.Charger.Handler { private static readonly ILog Log = LogManager.GetLogger(typeof(UpAlarmHandler)); + private EquipAlarmRecordRepository EquipAlarmRecordRepository { get; set; } + private EquipAlarmProcessRecordRepository EquipAlarmProcessRecordRepository { get; set; } + private EquipAlarmDefineRepository EquipAlarmDefineRepository { get; set; } + + public UpAlarmHandler( + EquipAlarmRecordRepository _EquipAlarmRecordRepository, + EquipAlarmProcessRecordRepository _EquipAlarmProcessRecordRepository, + EquipAlarmDefineRepository _EquipAlarmDefineRepository) + { + EquipAlarmRecordRepository = _EquipAlarmRecordRepository; + EquipAlarmProcessRecordRepository = _EquipAlarmProcessRecordRepository; + EquipAlarmDefineRepository = _EquipAlarmDefineRepository; + } + + /// + /// 报警数据处理 + /// + /// 报警类型 + /// 报警编码 + /// 设备编码 + private void AlarmMsg(bool bvalue, string equipCode, string sn) + { + if (bvalue) + { + var define = EquipAlarmDefineRepository.QueryByClause(i => i.EquipCode == equipCode); + //查询数据表中是否有此报警信息,有则不用处理,无则添加实时报警 + EquipAlarmRecord equipAlarm = + EquipAlarmRecordRepository.QueryByClause(i => i.ErrorCode == sn + define.ErrorCode); + if (equipAlarm == null) //实时报警表中没有这条报警信息 + { + EquipAlarmRecord record = new EquipAlarmRecord() + { + EquipTypeCode = equipAlarm.EquipTypeCode, + EquipCode = sn, + ErrorCode = equipAlarm.ErrorCode, + ErrorLevel = equipAlarm.ErrorLevel, + ErrorMsg = equipAlarm.ErrorMsg, + ProcessMethod = equipAlarm.ProcessMethod, + StartTime = DateTime.Now + }; + EquipAlarmRecordRepository.Insert(record); + } + } + else + { + var define = EquipAlarmDefineRepository.QueryByClause(i => i.EquipCode == equipCode); + //查询数据表中是否有此报警信息,有则不用处理,无则添加实时报警 + EquipAlarmRecord equipAlarm = + EquipAlarmRecordRepository.QueryByClause(i => i.ErrorCode == sn + define.ErrorCode); + if (equipAlarm != null) //报警消除实时报警里面数据还有此报警 + { + EquipAlarmProcessRecord EquipAlarmProcessRecord = new EquipAlarmProcessRecord(); + EquipAlarmProcessRecord.EquipTypeCode = equipAlarm.EquipTypeCode; + EquipAlarmProcessRecord.EquipCode = equipAlarm.EquipCode; + EquipAlarmProcessRecord.ErrorCode = equipAlarm.ErrorCode; + EquipAlarmProcessRecord.ErrorLevel = equipAlarm.ErrorLevel; + EquipAlarmProcessRecord.ErrorMsg = equipAlarm.ErrorMsg; + EquipAlarmProcessRecord.ProcessMethod = equipAlarm.ProcessMethod; + EquipAlarmProcessRecord.StartTime = equipAlarm.StartTime; + EquipAlarmProcessRecord.ProcessTime = DateTime.Now; + + EquipAlarmProcessRecordRepository.Insert(EquipAlarmProcessRecord); + + EquipAlarmRecordRepository.Delete(equipAlarm); + } + } + } + protected override void ChannelRead0(IChannelHandlerContext ctx, UpAlarm msg) { if (ClientMgr.TryGetClient(ctx.Channel, out string sn, out var client)) @@ -257,4 +329,4 @@ namespace Service.Charger.Handler #endregion } -} +} \ No newline at end of file