用户令 (2026-09-18): /detail 各页面不许用旧版产出补, 必须由 data/raw 重算;
旧版产物只可参照呈现样式与内容。逐页依赖见下表 (自动生成段)。
生成端:
python scripts/detail_deps.py --write|场站rudong|产物仓outputs/rudong|盘上 1,775 件用户令 (2026-09-18): /detail 各页面不许用旧版产出补, 只能参照旧版产物的呈现样式与内容, 数值必须由
data/raw重算。本表把每页的取数接口与产物件逐条列清, 缺的写明怎么补。
| 页签 | 页面 | 取数接口 |
|---|---|---|
| overview | 总览 | /api/fleet |
| energy | 发电与损失 | /api/fleet |
| component | 部件与系统 | /api/fleet |
/api/problem |
||
/api/turbine |
||
| vibration | 振动评估(CMS) | /api/fleet |
/api/vibcms |
||
| generation | 特性曲线 | /api/curves |
| fault | 故障与可用率 | /api/fleet |
| decision | 决策链 | /api/fleet |
/api/ont_chain |
||
| assistant | 问答 | /api/fleet |
/api/ask |
||
/api/ask_status |
||
/api/ask_models |
||
/api/facts |
||
/api/facts/claim |
||
| report | 报告 | /api/fleet |
/api/facts |
||
/api/rpt_compose |
||
| system | 系统自查 | /api/fleet |
/api/maint_survey |
注: /api/maint_std /api/maint_framework /api/dq_findings /api/ontology 属经典页 (/?…, 组件根), /v2 工作台不取它们 —— 但同一批本体产物 (ontology/objects.json) 仍然决定着它们能不能出数, 故一并列在 §2。
| 接口 | 产物 | 件 | 大小 | 台账来源 | 生成端(族) | 判定 |
|---|---|---|---|---|---|---|
| /api/fleet | windscada/temp_monthly.parquet ✅必需 |
1 | 0.1 MB | raw-derived | scripts/windscada_monthly_build.py (scada_monthly) | 在位 |
windscada/alarms.parquet ✅必需 |
1 | 0.9 MB | raw-derived | scripts/windscada_alarms_ingest.py (scada_alarms) | 在位 | |
windscada/loss_monthly.parquet ✅必需 |
1 | 0.1 MB | raw-derived | src/windscada/perf/powercurve.py (scada_derived) | 在位 | |
windscada/powercurve_bins.parquet ✅必需 |
1 | 0.0 MB | raw-derived | src/windscada/perf/powercurve.py (scada_derived) | 在位 | |
windscada/powercurve_dev.parquet ✅必需 |
1 | 0.0 MB | raw-derived | src/windscada/perf/powercurve.py (scada_derived) | 在位 | |
| /api/fleet | windscada/*.parquet ○可选 |
17 | 2.0 MB | raw-derived | scripts/windscada_alarms_ingest.py (scada_alarms·scada_derived·scada_oil·scada_monthly·scada_workorders) | 在位 |
ontology/turbine_params.parquet ○可选 |
1 | 0.1 MB | raw-derived | src/ontology/kb_ingest.py (ontology_core) | 在位 | |
m5_cms_tcm/handoff_vibration_v2.json ○可选 |
0 | 0.0 MB | — | — (vib_handoff_and_scans) | 缺(页面降级) | |
m5_cms_tcm/fleet_scalar_z.parquet ○可选 |
1 | 0.7 MB | raw-derived | scripts/rudong_fusion_run.py (vib_fleet_scalar_z) | 在位 | |
pitch/pitch_daily.parquet ○可选 |
0 | 0.0 MB | — | — (pitch_shipped) | 缺(页面降级) | |
pitch/pitch_zero_monthly.parquet ○可选 |
0 | 0.0 MB | — | — (pitch_shipped) | 缺(页面降级) | |
| /api/curves | windscada/powercurve_bins.parquet ✅必需 |
1 | 0.0 MB | raw-derived | src/windscada/perf/powercurve.py (scada_derived) | 在位 |
| /api/curves | windscada/curve_lenses.parquet ○可选 |
1 | 0.1 MB | raw-derived | src/windscada/perf/powercurve.py (scada_derived) | 在位 |
windscada/curve_liveness.parquet ○可选 |
1 | 0.0 MB | raw-derived | src/windscada/perf/powercurve.py (scada_derived) | 在位 | |
windscada/control_profile.parquet ○可选 |
1 | 0.0 MB | raw-derived | src/windscada/perf/powercurve.py (scada_derived) | 在位 | |
windscada/hydraulic_accum.parquet ○可选 |
1 | 0.0 MB | raw-derived | src/windscada/perf/powercurve.py (scada_derived) | 在位 | |
| /api/problem | windscada/alarms.parquet ✅必需 |
1 | 0.9 MB | raw-derived | scripts/windscada_alarms_ingest.py (scada_alarms) | 在位 |
| /api/problem | ontology/objects.json ○可选 |
1 | 4.3 MB | raw-derived | src/ontology/kb_ingest.py (ontology_core) | 在位 |
windscada/workorders.parquet ○可选 |
1 | 0.5 MB | raw-derived | scripts/windscada_workorder_ingest.py (scada_workorders) | 在位 | |
| /api/turbine | windscada/alarms.parquet ✅必需 |
1 | 0.9 MB | raw-derived | scripts/windscada_alarms_ingest.py (scada_alarms) | 在位 |
| /api/turbine | ontology/objects.json ○可选 |
1 | 4.3 MB | raw-derived | src/ontology/kb_ingest.py (ontology_core) | 在位 |
windscada/workorders.parquet ○可选 |
1 | 0.5 MB | raw-derived | scripts/windscada_workorder_ingest.py (scada_workorders) | 在位 | |
| /api/vibcms | windcms/报告_CMS振动状态评估报告_*.md ✅必需 |
1 | 0.0 MB | raw-derived | src/windcms/report_std.py (windcms_report_std) | 在位 |
| /api/vibcms | m5_cms_tcm/handoff_vibration_v2.json ○可选 |
0 | 0.0 MB | — | — (vib_handoff_and_scans) | 缺(页面降级) |
windcms/cache/* ○可选 |
1 | 2.2 MB | raw-derived | src/windcms/data.py (windcms_cache) | 在位 | |
| /api/maint_survey | ontology/objects.json ✅必需 |
1 | 4.3 MB | raw-derived | src/ontology/kb_ingest.py (ontology_core) | 在位 |
| /api/maint_std | ontology/objects.json ✅必需 |
1 | 4.3 MB | raw-derived | src/ontology/kb_ingest.py (ontology_core) | 在位 |
| /api/maint_framework | ontology/objects.json ✅必需 |
1 | 4.3 MB | raw-derived | src/ontology/kb_ingest.py (ontology_core) | 在位 |
| /api/dq_findings | ontology/objects.json ✅必需 |
1 | 4.3 MB | raw-derived | src/ontology/kb_ingest.py (ontology_core) | 在位 |
| /api/ont_chain | ontology/objects.json ✅必需 |
1 | 4.3 MB | raw-derived | src/ontology/kb_ingest.py (ontology_core) | 在位 |
| /api/ontology | ontology/objects.json ✅必需 |
1 | 4.3 MB | raw-derived | src/ontology/kb_ingest.py (ontology_core) | 在位 |
| /api/facts | guanlan/facts_contract_v0.json ✅必需 |
0 | 0.0 MB | — | — (guanlan_contract) | 缺 |
guanlan/derived/detail_cards.json ✅必需 |
0 | 0.0 MB | — | — (guanlan_contract) | 缺 | |
| /api/facts | guanlan/derived/qa_refs.json ○可选 |
0 | 0.0 MB | — | — (guanlan_contract) | 缺(页面降级) |
guanlan/derived/portal_claims.json ○可选 |
0 | 0.0 MB | — | — (guanlan_contract) | 缺(页面降级) |
| 接口 | 缺件 | 必需 | 生成端 | 能否由 data/raw 重算 |
|---|---|---|---|---|
/api/fleet |
m5_cms_tcm/handoff_vibration_v2.json |
否 | (无生成端) | 不能: 振动六层链四步脚本未随包(oem_frequency_scan 等)⇒ 运行期不从交付包补(用户令 2026-09-17 ⇒ 需研发补生成端 |
/api/fleet |
pitch/pitch_daily.parquet |
否 | (无生成端) | 不能: 无生成端 ⇒ 运行期不从交付包补(用户令 2026-09-17), 页面降级; 要出件须研发补生成端 ⇒ 需研发补生成端 |
/api/fleet |
pitch/pitch_zero_monthly.parquet |
否 | (无生成端) | 不能: 无生成端 ⇒ 运行期不从交付包补(用户令 2026-09-17), 页面降级; 要出件须研发补生成端 ⇒ 需研发补生成端 |
/api/vibcms |
m5_cms_tcm/handoff_vibration_v2.json |
否 | (无生成端) | 不能: 振动六层链四步脚本未随包(oem_frequency_scan 等)⇒ 运行期不从交付包补(用户令 2026-09-17 ⇒ 需研发补生成端 |
/api/facts |
guanlan/facts_contract_v0.json |
是 | (无生成端) | 不能: 派生链的中间层: 它的"输入"本身是产物而非 data/raw ⇒ 与 raw 之间隔着不止一跳; 运行期不从交付包补( ⇒ 需研发补生成端 |
/api/facts |
guanlan/derived/detail_cards.json |
是 | (无生成端) | 不能: 派生链的中间层: 它的"输入"本身是产物而非 data/raw ⇒ 与 raw 之间隔着不止一跳; 运行期不从交付包补( ⇒ 需研发补生成端 |
/api/facts |
guanlan/derived/qa_refs.json |
否 | (无生成端) | 不能: 派生链的中间层: 它的"输入"本身是产物而非 data/raw ⇒ 与 raw 之间隔着不止一跳; 运行期不从交付包补( ⇒ 需研发补生成端 |
/api/facts |
guanlan/derived/portal_claims.json |
否 | (无生成端) | 不能: 派生链的中间层: 它的"输入"本身是产物而非 data/raw ⇒ 与 raw 之间隔着不止一跳; 运行期不从交付包补( ⇒ 需研发补生成端 |
| 产物族 | 输入 (data/raw/<场站>/…) | 生成端 |
|---|---|---|
| scada_monthly | scada_10min | scripts/windscada_monthly_build.py |
| scada_alarms | 故障报警 | scripts/windscada_alarms_ingest.py |
| scada_derived | scada_10min | src/windscada/perf/powercurve.py |
| ontology_core | 西门子4.0技术资料 | src/ontology/kb_ingest.py |
| vib_handoff_and_scans | — | — |
| vib_fleet_scalar_z | m5_cms_tcm | scripts/rudong_fusion_run.py |
| pitch_shipped | — | — |
| scada_workorders | 风机故障记录 | scripts/windscada_workorder_ingest.py |
| guanlan_contract | — | — |
python scripts/detail_deps.py --probe # 实测在线接口 (页面同路径: 网关 → 组件 /v2)
python scripts/products_restore_missing.py --refresh # 重算后维护逐件来源台账
python scripts/rebuild_all.py # 全量重算 (链上含 ⑤a 台账维护 → ⑤ 反向呼应审计)
| 页签 | 接口 | 判定 | 实测 |
|---|---|---|---|
| overview | /api/fleet |
有数 | HTTP 200 · 55,698 B |
| energy | /api/fleet |
有数 | HTTP 200 · 55,698 B |
| component | /api/fleet |
有数 | HTTP 200 · 55,698 B |
/api/problem |
有数 | HTTP 200 · 16 B | |
/api/turbine |
有数 | HTTP 200 · 14,417 B | |
| vibration | /api/fleet |
有数 | HTTP 200 · 55,698 B |
/api/vibcms |
有数 | HTTP 200 · 6,797 B | |
| generation | /api/curves |
有数 | HTTP 200 · 23,913 B |
| fault | /api/fleet |
有数 | HTTP 200 · 55,698 B |
| decision | /api/fleet |
有数 | HTTP 200 · 55,698 B |
/api/ont_chain |
有数 | HTTP 200 · 288 B | |
| assistant | /api/fleet |
有数 | HTTP 200 · 55,698 B |
/api/ask |
有数 | HTTP 404 · 3 B | |
/api/ask_status |
有数 | HTTP 200 · 173 B | |
/api/ask_models |
有数 | HTTP 200 · 137 B | |
/api/facts |
报错 | HTTP 503 · facts derived 缺失: [Errno 2] No such file or directory: 'F:\temp\app | |
/api/facts/claim |
— | — | |
| report | /api/fleet |
有数 | HTTP 200 · 55,698 B |
/api/facts |
报错 | HTTP 503 · facts derived 缺失: [Errno 2] No such file or directory: 'F:\temp\app | |
/api/rpt_compose |
不适用(本机模型未启动) | HTTP 200 · 本地模型不可达: | |
| system | /api/fleet |
有数 | HTTP 200 · 55,698 B |
/api/maint_survey |
有数 | HTTP 200 · 7,498 B |