#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: };