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 chargeStatelegacyState 当前有效状态 / 历史状态 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_APPROVALPENDING 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 resultStatuslegacyState 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 迁移实现时必须补的辅助字段

若要保证状态迁移后可追溯,建议至少补以下扩展字段:

  • legacyState
  • legacyTaskId
  • legacyStepId
  • legacyFlowRemark
  • procType
  • writeBackStatus

5. 后续动作

下一步建议补:

  1. 新旧标识映射矩阵
  2. 试迁校验清单

只有状态矩阵和标识矩阵都具备后,迁移脚本的转换规则才能稳定落地。