|
@@ -2,6 +2,8 @@
|
|
#include "ya_setting.h"
|
|
#include "ya_setting.h"
|
|
#include "common_tool.h"
|
|
#include "common_tool.h"
|
|
#include "mine.h"
|
|
#include "mine.h"
|
|
|
|
+#include "event.h"
|
|
|
|
+#include "tool_time.h"
|
|
|
|
|
|
CMineCardManager::CMineCardManager()
|
|
CMineCardManager::CMineCardManager()
|
|
{
|
|
{
|
|
@@ -13,102 +15,15 @@ std::shared_ptr<mine_card_info> CMineCardManager::GetMineCards()
|
|
return m_minecards;
|
|
return m_minecards;
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * @brief 获取事件ID
|
|
|
|
- **/
|
|
|
|
-uint64_t CMineCardManager::GetMineEventId(int evType)
|
|
|
|
-{
|
|
|
|
- return event_list::to_list_id(static_cast<EVENT_TYPE>(evType),OT_MINE,0,0);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
bool CMineCardManager::Exist(SET_CARDID &list,uint64_t id)
|
|
bool CMineCardManager::Exist(SET_CARDID &list,uint64_t id)
|
|
{
|
|
{
|
|
- if (list.find(id) == list.end())
|
|
|
|
- {
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- return true;
|
|
|
|
|
|
+ return !(list.end() == list.find(id));
|
|
}
|
|
}
|
|
|
|
|
|
bool CMineCardManager::Exist(SET_CARDID &list,int card_id,int card_type)
|
|
bool CMineCardManager::Exist(SET_CARDID &list,int card_id,int card_type)
|
|
{
|
|
{
|
|
return Exist(list,tool_other::type_id_to_u64(card_type,card_id));
|
|
return Exist(list,tool_other::type_id_to_u64(card_type,card_id));
|
|
}
|
|
}
|
|
-
|
|
|
|
-/**
|
|
|
|
- * @brief 创建警告开始事件
|
|
|
|
- * @param evType 警告类型
|
|
|
|
- * @param limitVal 限制数据(阀门值)
|
|
|
|
- * @param curVal 当前数据
|
|
|
|
- **/
|
|
|
|
-void CMineCardManager::StartEvent(int evType,int limitVal,int curVal)
|
|
|
|
-{
|
|
|
|
- int oldState = EVENT_STATUS::ES_END;
|
|
|
|
- uint64_t evid = this->GetMineEventId(evType);
|
|
|
|
- auto ev_ptr = event_list::instance()->get(evid);
|
|
|
|
- if (nullptr != ev_ptr)
|
|
|
|
- {
|
|
|
|
- oldState = ev_ptr->m_status;
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- ev_ptr = event_list::instance()->create_event_mine(0,(EVENT_TYPE)evType);
|
|
|
|
- if (nullptr == ev_ptr)
|
|
|
|
- {
|
|
|
|
- //打印日志
|
|
|
|
- log_error("CMineCardManager::StartEvent: Create Event Fail.evid=%%llu evType=%d,evState=ES_START ",evid,evType);
|
|
|
|
- return ;
|
|
|
|
- }
|
|
|
|
- ev_ptr->m_obj_id = "0";
|
|
|
|
- event_list::instance()->add(ev_ptr->get_list_id(),ev_ptr);
|
|
|
|
- }
|
|
|
|
- ev_ptr->m_status = EVENT_STATUS::ES_START;
|
|
|
|
- ev_ptr->m_cur_value= curVal;
|
|
|
|
- ev_ptr->m_limit_value = limitVal;
|
|
|
|
- ev_ptr->m_is_display = true;
|
|
|
|
- ev_ptr->m_cur_time = std::chrono::system_clock::now();;
|
|
|
|
- if (oldState == EVENT_STATUS::ES_END)
|
|
|
|
- {
|
|
|
|
- event_list::instance()->save_event(ev_ptr);
|
|
|
|
- }
|
|
|
|
- if (evType < MAX_MINE_EVENT_NUM)
|
|
|
|
- {
|
|
|
|
- m_evlist[evType] = evid;
|
|
|
|
- }
|
|
|
|
- log_info("CMineCardManager::StartEvent: Create Success .id=%%llu -%%llu evType=%d,evState=ES_START ",evid,ev_ptr->get_list_id(),evType);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-/**
|
|
|
|
- * @brief 取消警告事件
|
|
|
|
- * @param evType 警告类型
|
|
|
|
- * @param curVal 当前数据
|
|
|
|
- **/
|
|
|
|
-void CMineCardManager::CancelEvent(int evType,int curVal)
|
|
|
|
-{
|
|
|
|
- uint64_t evid = this->GetMineEventId(evType);
|
|
|
|
- auto ev_ptr = event_list::instance()->get(evid);
|
|
|
|
- if (nullptr == ev_ptr)
|
|
|
|
- {
|
|
|
|
- //打印日志
|
|
|
|
- log_errno("CMineCardManager::CancelEvent: Not Find Event.id=%%llu evType=%d,evState=ES_END ",evid,evType);
|
|
|
|
- return ;
|
|
|
|
- }
|
|
|
|
- if (ev_ptr->m_status == EVENT_STATUS::ES_END)
|
|
|
|
- {
|
|
|
|
- return ;
|
|
|
|
- }
|
|
|
|
- ev_ptr->m_status = EVENT_STATUS::ES_END;
|
|
|
|
- ev_ptr->m_cur_value= curVal;
|
|
|
|
- ev_ptr->m_is_display = true;
|
|
|
|
- ev_ptr->m_cur_time = std::chrono::system_clock::now();;
|
|
|
|
- event_list::instance()->save_event(ev_ptr);
|
|
|
|
- if (evType < MAX_MINE_EVENT_NUM)
|
|
|
|
- {
|
|
|
|
- m_evlist[evType] = 0;
|
|
|
|
- }
|
|
|
|
- log_info("CMineCardManager::CancelEvent: Success .id=%%llu evType=%d,evState=ES_END ",evid,evType);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* @brief 人员下井
|
|
* @brief 人员下井
|
|
* @param card 卡
|
|
* @param card 卡
|
|
@@ -188,8 +103,8 @@ void CMineCardManager::OnPersonOvercrowdingWarning()
|
|
}
|
|
}
|
|
//打印日志
|
|
//打印日志
|
|
log_info("[lemon mp_card_list_down_person:]:%s",log.c_str());
|
|
log_info("[lemon mp_card_list_down_person:]:%s",log.c_str());
|
|
-
|
|
|
|
- this->StartEvent(EVENT_TYPE::ET_OVER_COUNT_PERSON,max_person,(int)m_minecards->m_down_person.size());
|
|
|
|
|
|
+ event_tool::instance()->handle_event(0,EVENT_TYPE::ET_OVER_COUNT_PERSON,max_person,(double)m_minecards->m_down_person.size(),true);
|
|
|
|
+ //this->StartEvent(EVENT_TYPE::ET_OVER_COUNT_PERSON,max_person,(int)m_minecards->m_down_person.size());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -209,7 +124,6 @@ void CMineCardManager::OnPersonInMineOverTime(int card_id,int card_type)
|
|
{
|
|
{
|
|
return ;
|
|
return ;
|
|
}
|
|
}
|
|
-
|
|
|
|
int sec= tool_time::to_ms(std::chrono::system_clock::now()) - mine->get_work_time();
|
|
int sec= tool_time::to_ms(std::chrono::system_clock::now()) - mine->get_work_time();
|
|
if (!mine->m_is_overtime && sec > (int)CYaSetting::m_sys_setting.over_time_person)
|
|
if (!mine->m_is_overtime && sec > (int)CYaSetting::m_sys_setting.over_time_person)
|
|
{
|
|
{
|
|
@@ -228,22 +142,8 @@ void CMineCardManager::OnPersonInMineOverTime(int card_id,int card_type)
|
|
}
|
|
}
|
|
|
|
|
|
// 发送警告
|
|
// 发送警告
|
|
- event_ptr evPtr = event_list::instance()->get_event_card(card->m_id,card->m_type,ET_CARD_OVER_TIME_PERSON);
|
|
|
|
- if (nullptr == evPtr)
|
|
|
|
- {
|
|
|
|
- event_ptr evPtr = event_list::create_event_card(card->m_id, card->m_type, ET_CARD_OVER_TIME_PERSON);
|
|
|
|
- event_list::instance()->copy_event(card, evPtr);
|
|
|
|
- event_list::instance()->add(evPtr->get_list_id(), evPtr);
|
|
|
|
- }
|
|
|
|
- evPtr->m_limit_value = 0;
|
|
|
|
- evPtr->m_cur_value = 0;
|
|
|
|
- evPtr->m_is_display = true;
|
|
|
|
- evPtr->m_status = mine->m_is_overtime ? ES_START : ES_END;
|
|
|
|
- evPtr->m_cur_time = std::chrono::system_clock::now();
|
|
|
|
-
|
|
|
|
- event_list::save_event(evPtr);
|
|
|
|
-
|
|
|
|
- log_info("OnPersonInMineOverTime: send Event=ET_CARD_OVER_TIME_PERSON card=id,eventState=%d",card->m_id,evPtr->m_status);
|
|
|
|
|
|
+ event_tool::instance()->handle_event(0,EVENT_TYPE::ET_CARD_OVER_TIME_PERSON,0,0, mine->m_is_overtime);
|
|
|
|
+ log_info("OnPersonInMineOverTime: send Event=ET_CARD_OVER_TIME_PERSON card=id,eventState=%d",card->m_id, mine->m_is_overtime);
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
* @brief 车下井
|
|
* @brief 车下井
|