137 lines
5.8 KiB
C++
137 lines
5.8 KiB
C++
#pragma once
|
||
#include "M_ObjectDAO.h"
|
||
|
||
namespace DBPlatformSpace
|
||
{
|
||
class M_NormalColumnDAO;
|
||
class M_EntityModelDAO;
|
||
|
||
class M_FindByInterfaceDAO;
|
||
class M_DelByInterfaceDAO;
|
||
|
||
class M_FolderDAO;
|
||
|
||
class M_SceneInfoDAO;
|
||
|
||
/// M_数据类
|
||
class M_EntityTableDAO : public M_ObjectDAO
|
||
{
|
||
public:
|
||
|
||
//说明:基类里的_name用于保存 “模型标识”
|
||
|
||
|
||
int _addVersion; ///<创建版本号
|
||
int _countType; ///<数量类型
|
||
int _delVersion; ///<删除版本号
|
||
string _description; ///<描述
|
||
string _displayName; ///<显示名称
|
||
string _innerName; ///<内部列名称
|
||
int _isDeleted; ///<是否删除
|
||
int _type; ///<数据类类型(普通数据类,关系数据类等)
|
||
int _version; ///<版本号
|
||
|
||
string _whiteBoxType; ///<白盒测试代码类型
|
||
|
||
//组件内部用临时变量
|
||
int _isBelongToDictionaryModel; ///<是否为数据字典模型的数据类(组件内部用临时变量)
|
||
|
||
ODI M_EntityTableDAO();
|
||
virtual ODI ~M_EntityTableDAO();
|
||
|
||
|
||
virtual ODI ResultMsg save(int commitType = COMMIT_T_IMMEDIATELY);
|
||
|
||
|
||
// [6/25/2022 wwu] //
|
||
/// 此自删除接口,会将下属的数据模型一同删除
|
||
// 替换delself()
|
||
/*virtual ODI ResultMsg delself(int commitType = COMMIT_T_IMMEDIATELY);*/
|
||
///@para out vv_resultDeleted 删除结果[数据类型,数据ID] 数据类型在 M_ObjectDAO 头文件中有预定义 // [7/19/2022 wwu]
|
||
///@para out strResultIDDeleted 删除结果: 数据类型数值1,数据ID1#数据类型数值2,数据ID2#...... // [7/19/2022 wwu]
|
||
///@note #define MOBJECT_CLASS_T_ENTITYTABLE 1
|
||
///@ #define MOBJECT_CLASS_T_NORMALCOLUMN 2
|
||
virtual ODI ResultMsg delFromEntityModel(M_EntityModelDAO* pModleOwner,string &strResultIDDeleted); // vector<vector<int>> &vv_resultDeleted
|
||
|
||
///与数据属性的关系
|
||
ODI ResultMsg addNormalColumnDAO(M_EntityModelDAO * pModleOwner, M_NormalColumnDAO* pNorColumn, int commitType = COMMIT_T_IMMEDIATELY);//注意保存前,将pNorColumn的addVersion设置为当前数据模型的Version
|
||
//ODI ResultMsg removeNormalColumnDAO(M_NormalColumnDAO* pNorColumn, int commitType = COMMIT_T_IMMEDIATELY);
|
||
ODI ResultMsg getNormalColumnDAOList(M_EntityModelDAO* pModleOwner, list< M_NormalColumnDAO*>& emlist);
|
||
|
||
|
||
// [6/26/2022 wwu]
|
||
///与数据模型的关系
|
||
ODI ResultMsg getEntityModelOwners(list< M_EntityModelDAO *> &modelOwnerList);
|
||
|
||
ODI ResultMsg getMaxVersionEntityModelOwner(M_EntityModelDAO*& pMmodelOwner);
|
||
|
||
|
||
|
||
// [6/25/2022 wwu]
|
||
/// 数据字典类相关操作
|
||
/// [9/5/2023 wwu] 分隔符由原来的逗号改为“@#@”
|
||
ODI bool isBelongToDictionaryModel();
|
||
ODI ResultMsg importData(list<M_NormalColumnDAO*> columnList, list<string> valueList); //string 是该类所有值的 @#@分隔字符串
|
||
ODI ResultMsg exportData(list<M_NormalColumnDAO*>& columnList, list<string> &valueList);//string 是该类所有值的 @#@分隔字符串
|
||
|
||
|
||
// [9/5/2023 wwu]
|
||
/// 当前工作文件CurrentWorkDB的数据表数据
|
||
/// 注:删除的不是M_EntityTableDAO本身表中数据,是工作文件中的实际业务数据
|
||
ODI ResultMsg getData(list<M_NormalColumnDAO*>& columnList, list<string>& valueList);
|
||
ODI ResultMsg saveData(list<M_NormalColumnDAO*> columnList, list<string> valueList);
|
||
ODI ResultMsg delData(vector<int>idToDelList);
|
||
// [9/13/2023 wwu]
|
||
ODI ResultMsg delAllData();
|
||
|
||
// [5/31/2024 wwu]
|
||
///说明:saveBlobData()执行之前,需要先执行saveData()保存其他非Blob数据
|
||
/// char * 直接转换为double*用即可
|
||
ODI ResultMsg saveBlobData(M_NormalColumnDAO* pcolBlob,double * pData,int dataSize,int dataId);
|
||
ODI ResultMsg getBlobData(M_NormalColumnDAO* pcolBlob, int dataId, double* &pData, int &dataSize);
|
||
|
||
|
||
// [6/30/2022 wwu]
|
||
///与 查询接口 的关系
|
||
ODI ResultMsg addFindByInterfaceDAO(M_FindByInterfaceDAO* pFindByI, int commitType = COMMIT_T_IMMEDIATELY);//注意保存前,将pNorColumn的addVersion设置为当前数据模型的Version
|
||
ODI ResultMsg removeFindByInterfaceDAO(M_FindByInterfaceDAO* pFindByI, int commitType = COMMIT_T_IMMEDIATELY);
|
||
ODI ResultMsg getFindByInterfaceDAOList(M_EntityModelDAO* pModleOwner, list< M_FindByInterfaceDAO*>& pFindByIlist);
|
||
|
||
|
||
///与 删除接口 的关系
|
||
ODI ResultMsg addDelByInterfaceDAO(M_DelByInterfaceDAO* pDelByI, int commitType = COMMIT_T_IMMEDIATELY);//注意保存前,将pNorColumn的addVersion设置为当前数据模型的Version
|
||
ODI ResultMsg removeDelByInterfaceDAO(M_DelByInterfaceDAO* pDelByI, int commitType = COMMIT_T_IMMEDIATELY);
|
||
ODI ResultMsg getDelByInterfaceDAOList(M_EntityModelDAO* pModleOwner, list< M_DelByInterfaceDAO*>& pDelByIlist);
|
||
|
||
|
||
// [7/3/2022 wwu]
|
||
// 代码生成
|
||
ODI ResultMsg CreateCode(M_EntityModelDAO* pModleOwner, string codeFileFolderPath, list<string> & resultCodeFilesPathList); //说明:只是把粗糙版现有功能迁移过来,FindBy和DelBy还未补充完善进去。后续更新,接口形式不影响。
|
||
// [9/13/2023 wwu]
|
||
ODI static string tableNameToDAOName(string entityTable_innerName);
|
||
|
||
|
||
// [7/7/2022 wwu]
|
||
// 与 数据模块 Folder 的关系
|
||
ODI ResultMsg getFolderOwner(M_EntityModelDAO* pModleOwner, list<M_FolderDAO *>&pFolderOwnerList);
|
||
|
||
|
||
// [7/13/2022 wwu]
|
||
// 关联属性
|
||
ODI ResultMsg getRelationInfo(M_EntityModelDAO* pModleOwner, list<M_NormalColumnDAO*> &nRColList, list<M_EntityTableDAO*> &mnRTableList);
|
||
ODI virtual Mapper* createMapper();
|
||
ODI static DAO* createObject();
|
||
|
||
// [7/20/2022 wwu]
|
||
///与数据字典数据的关系
|
||
ODI ResultMsg addSceneInfo(M_EntityModelDAO* pModleOwner, M_SceneInfoDAO* pSceneInfo, int commitType = COMMIT_T_IMMEDIATELY);
|
||
ODI ResultMsg getSceneInfoList(M_EntityModelDAO* pModleOwner, list< M_SceneInfoDAO*>& pSceneInfolist);
|
||
|
||
|
||
|
||
static ODI ResultMsg FindAll(list<M_EntityTableDAO*> & pnewlist);
|
||
|
||
static ODI ResultMsg FindByID(int id, M_EntityTableDAO * &pnewdao);
|
||
};
|
||
}
|