- ① kpi_templates instantiate 构造点显式传会话账套(原缺 entity_id ⇒ 静默落 e1),kpi_code 判重按账套收紧 - ② kpi_subject_map 3 个读取点加护栏注释(不加列、不改语义) - ③ subjects 分层:读口 union(NULL=全局标准准则科目 / N=账套私有),UPSERT 唯一键改 (entity_id, subject_code) - ④ analysis_results 账套化:读/写/删三端点按会话账套判定归属(列未落地时 kpi_code JOIN 止血), 无归属行进 unattributed 登记、删除一律 404 - 模型层按现网 DDL 补齐:KPIDefinition(template_id/is_system + uk_entity_kpi)、AnalysisResult.entity_id、Subject.entity_id - 新增 migrate_{subjects,analysis_results}_entity_id_20260923.py(--check/--apply/--down)、 22 条对账用例 test_entity_dimension_convergence_20260923.py DDL 已由 ops 受控通道落地(subjects 21:31:56 / analysis_results 21:31:59 CST,审批 1e9b4d9a/5ffb1640) 本提交为切片提交,未 push(发布须另取放行)
- M1 时点报表口径:余额 = 期初(report_opening_balances) + 累计发生额;期初只作用于取数层 (不生成凭证/不写 voucher_details/不改 kpi_values);basis=period 不套期初;受 effective_date 约束 - M2 期初未补 → direction_check_unreliable=true:报表/底稿带"期初未补,方向判定不可信"水印, 重分类触发只进底稿诊断(diagnostic_only),不落地对外行项目 - M7 权益行科目集 = {3001,3002,3101,3103,3104,3105}(含 4001/4002/4101/4103/4104 别名):补实收资本 3001 - 1901 待处理财产损溢过渡列报「其他流动资产」以保恒等式(M6 归因文案) - 只读验收脚本 + 幂等导入器(dry-run 默认,--commit 门控)
依据《CMA 资产负债表重分类规则表 v1》(wecom-finance,任总 2026-09-16 批准落地)。 新增 backend/app/services/report_reclass.py:12 条规则挂 CMA 真实科目编码的取数层重分类引擎 - 余额方向规范化:资产 sum(借-贷) / 负债·权益 sum(贷-借),正常余额一律为正 - 触发判定全部基于原始余额(单遍、幂等),R3/R4 等互为镜像的规则互不干扰 - 科目取数前缀匹配(1122% 覆盖 112201 明细);备抵科目 1602 反向取数(修正固定资产净额虚增 2 倍折旧) - 只读 voucher_details + 作废守卫,不生成记账凭证 - 输出:触发条目 / 不变量 / 负数清单 / 模板待核 / 未列报科目 / 损益未结转 诊断 reports.py: - /balance-sheet 接入重分类;新增 basis 参数(end=期末余额累计为默认 / period=本期发生额兼容回退) - 有凭证明细时不再混入示例数据(展示口径与落库口径同源);行项目增 raw_value/reclass_adjustment 可追溯 - 规则落位项目(模板未单列)按虚拟行列报;补「长期待摊费用(1801)」行、未分配利润补 3103/3104 别名 - 新增 /balance-sheet/reclass-working-paper(+ /export) 底稿 JSON/Excel;statutory 导出新增「重分类底稿」Sheet 测试 tests/test_report_reclass.py 14 例(触发/不变量/幂等/多租户/口径/底稿/虚拟行/阻塞规则) 全量 pytest:1108 passed, 1 xfailed。现网只读验收 scripts/verify_reclass_live_20260916.py(酣客 entity1 2026-08)