|
@@ -5,6 +5,7 @@
|
|
|
#include"area_business_person_attendance.h"
|
|
|
#include"module_meta_date_changed.h"
|
|
|
#include"common_tool.h"
|
|
|
+#include"event.h"
|
|
|
|
|
|
#include"log.h"
|
|
|
|
|
@@ -77,7 +78,7 @@ void module_web::response_login()
|
|
|
|
|
|
//所有告警
|
|
|
std::vector<std::shared_ptr<ya_event>> arr;
|
|
|
- get_all_events(arr);
|
|
|
+ _get_all_events(arr);
|
|
|
if(!arr.empty())
|
|
|
{
|
|
|
tool_json::push_back(nodes, event_list::evs_to_json(arr), allocator);
|
|
@@ -96,11 +97,11 @@ void module_web::response_login()
|
|
|
void module_web::run()
|
|
|
{
|
|
|
std::vector<std::shared_ptr<ya_event>> arr;
|
|
|
- get_all_events(arr);
|
|
|
+ _get_all_events(arr);
|
|
|
|
|
|
if(!arr.empty())//发送给web端
|
|
|
{
|
|
|
- delete_end(arr);
|
|
|
+ _delete_end(arr);
|
|
|
|
|
|
swsClientMgr.send(JSON_CMD_VALUE_PUSH, event_list::evs_to_json(arr));
|
|
|
}
|
|
@@ -112,6 +113,34 @@ void module_web::run()
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+void module_web::_get_all_events(std::vector<std::shared_ptr<ya_event>>& arr)
|
|
|
+{
|
|
|
+ auto _map = event_list::instance()->m_map;
|
|
|
+ auto it_map = _map.begin();
|
|
|
+ for(;it_map!=_map.end();++it_map)
|
|
|
+ {
|
|
|
+ arr.push_back(it_map->second);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+///在全局列表中删除已经处理或结束了的告警
|
|
|
+void module_web::_delete_end(std::vector<std::shared_ptr<ya_event>>& arr)
|
|
|
+{
|
|
|
+ std::vector<uint64_t> todelete;
|
|
|
+ auto arr_iter = arr.begin();
|
|
|
+ for(;arr_iter!=arr.end();++arr_iter)
|
|
|
+ {
|
|
|
+ if((*arr_iter)->is_end())//删除掉已经处理的
|
|
|
+ {
|
|
|
+ todelete.push_back((*arr_iter)->get_list_id());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(todelete.size())
|
|
|
+ {
|
|
|
+ event_list::instance()->remove(todelete);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
|
|
|
|