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.
nmWATI/Include/mData/mProjectManager/DataModels/ZxDataWell.h

158 lines
4.4 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 "mProjectManager_global.h"
#include "ZxDataObjectStrExUser.h"
class ZxDataJobInfo;
class ZxRstJobUtils;
class ZxDataGaugeP;
class ZxDataGaugeF;
// 井对象
class M_PROJECTMANAGER_EXPORT ZxDataWell :
public ZxDataObjectStrExUser
{
ZX_DECLARE_DYNAMIC
public:
ZxDataWell(ZxDataObject* parent = 0);
ZxDataWell(const ZxDataWell &other);
virtual ~ZxDataWell();
ZxDataWell &operator = (const ZxDataWell &other);
bool operator == (const ZxDataWell &other) const;
bool operator != (const ZxDataWell &other) const;
signals:
void sigThisss(int);
public:
// 接口
virtual ZxDataObject* clone();
virtual QString type() const;
// 加载保存
virtual bool _parseData(VecVariant vec, int& n);
virtual bool _sumUpData(VecVariant& vec);
// 序列化
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
// Icon
virtual QIcon getIcon(bool expanded) const;
// 该函数是加载子类对象仅仅加载code之类的关键信息
// 比如在建立树时,创建该节点。
virtual bool createChildren();
virtual bool createChildrenResults();
virtual bool createChildrenFluid();
virtual bool createChildrenRes();
virtual bool createChildrenLayer();
virtual bool createChildrenGuageP();
virtual bool createChildrenGuageF();
virtual bool createChildrenGas();
// 试井之星Other
virtual bool createChildrenOther();
// 数据表编辑保存之后,刷新当前井的内存
void fuzzyChildrenOf(VVecVariant& vvec, QString sTable);
public:
// 油田
void setFieldCode(const QString& s);
QString getFieldCode() const;
void setFieldName(const QString& s);
QString getFieldName() const;
// 区块
void setBlockCode(const QString &sBlockCode);
QString getBlockCode() const;
void setBlockName(const QString &sBlockName);
QString getBlockName() const;
// 井类型
void setWellTypeCn(const QString &sWellType);
QString getWellTypeCn() const;
QString getWellTypeEn() const;
int getWellTypeIndex() const;
bool isGasWell()const;
void makesureWellType();
// 井类别
void setWellClass(const QString &sWellClass);
QString getWellClass() const;
// 井半径
void setWellRadius(const float &fWellRadius);
float getWellRadius() const;
// 井坐标X
void setLocationX(const float &fLocationX);
float getLocationX() const;
// 井坐标Y
void setLocationY(const float &fLocationY);
float getLocationY() const;
// 井描述
void setWellRemark(const QString &sWellRemark);
QString getWellRemark() const;
// 基准时间
// void setBaseDT(const QString& dt);
// QString getBaseDT() const;
/// @brief 根据参数sPara获取当前井的参数值主要是数据库里面
/// @param sPara:传入的参数,
/// 以英文方式,比如"h" "Ct"等,大小写不敏感
/// @param f:返回值,如果有
bool getValueOfPara(QString sPara, double& d);
bool getValueOfPara(QString sPara, QVariant& o);
// 获取Well/Job后台的路径
static QString getJobDirOf(ZxDataWell* pWell,
ZxRstJobUtils* pJob = NULL,
QString sWndID = "");
private:
// 井基础、储层、流体数据表获取数据
bool getDbValueFromBasic(QString s, double& d);
bool getDbValueFromRes(QString s, double& d);
bool getDbValueFromFluid(QString s, double& d);
bool getDbValueFromOther(QString s, double& d);
bool getDbValueFromBasic(QString s, QVariant& v);
bool getDbValueFromRes(QString s, QVariant& v);
bool getDbValueFromFluid(QString s, QVariant& v);
bool getDbValueFromOther(QString s, QVariant& v);
protected:
QString m_sFieldCode; //油田代码
QString m_sFieldName; //油田名称
QString m_sBlockCode; //区块代码
QString m_sBlockName; //区块名称
// QString m_sWellCode; //井号
// QString m_sWellName; //井名
QString m_sWellTypeCn; //井型,这是中文
QString m_sWellTypeEn; //井型英文不涉及序列化根据中文以及ini进行转换
QString m_sWellClass; //井类别
float m_fWellRadius; //井半径
float m_fLocationX; //井坐标X
float m_fLocationY; //井坐标Y
// QString m_dtBase; //基准时间
};