FromWebAPI.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #ifndef FROMWEBAPI_H
  2. #define FROMWEBAPI_H
  3. #include "spdlog/spdlog.h"
  4. #include "lhhttpapi.h"
  5. #include "GlobalVariable.h"
  6. class RoomOnWorkInfo;
  7. class PersonCountRuleInfo;
  8. class EndAlarmParam;
  9. class FromWebAPI
  10. {
  11. public:
  12. FromWebAPI();
  13. ~FromWebAPI();
  14. /* 初始化WebAPI */
  15. bool initWebApi(const QString& url,const QString& serID, const QString appType, const QString& serverIP = "");
  16. /* 写入算法信息,写入tAction表 */
  17. bool writeAlgorithmInfo(std::vector<AlgorithmInfo>& vecInfo);
  18. /* 删除算法信息 */
  19. bool deleteAlgorithmInfo(std::vector<AlgorithmInfo>& vecDeleteInfo);
  20. /* 获取tAction数据 */
  21. bool getAlgorithmInfo(std::vector<AlgorithmInfo>& vecInfo);
  22. /* 插入设备信息 */
  23. bool insertDeviceInfo(std::vector<DeviceInfo>& vecInfo);
  24. /* 更新设备信息 */
  25. bool updateDeviceInfo(std::vector<DeviceInfo>& vecUpdateInfo);
  26. /* 删除设备信息 */
  27. bool deleteDeviceInfo(std::vector<DeviceInfo>& vecDeleteInfo);
  28. /* 从EQM获取CamerInfo信息 */
  29. bool getDeviceInfo(std::vector<DeviceInfo>& vecInfo);
  30. /* 获取通道信息 */
  31. bool getChannelInfo(std::map<int, std::string>& mapChannelName);
  32. std::string getChannelInfo(int chnID);
  33. /* 获取摄像机信息 */
  34. bool getCameraInfo(std::map<int, std::string>& mapCameraName);
  35. /* 插入设备和算法关联信息 */
  36. bool insertDeviceAlgorithmInfo(std::vector<DeviceInfo>& vecInfo);
  37. /* 更新设备和算法关联表 */
  38. bool updateDeviceAlgorithmInfo(std::vector<DeviceInfo>& vecInfo);
  39. /* 删除设备和算法关联表 */
  40. bool deleteDeviceAlgorithmInfo(std::vector<DeviceInfo>& vecInfo);
  41. /* 删除设备和算法关联表 */
  42. bool deleteDeviceAlgorithmInfo(std::list<int>& vecID);
  43. /* 获取设备和算法信息关联表,需要先从EQM数据库中获取到设备信息,然后根据读取到的设备信息,取出已经删除的设备ID */
  44. bool getDeviceAlgorithmInfo(std::vector<DeviceInfo>& vecInfo, std::list<int>& listDevIDDelete);
  45. /* 获取每个算法的详细信息 */
  46. bool getActionInfo(ListActionInfo& listInfo);
  47. /* 获取摄像机和房间关联信息 */
  48. bool getRoomCameraInfo(std::list<RoomCameraInfo>& vecInfo);
  49. /* ================================================================================
  50. * “tAlarmInfo”表相关操作
  51. * ================================================================================ */
  52. /* 写入报警信息 */
  53. bool insertAlarmInfo(const AlarmInfo& alarmInfo);
  54. bool insertAlarmInfo(const AlarmInfo& alarmInfo, int& PKID);
  55. /* 更新报警结束时间 */
  56. bool updateAlarmEndTime(const AlarmInfo& alarmInfo);
  57. /* 根据PKID更新报警记录,用来结束报警 */
  58. bool endAlarmInfoByPKID(const int PKID, const QDateTime dateTime);
  59. /* 更新人员信息 */
  60. bool updatePersonInfo(RoomOnWorkInfo& roomInfo);
  61. /* 通过频率ID和应用ID获取最大的PKID报警 */
  62. bool getMaxAlarmPKID(const int ChannelID, const AppFunction AppID, int& PKID);
  63. /* 清空在岗离岗报警的在岗人员信息 */
  64. bool clearOnWorkAlarmInfo(const int PKID, const bool onWork, const std::string actionDes);
  65. /* 获取人员计数规则 */
  66. bool getPersonCountRuleInfo(std::list<PersonCountRuleInfo>& vecInfo);
  67. /* 获取报警时段,也同时获取报警的应用信息 */
  68. bool getAlarmAppInfo(std::list<AppAndTimeInfo>& listInfo);
  69. /* 结束人员计数报警,通过频率ID和应用ID */
  70. bool endPersonCountAlarm(EndAlarmParam& alarmParam);
  71. /* 写入在岗信息 */
  72. bool insertOnWorkInfo(const RoomFaceInfo& onWorkInfo);
  73. /* 写入在岗离岗数据 */
  74. private:
  75. std::shared_ptr<spdlog::logger> m_logger = nullptr;
  76. lhhttpapi* m_httpApi = nullptr;
  77. QString m_userToken;
  78. };
  79. #endif /* FROMWEBAPI_H */