198 lines
5.8 KiB
C
Raw Normal View History

#ifndef CALARMBASEDATA_H
#define CALARMBASEDATA_H
#include <QObject>
#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 <QMap>
#include "CAlarmCommon.h"
#include <QVector>
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<QString> getDevGroupTagList();
/**
* @brief getAlarmOtherStatus
* @return
*/
QMap<int, QString> 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<QString> &pointList);
QMap<int, QString> getPriorityMap();
QMap<int, QString> getPermPriorityMap();
QMap<int, QString> getPriorityOrderMap();
QMap<int, QString> getPermLocationMap();
QMap<int, QString> getPermRegionMap();
QMap<int, QString> getAlarmShowStatusMap();
QMap<int,QVector<int> > getAreaLocMap();
QMap<int,SAreaInfo> getAreaInfoMap();
QList<int> getPermLocationIdList();
QList<int> getPermRegionIdList();
QList<int> 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
*/
2025-03-12 14:17:53 +08:00
bool queryAllDeviceDevGroup(iot_dbms::CRdbNetApi &rdbNetApi, const QString &devg, QList<QString> &devList);
/**
* @brief queryAllPointDevice
* @param rdbNetApi
* @param device
* @param table
* @param pointList "digital.station.G01_dlq.r.value"
* @return
*/
2025-03-12 14:17:53 +08:00
bool queryAllPointDevice(iot_dbms::CRdbNetApi &rdbNetApi, const QString &device, const QString &table, QList<QString> &pointList);
private:
static CAlarmBaseData * pInstance;
2025-03-12 14:17:53 +08:00
iot_dbms::CRdbAccess * m_rtdbAccess;
iot_dbms::CDbApi *m_pWriteDb;
iot_public::CSysInfoInterfacePtr m_ptrSysInfo;
QList<int> m_listPermLocationId; //< 原始告警车站权限
QList<int> m_listPermRegionId; //< 原始告警责任区权限
QList<int> m_listPermLocationOrder; //< 有权限的loaction_id: 按location_no排序
QMap<int, QString> m_priorityDescriptionMap;
QMap<int, QString> m_priorityPermDescriptionMap;
QMap<int, QString> m_priorityOrderDescriptionMap;
QMap<int, QString> m_locationDescriptionMap;
QMap<int, QString> m_regionDescriptionMap;
QMap<int, QString> m_locationPermDescriptionMap; //有权限的
QMap<int, QString> m_regionPermDescriptionMap; //有权限的
QMap<int, QString> m_alarmTypeDescriptionMap;
QMap<int, QString> m_alarmStatusDescriptionMap;
QMap<int, QString> m_deviceTypeDescriptionMap;
QMap<QString, QString> m_deviceGroupDescriptionMap;
QMap<int, QString> m_alarmShowStatusDescriptionMap;
QMap<int, QString> m_alarmOtherStatusDescriptionMap;
QMap<int,SAreaInfo> m_areaInfoMap; //区域信息
QMap<int,QVector<int> > m_areaLocMap; //区域映射
};
#endif // CALARMBASEDATA_H