2.2 KiB
2.2 KiB
Change: 增加退款原审批恢复
Why
退款审批提交可能出现企业微信单号已生成但本地结果未知、原提交事件明确失败,或需要重新同步已有审批单的情况。当前退款页面只有历史记录的“补发审批”能力,无法安全地恢复同一审批尝试;运营人员也缺少提交状态、失败摘要和最近恢复时间,难以判断是否可以处理。
What Changes
- 新增
POST /api/admin/refunds/{id}/recover-approval,无请求体,调用后恢复原审批提交事件或确认未知结果。 - 新增
RefundService.recoverApproval(id),成功响应解析为更新后的退款详情。 - 扩展退款列表和详情模型,支持
submission_status、submission_status_name、approval_recoverable、approval_failure_summary、approval_last_recovery_at。 - 在退款列表和详情中,仅当后端返回
approval_recoverable = true且当前账号具备退款管理权限及数据范围时显示“恢复审批”。 - 恢复成功后刷新当前列表/详情;遇到状态冲突时提示“当前退款审批状态不允许恢复”并重新加载后端状态。
- 恢复动作沿用退款管理权限和数据范围,不新增审批实例、审批尝试、审批材料、审批实例 ID 或企业微信单号输入,也不替代现有历史审批“补发”能力。
Impact
- Affected specs:
refund-management
- Affected code:
src/api/modules/refund.tssrc/types/api/refund.tssrc/views/finance/refund/index.vuesrc/views/finance/refund/detail.vue
- API contract:
POST /api/admin/refunds/{id}/recover-approvalGET /api/admin/refundsGET /api/admin/refunds/{id}
- Dependencies:
- 后端返回
approval_recoverable的最终资格判断,并在服务端保证幂等、并发状态校验和数据范围校验。 - 后端成功响应包含完整退款详情,失败响应遵循现有统一错误结构。
- 后端返回
- Out of scope:
- 创建新的审批尝试或审批实例。
- 前端直接调用企业微信、传入审批实例 ID、审批材料或
sp_no。 - 修改退款金额、退款方式、审批结果或渠道退款流程。
- 批量恢复、自动轮询恢复或替代
trigger-approval历史审批补发。