From 829fe6c6bc33d53fda9c31fd45a37e1df87befff Mon Sep 17 00:00:00 2001
From: mrDarker <mr.darker@163.com>
Date: 星期五, 30 一月 2026 11:16:24 +0800
Subject: [PATCH] Merge branch 'clh' into liuyang

---
 SourceCode/Bond/Servo/AlarmManager.h |  205 +++++++++++++++++++++++++-------------------------
 1 files changed, 103 insertions(+), 102 deletions(-)

diff --git a/SourceCode/Bond/Servo/AlarmManager.h b/SourceCode/Bond/Servo/AlarmManager.h
index d98fce9..1cd55a9 100644
--- a/SourceCode/Bond/Servo/AlarmManager.h
+++ b/SourceCode/Bond/Servo/AlarmManager.h
@@ -1,4 +1,4 @@
-#ifndef ALARM_MANAGER_H
+锘�#ifndef ALARM_MANAGER_H
 #define ALARM_MANAGER_H
 
 #include <string>
@@ -18,15 +18,15 @@
 };
 
 struct AlarmData {
-    int nId;                       // 错误码
-    int nSeverityLevel;            // 报警等级
-    int nDeviceId;                 // 设备ID
-    int nUnitId;                   // 单元ID
-    std::string strDeviceName;     // 设备名称
-    std::string strUnitName;       // 单元名称
-    std::string strDescription;    // 描述
-    std::string strStartTime;      // 开始时间
-    std::string strEndTime;        // 结束时间
+    int nId;                       // 閿欒鐮�
+    int nSeverityLevel;            // 鎶ヨ绛夌骇
+    int nDeviceId;                 // 璁惧ID
+    int nUnitId;                   // 鍗曞厓ID
+    std::string strDeviceName;     // 璁惧鍚嶇О
+    std::string strUnitName;       // 鍗曞厓鍚嶇О
+    std::string strDescription;    // 鎻忚堪
+    std::string strStartTime;      // 寮�濮嬫椂闂�
+    std::string strEndTime;        // 缁撴潫鏃堕棿
 };
 
 using AlarmInfoMap = std::unordered_map<int, AlarmInfo>;
