Files
X-Financial/document/development/申请单关联归档状态/CONCEPT.md
caoxiaozhu e124e4bbcb feat: 报销审批流重构与管家计划全链路贯通
- 重构报销状态注册表、审批流路由与平台风险标记
- 完善管家意图规划器与模型计划构建器全链路
- 新增 OCR Worker 脚本、数据库会话管理与通知状态
- 优化文档中心、日志视图、预算中心与员工管理交互
- 增强工作台摘要、图标资源与全局主题样式
- 补充审批路由、状态注册、OCR 服务与管家规划器测试覆盖
2026-06-06 17:19:07 +08:00

3.7 KiB

申请单关联归档状态概念文档

功能一句话

申请单审批完成后先进入关联单据状态,只有关联的报销单完成付款归档后,申请单才同步归档。

背景与问题

当前费用申请单审批完成后,部分列表和进度展示会把申请单视为归档;但业务上申请单只是完成了事前审批,还需要等待后续报销单关联、报销审批、付款完成后,申请单生命周期才真正闭环。

这会导致用户看到报销单仍在处理、申请单却已归档,或者报销单已完成但申请单还停留在进行中的割裂状态。

目标

  1. 申请单审批完成不直接进入归档中心。
  2. 申请单进度在归档前增加“关联单据状态”节点。
  3. 已有关联报销单但未付款完成时,该节点显示“关联中”。
  4. 没有关联报销单时,该节点显示“未关联”。
  5. 关联报销单付款完成后,申请单同步进入“申请归档”。

非目标

  1. 不新增数据库表。
  2. 不改变报销单本身的审批、付款权限。
  3. 不改变申请单审批通过自动生成报销草稿的现有能力。

用户与场景

涉及角色:

  • 申请人:查看申请单是否已经关联后续报销单。
  • 审批人:审批申请单后不再误以为该申请已经归档。
  • 财务人员:付款完成报销单时,同步闭环关联申请单。

关键场景:

  1. 申请单审批通过,但未生成或未关联报销单:显示“关联单据状态 / 未关联”。
  2. 申请单审批通过,并已生成报销草稿或报销单仍在流程中:显示“关联单据状态 / 关联中”。
  3. 关联报销单已付款:报销单进入已付款,申请单进入“申请归档”。

方案设计

后端:

  • 申请单 approved + 审批完成 不再被归档查询命中。
  • 申请单只有 approved + 申请归档 才属于归档。
  • 报销单付款完成时,从 application_handoffapplication_link 风险事件中读取关联申请单。
  • 找到关联申请单后,追加同步归档事件,并将申请单阶段置为“申请归档”。

前端:

  • 申请单进度增加“关联单据状态”和“已归档”节点。
  • 审批完成但未归档的申请单,当前节点停留在“关联单据状态”。
  • 根据申请单自身的 generated_draft_claim_no 或报销单侧关联事件显示“关联中 / 未关联”。
  • 只有“申请归档”阶段才展示归档完成。

算法与公式

当前功能不涉及显式数学公式。

关联状态判断:

has_linked_reimbursement = exists(application.generated_draft_claim_no)
  or exists(reimbursement.risk_flags.application_claim_id/no == application.id/no)

application_archived = application.status in {approved, completed}
  and application.approval_stage == "申请归档"

测试方案

  1. 后端状态测试:审批完成申请单不归档,申请归档才归档。
  2. 后端付款测试:关联报销单付款后,申请单同步进入“申请归档”。
  3. 前端进度测试:审批完成申请单显示“关联单据状态”和“已归档”。
  4. 前端归档判断测试:审批完成 申请单不算归档,申请归档 才算归档。

验收标准

  1. 单据中心普通视图仍能看到审批完成但未归档的申请单。
  2. 归档中心不会提前出现仅审批完成的申请单。
  3. 申请单进度在审批完成后能看到“关联单据状态”。
  4. 报销单付款完成后,关联申请单同步显示为归档。

风险与开放问题

  • 旧数据中可能存在已经把申请单审批完成当作归档的数据,本次按新业务规则修正展示与查询口径。
  • 如果历史申请单缺少关联报销事件,只能展示“未关联”,不做自动猜测。