DPS/include/M_EntityTableDAO.h

137 lines
5.8 KiB
C++
Raw 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_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);
};
}