计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
oce-validation-engine【效率与协作】Use the OpenConstructionERP validation engine: rule packs (BOQ quality, DIN 276, NRM, GAEB, MasterFormat, DPGF) that check estimates at import time and on demand. Use when verifying BOQ correctness or writing custom validation rules.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
"Validation is a first-class citizen." Every BOQ import (Excel/CSV/GAEB X83/X84) runs the configured rule packs at import time, so violations surface immediately — not when a user is staring at row 452.
| Pack | Checks |
|---|---|
boq_quality | required fields, unit consistency, duplicate codes, quantity sanity |
| DIN 276 | cost-group codes valid, hierarchy consistent |
| NRM | element codes, measurement rules |
| GAEB | X83/X84 structure, item references |
| MasterFormat / DPGF | classification codes |
Configure the default set via OE_DEFAULT_VALIDATION_RULE_SETS (default ["boq_quality"]); run on demand with POST /api/v1/boqs/{id}/validate/.
A rule is: condition + severity + message. Example patterns:
# pseudo-rule: labour share sanity on a BOQ line
def rule_labour_share(line):
labour = line.components_labour_cost
total = line.rate
if total > 0 and labour / total > 0.95:
return {"severity": "warning",
"message": f"Line {line.code}: labour is {labour/total:.0%} of rate"}
Reconciliation rules (the ones that actually catch data problems):
qty × unit_price = cost per component line (tolerance ±0.01 or rounding-aware).Σ components = total_resource_cost_per_position (markup applied on top).import_inline_validation (env) runs packs during upload./boqs/{id}/validate/ returns violations with severity.error-severity, warn on warning — never block a user silently.ai-agent-orchestration).