#ifndef CALARMBASEDATA_H #define CALARMBASEDATA_H #include #include "dbms/rdb_api/CRdbAccess.h" #include "dbms/rdb_net_api/CRdbNetApi.h" #include "dbms/db_api_ex/CDbApi.h" #include "pub_sysinfo_api/SysInfoApi.h" #include #include "CAlarmCommon.h" #include class CAlarmBaseData : public QObject { Q_OBJECT public: static CAlarmBaseData * instance(); ~CAlarmBaseData(); void destory(); public: /** * @brief initData 初始化数据 */ void initData(); /** * @brief queryPriorityDesc 根据id查询优先级描述 * @param id 优先级id * @return 优先级描述 */ QString queryPriorityDesc(int id); /** * @brief queryLocationDesc 根据位置id查询位置描述 * @param id 位置id * @return 位置描述 */ QString queryLocationDesc(int id); /** * @brief queryRegionDesc 根据责任区id查询责任区描述 * @param id 责任区id * @return 责任区描述 */ QString queryRegionDesc(int id); /** * @brief queryAlarmTypeDesc 根据告警类型id查询告警类型描述 * @param id 告警类型id * @return 告警类型描述 */ QString queryAlarmTypeDesc(int id); /** * @brief queryAlarmStatusDesc 根据告警状态id查询告警状态描述 * @param id 告警状态id * @return 告警状态描述 */ QString queryAlarmStatusDesc(int id); /** * @brief queryDevTypeByDesc 根据设备类型描述查询设备类型id * @param desc 设备描述 * @return 设备id */ int queryDevTypeByDesc(QString &desc); QList getDevGroupTagList(); /** * @brief getAlarmOtherStatus 获取其他告警状态集合 * @return 其他告警状态集合 */ QMap getAlarmOtherStatus(); /** * @brief loadAlarmInfoConfig 加载告警配置信息 */ void loadAlarmInfoConfig(); /** * @brief queryDomainIdByLocId 通过车站ID得到域ID * @param loactionId */ int queryDomainIdByLocId(int loactionId); bool queryAllPointDevGroup(int nDomainId, int nSubsystemId, const QString &strDevg, QList &pointList); QMap getPriorityMap(); QMap getPermPriorityMap(); QMap getPriorityOrderMap(); QMap getPermLocationMap(); QMap getPermRegionMap(); QMap getAlarmShowStatusMap(); QMap > getAreaLocMap(); QMap getAreaInfoMap(); QList getPermLocationIdList(); QList getPermRegionIdList(); QList getPermLocationOrder(); QString getPermLocationDesc(const int &locationId); private: explicit CAlarmBaseData(QObject *parent = nullptr); /** * @brief loadPermInfo 加载权限 */ void loadPermInfo(); /** * @brief loadPriorityDescription 加载优先级描述 */ void loadPriorityDescription(); /** * @brief loadLocationDescription 加载位置描述 */ void loadLocationDescription(); /** * @brief loadRegionDescription 加载责任区描述 */ void loadRegionDescription(); /** * @brief loadAlarmTypeDescription 加载告警类型 */ void loadAlarmTypeDescription(); /** * @brief loadAlarmStatusDescription 加载告警状态描述 */ void loadAlarmStatusDescription(); /** * @brief loadDeviceTypeDescription 加载设备类型描述 */ void loadDeviceTypeDescription(); /** * @brief loadDeviceGroupDescription 加载设备组描述 */ void loadDeviceGroupDescription(); /** * @brief loadAlarmShowStatusDescription 加载需要显示在告警窗下拉框中的告警状态描述 */ void loadAlarmShowStatusDescription(); /** * @brief loadAlarmOtherStatusDescription 加载其他告警状态描述 */ void loadAlarmOtherStatusDescription(); /** * @brief queryAllDeviceDevGroup 查询设备组下所有设备 * @param rdbNetApi * @param devg */ bool queryAllDeviceDevGroup(iot_dbms::CRdbNetApi &rdbNetApi, const QString &devg, QList &devList); /** * @brief queryAllPointDevice 查询表中设备下所有测点 * @param rdbNetApi * @param device * @param table * @param pointList "digital.station.G01_dlq.r.value" * @return */ bool queryAllPointDevice(iot_dbms::CRdbNetApi &rdbNetApi, const QString &device, const QString &table, QList &pointList); private: static CAlarmBaseData * pInstance; iot_dbms::CRdbAccess * m_rtdbAccess; iot_dbms::CDbApi *m_pWriteDb; iot_public::CSysInfoInterfacePtr m_ptrSysInfo; QList m_listPermLocationId; //< 原始告警车站权限 QList m_listPermRegionId; //< 原始告警责任区权限 QList m_listPermLocationOrder; //< 有权限的loaction_id: 按location_no排序 QMap m_priorityDescriptionMap; QMap m_priorityPermDescriptionMap; QMap m_priorityOrderDescriptionMap; QMap m_locationDescriptionMap; QMap m_regionDescriptionMap; QMap m_locationPermDescriptionMap; //有权限的 QMap m_regionPermDescriptionMap; //有权限的 QMap m_alarmTypeDescriptionMap; QMap m_alarmStatusDescriptionMap; QMap m_deviceTypeDescriptionMap; QMap m_deviceGroupDescriptionMap; QMap m_alarmShowStatusDescriptionMap; QMap m_alarmOtherStatusDescriptionMap; QMap m_areaInfoMap; //区域信息 QMap > m_areaLocMap; //区域映射 }; #endif // CALARMBASEDATA_H