edit | blame | history | raw

股票估值端到端协调层 V2 编码方案 V005

创建人员:dev.developer.project.secondary / infodev-2

开发事项:DEV-ANA-STOCK-VALUATION-PIPELINE-V2-20260801-001

性质:V003+V004 实现阶段真实 smoke 发现后的最小 provider 合同修订。

当前状态:PENDING_PROVIDER_DELTA_REVIEW;本文件 PASS 前不实施新增端点,不把缺失金融资产填 0。

1. 触发证据

方案 PASS 后首次真实 smoke 使用 001270.SZ / 2026-08-01,在 1.47 秒内以 BLOCKED 如实结束,失败包为 dev/tmp/valuation-v2-real-smoke-001/cold.failed-b036e888ea644a1db66df5d967ffa26f/。原因是已审简版 RPT_DMSK_FN_BALANCE 的真实响应只暴露 MONETARYFUNDS,TOTAL_EQUITY,TOTAL_ASSETS,TOTAL_LIABILITIES,SHORT_LOAN,AVAILABLE_SALE_FINASSET 等摘要列,没有已知非经营性金融资产明细;原始 blob hash=819144da9256200c0feeb1b03bb2e3715b08827817ec58871c7761ca5dd60f81。实现按合同阻断,没有以 0 降级。

同一已登记公开 host datacenter-web.eastmoney.comreportName=RPT_F10_FINANCE_GBALANCE 返回完整资产负债字段;受控只读核对 001270.SZ / 2026-03-31 得到:MONETARYFUNDS=179539263.25TOTAL_EQUITY=1560369145.27TRADE_FINASSET_NOTFVTPL=95338761.64NONCURRENT_LIAB_1YEAR=458204.55LEASE_LIAB=367261.65,后二者合计 825466.20,与冻结快照完全一致。

另一个真实差异是 as-of 2026-08-01 为非交易日;若 kline beg=end=as-of 会得到空数组,而业务合同要求取不晚于 as-of 的最近交易日。

2. 唯一请求修订

V003 第 6 节 Eastmoney finance 表中的 balance 请求由:

reportName=RPT_DMSK_FN_BALANCE

替换为:

reportName=RPT_F10_FINANCE_GBALANCE

host、HTTPS、GET、filter、分页、排序、响应上限、adapter version、B1+A1 回链、as-of 和停止规则均不变;不增加新域名或自由回退。字段映射固定:

  • 权益=TOTAL_EQUITY;现金=MONETARYFUNDS;少数股东权益=MINORITY_EQUITY|null→0
  • 非经营性金融资产仅对响应中实际存在的下列字段求和:TRADE_FINASSET,TRADE_FINASSET_NOTFVTPL,DERIVE_FINASSET,BUY_RESALE_FINASSET,CREDITOR_INVEST,OTHER_CREDITOR_INVEST,OTHER_EQUITY_INVEST,OTHER_NONCURRENT_FINASSET,FVTPL_FINASSET,FVTOCI_FINASSET,FVTOCI_NCFINASSET;一个字段都不存在时 BLOCKED,不得填 0;
  • 有息债务仅对响应中实际存在的 SHORT_LOAN,NONCURRENT_LIAB_1YEAR,LONG_LOAN,BOND_PAYABLE,LEASE_LIAB,SHORT_BOND_PAYABLE 求和;一个字段都不存在时 BLOCKED;存在但为 null 可按法定表中无该项目计 0;
  • 仍须 NOTICE_DATE<=as-ofREPORT_DATE<=as-of,并回链同报告期 A1 公告。

3. 非交易日行情修订

kline 请求 end=requested_as_ofbeg=requested_as_of-14 calendar days;适配器在返回记录中只保留 f51<=as-of 并取最大 f51。14 日窗口无记录即 BLOCKED,不扩大窗口、不换站。该变化只实现既有“取不晚于 as-of 的最近交易日”合同,不改变行情来源或字段。

4. fixture 与测试增量

  • fixture 的 balance 文件改为完整端点响应前像,并补 TRADE_FINASSET_NOTFVTPL=95338761.64NONCURRENT_LIAB_1YEAR=458204.55LEASE_LIAB=367261.65;expected 不变;
  • 新增简版 balance 缺明细必须 BLOCKED、完整 balance 精确求和、全部明细字段存在但为 null 得 0、所有字段都不存在 BLOCKED;
  • 新增周末 as-of 在 14 日窗口取 2026-07-31、窗口空记录 BLOCKED、未来 kline 被排除;
  • 实施后重跑 V2 全套、V1 10/10、fixture 冷/热和真实 cold/warm smoke。

5. 继承与门禁

V003=28030 bytes / 358C37EE1FE7F5F832FAF33EBDEB1B1714DE46F315A55A1C1D53AF43D687C61F、V004=12117 bytes / 50DE1F7E765E8B828DEF1C25D6D5BEA32C3C0B07FD034929542AAE0CB4E84799 的其余合同全部继承。V005 不修改 ana-dev,不增加 provider、域名、网络预算或交易结论。只有 dev.reviewer.project 对本 delta PASS 后才实施本节变更。