Browse Source

Merge branch 'master' of http://local.beijingyongan.com:3000/linux-dev/ya-serv

修改卡状态
zzj 5 năm trước cách đây
mục cha
commit
ed2107f44f
4 tập tin đã thay đổi với 15 bổ sung18 xóa
  1. 2 1
      area.cpp
  2. 12 15
      card.cpp
  3. 1 1
      card_person.cpp
  4. 0 1
      ya_setting.h

+ 2 - 1
area.cpp

@@ -768,7 +768,6 @@ void area_tool::on_point(const std::shared_ptr<card_location_base>& c,const poin
                  strAreaInfo += tmpArea;
              }
          }
-
 		 if(!strAreaInfo.empty())
 		 {
 			 char sql[1024] = {0};
@@ -776,6 +775,8 @@ void area_tool::on_point(const std::shared_ptr<card_location_base>& c,const poin
 			 snprintf(sql, 1024, "REPLACE INTO rt_location (card_id, site_id,cur_time, x, y, z, state, area_info) VALUES (%s, %d,'%s',%lf, %lf, %lf, 0, '%s');",
 			 tool_other::type_id_to_str(c->m_type, c->m_id).c_str(), m_site->id(),_time.c_str(), pt.x, pt.y, pt.z, strAreaInfo.c_str());
 			 db_tool::PushAsync(sql);
+			 log_info("insert rt_location: card=%d site_id=%d,point=%.2f-%.2f,area_info=%s"
+			 ,c->m_id,m_site->id(),pt.x,pt.y,strAreaInfo.c_str());
 		 }
     }
 }

+ 12 - 15
card.cpp

@@ -249,21 +249,20 @@ void card_list::load_his_card_postion_vehicle()
 
 void card_list::load_his_card_postion_staff()
 {
-    const char *sql_fmt = "select l.card_id,l.site_id, l.cur_time, l.x, l.y, l.z, l.area_info, l.state, \
+    std::string init_limit_hour = config.get("service.init_limit_hour","48");
+
+    std::string sql = "select l.card_id,l.site_id, l.cur_time, l.x, l.y, l.z, l.area_info, l.state, \
             att.start_time, att.end_time \
             from rt_location l, rt_att_staff att, dat_card c, dat_staff_extend s \
             where l.card_id = c.card_id and l.card_id = att.card_id and l.card_id=s.card_id\
-            and c.state_id=0 and end_time is null and att.start_time > SUBTIME(now(),'%d:00:00');"; 
-	
-	char sql[1024];
-
-	sprintf(sql,sql_fmt,config.get("init_limit_hour",48));//缺省重启时不加载大于48小时以前的入井
+            and c.state_id=0 and end_time is null ";
+    sql += " and timestampdiff(hour ,att.start_time,now()) <= " + init_limit_hour + ";";
 
-	log_info("load_his_card_postion_staff:%s\n",sql);
+	log_info("load_his_card_postion_staff:%s ",sql.c_str());
 
     std::string Error;
     YADB::CDBResultSet DBRes;
-    sDBConnPool.Query(sql,DBRes,Error);
+    sDBConnPool.Query(sql.c_str(),DBRes,Error);
     if(!Error.empty())
         log_error("load_his_card_postion_staff列表 Error,%s",Error.c_str());
     uint64_t nCount = DBRes.GetRecordCount( Error );
@@ -319,14 +318,12 @@ void card_list::load_his_card_postion_staff()
             card_ptr->set(x,y,z);
             card_ptr->m_time = tool_time::to_time(cur_time)*1000;
 
-            if(end_time.empty())
-            {
-                auto mine_tool_ptr = card_ptr->get_mine_tool();
-                mine_tool_ptr->m_attendance_start_time = tool_time::to_time_ex(start_time);
-                mine_tool_ptr->m_is_attendance = true;
-                log_info("person加载考勤,考勤开始时间: %s, 卡id=%s", start_time.c_str(), card_id.c_str());
-            }
+            auto mine_tool_ptr = card_ptr->get_mine_tool();
+            mine_tool_ptr->m_attendance_start_time = tool_time::to_time_ex(start_time);
+            mine_tool_ptr->m_is_attendance = true;
+            log_info("person加载考勤,考勤开始时间:%s,卡id=%s areainfo=%s", start_time.c_str(), card_id.c_str(),strAreaInfo.c_str());
 
+            //分站设置
             auto area_tool=card_ptr->get_area_tool();
             auto sit_ptr=sit_list::instance()->get(site_id);
             if(sit_ptr)

+ 1 - 1
card_person.cpp

@@ -171,7 +171,7 @@ void person::on_timer()
 	cp.work_time = m_mine_tool->get_work_time();
 	cp.is_on_duty= m_mine_tool->is_on_duty();
 	upt_card_pos(cp,pt);
-	log_info("on_timer here ...%d,%lld,%.2f,%.2f,%d,%d--%d",m_id,_time,pt.x,pt.y,cp.map_id,cp.area_info.size(),person::m_limit_detained_time);
+	log_info("on_timer here ...%d,%lld,%.2f,%.2f,%d,%d--%d,speed=%.2f",m_id,_time,pt.x,pt.y,cp.map_id,cp.area_info.size(),person::m_limit_detained_time,m_speed);
     //int sid=0; if(auto st=m_area_tool->m_site)sid=st->m_area_id; m_his_location_card->push(_time,pt,sid,cp.map_id);
 
 	uint64_t _now=tool_time::now_to_ms();

+ 0 - 1
ya_setting.h

@@ -63,7 +63,6 @@ public:
     */
     static SSys_setting m_sys_setting;
     static bool Init_sys_setting();
-
 };
 
 #endif