소스 검색

修改井下超员是检查函数的参数 由on_check_overtime(std::shared_ptr<person>(this))改成on_check_overtime(int id,int type)

chensongchao 6 년 전
부모
커밋
98df326089
5개의 변경된 파일11개의 추가작업 그리고 14개의 파일을 삭제
  1. 1 1
      card_person.cpp
  2. 2 6
      mine.cpp
  3. 1 1
      mine.h
  4. 6 5
      mine_module/MineCardManager.cpp
  5. 1 1
      mine_module/MineCardManager.h

+ 1 - 1
card_person.cpp

@@ -116,7 +116,7 @@ void person::handle_three_rates(const point & pt)
 void person::on_timer()
 {
 	//人员井下超时
-    m_mine_tool->on_check_overtime(std::shared_ptr<person>(this));
+    m_mine_tool->on_check_overtime(this->m_id,this->m_type);
 
 	if(!m_mine_tool->is_attendance())
 		return;

+ 2 - 6
mine.cpp

@@ -9,13 +9,9 @@ void mine_tool::on_point(uint32_t card_id, int32_t type, int vehicle_category_id
 }
 
 //检查井下超时
-void mine_tool::on_check_overtime(std::shared_ptr<card_location_base> card)
+void mine_tool::on_check_overtime(uint32_t card_id, int32_t type)
 {
-	if (card == nullptr)
-	{
-		return;
-	}
-	CMineCardManager::instance()->OnPersonInMineOverTime(card);
+	CMineCardManager::instance()->OnPersonInMineOverTime(card_id,type);
 
 }
 

+ 1 - 1
mine.h

@@ -45,7 +45,7 @@ struct mine_tool
     void on_point(uint32_t card_id, int32_t type, int vehicle_category_id);
 
     //检查井下超时
-    void on_check_overtime(std::shared_ptr<card_location_base> card);
+    void on_check_overtime(uint32_t card_id, int32_t type);
 	uint64_t get_down_time();
 	uint64_t get_work_time();
 	int32_t is_on_duty();

+ 6 - 5
mine_module/MineCardManager.cpp

@@ -56,7 +56,7 @@ void CMineCardManager::StartEvent(int evType,int limitVal,int curVal)
         if (nullptr == ev_ptr)
         {
             //打印日志
-            log_error("CMineCardManager::StartEvent: Create Event Fail.evid=%ulld evType=%d,evState=ES_START ",evid,evType);
+            log_error("CMineCardManager::StartEvent: Create Event Fail.evid=%%llu evType=%d,evState=ES_START ",evid,evType);
             return ;
         }
         ev_ptr->m_obj_id = "0";
@@ -75,7 +75,7 @@ void CMineCardManager::StartEvent(int evType,int limitVal,int curVal)
     {
         m_evlist[evType] = evid;
     }
-    log_info("CMineCardManager::StartEvent: Create Success .id=%ulld-%ulld evType=%d,evState=ES_START ",evid,ev_ptr->get_list_id(),evType);
+    log_info("CMineCardManager::StartEvent: Create Success .id=%%llu -%%llu  evType=%d,evState=ES_START ",evid,ev_ptr->get_list_id(),evType);
 }
 
 /**
@@ -90,7 +90,7 @@ void CMineCardManager::CancelEvent(int evType,int curVal)
     if (nullptr == ev_ptr)
     {
         //打印日志
-        log_errno("CMineCardManager::CancelEvent: Not Find Event.id=%ulld evType=%d,evState=ES_END ",evid,evType);
+        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)
@@ -106,7 +106,7 @@ void CMineCardManager::CancelEvent(int evType,int curVal)
     {
         m_evlist[evType] = 0;
     }
-    log_info("CMineCardManager::CancelEvent: Success .id=%ulld evType=%d,evState=ES_END ",evid,evType);
+    log_info("CMineCardManager::CancelEvent: Success .id=%%llu  evType=%d,evState=ES_END ",evid,evType);
 }
 
 /**
@@ -196,8 +196,9 @@ void CMineCardManager::OnPersonOvercrowdingWarning()
 /**
 * @brief 人员井下超时
 **/
-void CMineCardManager::OnPersonInMineOverTime(std::shared_ptr<card_location_base> card)
+void CMineCardManager::OnPersonInMineOverTime(int card_id,int card_type)
 {
+    std::shared_ptr<card_location_base> card = card_list::instance()->get(tool_other::type_id_to_u64(card_type, card_id));
     if (nullptr == card)
     {
         return ;

+ 1 - 1
mine_module/MineCardManager.h

@@ -68,7 +68,7 @@ public:
     /**
      * @brief 人员井下超时
      **/
-    void OnPersonInMineOverTime(std::shared_ptr<card_location_base> card);
+    void OnPersonInMineOverTime(int card_id,int card_type);
 public:
      /**
      * @brief 车下井 ,车辆超员警告