113 lines
3.5 KiB
C++
113 lines
3.5 KiB
C++
#pragma once
|
||
#include "M_ObjectDAO.h"
|
||
|
||
namespace DBPlatformSpace
|
||
{
|
||
class M_FolderDAO;
|
||
class M_ProjectDAO;
|
||
class M_NormalColumnDAO;
|
||
class M_EntityTableDAO;
|
||
|
||
//_type 的类型预定义
|
||
#define ENTITYMODEL_TYPE_DICTIONARY 2
|
||
|
||
|
||
/// M_数据模型
|
||
class M_EntityModelDAO : public M_ObjectDAO
|
||
{
|
||
public:
|
||
|
||
//说明:基类里的_name用于保存 “模型标识”
|
||
|
||
string _description; ///<描述
|
||
string _displayName; ///<显示名称
|
||
int _isDeleted; ///<是否逻辑删除
|
||
int _isReleased; ///<是否发布
|
||
int _isVersionLocked; ///<是否版本锁定
|
||
int _type; ///<类型
|
||
int _version; ///<版本号
|
||
|
||
int _rProjectID; ///<MRProjectID
|
||
|
||
// [1/6/2022 wwu]
|
||
string _createTime; ///<创建时间
|
||
string _updateTime; ///<修改时间
|
||
|
||
|
||
ODI M_EntityModelDAO();
|
||
virtual ODI ~M_EntityModelDAO();
|
||
|
||
///自保存
|
||
virtual ODI ResultMsg save(int commitType = COMMIT_T_IMMEDIATELY);//,int isAddTempFolder = 0
|
||
|
||
/// 此自删除接口,会将下属的数据模型一同删除
|
||
virtual ODI ResultMsg delself(int commitType = COMMIT_T_IMMEDIATELY);
|
||
|
||
|
||
// [6/8/2022 wwu]
|
||
///与数据模块的关系
|
||
ODI ResultMsg addM_FolderDAO(M_FolderDAO* pEntityFolder, int commitType = COMMIT_T_IMMEDIATELY);
|
||
ODI ResultMsg removeM_FolderDAO(M_FolderDAO* pEntityFolder, int commitType = COMMIT_T_IMMEDIATELY);
|
||
ODI ResultMsg getRootM_FolderDAOList(list< M_FolderDAO*>& emlist);
|
||
|
||
ODI ResultMsg addTempFolder(int commitType = COMMIT_T_IMMEDIATELY);
|
||
ODI ResultMsg getTempFolder(M_FolderDAO* &pEntityFolder);
|
||
|
||
// [6/25/2022 wwu]
|
||
/// 获取所属项目
|
||
ODI ResultMsg getProjectOwner(M_ProjectDAO * &pprojectOwner);
|
||
|
||
|
||
// [6/20/2022 wwu]
|
||
/// 升版
|
||
ODI ResultMsg upgradeNewVersion(M_EntityModelDAO*& pNewEntityModel);//int & newVersionEntityModelID
|
||
|
||
// [6/25/2022 wwu]
|
||
/// 复制
|
||
///@para pNewEntityModel 需要设置复制后的基本信息,但_ID需要为-1,即不能Save过。
|
||
ODI ResultMsg copyTo(M_EntityModelDAO * & pNewEntityModel);
|
||
|
||
// [6/25/2022 wwu]
|
||
/// 生成实例
|
||
ODI ResultMsg createInstance(string instanceFileFolderPath,string instanceFileName);
|
||
|
||
// [9/4/2023 wwu]
|
||
///查询实例文件的模型和项目信息
|
||
static ODI ResultMsg getInstanceInfo(string instanceFilePath, M_EntityModelDAO*& pMEntityModel);
|
||
|
||
// [7/13/2022 wwu]
|
||
// 获取所有属性
|
||
ODI ResultMsg getNormalColumnList(list<M_NormalColumnDAO*> &nColList);
|
||
|
||
// [7/13/2022 wwu]
|
||
// 获取所有数据类
|
||
ODI ResultMsg getEntityTableList(list<M_EntityTableDAO*>& tableList);
|
||
|
||
// [8/30/2022 wwu]
|
||
// 获取同一project下同名称标识的模型最大版本号
|
||
ODI int getMaxVersionWithinSaveName();
|
||
|
||
ODI virtual Mapper* createMapper();
|
||
ODI static DAO* createObject();
|
||
|
||
|
||
static ODI ResultMsg FindAll(list<M_EntityModelDAO*> & pnewlist);
|
||
|
||
static ODI ResultMsg FindByID(int id, M_EntityModelDAO * &pnewdao);
|
||
|
||
static ResultMsg ODI FindByRProjectID(int rProjectID, list<M_EntityModelDAO*>& newlist);
|
||
|
||
static ResultMsg ODI FindByRProjectIDAndName(int rProjectID, string name, list<M_EntityModelDAO*>& newlist);
|
||
|
||
// [9/5/2023 wwu]
|
||
static ResultMsg ODI FindByRProjectIDAndNameAndVersion(int rProjectID, string name, int versionNo, list<M_EntityModelDAO*>& newlist);
|
||
|
||
static ResultMsg ODI FindByName(string name, list<M_EntityModelDAO*>& newlist);
|
||
|
||
static ResultMsg ODI FindByNameMaxVersion(string name, M_EntityModelDAO*& pdao);
|
||
|
||
// [9/1/2022 wwu]
|
||
static ResultMsg ODI FindByType(int typeCode, list<M_EntityModelDAO*>& newlist);
|
||
};
|
||
}
|