SOP-201:资金池入账工作流测试

标准 SOP 测试文档;每个任务(Task ID)代表一个独立的测试步骤,便于人工/自动化测试按序号完成并记录进度。

文档元数据

  • 文档类型:SOP / Checklist
  • 适用场景http://localhost:3000/crm/customer 客户管理界面 + 工作流测试
  • 配置文件recharge_prod.yaml
  • 创建者:QA / 自动化工程
  • 最近更新时间:2025-12-22
  • 相关接口定义:参考 crm.swagger.jsonFlowService 模块(特别是 POST /api/v1/flowsGET /api/v1/flows

工作流概述

流程图

graph LR
    A[发起申请] --> B[财务审批]
    B --> C[生效]

审批角色

步骤 审批人 说明
财务审批 财务团队(余佳丽、肖有、宁贝妮、李琼、蒋思宇) 财务部门审批入账申请

前置条件

条件 检查方式
本地或测试环境可访问 http://localhost:3000/crm/customer 浏览器打开,页面未返回 500/404
已使用有权限的用户登录 登录接口/前端登录流程成功,能加载左侧导航
测试客户已创建 确保有可用的测试客户(如 ceshi, KH20251208-0001)
用户有资金池入账权限 能看到"入账"按钮

任务矩阵

任务 T1:导航到客户详情页

入口http://localhost:3000/crm/customer

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:登录系统 用户名/密码 成功登录,显示主页 检查URL跳转和导航栏显示 截图 [✓] 步骤 2
步骤2:点击"客户"菜单 点击左侧导航栏的"客户"链接 进入客户列表页面 页面URL为 /crm/customer,显示客户列表 截图 sop-201-01-customer-list.png [✓] 步骤 3
步骤3:点击客户简称 点击客户简称(如 ceshi) 进入客户详情页面 页面显示客户详细信息和操作按钮 截图 sop-201-02-customer-detail.png [✓] 任务 T2

客户详情页面

图:客户详情页面,显示客户信息和入账按钮

任务 T2:打开入账对话框

入口:客户详情页面

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:点击"入账"按钮 点击页面上方的"入账"按钮 弹出"客户入账单"对话框 对话框显示:
- 标题:客户入账单
- 当前资金池余额信息
- 入账金额输入框
- 入账证明截图上传
- 垫款充值/挂账充值开关
- 取消/入账按钮
截图 sop-201-03-recharge-dialog.png [✓] 任务 T3

客户入账单对话框

图:客户入账单对话框,显示资金池余额和入账表单

任务 T3:填写并提交入账申请(资金池入账)

入口:客户入账单对话框

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:确认挂账充值关闭 确保"挂账充值"开关为关闭状态 挂账充值开关关闭 视觉检查开关状态为灰色/关闭 截图 [✓] 步骤 2
步骤2:填写入账金额 输入 300 金额输入框显示 300 检查输入框值 截图 sop-201-03-recharge-form-filled-new.png [✓] 步骤 3
步骤3:开启垫款充值 打开"垫款充值"开关 垫款充值开关处于开启状态 视觉检查开关状态为蓝色/开启 截图 [✓] 步骤 4
步骤4:上传入账证明 上传图片或使用已有图片 图片上传成功,显示缩略图 检查上传区域显示已上传图片 截图 [✓] 步骤 5
步骤5:点击"入账"按钮 点击绿色"入账"按钮 提交成功,创建工作流 显示成功提示对话框:"提交成功 点击此处 查看审批流程" 截图 sop-201-04-submit-success.png [✓] 任务 T4

填写入账表单

图:已填写入账金额300元,开启垫款充值的表单

提交成功

图:工作流提交成功提示

重要说明: - 资金池入账(recharge_prod):垫款充值开启,挂账充值关闭,工作流名称为"资金池入账" - 资金池挂账入账(recharge_pending_prod):挂账充值开启,工作流名称为"资金池挂账入账" - 两者审批流程不同:资金池入账由财务审批,资金池挂账入账由媒介审批

任务 T4:查看工作流列表和详情

入口http://localhost:3000/crm/flows

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:导航到工作流页面 点击左侧导航"工作流"或成功提示对话框中的"点击此处" 显示工作流列表页面 页面URL为 /crm/flows,显示工作流列表 截图 sop-201-05-flows-list-new.png [✓] 步骤 2
步骤2:查找新创建的工作流 在列表中查找刚创建的"资金池入账"工作流 显示相关工作流 列表显示工作流名称:"资金池入账",状态:"财务审批" 截图 [✓] 步骤 3
步骤3:点击工作流详情 点击工作流ID 进入工作流详情页面 页面显示:
- 工作流标题:"资金池入账"
- 工作流ID:92102c70-caee-4c46-8828-859536d60a6f
- 发起人:超级管理员
- 当前状态:财务审批(印章图标)
- 客户信息:ceshi, 18774891025
- 资金池信息:总余额¥300.00, 垫款余额¥0.00
截图 sop-201-06-flow-detail-new.png [✓] 任务 T5

工作流列表

图:工作流列表页面,显示包含"资金池入账"的工作流记录

工作流详情

图:资金池入账工作流详情页面,显示客户信息、资金池信息

任务 T5:财务审批流程

入口:工作流详情页面

Action Steps Input / Payload 预期结果 验证方式 证据 状态 下游任务
步骤1:查看待审批状态 工作流状态为"财务审批" 检查工作流状态印章显示"财务审批" 截图 sop-201-08-flow-detail-approval.png [✓] 步骤 2
步骤2:查看审批详情标签 点击"审批详情"标签 显示审批详情面板 审批详情标签被激活,显示审批内容(如有权限) 截图 sop-201-12-approval-detail-tab.png [✓] 步骤 3
步骤3:财务人员审批 需要使用财务账号登录
(余佳丽、肖有、宁贝妮、李琼、蒋思宇之一),
在审批详情面板点击"通过"按钮
审批通过,工作流进入下一状态 工作流状态更新为"已通过"或"生效" 待财务人员操作 [ ] 步骤 4
步骤4:验证资金到账 返回客户详情页面查看资金池余额 资金池余额增加 300 元 客户详情页面资金池余额增加 待审批通过后验证 [ ]

工作流审批状态

图:工作流详情页面,显示"财务审批"状态

审批详情标签

图:审批详情标签页,显示审批操作区域

重要说明: - 审批操作需要由具有财务审批权限的用户执行(余佳丽、肖有、宁贝妮、李琼、蒋思宇) - 非财务审批人(如超级管理员)可能看不到"通过"/"拒绝"按钮 - 审批通过后,工作流状态将变为"生效",资金将实际入账到客户资金池

API 参考

相关接口

接口 方法 描述
/api/v1/flows POST 创建工作流
/api/v1/flows GET 获取工作流列表
/api/v1/flows/{id} GET 获取工作流详情
/api/v1/flows/{id}/approve POST 审批工作流
/api/v1/customers/{id} GET 获取客户信息(含资金池余额)

工作流对象字段(coreFlow)

字段名 类型 说明
id string 工作流唯一标识
name string 工作流名称("资金池入账")
status string 工作流状态(pending/approved/rejected)
type string 工作流类型(recharge_prod)
creator object 发起人信息
approvers array 审批人列表
data object 工作流数据(包含入账金额、证明图片等)
createdAt string 创建时间
updatedAt string 更新时间

测试数据示例

成功案例

请求参数:

{
  "type": "recharge_prod",
  "customerId": "KH20251208-0001",
  "data": {
    "amount": 300,
    "proof": ["https://example.com/proof.png"],
    "isPending": false,
    "isAdvance": true
  }
}

预期响应:

{
  "id": "92102c70-caee-4c46-8828-859536d60a6f",
  "type": "recharge_prod",
  "name": "资金池入账",
  "status": "pending",
  "creator": {...},
  "approvers": [
    {
      "role": "财务",
      "users": ["余佳丽", "肖有", "宁贝妮", "李琼", "蒋思宇"],
      "status": "pending"
    }
  ],
  "createdAt": "2025-12-22T09:38:00Z"
}

失败案例

场景1:未填写入账金额 - 错误提示:"充值金额不能为0或空" - HTTP 状态码:400

场景2:未上传入账证明 - 错误提示:"请上传入账证明" - HTTP 状态码:400

场景3:未选择充值类型 - 错误提示:"充值金额不能为0或空"(需要至少开启垫款充值或挂账充值之一) - HTTP 状态码:400

场景4:客户不存在 - 错误提示:"入账失败:缺少客户ID" - HTTP 状态码:404

异常处理

异常场景 预期行为 处理方法
页面未加载 显示加载指示器或错误提示 刷新页面,检查网络连接
入账对话框未打开 检查用户权限 确认用户有入账权限,检查按钮可见性
表单验证失败 显示红色错误提示 检查必填项,确保数据格式正确,至少选择一种充值类型
工作流创建失败 显示错误提示消息 检查后端日志,验证请求参数
审批按钮不可见 当前用户无审批权限 使用财务账号登录
审批异常 工作流状态未更新 检查审批人权限,查看后端日志
资金未到账 资金池余额未增加 检查工作流状态,确认是否已生效

进度采集模板

可将以下模板复制到 Excel 中,用于记录测试进度:

任务ID 任务名称 执行人 开始时间 结束时间 状态 备注
T1 导航到客户详情页 已完成
T2 打开入账对话框 已完成
T3 填写并提交入账申请 已完成,金额300元,垫款充值
T4 查看工作流列表 已完成,工作流ID: 92102c70-caee-4c46-8828-859536d60a6f
T5 财务审批流程 待财务人员审批

附录

相关配置文件

  • recharge_prod.yaml - 资金池入账工作流配置
  • recharge_pending_prod.yaml - 资金池挂账入账工作流配置(不同于资金池入账)

相关文档

  • docs/workflows.md - 所有工作流配置说明
  • docs/SOP/sop-001-customer-creation-e2e.md - 客户创建端到端测试
  • docs/CRM_OPERATION_MANUAL.md - CRM 操作手册

工作流类型区分

工作流名称 配置文件 审批流程 说明 充值类型设置
资金池入账 recharge_prod.yaml 发起 → 财务审批 → 生效 普通入账,资金进入资金池或垫款 挂账充值:关闭
垫款充值:可选
资金池挂账入账 recharge_pending_prod.yaml 发起 → 媒介审批 → 生效 挂账入账,资金进入挂账余额 挂账充值:开启
资金池提现 withdraw_prod.yaml 发起 → 部门 → 中台 → 财务 → 总部 → 抄送 从资金池提现 N/A

测试结果摘要

测试执行时间:2025-12-22
测试环境:http://localhost:3000
测试用户:超级管理员
测试客户:ceshi (KH20251208-0001)
创建的工作流ID:92102c70-caee-4c46-8828-859536d60a6f
工作流类型:资金池入账 (recharge_prod)
入账金额:¥300.00
充值类型:垫款充值
当前状态:待财务审批
审批人:余佳丽、肖有、宁贝妮、李琼、蒋思宇


文档版本:v2.0
最后更新:2025-12-22
维护者:QA Team