fix(nmNum): 修正主井多相工作数据生效条件

- 根据 Flow Gauge Code 和四向量矩阵结构决定工作数据是否生效
- 移除对流动段多相标志的额外依赖
- 精简数据上下文 Provider 和 Controller 的多相数据接口
feature/nmNum-multi-gauge-record
lh 1 day ago
parent 7012a79422
commit 5d3012abb7

@ -28,7 +28,6 @@ class NM_DATA_EXPORT nmDataAnalyzeContextProvider {
// 数据按纵向向量组织:[0]时间、[1]油、[2]气、[3]水;这里只复制窗口快照,不修改业务数据。
virtual bool getCurrentSegmentMultiPhaseData(
void* pFitting,
bool& bMultiPhase,
QString& sFlowCurveName,
VVecDouble& vvecMultiPhaseData) = 0;

@ -22,7 +22,6 @@ class NM_SUB_WND_EXPORT nmSubWndDataAnalyzeController : public nmDataAnalyzeCont
// 获取当前流动段分析中的多相流量矩阵
bool getCurrentSegmentMultiPhaseData(
void* pFitting,
bool& bMultiPhase,
QString& sFlowCurveName,
VVecDouble& vvecMultiPhaseData);

@ -1971,11 +1971,10 @@ void nmDataAnalyzeManager::initCurWellData()
}
// 主井必须跟随当前流动段分析实际使用的压力、流量 Gauge Code
// 而不是默认选择工程树中的第一条记录。多相时再覆盖同 Code 工作矩阵
// 而不是默认选择工程树中的第一条记录。有效的四向量工作矩阵覆盖同 Code 记录
QString sCurrentPressureGaugeCode;
QString sCurrentFlowGaugeCode;
int nCurrentFlowIndex = 0;
bool bCurrentMultiPhase = false;
VVecDouble vvecCurrentMultiPhaseData;
iSubWndFitting* pSubWndFitting = nmDataAnalyzeManager::getCurrentFitting();
nmDataAnalyzeContextProvider* pContextProvider =
@ -1989,10 +1988,8 @@ void nmDataAnalyzeManager::initCurWellData()
sCurrentFlowGaugeCode);
if(pContextProvider->getCurrentSegmentMultiPhaseData(
pSubWndFitting,
bCurrentMultiPhase,
sCurrentFlowGaugeCode,
vvecCurrentMultiPhaseData) &&
bCurrentMultiPhase) {
vvecCurrentMultiPhaseData)) {
applyCurrentMultiPhaseFlowData(
vecFlowRecords,
sCurrentFlowGaugeCode,

@ -93,11 +93,9 @@ bool nmSubWndDataAnalyzeController::getCurrentSegmentGaugeCodes(
// 复制当前流动段分析的多相流量快照,保持 nmData 与具体窗口类之间的模块边界。
bool nmSubWndDataAnalyzeController::getCurrentSegmentMultiPhaseData(
void* pFitting,
bool& bMultiPhase,
QString& sFlowCurveName,
VVecDouble& vvecMultiPhaseData)
{
bMultiPhase = false;
sFlowCurveName.clear();
vvecMultiPhaseData.clear();
@ -111,7 +109,6 @@ bool nmSubWndDataAnalyzeController::getCurrentSegmentMultiPhaseData(
return false;
}
bMultiPhase = pSegInfo->m_bMultiPhase;
sFlowCurveName = pSegInfo->m_sCurveNameF;
vvecMultiPhaseData = pSegInfo->m_vvecMpData;
return true;

Loading…
Cancel
Save