12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #ifndef MODULE_ATTENDANCE_VEHICLE_H
- #define MODULE_ATTENDANCE_VEHICLE_H
- /**
- *@brief 车辆考勤模块
- *车辆进入某些特定区域,结束考勤;从特定区域进入其他区域,开始考勤
- *@author 戴月腾
- *@date 2018-08-07
- */
- #include<unordered_map>
- #include "module_singleton_base.h"
- #include "card.h"
- #include"area.h"
- /**
- * @brief 车辆进入某些特定区域,结束考勤;从特定区域进入其他区域,开始考勤, 单例
- */
- class module_attendance_vehicle:public singleton_base<module_attendance_vehicle>
- {
- private:
- friend class singleton_base<module_attendance_vehicle>;
- module_attendance_vehicle()
- {
- }
- public:
- void on_enter(std::shared_ptr<card_location_base> card_ptr, int index);
- void on_hover(std::shared_ptr<card_location_base> card_ptr, int index);
- void on_leave(std::shared_ptr<card_location_base> card_ptr, int index);
- void on_enter(std::shared_ptr<card_location_base> card_ptr, std::shared_ptr<area_hover>&c);
- void init_attendance_area_from_db();
- ///area_ptr==nullptr 表示接收到 web的删除卡命令
- static void save_attendance(std::shared_ptr<card_location_base>& card_ptr, std::shared_ptr<area> area_ptr);
- private:
- bool is_not_attendance_area(int area_id, int vehicle_type_id)
- {
- return m_map.end() != m_map.find(to_list_id(area_id, vehicle_type_id));
- }
- uint64_t to_list_id(int area_id, int vehicle_type_id)
- {
- return (static_cast<uint64_t>(area_id)<<32) | static_cast<uint64_t>(vehicle_type_id);
- }
- ///area_id<<32| vehicle_type_id; att_rule_id
- std::unordered_map<uint64_t, int> m_map;
- };
- #endif // MODULE_ATTENDANCE_VEHICLE_H
|