#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; };