@@ -35,116 +35,117 @@
 class AlarmManager {
 public:
     /**
-     * 获取单例实例
-     * @return AlarmManager实例的引用
+     * 鑾峰彇鍗曚緥瀹炰緥
+     * @return AlarmManager瀹炰緥鐨勫紩鐢�
      */
     static AlarmManager& getInstance();
 
     /**
-     * 初始化报警表
-     * @return 成功返回true,失败返回false
+     * 鍒濆鍖栨姤璀﹁〃
+     * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
      */
     bool initAlarmTable();
 
 	/**
-	 * 销毁报警表
+	 * 閿�姣佹姤璀﹁〃
 	 */
     void termAlarmTable();
 
 	/**
-	 * 销毁报警表
-	 * @return 成功返回true,失败返回false
+	 * 閿�姣佹姤璀﹁〃
+	 * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
 	 */
     bool destroyAlarmTable();
 
     /**
-    * 插入模拟数据
+    * 鎻掑叆妯℃嫙鏁版嵁
     */
     void insertMockData();
 
     /**
-     * 添加报警
-     * @param alarmData 报警数据的结构体
-     * @param alarmEventId 最近插入的 alarm_event_id
-     * @return 成功返回true,失败返回false
+     * 娣诲姞鎶ヨ
+     * @param alarmData 鎶ヨ鏁版嵁鐨勭粨鏋勪綋
+     * @param alarmEventId 鏈�杩戞彃鍏ョ殑 alarm_event_id
+     * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
      */
     bool addAlarm(const AlarmData& alarmData, int& alarmEventId);
 
     /**
-     * 查询所有报警数据
-     * @return 包含所有报警数据的结构体
+     * 鏌ヨ鎵�鏈夋姤璀︽暟鎹�
+     * @return 鍖呭惈鎵�鏈夋姤璀︽暟鎹殑缁撴瀯浣�
      */
     std::vector<AlarmData> getAllAlarms();
 
     /**
-     * 根据报警ID查询报警
-     * @param id 报警ID
-     * @return 包含筛选后报警数据的结构体
+     * 鏍规嵁鎶ヨID鏌ヨ鎶ヨ
+     * @param id 鎶ヨID
+     * @return 鍖呭惈绛涢�夊悗鎶ヨ鏁版嵁鐨勭粨鏋勪綋
      */
     std::vector<AlarmData> getAlarmsById(const std::string& id);
 
     /**
-     * 根据描述查询报警
-     * @param description 报警描述的筛选条件
-     * @return 包含筛选后报警数据的结构体
+     * 鏍规嵁鎻忚堪鏌ヨ鎶ヨ
+     * @param description 鎶ヨ鎻忚堪鐨勭瓫閫夋潯浠�
+     * @return 鍖呭惈绛涢�夊悗鎶ヨ鏁版嵁鐨勭粨鏋勪綋
      */
     std::vector<AlarmData> getAlarmsByDescription(const std::string& description);
 
     /**
-     * 根据时间范围查询报警
-     * @param startTime 起始时间
-     * @param endTime 结束时间
-     * @return 包含查询结果的报警数据
+     * 鏍规嵁鏃堕棿鑼冨洿鏌ヨ鎶ヨ
+     * @param startTime 璧峰鏃堕棿
+     * @param endTime 缁撴潫鏃堕棿
+     * @return 鍖呭惈鏌ヨ缁撴灉鐨勬姤璀︽暟鎹�
      */
     std::vector<AlarmData> getAlarmsByTimeRange(const std::string& startTime, const std::string& endTime);
 
 	/**
-	* 根据ID和时间范围查询报警
-	 * @param id 报警ID
-	 * @param startTime 起始时间
-	 * @param endTime 结束时间
-	 * @return 包含查询结果的报警数据
+	* 鏍规嵁ID鍜屾椂闂磋寖鍥存煡璇㈡姤璀�
+	 * @param id 鎶ヨID
+	 * @param startTime 璧峰鏃堕棿
+	 * @param endTime 缁撴潫鏃堕棿
+	 * @return 鍖呭惈鏌ヨ缁撴灉鐨勬姤璀︽暟鎹�
 	 */
     std::vector<AlarmData> getAlarmsByIdAndTimeRange(const std::string& id, const std::string& startTime, const std::string& endTime);
 
     /**
-     * 获取报警数据
-     * @param startPosition 起始位置
-     * @param count 获取的记录数量
-     * @return 包含查询结果的报警数据
+     * 鑾峰彇鎶ヨ鏁版嵁
+     * @param startPosition 璧峰浣嶇疆
+     * @param count 鑾峰彇鐨勮褰曟暟閲�
+     * @return 鍖呭惈鏌ヨ缁撴灉鐨勬姤璀︽暟鎹�
      */
     std::vector<AlarmData> getAlarms(int startPosition, int count);
+    std::vector<AlarmData> getActiveAlarms(int recentHours = 12);
 
 	/**
-	 * 筛选报警数据
-	 * @param keyword 关键字筛选条件
-	 * @param startTime 起始时间筛选条件
-	 * @param endTime 结束时间筛选条件
-	 * @param pageNumber 页码
-	 * @param pageSize 每页记录数
-	 * @return 包含筛选后报警数据的结构体
+	 * 绛涢�夋姤璀︽暟鎹�
+	 * @param keyword 鍏抽敭瀛楃瓫閫夋潯浠�
+	 * @param startTime 璧峰鏃堕棿绛涢�夋潯浠�
+	 * @param endTime 缁撴潫鏃堕棿绛涢�夋潯浠�
+	 * @param pageNumber 椤电爜
+	 * @param pageSize 姣忛〉璁板綍鏁�
+	 * @return 鍖呭惈绛涢�夊悗鎶ヨ鏁版嵁鐨勭粨鏋勪綋
 	 */
     std::vector<AlarmData> getFilteredAlarms(const std::string& keyword, const std::string& startTime, const std::string& endTime, int pageNumber, int pageSize);
 
     /**
-     * 获取符合条件的报警总数
-     * @param keyword 关键字筛选条件
-     * @param startTime 起始时间筛选条件
-     * @param endTime 结束时间筛选条件
-     * @return 符合条件的报警总数
+     * 鑾峰彇绗﹀悎鏉′欢鐨勬姤璀︽�绘暟
+     * @param keyword 鍏抽敭瀛楃瓫閫夋潯浠�
+     * @param startTime 璧峰鏃堕棿绛涢�夋潯浠�
+     * @param endTime 缁撴潫鏃堕棿绛涢�夋潯浠�
+     * @return 绗﹀悎鏉′欢鐨勬姤璀︽�绘暟
      */
     int getTotalAlarmCount(const std::string& keyword, const std::string& startTime, const std::string& endTime);
 
 	/**
-	 * 更新报警结束时间
-	 * @param id 报警ID
-     * @param severityLevel 报警等级筛选条件
-     * @param deviceId 设备ID
-     * @param unitId 单元ID
-	 * @param description 报警描述
-	 * @param startTime 报警开始时间
-	 * @param newEndTime 新的报警结束时间
-	 * @return 成功返回true,失败返回false
+	 * 鏇存柊鎶ヨ缁撴潫鏃堕棿
+	 * @param id 鎶ヨID
+     * @param severityLevel 鎶ヨ绛夌骇绛涢�夋潯浠�
+     * @param deviceId 璁惧ID
+     * @param unitId 鍗曞厓ID
+	 * @param description 鎶ヨ鎻忚堪
+	 * @param startTime 鎶ヨ寮�濮嬫椂闂�
+	 * @param newEndTime 鏂扮殑鎶ヨ缁撴潫鏃堕棿
+	 * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
 	 */
     bool updateAlarmEndTime(
         const std::string& id,
@@ -156,79 +157,79 @@
         const std::string& newEndTime);
 
     /**
-     * 清理旧报警
-     * @param daysToKeep 保留的天数
-	 * @param deviceId 设备ID
-     * @param unitId 单元ID
+     * 娓呯悊鏃ф姤璀�
+     * @param daysToKeep 淇濈暀鐨勫ぉ鏁�
+	 * @param deviceId 璁惧ID
+     * @param unitId 鍗曞厓ID
      */
     void cleanOldAlarms(int daysToKeep = 30, const std::string& deviceId = "", const std::string& unitId = "");
 
     /**
-    * 通过设备ID获取设备名称
-    * @param deviceId 设备ID
-    * @return 成功返回设备名称,失败返回空
+    * 閫氳繃璁惧ID鑾峰彇璁惧鍚嶇О
+    * @param deviceId 璁惧ID
+    * @return 鎴愬姛杩斿洖璁惧鍚嶇О锛屽け璐ヨ繑鍥炵┖
     */
     std::string getDeviceNameById(int deviceId);
 
     /**
-    * 通过设备ID和单元ID获取单元名称
-    * @param deviceId 设备ID
-    * @param unitId 单元ID
-    * @return 成功返回单元名称,失败返回空
+    * 閫氳繃璁惧ID鍜屽崟鍏僆D鑾峰彇鍗曞厓鍚嶇О
+    * @param deviceId 璁惧ID
+    * @param unitId 鍗曞厓ID
+    * @return 鎴愬姛杩斿洖鍗曞厓鍚嶇О锛屽け璐ヨ繑鍥炵┖
     */
     std::string getUnitNameById(int deviceId, int unitId);
 
     /**
-    * 获取最近插入的 alarm_event_id
-    * @return 失败返回-1,成功返回最近插入的 alarm_event_id
+    * 鑾峰彇鏈�杩戞彃鍏ョ殑 alarm_event_id
+    * @return 澶辫触杩斿洖-1锛屾垚鍔熻繑鍥炴渶杩戞彃鍏ョ殑 alarm_event_id
     */
     int getLastInsertId();
 
     /**
-    * 通过事件id解除报警(更新结束时间)
-    * @param alarmEventId 事件ID
-    * @param endTime 结束时间
-    * @return 成功返回true,失败返回false
+    * 閫氳繃浜嬩欢id瑙i櫎鎶ヨ锛堟洿鏂扮粨鏉熸椂闂达級
+    * @param alarmEventId 浜嬩欢ID
+    * @param endTime 缁撴潫鏃堕棿
+    * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
     */
     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
+    * 閫氳繃澶氫釜灞炴�ф煡鎵惧苟瑙i櫎鎶ヨ锛堟洿鏂扮粨鏉熸椂闂达級
+    * @param nId 鎶ヨID
+    * @param nSeverityLevel 鎶ヨ绛夌骇
+    * @param nDeviceId 璁惧ID
+    * @param nUnitId 鍗曞厓ID
+    * @param strDescription 鎻忚堪
+    * @param endTime 缁撴潫鏃堕棿
+    * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
     */
     bool clearAlarmByAttributes(int nId, int nDeviceId, int nUnitId, const std::string& endTime);
 
 	/**
-	 * 读取报警文件
-	 * @param filename 文件名
-	 * @return 成功返回true,失败返回false
+	 * 璇诲彇鎶ヨ鏂囦欢
+	 * @param filename 鏂囦欢鍚�
+	 * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
 	 */
     bool readAlarmFile(const std::string& filename);
 
     /**
-     * 保存报警文件
-     * @param filename 文件名
-     * @return 成功返回true,失败返回false
+     * 淇濆瓨鎶ヨ鏂囦欢
+     * @param filename 鏂囦欢鍚�
+     * @return 鎴愬姛杩斿洖true锛屽け璐ヨ繑鍥瀎alse
      */
     bool saveAlarmFile(const std::string& filename);
 
 	/**
-	 * 通过报警ID查询报警信息
-	 * @param nAlarmID 报警ID
-	 * @return 报警信息的指针
+	 * 閫氳繃鎶ヨID鏌ヨ鎶ヨ淇℃伅
+	 * @param nAlarmID 鎶ヨID
+	 * @return 鎶ヨ淇℃伅鐨勬寚閽�
 	 */
     const AlarmInfo* getAlarmInfoByID(int nAlarmID) const;
 
     /**
-    * 通过多个报警ID查询对应的报警信息
-    * @param alarmIDs 多个报警ID
-	* @return 返回多个报警信息
+    * 閫氳繃澶氫釜鎶ヨID鏌ヨ瀵瑰簲鐨勬姤璀︿俊鎭�
+    * @param alarmIDs 澶氫釜鎶ヨID
+	* @return 杩斿洖澶氫釜鎶ヨ淇℃伅
     */
     std::vector<AlarmInfo> getAlarmsInfoByIDs(const std::vector<int>& alarmIDs) const;
 
@@ -236,7 +237,7 @@
     AlarmManager();
     ~AlarmManager();
 
-    // 禁止拷贝和赋值
+    // 绂佹鎷疯礉鍜岃祴鍊�
     AlarmManager(const AlarmManager&) = delete;
     AlarmManager& operator=(const AlarmManager&) = delete;
 

--
Gitblit v1.9.3