1
0

module_site.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #ifndef MODULE_SITE_H
  2. #define MODULE_SITE_H
  3. #include"math.h"
  4. #include <memory>
  5. #include <mutex>
  6. #include <map>
  7. #include <string>
  8. #include <chrono>
  9. #include <vector>
  10. #include<card.h>
  11. #include"ant.h"
  12. #include"area.h"
  13. #include"site_area.h"
  14. #include"module_const.h"
  15. #include"module_attendance_person.h"
  16. class module_site : public singleton_base<module_site>
  17. {
  18. private:
  19. friend class singleton_base<module_site>;
  20. module_site()
  21. {
  22. }
  23. public:
  24. /**
  25. * @brief 进入分站覆盖区域处理,考勤
  26. * @param card_id
  27. * @param enter_site
  28. */
  29. static void enter_site(uint32_t card_id,int enter_site,int32_t type)
  30. {
  31. auto card_ptr=card_list::instance()->get(card_list::to_id64(type, card_id));
  32. if(!card_ptr)
  33. {
  34. log_error("卡不存在card_id=%ld, type=%ld", card_id, type);
  35. return;
  36. }
  37. auto site_ptr=sit_list::instance()->get(enter_site);
  38. if(!site_ptr)
  39. {
  40. log_error("[enter site]%d,%d在分站列表中找不到分站,分站id=%d",card_id, type,enter_site);
  41. return;
  42. }
  43. if(card_ptr->is_person())
  44. {
  45. module_attendance_person::instance()->enter_site(card_ptr, site_ptr);
  46. }
  47. if(card_ptr->is_vehicle())
  48. {
  49. }
  50. }
  51. /**
  52. * @brief 离开现有分站处理,记录现有分站的进出时间和地点
  53. * @param card_id
  54. * @param enter_site
  55. */
  56. static void leave_site(uint32_t card_id,int enter_site, int32_t type)
  57. {
  58. auto card_ptr=card_list::instance()->get(card_list::to_id64(type, card_id));
  59. if(!card_ptr)
  60. {
  61. log_error("卡不存在card_id=%ld, type=%ld", card_id, type);
  62. return;
  63. }
  64. auto site_ptr=sit_list::instance()->get(enter_site);
  65. if(!site_ptr)
  66. {
  67. log_error("[leave site]%d,%d在分站列表中找不到分站,分站id=%d",card_id,type, enter_site);
  68. return;
  69. }
  70. if(card_ptr->is_person())
  71. {
  72. }
  73. if(card_ptr->is_vehicle())
  74. {
  75. }
  76. }
  77. };
  78. #endif // MODULE_SITE_H