You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWTAI-Platform/Include/mGui/mGuiSysManager/iDataSaveHelper.h

88 lines
3.0 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#include "mModuleDefines.h"
#include "mGuiSysManager_global.h"
class QSqlDatabase;
class ZxDataWell;
class ZxDataObject;
// 井数据保存的辅助Helper类
class M_GUI_SYSMANAGER_EXPORT iDataSaveHelper : public QObject
{
Q_OBJECT
public:
iDataSaveHelper();
public:
/// @brief 把单例中的数据存入数据库(当前井)
/// @param pDataWell 保存至哪口井
/// @param bDataCommonOverwrite 对于基础表格类数据,是否覆盖式保存,
/// true:如果存在则覆盖,如果不存在,则新建
/// false:新建
/// @param bDataPfOverwrite 对于压力流量类数据,是否覆盖式保存,
/// true:如果存在则覆盖,如果不存在,则新建
/// false:新建
/// @note 注:此处所说的单例,指的是数据批量准备时的单例 mToolDataStore::instance()
static bool saveInstanceDataToDb(ZxDataWell* pDataWell, \
bool bDataCommonOverwrite, \
bool bDataPfOverwrite);
private:
/// @brief 把单例中的常规数据存入
/// @param pDataWell 保存至哪口井
/// @param bDataOverwrite 是否覆盖式保存,
/// true:如果存在则覆盖,如果不存在,则新建
/// false:新建
/// @param listTablesToFresh 如果保存成功,则缓存对应的表
/// @note 注:此处所说的单例,指的是数据批量准备时的单例 mToolDataStore::instance()
static bool saveDataCommonToDb(ZxDataWell* pDataWell, \
bool bDataOverwrite, \
QStringList& listTablesToFresh);
/// @brief 把单例中的压力流量数据存入
/// @param pDataWell 保存至哪口井
/// @param bDataOverwrite 是否覆盖式保存,
/// true:如果存在则覆盖,如果不存在,则新建
/// false:新建
/// @param listTablesToFresh 如果保存成功,则缓存对应的表
/// @note 注:此处所说的单例,指的是数据批量准备时的单例 mToolDataStore::instance()
static bool saveDataPfToDb(ZxDataWell* pDataWell, \
bool bDataOverwrite, \
QStringList& listTablesToFresh);
private:
/// @brief 保存单一PF数据
/// @param pDataWell 保存至哪口井
/// @param pObj 数据对象
/// @param vvec 数据部分
/// @param bOverwrited 是否覆盖式保存
static bool saveOneGaugeObj(ZxDataWell* pDataWell, \
ZxDataObject* pObj, \
const VVecVariant& vvec, \
bool bOverwrited);
/// @brief 根据表名等获取或创建数据对象
/// @param pDataWell 保存至哪口井
/// @param sTable 表名
/// @param bDataOverwrite 是否覆盖式保存,
/// true:如果存在则覆盖,如果不存在,则新建
/// false:新建
/// @param bOverwrited 是否覆盖式保存,这是out返回结果,
/// 会根据具体情况,确认,真实的是否是 覆盖模式,即修改pObj模式
static ZxDataObject* getOrCreateDataObjOf(ZxDataWell* pDataWell, \
const QString& sTable, \
bool bDataOverwrite, \
bool& bOverwrited);
private:
};