- 重构报销状态注册表、审批流路由与平台风险标记 - 完善管家意图规划器与模型计划构建器全链路 - 新增 OCR Worker 脚本、数据库会话管理与通知状态 - 优化文档中心、日志视图、预算中心与员工管理交互 - 增强工作台摘要、图标资源与全局主题样式 - 补充审批路由、状态注册、OCR 服务与管家规划器测试覆盖
3.7 KiB
3.7 KiB
申请单关联归档状态概念文档
功能一句话
申请单审批完成后先进入关联单据状态,只有关联的报销单完成付款归档后,申请单才同步归档。
背景与问题
当前费用申请单审批完成后,部分列表和进度展示会把申请单视为归档;但业务上申请单只是完成了事前审批,还需要等待后续报销单关联、报销审批、付款完成后,申请单生命周期才真正闭环。
这会导致用户看到报销单仍在处理、申请单却已归档,或者报销单已完成但申请单还停留在进行中的割裂状态。
目标
- 申请单审批完成不直接进入归档中心。
- 申请单进度在归档前增加“关联单据状态”节点。
- 已有关联报销单但未付款完成时,该节点显示“关联中”。
- 没有关联报销单时,该节点显示“未关联”。
- 关联报销单付款完成后,申请单同步进入“申请归档”。
非目标
- 不新增数据库表。
- 不改变报销单本身的审批、付款权限。
- 不改变申请单审批通过自动生成报销草稿的现有能力。
用户与场景
涉及角色:
- 申请人:查看申请单是否已经关联后续报销单。
- 审批人:审批申请单后不再误以为该申请已经归档。
- 财务人员:付款完成报销单时,同步闭环关联申请单。
关键场景:
- 申请单审批通过,但未生成或未关联报销单:显示“关联单据状态 / 未关联”。
- 申请单审批通过,并已生成报销草稿或报销单仍在流程中:显示“关联单据状态 / 关联中”。
- 关联报销单已付款:报销单进入已付款,申请单进入“申请归档”。
方案设计
后端:
- 申请单
approved + 审批完成不再被归档查询命中。 - 申请单只有
approved + 申请归档才属于归档。 - 报销单付款完成时,从
application_handoff或application_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 == "申请归档"
测试方案
- 后端状态测试:审批完成申请单不归档,申请归档才归档。
- 后端付款测试:关联报销单付款后,申请单同步进入“申请归档”。
- 前端进度测试:审批完成申请单显示“关联单据状态”和“已归档”。
- 前端归档判断测试:
审批完成申请单不算归档,申请归档才算归档。
验收标准
- 单据中心普通视图仍能看到审批完成但未归档的申请单。
- 归档中心不会提前出现仅审批完成的申请单。
- 申请单进度在审批完成后能看到“关联单据状态”。
- 报销单付款完成后,关联申请单同步显示为归档。
风险与开放问题
- 旧数据中可能存在已经把申请单审批完成当作归档的数据,本次按新业务规则修正展示与查询口径。
- 如果历史申请单缺少关联报销事件,只能展示“未关联”,不做自动猜测。