#ifndef MODULE_ATTENDANCE_PERSON_H #define MODULE_ATTENDANCE_PERSON_H /** *@brief 人员考勤模块 2018-08-26 戴月腾修改 *主要是针对人卡进行考勤,人卡从井上切换到井下为考勤开始,人卡从井下切换到井上为考勤结束 *@author 陈欧美 *@date 2018-08-03 */ #include #include #include #include "card.h" #include"module_singleton_base.h" #include "websocket/sio/sio_client.h" /** * @brief 主要是针对人卡进行考勤,人卡从井上切换到井下为考勤开始,人卡从井下切换到井上为考勤结束 */ class module_attendance_person:public singleton_base { private: friend class singleton_base; module_attendance_person() { } public: /** * @brief 进入分站覆盖区域处理,考勤 * @param card_ptr * @param site_ptr */ void enter_site(std::shared_ptr card_ptr, std::shared_ptr site_ptr); /** * @brief 离开现有分站处理,记录现有分站的进出时间和地点 * @param card_ptr * @param site_ptr */ void leave_site(std::shared_ptr card_ptr, std::shared_ptr site_ptr); ///升井或收到web的删除卡命令 site_ptr==nullptr表示收到web的删除卡命令 /// 保存考勤记录,发升井json,清理卡 static void up_mine(std::shared_ptr card_ptr, std::shared_ptr site_ptr); /** * @brief 手工升井函数 */ void handle_up_mine(sio::message::ptr const& data); private: ///升井json static void _to_json_card_up_one(std::shared_ptr card_ptr, rapidjson::Value& out_datas, rapidjson::Document::AllocatorType& allocator); }; #endif // MODULE_ATTENDANCE_PERSON_H