DPS/include/M_EntityModelDAO.h

113 lines
3.5 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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