|
@@ -15,8 +15,7 @@
|
|
|
|
|
|
uint64_t ya_event::get_list_id()
|
|
|
{
|
|
|
- uint64_t car_id = tool_other::type_id_to_u64(tool_other::id64_to_type(m_obj_id), tool_other::id64_to_id(m_obj_id));
|
|
|
- return event_list::to_list_id(m_ev_type, m_obj_type,car_id);
|
|
|
+ return m_id;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -26,7 +25,7 @@ struct Event
|
|
|
Event(OBJECT_TYPE oid)
|
|
|
:m_oid(oid)
|
|
|
{}
|
|
|
- void handle_alarm_event(EVENT_TYPE et,uint64_t id,double limit_value,double cur_value,bool f,const std::string &desc="");
|
|
|
+ void handle_alarm_event(EVENT_TYPE et,uint64_t id,double limit_value,double cur_value,bool f,EVENT_DIS_TYPE edt,const std::string &desc);
|
|
|
virtual std::shared_ptr<ya_event> on_message(EVENT_TYPE et,uint64_t id,bool f)=0;
|
|
|
std::shared_ptr<ya_event> create_event(const std::string&obj_id,EVENT_TYPE ev_type);
|
|
|
virtual ~Event(){}
|
|
@@ -73,9 +72,9 @@ void event_tool::make_event_object()
|
|
|
m_map[OT_CARD] = std::make_shared<card_event>();
|
|
|
}
|
|
|
|
|
|
-void event_tool::handle_event(OBJECT_TYPE ot,EVENT_TYPE et,uint64_t id,double limit_value,double cur_value,bool f,const std::string &desc/*=""*/)
|
|
|
+void event_tool::handle_event(OBJECT_TYPE ot,EVENT_TYPE et,uint64_t id,double limit_value,double cur_value,bool f,EVENT_DIS_TYPE edt/*=DT_COMMON*/,const std::string &desc/*=""*/)
|
|
|
{
|
|
|
- m_map[ot]->handle_alarm_event(et,id,limit_value,cur_value,f,desc);
|
|
|
+ m_map[ot]->handle_alarm_event(et,id,limit_value,cur_value,f,edt,desc);
|
|
|
}
|
|
|
|
|
|
std::shared_ptr<ya_event> Event::create_event(const std::string&obj_id,EVENT_TYPE ev_type)
|
|
@@ -87,10 +86,10 @@ std::shared_ptr<ya_event> Event::create_event(const std::string&obj_id,EVENT_TYP
|
|
|
return ev_ptr;
|
|
|
}
|
|
|
|
|
|
-void Event::handle_alarm_event(EVENT_TYPE et,uint64_t id,double limit_value,double cur_value,bool f,const std::string &desc/*=""*/)
|
|
|
+void Event::handle_alarm_event(EVENT_TYPE et,uint64_t id,double limit_value,double cur_value,bool f,EVENT_DIS_TYPE edt,const std::string &desc)
|
|
|
{
|
|
|
std::shared_ptr<ya_event> ev_ptr = nullptr;
|
|
|
- uint64_t eid = event_list::to_list_id(et,m_oid,id);
|
|
|
+ uint64_t eid = event_list::to_list_id(et,m_oid,id,edt);
|
|
|
auto event_ptr = event_list::instance()->get(eid);
|
|
|
if(f)
|
|
|
{
|
|
@@ -115,6 +114,7 @@ void Event::handle_alarm_event(EVENT_TYPE et,uint64_t id,double limit_value,doub
|
|
|
ev_ptr->m_limit_value=limit_value;
|
|
|
ev_ptr->m_desc=desc;
|
|
|
ev_ptr->m_id=eid;
|
|
|
+ ev_ptr->m_dis_type=edt;
|
|
|
//保存告警信息
|
|
|
event_list::instance()->add(eid,ev_ptr);
|
|
|
}
|
|
@@ -205,13 +205,13 @@ std::shared_ptr<ya_event> card_event::on_message(EVENT_TYPE et,uint64_t id,bool
|
|
|
std::string card_id = tool_other::get_string_cardid(id);
|
|
|
if(!card_ptr)
|
|
|
{
|
|
|
- log_info("create_event.can not find card:%s",card_id.c_str());
|
|
|
+ log_error("Create_event.can not find card:%s",card_id.c_str());
|
|
|
return event_ptr;
|
|
|
}
|
|
|
event_ptr=create_event(card_id,et);
|
|
|
event_ptr->x = card_ptr->x;
|
|
|
event_ptr->y = card_ptr->y;
|
|
|
- event_ptr->m_is_display = card_ptr->m_display;
|
|
|
+ //event_ptr->m_is_display = card_ptr->m_display;
|
|
|
|
|
|
auto area_info_map = card_ptr->get_area_tool()->m_area_info;
|
|
|
if(!area_info_map.empty())
|
|
@@ -224,10 +224,10 @@ std::shared_ptr<ya_event> card_event::on_message(EVENT_TYPE et,uint64_t id,bool
|
|
|
return event_ptr;
|
|
|
}
|
|
|
|
|
|
-std::shared_ptr<ya_event> event_list::get_event_card(uint32_t card_id, int card_type, EVENT_TYPE ev_type)
|
|
|
+std::shared_ptr<ya_event> event_list::get_event_card(uint32_t card_id, int card_type, EVENT_TYPE ev_type,EVENT_DIS_TYPE edt)
|
|
|
{
|
|
|
uint64_t id64 = tool_other::type_id_to_u64(card_type, card_id);
|
|
|
- return base::get(to_list_id(ev_type, OT_CARD, id64));
|
|
|
+ return base::get(to_list_id(ev_type, OT_CARD, id64,edt));
|
|
|
}
|
|
|
|
|
|
void event_list::save_event(std::shared_ptr<ya_event> ev_ptr)
|
|
@@ -235,10 +235,10 @@ void event_list::save_event(std::shared_ptr<ya_event> ev_ptr)
|
|
|
char sql[LENGTH_SQL] = {0};
|
|
|
std::string _time = tool_time::to_str_ex(ev_ptr->m_cur_time);
|
|
|
sprintf(sql,
|
|
|
- "INSERT IGNORE INTO his_event_data(event_id,id, stat, event_type_id, obj_type_id, obj_id, \
|
|
|
+ "INSERT IGNORE INTO his_event_data(event_id,id, stat, event_type_id, obj_type_id, obj_id, dis_type\
|
|
|
map_id, area_id, limit_value, cur_value, x, y, cur_time, description) \
|
|
|
- VALUES(%ld,%ld, %d, %d, %d, %s, %d, %d, %.2f, %.2f, %f, %f, '%s', '%s');",
|
|
|
- ev_ptr->get_id(),ev_ptr->m_id,ev_ptr->m_status, ev_ptr->m_ev_type, ev_ptr->m_obj_type, ev_ptr->m_obj_id.c_str(),
|
|
|
+ VALUES(%ld,%ld, %d, %d, %d, %s, %d, %d, %d, %.2f, %.2f, %f, %f, '%s', '%s');",
|
|
|
+ ev_ptr->m_ev_id,ev_ptr->m_id,ev_ptr->m_status, ev_ptr->m_ev_type, ev_ptr->m_obj_type, ev_ptr->m_obj_id.c_str(),ev_ptr->m_dis_type,
|
|
|
ev_ptr->m_map_id, ev_ptr->m_area_id, ev_ptr->m_limit_value, ev_ptr->m_cur_value, ev_ptr->x, ev_ptr->y,
|
|
|
_time.c_str(), ev_ptr->m_desc.c_str());
|
|
|
|
|
@@ -248,7 +248,7 @@ void event_list::save_event(std::shared_ptr<ya_event> ev_ptr)
|
|
|
void event_list::load_his_data_from_db()
|
|
|
{
|
|
|
std::unordered_map<uint64_t, std::shared_ptr<ya_event>> map;
|
|
|
- const char *sql = "SELECT event_id, id,stat,event_type_id,obj_type_id,obj_id,map_id,area_id,\
|
|
|
+ const char *sql = "SELECT event_id, id,stat,event_type_id,obj_type_id,obj_id,dis_type,map_id,area_id,\
|
|
|
limit_value,cur_value,x,y, cur_time FROM his_event_data \
|
|
|
WHERE event_id IN (SELECT MAX(event_id) FROM his_event_data \
|
|
|
WHERE cur_time > (CASE obj_type_id \
|
|
@@ -259,8 +259,9 @@ void event_list::load_his_data_from_db()
|
|
|
WHEN 10 THEN DATE_SUB(NOW(),INTERVAL 2 DAY) \
|
|
|
END) \
|
|
|
AND cur_time < NOW()\
|
|
|
- GROUP BY event_type_id, obj_id) \
|
|
|
- AND event_id NOT IN ( SELECT event_id FROM (SELECT * FROM his_event_data WHERE stat=100) s);";
|
|
|
+ GROUP BY event_type_id, obj_id,dis_type) \
|
|
|
+ AND event_id NOT IN ( SELECT event_id FROM his_event_data WHERE stat=100)\
|
|
|
+ AND event_type_id NOT IN (21,22);";
|
|
|
std::string Error;
|
|
|
YADB::CDBResultSet DBRes;
|
|
|
sDBConnPool.Query(sql,DBRes,Error);
|
|
@@ -288,6 +289,9 @@ void event_list::load_his_data_from_db()
|
|
|
std::string obj_id = "";
|
|
|
DBRes.GetField( "obj_id",obj_id, Error );
|
|
|
|
|
|
+ int dis_type = 0;
|
|
|
+ DBRes.GetField( "dis_type",dis_type, Error );
|
|
|
+
|
|
|
int map_id = 0;
|
|
|
DBRes.GetField( "map_id",map_id, Error );
|
|
|
|
|
@@ -318,6 +322,7 @@ void event_list::load_his_data_from_db()
|
|
|
ev->m_ev_type = static_cast<EVENT_TYPE>(event_type_id);
|
|
|
|
|
|
ev->m_obj_type = static_cast<OBJECT_TYPE>(obj_type_id);
|
|
|
+ ev->m_dis_type = static_cast<EVENT_DIS_TYPE>(dis_type);
|
|
|
ev->m_obj_id = tool_other::to13str(obj_id);
|
|
|
ev->m_cur_time = tool_time::to_time_ex(cur_time);
|
|
|
|
|
@@ -331,8 +336,8 @@ void event_list::load_his_data_from_db()
|
|
|
ev->m_id = id;
|
|
|
|
|
|
map.insert(std::make_pair(id, ev));
|
|
|
- log_info("event_list %lld,%lld,%d,%d,%d,%s,%d,%d,%.2f,%.2f,%.2f,%.2f,%s"
|
|
|
- , ev->get_id(),ev->m_id,ev->m_status,ev->m_ev_type,ev->m_obj_type,ev->m_obj_id.c_str()
|
|
|
+ log_info("event_list %lld,%lld,%d,%d,%d,%s,%d,%d,%d,%.2f,%.2f,%.2f,%.2f,%s"
|
|
|
+ , ev->m_ev_id,ev->m_id,ev->m_status,ev->m_ev_type,ev->m_obj_type,ev->m_obj_id.c_str(),ev->m_dis_type
|
|
|
,ev->m_map_id,ev->m_area_id,ev->m_limit_value,ev->m_cur_value
|
|
|
,ev->x,ev->y
|
|
|
,tool_time::to_str_ex(ev->m_cur_time).c_str());
|
|
@@ -351,10 +356,11 @@ std::string event_list::evs_to_json(std::vector<std::shared_ptr<ya_event>> arr)
|
|
|
auto it=arr.begin();
|
|
|
for(;it!=arr.end();++it)
|
|
|
{
|
|
|
- if((*it)->m_is_display)
|
|
|
- {
|
|
|
- _ev_to_node(*it, allocator, data);
|
|
|
- }
|
|
|
+ _ev_to_node(*it, allocator, data);
|
|
|
+ // if((*it)->m_is_display)
|
|
|
+ // {
|
|
|
+ // _ev_to_node(*it, allocator, data);
|
|
|
+ // }
|
|
|
}
|
|
|
|
|
|
doc.AddMember(JSON_ROOT_KEY_CMD,JSON_CMD_VALUE_EVENT, allocator);
|
|
@@ -374,13 +380,14 @@ void event_list::_ev_to_node(std::shared_ptr<ya_event> ev_ptr,
|
|
|
{
|
|
|
rapidjson::Value ev(rapidjson::kObjectType);
|
|
|
|
|
|
- ev.AddMember(JSON_KEY_EVENT_EVENT_ID,ev_ptr->get_id(), allocator);
|
|
|
+ ev.AddMember(JSON_KEY_EVENT_EVENT_ID,ev_ptr->m_ev_id, allocator);
|
|
|
ev.AddMember(JSON_KEY_EVENT_STATUS,ev_ptr->m_status, allocator);
|
|
|
|
|
|
ev.AddMember(JSON_KEY_EVENT_TYPE_ID,ev_ptr->m_ev_type, allocator);
|
|
|
ev.AddMember(JSON_KEY_EVENT_OBJ_TYPE_ID,ev_ptr->m_obj_type, allocator);
|
|
|
|
|
|
tool_json::add_member(ev, JSON_KEY_EVENT_OBJ_ID, ev_ptr->m_obj_id, allocator);
|
|
|
+ ev.AddMember(JSON_KEY_EVENT_DIS_TYPE_ID,ev_ptr->m_dis_type, allocator);
|
|
|
ev.AddMember(JSON_KEY_EVENT_MAP_ID,ev_ptr->m_map_id, allocator);
|
|
|
ev.AddMember(JSON_KEY_EVENT_AREA_ID,ev_ptr->m_area_id, allocator);
|
|
|
ev.AddMember(JSON_KEY_EVENT_X,ev_ptr->x, allocator);
|