|
@@ -41,21 +41,25 @@ void area_business_person_attendance::on_hover(const std::shared_ptr<area_hover>
|
|
|
//记录离开考勤区域信息,开始考勤
|
|
|
void area_business_person_attendance::on_leave(const std::shared_ptr<area_hover>&area_hover_ptr,const std::shared_ptr<card_location_base>&card_ptr,std::shared_ptr<business_data> ptr)
|
|
|
{
|
|
|
- if(!card_ptr->is_person())
|
|
|
- return;
|
|
|
+ if(!card_ptr->is_person())return;
|
|
|
auto mine_tool_ptr = card_ptr->get_mine_tool();
|
|
|
- if(!mine_tool_ptr->m_is_attendance)
|
|
|
- return;
|
|
|
+ if(!mine_tool_ptr->m_is_attendance)return;
|
|
|
|
|
|
log_info("on_leave_person_att:%d",card_ptr->m_id);
|
|
|
//考勤结束
|
|
|
mine_tool_ptr->m_is_attendance=false;
|
|
|
-
|
|
|
+ if(card_ptr->upmine_flag()){
|
|
|
+ auto start = mine_tool_ptr->m_attendance_start_time;
|
|
|
+ std::string start_time = tool_time::to_str(start);
|
|
|
+ std::string card_id = tool_other::type_id_to_str(card_ptr->m_type,card_ptr->m_id);
|
|
|
+ char nsql[512]{0};
|
|
|
+ const char *sql = "update rpt_att_staff set is_auto=%d where card_id=%s and start_time='%s';";
|
|
|
+ snprintf(nsql,512,sql,card_ptr->upmine_flag(),card_id.c_str(),start_time.c_str());
|
|
|
+ db_tool::PushAsync(nsql);
|
|
|
+ }
|
|
|
//作为一条结束考勤记录保存到数据库
|
|
|
db_tool::save_attendance(card_ptr, area_hover_ptr);
|
|
|
|
|
|
-
|
|
|
-
|
|
|
YA::_CARD_POS_ cp;
|
|
|
cp.Type=card_ptr->m_type;
|
|
|
cp.ID = card_ptr->m_id;
|
|
@@ -110,7 +114,7 @@ void area_business_person_attendance::handle_up_mine(sio::message::ptr const& da
|
|
|
if(card_ptr && STATUS_LOST == card_ptr->m_biz_stat)
|
|
|
{
|
|
|
log_info("handle_up_card:%s 手工升井,处理",s_card_id.c_str());
|
|
|
- card_ptr->inc_upmine_flag();
|
|
|
+ card_ptr->inc_upmine_flag(1);
|
|
|
}
|
|
|
else
|
|
|
log_warn("handle_up_card:%s,手动升井的卡找不到,或者该卡不在盲区",s_card_id.c_str());
|