DPS/include/M_EntityModelDAO.h

113 lines
3.5 KiB
C
Raw Permalink Normal View History

2025-06-23 10:41:33 +08:00
#pragma once
#include "M_ObjectDAO.h"
namespace DBPlatformSpace
{
class M_FolderDAO;
class M_ProjectDAO;
class M_NormalColumnDAO;
class M_EntityTableDAO;
2025-06-23 18:01:09 +08:00
//_type 的类型预定义
2025-06-23 10:41:33 +08:00
#define ENTITYMODEL_TYPE_DICTIONARY 2
2025-06-23 18:01:09 +08:00
/// M_数据模型
2025-06-23 10:41:33 +08:00
class M_EntityModelDAO : public M_ObjectDAO
{
public:
2025-06-23 18:01:09 +08:00
//说明基类里的_name用于保存 “模型标识”
2025-06-23 10:41:33 +08:00
2025-06-23 18:01:09 +08:00
string _description; ///<描述
string _displayName; ///<显示名称
int _isDeleted; ///<是否逻辑删除
int _isReleased; ///<是否发布
int _isVersionLocked; ///<是否版本锁定
int _type; ///<类型
int _version; ///<版本号
2025-06-23 10:41:33 +08:00
int _rProjectID; ///<MRProjectID
// [1/6/2022 wwu]
2025-06-23 18:01:09 +08:00
string _createTime; ///<创建时间
string _updateTime; ///<修改时间
2025-06-23 10:41:33 +08:00
ODI M_EntityModelDAO();
virtual ODI ~M_EntityModelDAO();
2025-06-23 18:01:09 +08:00
///自保存
2025-06-23 10:41:33 +08:00
virtual ODI ResultMsg save(int commitType = COMMIT_T_IMMEDIATELY);//,int isAddTempFolder = 0
2025-06-23 18:01:09 +08:00
/// 此自删除接口,会将下属的数据模型一同删除
2025-06-23 10:41:33 +08:00
virtual ODI ResultMsg delself(int commitType = COMMIT_T_IMMEDIATELY);
// [6/8/2022 wwu]
2025-06-23 18:01:09 +08:00
///与数据模块的关系
2025-06-23 10:41:33 +08:00
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]
2025-06-23 18:01:09 +08:00
/// 获取所属项目
2025-06-23 10:41:33 +08:00
ODI ResultMsg getProjectOwner(M_ProjectDAO * &pprojectOwner);
// [6/20/2022 wwu]
2025-06-23 18:01:09 +08:00
/// 升版
2025-06-23 10:41:33 +08:00
ODI ResultMsg upgradeNewVersion(M_EntityModelDAO*& pNewEntityModel);//int & newVersionEntityModelID
// [6/25/2022 wwu]
2025-06-23 18:01:09 +08:00
/// 复制
///@para pNewEntityModel 需要设置复制后的基本信息但_ID需要为-1即不能Save过。
2025-06-23 10:41:33 +08:00
ODI ResultMsg copyTo(M_EntityModelDAO * & pNewEntityModel);
// [6/25/2022 wwu]
2025-06-23 18:01:09 +08:00
/// 生成实例
2025-06-23 10:41:33 +08:00
ODI ResultMsg createInstance(string instanceFileFolderPath,string instanceFileName);
// [9/4/2023 wwu]
2025-06-23 18:01:09 +08:00
///查询实例文件的模型和项目信息
2025-06-23 10:41:33 +08:00
static ODI ResultMsg getInstanceInfo(string instanceFilePath, M_EntityModelDAO*& pMEntityModel);
// [7/13/2022 wwu]
2025-06-23 18:01:09 +08:00
// 获取所有属性
2025-06-23 10:41:33 +08:00
ODI ResultMsg getNormalColumnList(list<M_NormalColumnDAO*> &nColList);
// [7/13/2022 wwu]
2025-06-23 18:01:09 +08:00
// 获取所有数据类
2025-06-23 10:41:33 +08:00
ODI ResultMsg getEntityTableList(list<M_EntityTableDAO*>& tableList);
// [8/30/2022 wwu]
2025-06-23 18:01:09 +08:00
// 获取同一project下同名称标识的模型最大版本号
2025-06-23 10:41:33 +08:00
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);
};
}