9.2 KiB
9.2 KiB
Matrix: REV-004 旧状态到新状态映射矩阵 v1
1. 说明
本矩阵用于定义旧账务模型中的关键状态、处理方式和流程状态,如何映射到当前新系统对象中的状态表达。
本版重点覆盖:
- 账单收费状态
- 发票状态
- 退款 / 冲正 / 坏账相关状态
- 旧流程字段与新审批能力位的关系
2. 映射原则
- 不允许只保留旧状态值而不说明新状态语义。
- 若新系统无法一一表达旧状态,必须采用“新状态 + 扩展追溯字段”组合承接。
- 若旧状态只对历史查询有意义,不强制进入在线主状态机,但必须保留
legacyState。 - 审批节点级状态本轮优先保留为历史只读,不在线复刻完整流转。
3. 状态映射矩阵
| 旧对象 | 旧字段 | 旧值/旧语义 | 新对象 | 新状态字段 | 新状态值/新语义 | 映射方式 | 备注 |
|---|---|---|---|---|---|---|---|
AT_CHARGES |
PayState |
未收费 | ChargeAggregate |
payState |
未收费 | direct/transform |
需与当前 backend 枚举最终对齐 |
AT_CHARGES |
PayState |
已收费 | ChargeAggregate |
payState |
已收费 | direct/transform |
是退款/冲正前置条件 |
AT_CHARGES |
PayState |
坏账 | ChargeAggregate |
payState |
UNCOLLECTIBLE / 坏账 |
transform |
当前 backend 已见 PayStateEnum.UNCOLLECTIBLE(-2) |
AT_CHARGES |
FeeState |
正常 / 作废 / 特定旧费用状态 | ChargeAggregate |
chargeState 或 legacyState |
当前有效状态 / 历史状态 | transform + readonly-retain |
若新系统无完全等价字段,则保留 legacyState |
AT_CHARGES |
InvoiceState |
未开票 | InvoiceRecord / ChargeAggregate |
invoiceState |
待开票 / 未开票 | transform |
账单侧与发票主对象需保持一致 |
AT_CHARGES |
InvoiceState |
开票中 / 查询中 | InvoiceRecord |
invoiceState |
PENDING / 处理中 |
transform |
当前新模型发票结果采用异步申请 + 查询兜底 |
AT_CHARGES |
InvoiceState |
已开票 | InvoiceRecord |
invoiceState |
SUCCESS |
transform |
同时回写账单开票状态 |
AT_CHARGES |
InvoiceState |
开票失败 | InvoiceRecord |
invoiceState |
FAIL |
transform |
失败原因保留在扩展字段或返回消息中 |
AT_CHARGES |
InvoiceState |
红冲 / 作废相关旧状态 | InvoiceRecord |
invoiceState |
INVALID / RED_INK |
transform |
与 REV-005 二期口径保持一致 |
AT_REFUNDS |
RefundState |
申请中 / 未处理 | AccountingResult |
resultStatus |
PENDING_APPROVAL 或 PENDING |
transform |
需结合是否存在审批链字段判定 |
AT_REFUNDS |
RefundState |
已退款成功 | AccountingResult |
resultStatus |
SUCCESS |
transform |
同时要求 writeBackStatus=WRITTEN 或等价值 |
AT_REFUNDS |
RefundState |
退款失败 | AccountingResult |
resultStatus |
FAIL |
transform |
保留失败原因 |
AT_REFUNDS |
RefundState |
已作废 / 已取消 | HistoricalReadonlyRecord |
legacyState |
原状态保留 | readonly-retain |
不强制进入在线状态机 |
PM_ACCOUNT_RECORDS |
State |
正常 / 流程中 | AccountingResult |
resultStatus |
PENDING_APPROVAL / PENDING |
transform |
汇总申请单优先映射为“待处理”状态 |
PM_ACCOUNT_RECORDS |
State |
作废 | HistoricalReadonlyRecord |
legacyState |
原状态保留 | readonly-retain |
历史流程单保留只读即可 |
PM_AMOUNT_RECORDS |
State |
正常 | AccountingResult |
resultStatus |
SUCCESS / PENDING_APPROVAL |
transform |
需结合是否已生效区分 |
PM_AMOUNT_RECORDS |
State |
作废 | HistoricalReadonlyRecord |
legacyState |
原状态保留 | readonly-retain |
不强制在线复刻 |
PM_PRICE_RECORDS |
State |
正常 | AccountingResult |
resultStatus |
SUCCESS / PENDING_APPROVAL |
transform |
调价差额生效逻辑需通过生效时间补充判断 |
PM_PRICE_RECORDS |
State |
作废 | HistoricalReadonlyRecord |
legacyState |
原状态保留 | readonly-retain |
历史记录保留 |
PM_PAYMENT_RECORDS |
State |
正常 | AccountingResult |
resultStatus |
SUCCESS |
transform |
主要对应冲正/已销调整结果 |
PM_PAYMENT_RECORDS |
State |
作废 | HistoricalReadonlyRecord |
legacyState |
原状态保留 | readonly-retain |
历史记录保留 |
PM_KNOTTY_RECORDS |
State |
申请中 / 未审批 | AccountingResult |
resultStatus |
PENDING_APPROVAL |
transform |
坏账申请典型待审批状态 |
PM_KNOTTY_RECORDS |
State |
已生效 / 已确认坏账 | AccountingResult |
resultStatus |
SUCCESS |
transform |
同时影响账单收费状态为坏账 |
PM_KNOTTY_RECORDS |
State |
作废 / 驳回 | AccountingResult / HistoricalReadonlyRecord |
resultStatus 或 legacyState |
FAIL 或原状态保留 |
transform + readonly-retain |
若驳回语义明确,优先映射为 FAIL |
PM_LATEFEE_RECORDS |
State |
正常 / 作废 | HistoricalReadonlyRecord |
legacyState |
原状态保留 | readonly-retain |
当前一期不强制在线化 |
PM_ACCOUNT_RECORD_DETAILS |
ProcType |
转预存 | AccountingResult / tracePayload |
writeBackStatus + procType |
结果已回写 + TRANSFER_TO_DEPOSIT |
transform + mapping-only |
当前新模型需通过扩展字段保留旧处理方式 |
PM_ACCOUNT_RECORD_DETAILS |
ProcType |
转退款 | AccountingResult / tracePayload |
resultStatus + procType |
SUCCESS + REFUND |
transform + mapping-only |
退款主语义进入结果状态,旧处理方式保留映射 |
PM_ACCOUNT_RECORD_DETAILS |
ProcType |
转销账 | AccountingResult / tracePayload |
writeBackStatus + procType |
结果回写 + WRITE_OFF |
transform + mapping-only |
当前新模型未见等价主字段,保留追溯值 |
PM_ACCOUNT_RECORD_DETAILS |
ProcType |
线下退款 | AccountingResult / tracePayload |
resultStatus + procType |
SUCCESS/FAIL + OFFLINE_REFUND |
transform + mapping-only |
线下路径必须与普通退款区分 |
PM_AMOUNT_RECORD_DETAILS |
ProcType |
账务处理方式 | AccountingResult / tracePayload |
resultStatus + procType |
统一结果位 + 原处理方式 | transform + mapping-only |
不建议原样进入主状态机 |
PM_PAYMENT_RECORD_DETAILS |
ProcType |
已销调整处理方式 | AccountingResult / tracePayload |
resultStatus + procType |
SUCCESS/FAIL + 原处理方式 |
transform + mapping-only |
与冲正、退款结果强相关 |
PM_KNOTTY_RECORD_DETAILS |
ProcType |
呆坏账处理方式 | AccountingResult / tracePayload |
resultStatus + procType |
PENDING_APPROVAL/SUCCESS/FAIL + 原处理方式 |
transform + mapping-only |
需结合坏账申请场景 |
PM_*_RECORDS |
TaskId |
审批流程任务 ID | HistoricalReadonlyRecord |
legacyTaskId |
原值保留 | readonly-retain |
当前不在线复刻旧流程 |
PM_*_RECORDS |
StepId |
流程节点 ID | HistoricalReadonlyRecord |
legacyStepId |
原值保留 | readonly-retain |
当前不在线复刻旧流程 |
PM_*_RECORDS |
FlowRemark |
流程审批意见 | HistoricalReadonlyRecord |
legacyFlowRemark |
原值保留 | readonly-retain |
作为迁移验收与审计依据 |
IV_INVOICE_INFOS |
InvoiceState |
未申请 / 初始 | InvoiceRecord |
invoiceState |
INIT / PENDING |
transform |
需与当前发票流程状态定义对齐 |
IV_INVOICE_INFOS |
InvoiceState |
已受理 / 查询中 | InvoiceRecord |
invoiceState |
PENDING |
transform |
对应当前异步申请中间态 |
IV_INVOICE_INFOS |
InvoiceState |
开票成功 | InvoiceRecord |
invoiceState |
SUCCESS |
transform |
核心票据结果 |
IV_INVOICE_INFOS |
InvoiceState |
开票失败 | InvoiceRecord |
invoiceState |
FAIL |
transform |
失败消息保留在返回消息字段 |
IV_INVOICE_INFOS |
InvoiceState |
已作废 | InvoiceRecord |
invoiceState |
INVALID |
transform |
对应当前作废场景 |
IV_INVOICE_INFOS |
InvoiceState |
已红冲 | InvoiceRecord |
invoiceState |
RED_INK |
transform |
对应当前红冲场景 |
4. 当前 v1 的关键判断
4.1 可较稳定归并到新状态机的状态
- 账单收费状态中的“未收费 / 已收费 / 坏账”
- 发票状态中的“处理中 / 成功 / 失败 / 作废 / 红冲”
- 坏账申请中的“待审批 / 已生效 / 驳回”
- 退款结果中的“待处理 / 成功 / 失败”
4.2 更适合保留为 legacyState 或历史只读的状态
- 各类旧汇总表中的“作废”细分状态
- 旧流程引擎相关
TaskId / StepId / FlowRemark - 旧处理方式
ProcType中难以直接等价为新主状态的值
4.3 迁移实现时必须补的辅助字段
若要保证状态迁移后可追溯,建议至少补以下扩展字段:
legacyStatelegacyTaskIdlegacyStepIdlegacyFlowRemarkprocTypewriteBackStatus
5. 后续动作
下一步建议补:
新旧标识映射矩阵试迁校验清单
只有状态矩阵和标识矩阵都具备后,迁移脚本的转换规则才能稳定落地。