Status: ready-for-dev
作为企业管理员, 我在企业小程序的订单列表中查看订单卡片时, 我希望看到准确的订单统计数据(实际人数、本月打卡、工资视频、个税视频), 以便了解订单执行情况和人员合规状态。
当前问题: 企业小程序订单卡片中的统计字段显示为 0:
根本原因: 前端 OrderList.tsx 文件中硬编码了统计值为 0,未调用后端统计 API。
影响范围: 企业用户无法通过小程序了解订单执行情况和人员合规状态,影响业务决策。
Given 企业小程序订单列表页面 When 页面加载订单数据时 Then 应该从后端 API 获取实际统计数据 And "实际人数"应显示订单实际关联的残疾人人数(当前已正确) And "本月打卡"应显示实际的打卡统计数据 And "工资视频"应显示实际的工资视频统计数据 And "个税视频"应显示实际的个税视频统计数据
Given 订单卡片显示本月打卡统计
When 查看统计数据时
Then 应显示格式:实际打卡数/订单总人数 百分比
And 数据来源:order_person_asset 表,asset_type='checkin_video'
And 统计本月内该订单关联人员的打卡视频数量
Example: 24/30 80% 表示 30 人中有 24 人已打卡
Given 订单卡片显示工资视频统计
When 查看统计数据时
Then 应显示格式:实际视频数/订单总人数 百分比
And 数据来源:order_person_asset 表,asset_type='salary_video'
And 统计本月内该订单关联人员的工资确认视频数量
Example: 22/24 92% 表示 24 人中有 22 人已上传工资视频
Given 订单卡片显示个税视频统计
When 查看统计数据时
Then 应显示格式:实际视频数/订单总人数 百分比
And 数据来源:order_person_asset 表,asset_type='tax_video'
And 统计本月内该订单关联人员的个税确认视频数量
Example: 20/24 83% 表示 24 人中有 20 人已上传个税视频
Given 企业小程序订单列表测试 When 运行 E2E 测试时 Then 应验证订单卡片统计字段正确显示 And 应验证数据从 API 获取而非硬编码 And 应验证百分比计算正确
OrderList.tsx 当前的数据转换逻辑order_person_asset 表结构和字段/api/company-orders/{orderId}/stats 端点OrderList.tsx 的数据转换逻辑enterprise-mini.page.ts 中添加订单统计相关方法:
getOrderCardStats(orderId: number)expectOrderStatsField(fieldName: string, expected: any)web/tests/e2e/specs/cross-platform/order-stats-fix.spec.tsEpic 13: 跨端数据同步测试 (Epic E)
根据 PRD 文档(_bmad-output/planning-artifacts/prd.md),订单统计字段定义如下:
| 字段 | 业务含义 | 数据来源 | 计算逻辑 | 显示格式 |
|---|---|---|---|---|
| 实际人数 | 当前订单实际关联的残疾人人数 | order_person 表 |
统计 order_id 等于当前订单 ID 的记录数量 |
XX人 |
| 本月打卡 | 本月内残疾人上下班打卡的视频记录数量统计 | order_person_asset 表,asset_type='checkin_video' |
统计本月内该订单关联人员的打卡视频数量 | 24/30 80% |
| 工资视频 | 残疾人每月薪资确认视频,用于合规证明和薪资发放记录 | order_person_asset 表,asset_type='salary_video' |
统计本月内该订单关联人员的工资确认视频数量 | 22/24 92% |
| 个税视频 | 残疾人每月个税确认视频,用于税务合规证明 | order_person_asset 表,asset_type='tax_video' |
统计本月内该订单关联人员的个税确认视频数量 | 20/24 83% |
前端文件(需修复):
mini-ui-packages/yongren-order-management-ui/src/pages/OrderList/OrderList.tsx
Line 85-87: 硬编码的统计值
checkinStats: { current: 0, total: orderPersonsCount, percentage: 0 },
salaryVideoStats: { current: 0, total: orderPersonsCount, percentage: 0 },
taxVideoStats: { current: 0, total: orderPersonsCount, percentage: 0 }
后端 API 相关(需检查/创建):
allin-packages/company-order-module/src/routes/company-order.routes.tsallin-packages/company-order-module/src/services/company-order.service.tsallin-packages/company-order-module/src/schemas/company-order.schema.tsE2E 测试文件(需创建):
web/tests/e2e/specs/cross-platform/order-stats-fix.spec.tsweb/tests/e2e/pages/mini/enterprise-mini.page.ts端点设计:
GET /api/company-orders/{orderId}/stats
响应格式:
interface OrderStatsResponse {
orderId: number;
actualPeople: number;
checkinStats: {
current: number;
total: number;
percentage: number;
};
salaryVideoStats: {
current: number;
total: number;
percentage: number;
};
taxVideoStats: {
current: number;
total: number;
percentage: number;
};
}
查询参数(可选):
year: 年份(默认当前年)month: 月份(默认当前月)当前代码问题:
// Line 65-88: 数据转换时硬编码统计值
const transformedOrders = (data.data || []).map((order: OrderData) => {
const orderPersonsCount = order.orderPersons?.length || 0
// ...
return {
// ...
checkinStats: { current: 0, total: orderPersonsCount, percentage: 0 },
salaryVideoStats: { current: 0, total: orderPersonsCount, percentage: 0 },
taxVideoStats: { current: 0, total: orderPersonsCount, percentage: 0 }
}
})
修复方案:
enterpriseOrderClient 中添加统计 API 调用方法useQuery 或并行请求获取每个订单的统计数据本 Story 采用 Playwright MCP 持续验证的测试开发流程:
PRD 文档:
_bmad-output/planning-artifacts/prd.md - 订单统计字段业务定义架构文档:
_bmad-output/planning-artifacts/architecture.md - 技术栈和架构决策相关 Story 文档:
13-12-statistics-page-validation.md - 数据统计页修复经验参考12-4-enterprise-mini-page-object.md - 企业小程序 Page Object12-5-enterprise-mini-login.md - 企业小程序登录测试Created by create-story workflow
Implementation phase - no debug yet
待创建的文件:
_bmad-output/implementation-artifacts/13-13-order-stats-fix.md - Story 文档web/tests/e2e/specs/cross-platform/order-stats-fix.spec.ts - E2E 测试文件待修改的文件:
_bmad-output/planning-artifacts/epics.md - 添加 Story 13.13mini-ui-packages/yongren-order-management-ui/src/pages/OrderList/OrderList.tsx - 修复硬编码统计值allin-packages/company-order-module/src/routes/company-order.routes.ts - 添加统计 API(如需要)web/tests/e2e/pages/mini/enterprise-mini.page.ts - Page Object 扩展