|
@@ -1,6 +1,7 @@
|
|
#include "MineCardManager.h"
|
|
#include "MineCardManager.h"
|
|
#include "ya_setting.h"
|
|
#include "ya_setting.h"
|
|
-#include <time.h>
|
|
|
|
|
|
+#include "common_tool.h"
|
|
|
|
+#include "mine.h"
|
|
|
|
|
|
CMineCardManager::CMineCardManager()
|
|
CMineCardManager::CMineCardManager()
|
|
{
|
|
{
|
|
@@ -31,7 +32,7 @@ bool CMineCardManager::Exist(SET_CARDID &list,uint64_t 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,card_list::to_id64(card_type,card_id));
|
|
|
|
|
|
+ return Exist(list,tool_other::type_id_to_u64(card_type,card_id));
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -119,9 +120,9 @@ void CMineCardManager::OnPersonDown(std::shared_ptr<card> card,bool bInit/* = fa
|
|
return ;
|
|
return ;
|
|
}
|
|
}
|
|
//设置卡的状态
|
|
//设置卡的状态
|
|
- card->m_is_attendance = EAttendanceState::Down;
|
|
|
|
|
|
+ card->m_is_attendance = EAttendanceState::MineDown;
|
|
|
|
|
|
- uint64_t key = card_list::to_id64(card->m_id,card->m_type);
|
|
|
|
|
|
+ uint64_t key = tool_other::type_id_to_u64(card->m_id,card->m_type);
|
|
if (this->Exist(m_minecards->m_down_person,key))
|
|
if (this->Exist(m_minecards->m_down_person,key))
|
|
{
|
|
{
|
|
return ;
|
|
return ;
|
|
@@ -146,8 +147,8 @@ void CMineCardManager::OnPersonUp(std::shared_ptr<card> card)
|
|
{
|
|
{
|
|
return ;
|
|
return ;
|
|
}
|
|
}
|
|
- card->m_is_attendance = EAttendanceState::Up;
|
|
|
|
- uint64_t key = card_list::to_id64(card->m_id,card->m_type);
|
|
|
|
|
|
+ card->m_is_attendance = EAttendanceState::MineUp;
|
|
|
|
+ uint64_t key = tool_other::type_id_to_u64(card->m_id,card->m_type);
|
|
if (this->Exist(m_minecards->m_up_person,key))
|
|
if (this->Exist(m_minecards->m_up_person,key))
|
|
{
|
|
{
|
|
return ;
|
|
return ;
|
|
@@ -181,7 +182,7 @@ void CMineCardManager::OnPersonOvercrowdingWarning()
|
|
std::shared_ptr<card_location_base> pitcard = card_list::instance()->get(id);
|
|
std::shared_ptr<card_location_base> pitcard = card_list::instance()->get(id);
|
|
if (nullptr != pitcard)
|
|
if (nullptr != pitcard)
|
|
{
|
|
{
|
|
- log += card_list::to_id64_str(pitcard->m_type,pitcard->m_id);
|
|
|
|
|
|
+ log += tool_other::type_id_to_str(pitcard->m_type,pitcard->m_id);
|
|
log += "&";
|
|
log += "&";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -191,6 +192,58 @@ void CMineCardManager::OnPersonOvercrowdingWarning()
|
|
this->StartEvent(EVENT_TYPE::ET_OVER_COUNT_PERSON,max_person,(int)m_minecards->m_down_person.size());
|
|
this->StartEvent(EVENT_TYPE::ET_OVER_COUNT_PERSON,max_person,(int)m_minecards->m_down_person.size());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+* @brief 人员井下超时
|
|
|
|
+**/
|
|
|
|
+void CMineCardManager::OnPersonInMineOverTime(std::shared_ptr<card_location_base> card)
|
|
|
|
+{
|
|
|
|
+ if (nullptr == card)
|
|
|
|
+ {
|
|
|
|
+ return ;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ std::shared_ptr<mine_tool> mine = card->get_mine_tool();
|
|
|
|
+ if(nullptr == mine )
|
|
|
|
+ {
|
|
|
|
+ return ;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ 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)
|
|
|
|
+ {
|
|
|
|
+ //人员超时
|
|
|
|
+ mine->m_is_overtime = true;
|
|
|
|
+ mine->m_overtime = std::chrono::system_clock::now();
|
|
|
|
+ }
|
|
|
|
+ else if (mine->m_is_overtime && sec < (int)CYaSetting::m_sys_setting.over_time_person)
|
|
|
|
+ {
|
|
|
|
+ mine->m_is_overtime = false;
|
|
|
|
+ mine->m_overtime = std::chrono::system_clock::now();
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ return ;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 发送警告
|
|
|
|
+ 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 = false;
|
|
|
|
+ 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);
|
|
|
|
+}
|
|
/**
|
|
/**
|
|
* @brief 车下井
|
|
* @brief 车下井
|
|
* @param card 卡
|
|
* @param card 卡
|