|
|
#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; //基准时间
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|