module_attendance_person.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef MODULE_ATTENDANCE_PERSON_H
  2. #define MODULE_ATTENDANCE_PERSON_H
  3. /**
  4. *@brief 人员考勤模块 2018-08-26 戴月腾修改
  5. *主要是针对人卡进行考勤,人卡从井上切换到井下为考勤开始,人卡从井下切换到井上为考勤结束
  6. *@author 陈欧美
  7. *@date 2018-08-03
  8. */
  9. #include<rapidjson/document.h>
  10. #include<rapidjson/prettywriter.h>
  11. #include<rapidjson/stringbuffer.h>
  12. #include "card.h"
  13. #include"module_singleton_base.h"
  14. #include "websocket/sio/sio_client.h"
  15. /**
  16. * @brief 主要是针对人卡进行考勤,人卡从井上切换到井下为考勤开始,人卡从井下切换到井上为考勤结束
  17. */
  18. class module_attendance_person:public singleton_base<module_attendance_person>
  19. {
  20. private:
  21. friend class singleton_base<module_attendance_person>;
  22. module_attendance_person()
  23. {
  24. }
  25. public:
  26. /**
  27. * @brief 进入分站覆盖区域处理,考勤
  28. * @param card_ptr
  29. * @param site_ptr
  30. */
  31. void enter_site(std::shared_ptr<card_location_base> card_ptr, std::shared_ptr<site> site_ptr);
  32. /**
  33. * @brief 离开现有分站处理,记录现有分站的进出时间和地点
  34. * @param card_ptr
  35. * @param site_ptr
  36. */
  37. void leave_site(std::shared_ptr<card_location_base> card_ptr, std::shared_ptr<site> site_ptr);
  38. ///升井或收到web的删除卡命令 site_ptr==nullptr表示收到web的删除卡命令
  39. /// 保存考勤记录,发升井json,清理卡
  40. static void up_mine(std::shared_ptr<card_location_base> card_ptr, std::shared_ptr<site> site_ptr);
  41. /**
  42. * @brief 手工升井函数
  43. */
  44. void handle_up_mine(sio::message::ptr const& data);
  45. private:
  46. ///升井json
  47. static void _to_json_card_up_one(std::shared_ptr<card_location_base> card_ptr,
  48. rapidjson::Value& out_datas, rapidjson::Document::AllocatorType& allocator);
  49. };
  50. #endif // MODULE_ATTENDANCE_PERSON_H