LAPTOP-SNT8I5JK\Boounion
2025-07-28 bfe14e41fa5b07771d78af4511ba18d706bc23cc
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;
};