DPS/DataPlatform/DataPack.h

84 lines
2.7 KiB
C++

#pragma once
#include "DPData.h"
//#include "easylogging++.h"
class SceneInfo;
//数据类模块类
class DataPack :public DPData
{
Q_OBJECT
Q_PROPERTY(QString description READ getDes WRITE setDes) //描述
Q_PROPERTY(bool generateTable READ getIsGenerateTable WRITE setIsGenerateTable)//是否生成表
// Q_PROPERTY(unsigned int createVersion READ getCreateVer WRITE setCreateVer)
Q_PROPERTY(QString displayName READ getDisplayName WRITE setDisplayName)//显示名称
Q_PROPERTY(int folderType READ getType WRITE setType)//类型
public:
DataPack();
~DataPack();
void setType(int type) { _folderType = type; }
int getType() const { return _folderType; }
void setDes(QString des) { _strDescription = des; }
QString getDes() const { return _strDescription; }
void setDisplayName(QString displayName) { _strDisplayName = displayName; }
QString getDisplayName() const { return _strDisplayName; }
// void setCreateVer(unsigned int ver) { _wCreateVersion = ver; }
// unsigned int getCreateVer() const { return _wCreateVersion; }
void setIsGenerateTable(bool bGenerate) { _bIsGenerateTable = bGenerate; }
bool getIsGenerateTable() const { return _wCreateVersion; }
bool checkNameillegal( QString& errMsg);
/*保存本身数据*/
bool saveSelf();
void saveToDao();
/*增加child数据*/
bool addChild(DPData* pNewData);
// bool addChild(DataPack* pNewData);
/*删除一条child数据*/
bool deleteChild(unsigned int id);
// bool deleteAllChildren();
void removeChildinDPMap();
/*删除本对象*/
bool deleteSelf();
bool deleteSelf(QString& result);
/*从数据库加载一条数据到当前对象*/
void loadData(DBPlatformSpace::DAO* pDao);
/*获取所有下层数据*/
void getAllChildren( DPData* pManager = nullptr);
void getSubPack( DPData* pManager = nullptr);
void getDataClassAndAttribute( DPData* pManager = nullptr);
/*获取新的属性*/
void getNewProperty(json& parameter, QVariantMap& valueMap);
void setNewData(json& parameter);
void toJson(json& jsonObj, bool recursive = false);
/*移动数据模块*/
bool moveData(json& parameter,DPData* pManager);
/*导出数据*/
// bool exportData();
//生成代码
bool generateCode(/*DPData* pManager,*/ QStringList& qfileList);
void setFileData(FileGenerate* generator, QStringList flag);
//场景相关
bool addScene(DPData* pNewScene);
bool deleteScene(int id);
// bool moveScene(json& parameter);
bool getScene(DPData* pMg);
bool _bIsChildPack = false; //是否为子模块
QString _strDescription; //描述
int _bIsGenerateTable = -1; //是否生成数据接口类
unsigned int _wCreateVersion = 0; //建立版本
QString _strDisplayName; //显示名称
int _folderType = 0; //数据模块类型
bool _initDataClass = false;
bool _initSubPack = false;
bool _initScene = false;
QMap<int, SceneInfo*> _sceneMap; //场景map
};