SOP-105:服务费审批
标准 SOP 测试文档;每个任务(Task ID)代表一个独立的测试步骤,便于人工/自动化测试按序号完成并记录进度。
文档元数据
- 文档类型:SOP / Checklist
- 适用场景:服务费订单审批流程测试(技术服务费、广告服务费、视频服务费、代运营费用)
- 配置文件:
20260226_create_service_fee_review_template.sql - 创建者:财务 / 运营 / QA
- 最近更新时间:2026-02-26
- 相关接口定义:参考
crm.swagger.json中FlowService与CashService模块(特别是POST /api/v1/flows、GET /api/v1/flows、POST /api/v1/orders)
工作流概述
流程图
graph LR
A[发起申请] --> B[逐级领导审批]
B --> C[财务审批]
C --> D[自动生效]
D --> E[更新客户余额]
审批角色
| 步骤 | 审批人 | 说明 |
|---|---|---|
| 逐级领导审批 | 申请人的直接领导至最高领导 | 串行逐级审批,depth: -1 |
| 财务审批 | 往来会计 / 总账会计 / 税务会计 / 财务主管 / 财务总监 | 任一财务人员通过即可 |
前置条件
| 条件 | 检查方式 |
|---|---|
| 已使用有权限的用户登录 | 登录成功,能加载左侧导航 |
| 有可用的客户 | 订单页面可选择客户 |
| 客户有服务费产品(技术服务费/广告服务费/视频服务费/代运营费用) | 订单中可添加对应服务费产品 |
| 用户有创建订单权限 | 能看到"新增订单"按钮 |
任务矩阵
任务 T1:创建服务费订单
入口:订单管理 → 新增订单
| Action Steps | Input / Payload | 预期结果 | 验证方式 | 证据 | 状态 | 下游任务 |
|---|---|---|---|---|---|---|
| 步骤1:进入订单管理页 | 打开订单管理页面 | 页面展示订单列表 | 页面加载成功 | 截图 | [ ] |
步骤 2 |
| 步骤2:新增订单 | 点击"新增订单"按钮 | 进入订单创建页面 | 表单页面加载成功 | 截图 | [ ] |
步骤 3 |
| 步骤3:选择客户 | 选择目标客户 | 客户字段显示已选客户 | 检查字段显示 | 截图 | [ ] |
步骤 4 |
| 步骤4:添加服务费产品 | 添加"技术服务费"产品 | 产品行出现在订单明细中 | AccountType 显示"技术服务" | 截图 | [ ] |
步骤 5 |
| 步骤5:填写金额 | 输入 3000 |
金额输入框显示 3000 | 检查输入框值 | 截图 | [ ] |
步骤 6 |
| 步骤6:填写备注 | 输入"服务费审批测试" | 备注字段显示输入内容 | 检查字段显示 | 截图 | [ ] |
步骤 7 |
| 步骤7:提交订单 | 点击"提交" | 显示成功提示,生成 TransOrder | 弹出"提交成功"提示 | 截图 | [ ] |
任务 T2 |
任务 T2:查看工作流列表与详情
入口:审批中心 → 我发起的 / 工作流
| Action Steps | Input / Payload | 预期结果 | 验证方式 | 证据 | 状态 | 下游任务 |
|---|---|---|---|---|---|---|
| 步骤1:进入工作流列表 | 打开工作流列表页面 | 列表出现新工作流 | 列表含"SOP-105 服务费"记录 | 截图 | [ ] |
步骤 2 |
| 步骤2:进入工作流详情 | 点击新工作流 ID | 进入工作流详情 | 详情页显示客户、服务费类型、金额信息 | 截图 | [ ] |
步骤 3 |
| 步骤3:确认审批步骤 | 查看审批节点 | 显示两个审批步骤 | 第一步"逐级领导审批"、第二步"财务审批" | 截图 | [ ] |
任务 T3 |
任务 T3:逐级领导审批流程
入口:审批中心 → 待我审批(领导账号)
| Action Steps | Input / Payload | 预期结果 | 验证方式 | 证据 | 状态 | 下游任务 |
|---|---|---|---|---|---|---|
| 步骤1:切换到领导账号 | 登录直接领导账号 | 登录成功 | 导航栏显示领导用户名 | 截图 | [ ] |
步骤 2 |
| 步骤2:查找待审批记录 | 筛选 SOP-105 | 列表出现待审批记录 | 列表显示状态"逐级领导审批" | 截图 | [ ] |
步骤 3 |
| 步骤3:查看审批详情 | 打开审批详情页 | 显示申请明细 | 详情包含客户名、服务费类型、金额 | 截图 | [ ] |
步骤 4 |
| 步骤4:执行审批 | 领导点击"通过" | 流转到下一级领导或财务审批 | 刷新后状态更新 | 截图 | [ ] |
步骤 5 |
| 步骤5:逐级领导完成审批 | 各级领导依次通过 | 所有领导审批完成后进入财务审批 | 当前步骤变为"财务审批" | 截图 | [ ] |
任务 T4 |
任务 T4:财务审批流程
入口:审批中心 → 待我审批(财务账号)
| Action Steps | Input / Payload | 预期结果 | 验证方式 | 证据 | 状态 | 下游任务 |
|---|---|---|---|---|---|---|
| 步骤1:切换到财务账号 | 登录财务人员账号 | 登录成功 | 导航栏显示财务用户名 | 截图 | [ ] |
步骤 2 |
| 步骤2:查找待审批记录 | 筛选 SOP-105 | 列表出现待审批记录 | 列表显示状态"财务审批" | 截图 | [ ] |
步骤 3 |
| 步骤3:查看审批详情 | 打开审批详情页 | 显示申请明细 | 详情包含客户名、服务费类型、金额 | 截图 | [ ] |
步骤 4 |
| 步骤4:执行审批 | 财务人员点击"通过" | 工作流状态变为"生效" | 刷新后状态更新为"已通过" | 截图 | [ ] |
任务 T5 |
任务 T5:验证客户余额扣减与审批记录
入口:商务结算 / 客户详情 / 工作流详情
| Action Steps | Input / Payload | 预期结果 | 验证方式 | 证据 | 状态 | 下游任务 |
|---|---|---|---|---|---|---|
| 步骤1:查看商务结算记录 | 返回服务费 Tab | TransOrder 状态变为成功 | 列表中订单状态为"成功" | 截图 | [ ] |
步骤 2 |
| 步骤2:核对客户余额 | 查看客户详情页余额 | 客户对应账户余额减少 | 核对扣减前后余额变化(减少 3000) | 截图 | [ ] |
步骤 3 |
| 步骤3:查看审批记录 | 打开审核历史 | 显示审批人、时间、结果 | 审批记录完整(领导+财务) | 截图 | [ ] |
— |
API 参考
相关接口
| 接口 | 方法 | 描述 |
|---|---|---|
/api/v1/orders |
POST | 创建订单(含服务费产品) |
/api/v1/flows |
POST | 创建工作流 |
/api/v1/flows |
GET | 获取工作流列表 |
/api/v1/flows/{id} |
GET | 获取工作流详情 |
/api/v1/flows/{id}/approve |
POST | 审批工作流 |
测试数据示例
成功案例
订单请求参数:
{
"customerId": 1,
"customerName": "测试客户",
"items": [
{
"productName": "技术服务费",
"objectType": "Customer",
"accountType": "技术服务",
"price": 3000,
"memo": "服务费审批测试"
}
]
}
预期生成的 TransOrder:
{
"id": "trans-order-id",
"orderType": "ORDER_TYPE_SERVICE_FEE",
"customerName": "测试客户",
"amount": 3000,
"accountType": "技术服务",
"status": "PENDING",
"items": [
{
"type": "TRANS_ORDER_ITEM_TYPE_SERVICE_FEE",
"amount": 3000,
"cashType": "CASH_TYPE_CASH",
"accountType": "技术服务"
}
]
}
预期工作流响应:
{
"id": "flow-id-example",
"type": "service_fee",
"name": "服务费审批",
"status": "pending",
"creator": {},
"steps": [
{ "stepOrder": 1, "stepName": "逐级领导审批", "status": "pending" },
{ "stepOrder": 2, "stepName": "财务审批", "status": "pending" }
],
"createdAt": "2026-02-26T10:00:00Z"
}
失败案例
场景1:未选择客户 - 错误提示:"请选择客户" - HTTP 状态码:400
场景2:未填写金额 - 错误提示:"金额不能为0或空" - HTTP 状态码:400
场景3:无权限创建订单 - 错误提示:"没有权限执行此操作" - HTTP 状态码:403
异常处理
| 异常场景 | 预期行为 | 处理方法 |
|---|---|---|
| 页面未加载 | 显示加载指示器或错误提示 | 刷新页面,检查网络连接 |
| 订单创建失败 | 显示错误提示消息 | 检查后端日志,验证请求参数 |
| 工作流未生成 | TransOrder 创建成功但无审批流程 | 检查 review_templates 是否配置 SOP-105 |
| 领导审批按钮不可见 | 当前用户不在领导层级中 | 确认登录的领导账号是申请人的上级 |
| 财务审批按钮不可见 | 当前用户无财务岗位 | 使用财务账号登录 |
| 余额未变化 | 服务费未从客户余额扣减 | 检查审批状态是否为"生效",检查 Transaction 记录 |
进度采集模板
可将以下模板复制到 Excel 中,用于记录测试进度:
| 任务ID | 任务名称 | 执行人 | 开始时间 | 结束时间 | 状态 | 备注 |
|---|---|---|---|---|---|---|
| T1 | 创建服务费订单 | ⬜ | ||||
| T2 | 查看工作流列表与详情 | ⬜ | ||||
| T3 | 逐级领导审批流程 | ⬜ | ||||
| T4 | 财务审批流程 | ⬜ | ||||
| T5 | 验证客户余额扣减与审批记录 | ⬜ |
附录
相关配置文件
20260226_create_service_fee_review_template.sql- 服务费审批模板配置
服务费类型对照
| 产品名称 | AccountType | 说明 |
|---|---|---|
| 技术服务费 | 技术服务 | 技术支持相关费用 |
| 广告服务费 | 广告服务 | 广告投放服务费用 |
| 视频服务费 | 视频服务 | 视频制作相关费用 |
| 代运营费用 | 代运营 | 代运营服务费用 |
相关文档
docs/SOP/sop-603-porter-recharge.md- 端口充值审批docs/SOP/sop-601-external-recharge.md- 外采帐户充值审批docs/SOP/sop-602-external-transfer.md- 外采端口入帐审批
文档版本:v1.0.0 最后更新:2026-02-26 维护者:财务团队 / 运营团队 / QA