DPS/DataPlatform/DataModelData.h

86 lines
2.8 KiB
C++

#pragma once
#include "DPData.h"
//数据模型类
class DataModelData : public DPData
{
Q_OBJECT
Q_PROPERTY(unsigned int type READ getType WRITE setType) //类型
Q_PROPERTY(QString description READ getDescription WRITE setDescription) //描述
Q_PROPERTY(unsigned int version READ getVersion WRITE setVersion) //版本
Q_PROPERTY(QString createTime READ getCreateTime WRITE setCreateTime)
Q_PROPERTY(QString updateTime READ getUpdateTime WRITE setUpdateTime)
Q_PROPERTY(QString displayName READ getDisplayName WRITE setDisplayName) //显示名称
public:
DataModelData();
~DataModelData();
unsigned int getType() { return _type; }
void setType(unsigned int type) { _type = type; }
QString getDescription() const { return _description; }
void setDescription(QString des) { _description = des; }
unsigned int getVersion() const { return _version; }
void setVersion(unsigned int ver) { _version = ver; }
QString getCreateTime() const { return _createTime; }
void setCreateTime(QString createTime) { this->_createTime = createTime; }
QString getUpdateTime() const { return _updateTime; }
void setUpdateTime(QString updateTime) { this->_updateTime = updateTime; }
QString getDisplayName() const { return _displayName; }
void setDisplayName(QString name) { _displayName = name; }
void getNewProperty(json& parameter, QVariantMap& values);
void setNewData(json& parameter);
void setEditData(json& parameter);
public:
/*保存当前数据模型*/
bool saveSelf();
/*增加下层数据*/
bool addChild(DPData* newData);
/*删除下层数据*/
bool deleteChild(unsigned int id);
/*删除本对象*/
bool deleteSelf();
/*更新本对象*/
// bool updateSelf(DPData& newData);
/*从数据库加载一条数据到当前对象*/
void loadData(DBPlatformSpace::DAO* pDao);
/*获取所有下层数据*/
void getAllChildren(DPData* pManager , bool reload);
/*清理总map中的child*/
void removeChildinDPMap();
/*升版*/
bool upgradeVersion(DataModelData* & pNew);
/*降版*/
void downgradeVersion();
/*实例生成*/
bool createInstance(QString& msg);
/*复制数据模型*/
bool copyData(DataModelData*& pNew, json& parameter);
void saveToDao();
/*是否相同显示名称数据模型*/
bool isDuplicateDisplayName(QString name);
bool isDuplicatName(QString name, QString propertyName);
void toJson(json& jsonObj, bool recursive = false);
//设置需求文档数据
void setFileData(FileGenerate* generator, QStringList flag );
/*先处理mn关系的数据类用于需求文档输出*/
void takeRelationTableName();
//基类的_name 为 数据模型标识
int _type = 0; //数据模型类型
QString _description; //描述
QString _displayName; //显示名称
unsigned int _version = 0; //版本号
bool _isVerLocked = false; //版本是否锁定
bool _isDeleted = false; //是否已删除
bool _isReleased = false; //是否已发布
QString _createTime; /*创建时间*/
QString _updateTime; /*更新时间*/
bool _initChildren = false;
};