#ifndef FROMWEBAPI_H #define FROMWEBAPI_H #include "spdlog/spdlog.h" #include "lhhttpapi.h" #include "GlobalVariable.h" class RoomOnWorkInfo; class PersonCountRuleInfo; class EndAlarmParam; class FromWebAPI { public: FromWebAPI(); ~FromWebAPI(); /* 初始化WebAPI */ bool initWebApi(const QString& url,const QString& serverIP,const QString& serID); /* 写入算法信息,写入tAction表 */ bool writeAlgorithmInfo(std::vector& vecInfo); /* 删除算法信息 */ bool deleteAlgorithmInfo(std::vector& vecDeleteInfo); /* 获取tAction数据 */ bool getAlgorithmInfo(std::vector& vecInfo); /* 插入设备信息 */ bool insertDeviceInfo(std::vector& vecInfo); /* 更新设备信息 */ bool updateDeviceInfo(std::vector& vecUpdateInfo); /* 删除设备信息 */ bool deleteDeviceInfo(std::vector& vecDeleteInfo); /* 从EQM获取CamerInfo信息 */ bool getDeviceInfo(std::vector& vecInfo); /* 获取通道信息 */ bool getChannelInfo(std::map& mapChannelName); std::string getChannelInfo(int chnID); /* 获取摄像机信息 */ bool getCameraInfo(std::map& mapCameraName); /* 插入设备和算法关联信息 */ bool insertDeviceAlgorithmInfo(std::vector& vecInfo); /* 更新设备和算法关联表 */ bool updateDeviceAlgorithmInfo(std::vector& vecInfo); /* 删除设备和算法关联表 */ bool deleteDeviceAlgorithmInfo(std::vector& vecInfo); /* 删除设备和算法关联表 */ bool deleteDeviceAlgorithmInfo(std::list& vecID); /* 获取设备和算法信息关联表,需要先从EQM数据库中获取到设备信息,然后根据读取到的设备信息,取出已经删除的设备ID */ bool getDeviceAlgorithmInfo(std::vector& vecInfo, std::list& listDevIDDelete); /* 获取每个算法的详细信息 */ bool getActionInfo(ListActionInfo& listInfo); /* 获取摄像机和房间关联信息 */ bool getRoomCameraInfo(std::list& vecInfo); /* ================================================================================ * “tAlarmInfo”表相关操作 * ================================================================================ */ /* 写入报警信息 */ bool insertAlarmInfo(const AlarmInfo& alarmInfo); bool insertAlarmInfo(const AlarmInfo& alarmInfo, int& PKID); /* 更新报警结束时间 */ bool updateAlarmEndTime(const AlarmInfo& alarmInfo); /* 根据PKID更新报警记录,用来结束报警 */ bool endAlarmInfoByPKID(const int PKID, const QDateTime dateTime); /* 更新人员信息 */ bool updatePersonInfo(RoomOnWorkInfo& roomInfo); /* 通过频率ID和应用ID获取最大的PKID报警 */ bool getMaxAlarmPKID(const int ChannelID, const AppFunction AppID, int& PKID); /* 清空在岗离岗报警的在岗人员信息 */ bool clearOnWorkAlarmInfo(const int PKID, const bool onWork, const std::string actionDes); /* 获取人员计数规则 */ bool getPersonCountRuleInfo(std::list& vecInfo); /* 获取报警时段,也同时获取报警的应用信息 */ bool getAlarmAppInfo(std::list& listInfo); /* 结束人员计数报警,通过频率ID和应用ID */ bool endPersonCountAlarm(EndAlarmParam& alarmParam); /* 写入在岗信息 */ bool insertOnWorkInfo(const RoomFaceInfo& onWorkInfo); /* 写入在岗离岗数据 */ private: std::shared_ptr m_logger = nullptr; lhhttpapi* m_httpApi = nullptr; QString m_userToken; }; #endif /* FROMWEBAPI_H */