From 9543f2d581d05a0f98de787ab131e8d97e0291a2 Mon Sep 17 00:00:00 2001
From: LAPTOP-SNT8I5JK\Boounion <Chenluhua@qq.com>
Date: 星期一, 10 三月 2025 11:35:14 +0800
Subject: [PATCH] 1.清除警告,更新数据库(待测);

---
 SourceCode/Bond/Servo/Model.cpp |   26 +++++++++++++++++++++-----
 1 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/SourceCode/Bond/Servo/Model.cpp b/SourceCode/Bond/Servo/Model.cpp
index 729bf8d..5dce62e 100644
--- a/SourceCode/Bond/Servo/Model.cpp
+++ b/SourceCode/Bond/Servo/Model.cpp
@@ -126,9 +126,23 @@
 				if (state == 1) {
 					LOGE("<CAlarmDlg> 发生警告");
 					std::string startTime = CToolUnits::timeToString2(CToolUnits::getTimestamp());
-					std::string endTime = "";
-					bool result = alarmManager.addAlarm(std::to_string(pEqAlarmStep->getAlarmId()),
-						pEquipment->getName(), strAlarmText, startTime, endTime);
+					std::string endTime = "2000-01-01 00:00";
+
+					AlarmData alarmData;
+					alarmData.nId = pEqAlarmStep->getAlarmId();
+					alarmData.nSeverityLevel = pEqAlarmStep->getAlarmLevel();
+					alarmData.nDeviceId = pEqAlarmStep->getEquipment()->getID();
+					alarmData.nUnitId = pEqAlarmStep->getUnitId();
+					alarmData.strDeviceName = alarmManager.getDeviceNameById(alarmData.nDeviceId);
+					alarmData.strUnitName = alarmManager.getUnitNameById(alarmData.nDeviceId, alarmData.nUnitId);
+					alarmData.strStartTime = startTime;
+					alarmData.strEndTime = endTime;
+
+					const AlarmInfo* alarmInfo = alarmManager.getAlarmInfoByID(alarmData.nId);
+					alarmData.strDescription = alarmInfo != nullptr ? alarmInfo->strAlarmText : "";
+	
+					int nAlarmEventId = 0;
+					bool result = alarmManager.addAlarm(alarmData, nAlarmEventId);
 					if (result) {
 						LOGI("<CAlarmDlg> Alarm added successfully!");
 					}
@@ -138,8 +152,10 @@
 				}
 				else {
 					LOGE("<CAlarmDlg> i消除警告");
-					//alarmManager.updateAlarmEndTime(std::to_string(pEqAlarmStep->getAlarmId()), 
-					//	pEquipment->getName());
+					alarmManager.clearAlarmByAttributes(pEqAlarmStep->getAlarmId(),
+						pEqAlarmStep->getEquipment()->getID(),
+						pEqAlarmStep->getUnitId(),
+						CToolUnits::getCurrentTimeString());
 				}
 
 				m_hsmsPassive.requestAlarmReport(pEqAlarmStep->getAlarmState(),

--
Gitblit v1.9.3