198 lines
6.0 KiB
C++
198 lines
6.0 KiB
C++
#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
|
|
*/
|
|
bool queryAllDeviceDevGroup(kbd_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
|
|
*/
|
|
bool queryAllPointDevice(kbd_dbms::CRdbNetApi &rdbNetApi, const QString &device, const QString &table, QList<QString> &pointList);
|
|
|
|
private:
|
|
static CAlarmBaseData * pInstance;
|
|
kbd_dbms::CRdbAccess * m_rtdbAccess;
|
|
kbd_dbms::CDbApi *m_pWriteDb;
|
|
kbd_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
|