|
@@ -249,14 +249,16 @@ void card_list::load_his_card_postion_vehicle()
|
|
|
|
|
|
void card_list::load_his_card_postion_staff()
|
|
|
{
|
|
|
- const char *sql = "select l.card_id,l.site_id, l.cur_time, l.x, l.y, l.z, l.area_info, l.state, \
|
|
|
+ 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 c.state_id=0 ";
|
|
|
+ sql += " and timestampdiff(hour ,att.start_time,now()) > " + std::to_string(CYaSetting::g_load_person_his_data_interval) + ";";
|
|
|
+
|
|
|
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 );
|
|
@@ -312,14 +314,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)
|