优化
This commit is contained in:
+23
-11
@@ -9,6 +9,17 @@
|
||||
|
||||
财务域新增独立 `finance-service`,拥有独立财务数据库。不得把应收、应付、对账单、收付款、核销、客户账户、发票、费用分析或利润继续放入 `firstleg-service`。
|
||||
|
||||
身份与主体边界补充确认:产品层只有“平台、客户”两种身份。平台可以管理平台角色和平台用户;客户可以在本客户范围内管理客户角色和客户用户。客户用户是财务操作人,不因创建或操作财务单据而成为新的财务主体。
|
||||
|
||||
Finance 中必须分开建模:
|
||||
|
||||
- **客户企业/客户范围**:业务数据归属和客户侧结算对象,服务端从登录授权上下文确定,不能由前端任意切换;
|
||||
- **平台财务主体/账套**:平台收款、付款、开票和核算的法律/账务主体;即使当前只有一个,也保留独立对象;
|
||||
- **客户用户/成员**:制单、复核、确认、收款登记等操作人,保存 `userId/memberId` 和当时的姓名快照;
|
||||
- **角色与权限**:平台角色由平台维护,客户角色由客户在允许的权限目录内维护,任何角色都不能越过客户范围。
|
||||
|
||||
若业务口语中的“客户就是主体”是指“客户是业务数据主体/结算对象”,可以采用;若指“财务法律主体/账套”,则不能直接等同,需由 F0-02 单独确认。
|
||||
|
||||
`firstleg-service` 保持现有业务边界,只负责:
|
||||
|
||||
- 入库单、测量、称重和审核;
|
||||
@@ -110,30 +121,31 @@ Firstleg 通过本地 Outbox 发布:
|
||||
- `FIRSTLEG_FEE_ADJUSTED`
|
||||
- `FIRSTLEG_FEE_VOIDED`
|
||||
|
||||
事件至少包含:
|
||||
以上是目标事件名。当前 Firstleg 已存在 `FIRSTLEG_FEE_SENT` 和 `FIRSTLEG_FEE_ADJUSTED`;实施时将 `FIRSTLEG_FEE_SENT` 兼容映射为 `FIRSTLEG_FEE_PUBLISHED`,并补充明确的作废事件,不能把规划事件误写成当前已上线能力。
|
||||
|
||||
事件采用“统一信封 + 轻量来源引用”,不直接承载完整金额和计费明细。至少包含:
|
||||
|
||||
```text
|
||||
eventId
|
||||
eventType
|
||||
eventVersion
|
||||
occurredAt
|
||||
customerId
|
||||
producer
|
||||
tenantId
|
||||
inboundId
|
||||
sourceFeeId
|
||||
sourceFeeVersion
|
||||
sourceFeeNo
|
||||
feeDetailId
|
||||
direction
|
||||
businessDate
|
||||
currency
|
||||
amount
|
||||
sourceHash
|
||||
sequence
|
||||
idempotencyKey
|
||||
payloadHash
|
||||
traceId
|
||||
```
|
||||
|
||||
Finance 使用 `eventId + sourceType + sourceId + sourceVersion` 幂等消费。重复相同事件返回第一次处理结果;同一幂等键对应不同内容时拒绝处理并记录冲突。
|
||||
Finance 以 `eventId` 做投递幂等,并以 `sourceType + sourceFeeId + sourceFeeVersion` 做业务唯一约束。重复相同事件返回第一次处理结果;同一业务键对应不同哈希时拒绝处理并记录冲突。金额、币种、方向、业务日期、费用明细和业务快照必须通过内部快照接口核验后保存,不能只信任事件载荷。
|
||||
|
||||
### 5.2 内部查询
|
||||
|
||||
Finance 接收事件后,通过服务令牌调用 Firstleg 内部接口核验完整来源快照。内部接口返回 DTO,不返回或共享 Entity。
|
||||
Finance 接收事件后,通过服务令牌调用 Firstleg 内部接口核验完整来源快照。内部接口返回 DTO,不返回或共享 Entity。接口路径、信封字段、重试和兼容规则以《Firstleg-Finance 跨服务契约》为准。
|
||||
|
||||
Finance 保存来源快照后,不依赖 Firstleg 当前表数据实时计算历史账单。已出账来源发生调整时,Finance 生成补差或冲销来源,不覆盖原账单明细。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user