DPS/include/M_EntityTableDAO.h

137 lines
5.8 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_NormalColumnDAO;
class M_EntityModelDAO;
class M_FindByInterfaceDAO;
class M_DelByInterfaceDAO;
class M_FolderDAO;
class M_SceneInfoDAO;
2025-06-23 18:01:09 +08:00
/// M_数据类
2025-06-23 10:41:33 +08:00
class M_EntityTableDAO : 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
int _addVersion; ///<创建版本号
int _countType; ///<数量类型
int _delVersion; ///<删除版本号
string _description; ///<描述
string _displayName; ///<显示名称
string _innerName; ///<内部列名称
int _isDeleted; ///<是否删除
int _type; ///<数据类类型(普通数据类,关系数据类等)
int _version; ///<版本号
2025-06-23 10:41:33 +08:00
2025-06-23 18:01:09 +08:00
string _whiteBoxType; ///<白盒测试代码类型
2025-06-23 10:41:33 +08:00
2025-06-23 18:01:09 +08:00
//组件内部用临时变量
int _isBelongToDictionaryModel; ///<是否为数据字典模型的数据类(组件内部用临时变量)
2025-06-23 10:41:33 +08:00
ODI M_EntityTableDAO();
virtual ODI ~M_EntityTableDAO();
virtual ODI ResultMsg save(int commitType = COMMIT_T_IMMEDIATELY);
// [6/25/2022 wwu] //
2025-06-23 18:01:09 +08:00
/// 此自删除接口,会将下属的数据模型一同删除
// 替换delself()
2025-06-23 10:41:33 +08:00
/*virtual ODI ResultMsg delself(int commitType = COMMIT_T_IMMEDIATELY);*/
2025-06-23 18:01:09 +08:00
///@para out vv_resultDeleted 删除结果[数据类型数据ID] 数据类型在 M_ObjectDAO 头文件中有预定义 // [7/19/2022 wwu]
///@para out strResultIDDeleted 删除结果: 数据类型数值1,数据ID1#数据类型数值2,数据ID2#...... // [7/19/2022 wwu]
2025-06-23 10:41:33 +08:00
///@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
2025-06-23 18:01:09 +08:00
///与数据属性的关系
ODI ResultMsg addNormalColumnDAO(M_EntityModelDAO * pModleOwner, M_NormalColumnDAO* pNorColumn, int commitType = COMMIT_T_IMMEDIATELY);//注意保存前将pNorColumn的addVersion设置为当前数据模型的Version
2025-06-23 10:41:33 +08:00
//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]
2025-06-23 18:01:09 +08:00
///与数据模型的关系
2025-06-23 10:41:33 +08:00
ODI ResultMsg getEntityModelOwners(list< M_EntityModelDAO *> &modelOwnerList);
ODI ResultMsg getMaxVersionEntityModelOwner(M_EntityModelDAO*& pMmodelOwner);
// [6/25/2022 wwu]
2025-06-23 18:01:09 +08:00
/// 数据字典类相关操作
/// [9/5/2023 wwu] 分隔符由原来的逗号改为“@#@”
2025-06-23 10:41:33 +08:00
ODI bool isBelongToDictionaryModel();
2025-06-23 18:01:09 +08:00
ODI ResultMsg importData(list<M_NormalColumnDAO*> columnList, list<string> valueList); //string 是该类所有值的 @#@分隔字符串
ODI ResultMsg exportData(list<M_NormalColumnDAO*>& columnList, list<string> &valueList);//string 是该类所有值的 @#@分隔字符串
2025-06-23 10:41:33 +08:00
// [9/5/2023 wwu]
2025-06-23 18:01:09 +08:00
/// 当前工作文件CurrentWorkDB的数据表数据
/// 注删除的不是M_EntityTableDAO本身表中数据是工作文件中的实际业务数据
2025-06-23 10:41:33 +08:00
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]
2025-06-23 18:01:09 +08:00
///说明saveBlobData()执行之前需要先执行saveData保存其他非Blob数据
/// char * 直接转换为double*用即可
2025-06-23 10:41:33 +08:00
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]
2025-06-23 18:01:09 +08:00
///与 查询接口 的关系
ODI ResultMsg addFindByInterfaceDAO(M_FindByInterfaceDAO* pFindByI, int commitType = COMMIT_T_IMMEDIATELY);//注意保存前将pNorColumn的addVersion设置为当前数据模型的Version
2025-06-23 10:41:33 +08:00
ODI ResultMsg removeFindByInterfaceDAO(M_FindByInterfaceDAO* pFindByI, int commitType = COMMIT_T_IMMEDIATELY);
ODI ResultMsg getFindByInterfaceDAOList(M_EntityModelDAO* pModleOwner, list< M_FindByInterfaceDAO*>& pFindByIlist);
2025-06-23 18:01:09 +08:00
///与 删除接口 的关系
ODI ResultMsg addDelByInterfaceDAO(M_DelByInterfaceDAO* pDelByI, int commitType = COMMIT_T_IMMEDIATELY);//注意保存前将pNorColumn的addVersion设置为当前数据模型的Version
2025-06-23 10:41:33 +08:00
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]
2025-06-23 18:01:09 +08:00
// 代码生成
ODI ResultMsg CreateCode(M_EntityModelDAO* pModleOwner, string codeFileFolderPath, list<string> & resultCodeFilesPathList); //说明只是把粗糙版现有功能迁移过来FindBy和DelBy还未补充完善进去。后续更新接口形式不影响。
2025-06-23 10:41:33 +08:00
// [9/13/2023 wwu]
ODI static string tableNameToDAOName(string entityTable_innerName);
// [7/7/2022 wwu]
2025-06-23 18:01:09 +08:00
// 与 数据模块 Folder 的关系
2025-06-23 10:41:33 +08:00
ODI ResultMsg getFolderOwner(M_EntityModelDAO* pModleOwner, list<M_FolderDAO *>&pFolderOwnerList);
// [7/13/2022 wwu]
2025-06-23 18:01:09 +08:00
// 关联属性
2025-06-23 10:41:33 +08:00
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]
2025-06-23 18:01:09 +08:00
///与数据字典数据的关系
2025-06-23 10:41:33 +08:00
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);
};
}