# DM-08|财务核算领域模型 > 状态:working-draft;候选模型,不是已锁定的结构或状态契约。\ > 上游:[BC-08](../07-bounded-context/bc-08-finance.md);输入:旧聚合材料(历史材料保留在 `docs_bak/`)。\ > 编写:主会话;业务决策与长期维护人:待指定。日期:2026-09-18。 ## 1. 对象分类与候选聚合 | 对象 | 分类 | 维护什么 | 要保护的业务含义 | |:---|:---|:---|:---| | AccountingEntity / LedgerScope | 候选根与受控范围 | 核算主体、账簿及日历引用 | 历史范围不被静默改变 | | ChartOfAccounts / PostingRule | 候选根与版本 | 科目和过账规则 | 发布版本不可覆盖 | | AccountingPeriod | 候选根 | 期间与关闭门禁 | 关闭后不得普通过账 | | EconomicSourceReceipt / PostingRun | 候选幂等守卫 / 执行记录 | 经济来源唯一性;单次执行解释 | 规则改版不自动变成新经济效果 | | JournalEntry | 候选根 | 一组分录行及来源 | 平衡,提交后不可直接编辑 | | RevenueRecognitionPolicy / Entry | 版本根 / 确认记录 | 收入解释与分录引用 | 不从“已收款”直接推出收入 | | JournalAdjustment / MigrationBatch | 候选根 | 明确调整/迁移依据与结果 | 不得无来源平账或覆盖历史 | | GeneralLedger / TrialBalance | 投影与校验结果 | 分录汇总 | 不作为可直接改余额的根 | “候选根”表示需要独立身份、生命周期及一致性责任的提案,不代表每行已经确定为一个事务。历史、子实体、值对象及集合的最终边界还需基于规模和不变量核对。 ## 2. 关系与引用 分录引用核算范围、期间、来源及规则版本;过账执行不是经济源本身;调整引用原分录;总账由分录派生。正式去重键需从经济目标推导而不是复制旧 event+ruleVersion。 值对象及共享引用的统一含义见 [MODELING-RULES](MODELING-RULES.md)。上下文之间引用 ID、版本或不可变快照,不共享可变实体。 ## 3. 生命周期 规则草拟、审查、发布分开;期间开放、关闭处理中、已关闭、授权重开分开;分录草拟与已过账分开;冲销是新分录而非把旧分录删除。具体收入政策未确定。 这些是语义级路径,尚未列全每种政策下的迁移;不能直接生成生产枚举。业务对象状态、协调进度和技术回执分别保存与展示。 ## 4. 业务动作与事件 财务配置、核对及受控调整;Worker 接收经济事实并请求过账;事件候选:“分录已过账”“过账已挂起”“期间已关闭”。Analytics 仅消费结果。 事件名称为中文业务语义候选,不新建机器事件名。进入后续契约设计时逐项确定输入、前置条件、结果、错误和受众。 ## 5. 强一致性及并发边界 期间门禁与分录提交必须协调,不能先读开放再无条件入账;同一经济目标写入、来源去重及分录需本地一致;重述/规则迁移使用显式调整身份。 共同约束见 [CONSISTENCY](CONSISTENCY.md):单根版本不能替代跨对象约束;如需同 BC 多根本地事务,必须明确保护范围与理由,不能默认为整个 BC 一把锁。 ## 6. 反例、未知与下一步 两进程过账、关账竞态、规则升级重放、重复来源不同 eventId、迁移与正常入账重叠。科目、政策、税费、币种与保留要求未定,不给出会计合规结论。 上述反例是设计验证目标,尚未执行产品测试。先关闭影响边界的不确定性,再完善动作级迁移表及精确模型。身份、权限与业务状态的联动仍遵守 07 的统一授权接缝,不在本页复制一套权限规则。 ## 7. 交易严谨性补充(2026-09-29) 原收款分配、消费、退款预留与退款成功由 Commerce 维护;Finance 按独立经济来源、规则与期间解释,不把批次付款计作已完成消费或收入。替换、冲正和售后用新经济调整关联原源,防止原单/新单重复解释同一金额。会计期间授权重开属于单独待定政策,不表示允许复活订单/退款终态;即使期间重开,已过账分录也只能追加冲销或修正。 共用不变量、反例与恢复主讲见[TRANSACTION-INTEGRITY](TRANSACTION-INTEGRITY.md)。本节是设计约束,不证明本域实现或全部状态契约完成。