From bfe14e41fa5b07771d78af4511ba18d706bc23cc Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 28 七月 2025 17:07:52 +0800
Subject: [PATCH] 1.Spooling Config功能EAP模拟测试;
---
SourceCode/Bond/Servo/AlarmManager.h | 41 ++++++++++++++++++++++++++++++++---------
1 files changed, 32 insertions(+), 9 deletions(-)
diff --git a/SourceCode/Bond/Servo/AlarmManager.h b/SourceCode/Bond/Servo/AlarmManager.h
index 523ca3f..cbe1bb9 100644
--- a/SourceCode/Bond/Servo/AlarmManager.h
+++ b/SourceCode/Bond/Servo/AlarmManager.h
@@ -29,7 +29,8 @@
std::string strEndTime; // 结束时间
};
-using AlarmMap = std::unordered_map<int, AlarmInfo>;
+using AlarmInfoMap = std::unordered_map<int, AlarmInfo>;
+using AlarmDataMap = std::unordered_map<int, AlarmData>;
class AlarmManager {
public:
@@ -38,12 +39,6 @@
* @return AlarmManager实例的引用
*/
static AlarmManager& getInstance();
-
- /**
- * 设置数据库连接
- * @param db 数据库连接的指针
- */
- void setDatabase(BL::Database* db);
/**
* 初始化报警表
@@ -70,9 +65,10 @@
/**
* 添加报警
* @param alarmData 报警数据的结构体
+ * @param alarmEventId 最近插入的 alarm_event_id
* @return 成功返回true,失败返回false
*/
- bool addAlarm(const AlarmData& alarmData);
+ bool addAlarm(const AlarmData& alarmData, int& alarmEventId);
/**
* 查询所有报警数据
@@ -206,6 +202,32 @@
*/
std::string getUnitNameById(int deviceId, int unitId);
+ /**
+ * 获取最近插入的 alarm_event_id
+ * @return 失败返回-1,成功返回最近插入的 alarm_event_id
+ */
+ int getLastInsertId();
+
+ /**
+ * 通过事件id解除报警(更新结束时间)
+ * @param alarmEventId 事件ID
+ * @param endTime 结束时间
+ * @return 成功返回true,失败返回false
+ */
+ bool clearAlarmByEventId(int alarmEventId, const std::string& endTime);
+
+ /**
+ * 通过多个属性查找并解除报警(更新结束时间)
+ * @param nId 报警ID
+ * @param nSeverityLevel 报警等级
+ * @param nDeviceId 设备ID
+ * @param nUnitId 单元ID
+ * @param strDescription 描述
+ * @param endTime 结束时间
+ * @return 成功返回true,失败返回false
+ */
+ bool clearAlarmByAttributes(int nId, int nDeviceId, int nUnitId, const std::string& endTime);
+
/**
* 读取报警文件
* @param filename 文件名
@@ -243,7 +265,8 @@
AlarmManager& operator=(const AlarmManager&) = delete;
BL::Database* m_pDB;
- AlarmMap m_mapAlarm;
+ AlarmInfoMap m_mapAlarm;
+ AlarmDataMap m_mapCache;
static std::mutex m_mutex;
};
--
Gitblit v1.9.3