fix(nmNum): 收紧成果压力 Gauge 选择校验

- 非空压力 Gauge Code 必须唯一命中可参与历史计算的记录
- 拒绝仅包含一个压力点的选中压力记录
- 保持流量记录按井角色校验的现有规则
feature/nmNum-multi-gauge-record
lh 2 days ago
parent 011976390e
commit add2ec7b5f

@ -968,21 +968,21 @@ bool addUniquePayloadPath(
return true; return true;
} }
bool hasUniqueUsablePressureRecord( bool hasUniqueSelectablePressureRecord(
const QVector<nmPressureGaugeRecord>& vecRecords, const QVector<nmPressureGaugeRecord>& vecRecords,
const QString& sGaugeCode) const QString& sGaugeCode)
{ {
int nMatchCount = 0; int nMatchCount = 0;
bool bUsable = false; bool bSelectable = false;
for(int nIndex = 0; nIndex < vecRecords.size(); ++nIndex) for(int nIndex = 0; nIndex < vecRecords.size(); ++nIndex)
{ {
if(vecRecords[nIndex].sGaugeCode == sGaugeCode) if(vecRecords[nIndex].sGaugeCode == sGaugeCode)
{ {
++nMatchCount; ++nMatchCount;
bUsable = vecRecords[nIndex].eStatus == NM_GaugeRecord_Usable; bSelectable = nmIsSelectablePressureRecord(vecRecords[nIndex]);
} }
} }
return nMatchCount == 1 && bUsable; return nMatchCount == 1 && bSelectable;
} }
const nmFlowGaugeRecord* findUniqueUsableFlowRecord( const nmFlowGaugeRecord* findUniqueUsableFlowRecord(
@ -1015,7 +1015,7 @@ bool isWellGaugeSelectionValid(
const QVector<nmPressureGaugeRecord> vecPressureRecords = const QVector<nmPressureGaugeRecord> vecPressureRecords =
pWell->getPressureRecords(); pWell->getPressureRecords();
if(!sPressureCode.isEmpty() && if(!sPressureCode.isEmpty() &&
!hasUniqueUsablePressureRecord(vecPressureRecords, sPressureCode)) !hasUniqueSelectablePressureRecord(vecPressureRecords, sPressureCode))
{ {
return false; return false;
} }
@ -6759,9 +6759,9 @@ bool nmDataAnalyzeManager::loadNmResultV3InPlace(
const QString sPressureCode = const QString sPressureCode =
pWell->getSelectedPressureGaugeCode(); pWell->getSelectedPressureGaugeCode();
if(!sPressureCode.isEmpty() && if(!sPressureCode.isEmpty() &&
!hasUniqueUsablePressureRecord( !hasUniqueSelectablePressureRecord(
oGaugeData.m_vecPressureRecords, sPressureCode)) { oGaugeData.m_vecPressureRecords, sPressureCode)) {
qWarning() << "Loaded selected pressure Gauge Code is dangling:" qWarning() << "Loaded selected pressure Gauge Code is invalid:"
<< sPressureCode; << sPressureCode;
return false; return false;
} }

Loading…
Cancel
Save