DPS/DataPlatform/SysManager.h

70 lines
1.6 KiB
C++

#pragma once
#include <QString>
#include <QMap>
#include"Connection.h"
#include"IDGenerator.h"
#include "json.hpp"
using json = nlohmann::json;
class DictItem;
class DPData;
class SysManager
{
public:
SysManager();
~SysManager();
//获取数据库配置的所有数据字典项
bool getAllDictItem();
//查找指定数据字典项
DPData* findDictItem(int id);
//查找指定数据字典数据项
DPData* findDictData(int id);
//获取所有数据字典数据项
bool getAllDictChildren();
//清除所有数据字典数据
void clearAllDictData();
//数据字典项数量
int getDictSize() { return _dictItemMap.size(); }
//获取数据字典map
QMap<int, DictItem*>& getDictItemMap() { return _dictItemMap; }
//保存配置信息
void save(json& profile);
//把默认数据文件路径保存到配置
void setProfileData(json& data);
//从消息参数获得配置
void getSettingData(json& data);
void getDictJson(json& jsonobj);
//连接相关操作
bool addConnection(int id, Connection* con);
Connection* findConnection(int id);
bool delConnection(int id);
void getConnectionJson(json& jsonobj);
QString _profilePath; //配置文件路径
QString _sysDBPath; //系统数据库文件路径
QString _xmlfilePath; //xml模板文件路径 [11/22/2023]
QString _defaultAuthor; //默认创建者
QString _codeGeneratePath; //代码生成路径
QString _importFilePath; //导入项目路径
bool _autoDeleteScene = false; //是否主动删除
IDGenerator IDTool;
private:
QMap<int, DictItem*> _dictItemMap; //一级数据字典
QMap<int, Connection*> mapConnection;
};
SysManager& GetSysManager();