Status: done
作为系统质量保证人员, 我希望对统计模块进行全面的数据一致性验证和回归测试, 以确保所有修复后的统计方法使用统一的统计口径,数据准确可靠。
为什么要验证:
经过 Story 13.23、13.24、13.25 的修复,统计模块已从使用 disabled_person.jobStatus 统一改为使用 order_person.work_status。需要进行全面的验证确保:
验证范围:
Given 统计模块代码审查
When 检查所有统计方法
Then 所有方法应使用 order_person.work_status = 'working' 过滤在职人员
And 不应再有任何方法使用 disabled_person.jobStatus = 1
Given 企业小程序数据统计页 When 查看各分布图(残疾类型、性别、年龄、户籍) Then 各分布图的总人数应相同 And 应与首页仪表板在职人数一致
Given 企业小程序数据统计页 When 查看在职状态分布图 Then 应显示所有 work_status 状态 And 各状态人数之和应等于总人数 And "在职"状态人数应与首页仪表板一致
Given 企业小程序数据统计页 When 查看薪资分布和平均薪资 Then 薪资分布总人数应与首页仪表板一致 And 平均薪资应基于在职人员计算
Given 企业小程序数据统计页 When 查看在职率统计 Then 在职率计算应基于正确的在职人数 And 在职人数应与首页仪表板一致
Given 调用所有统计 API When 比较返回的数据 Then 各 API 返回的总人数应一致 And 与首页 overview API 返回的在职人数一致
Given 所有修复完成 When 运行数据统计页 E2E 测试套件 Then 所有测试应该通过 And 没有数据不一致的警告
Given 统计模块代码 When 进行代码审查 Then 应通过所有代码审查检查 And 不应存在 HIGH 或 MEDIUM 优先级的问题
statistics.service.ts 所有 8 个统计方法order_person.work_status = 'working'disabled_person.jobStatus = 1 引用/company/overview API 在职人数一致allin-packages/statistics-module/src/services/statistics.service.tsallin-packages/statistics-module/test/statistics.service.spec.tsweb/tests/e2e/mini-enterprise/statistics-page.spec.ts| 方法名 | API 路由 | 说明 | 修复状态 |
|---|---|---|---|
| getEmploymentCount | /statistics/employment-count |
在职人数统计 | ✅ Story 13.23 |
| getDisabilityTypeDistribution | /statistics/disability-type-distribution |
残疾类型分布 | ⏳ Story 13.24 |
| getGenderDistribution | /statistics/gender-distribution |
性别分布 | ⏳ Story 13.24 |
| getAgeDistribution | /statistics/age-distribution |
年龄分布 | ⏳ Story 13.24 |
| getHouseholdDistribution | /statistics/household-distribution |
户籍分布 | ⏳ Story 13.24 |
| getSalaryDistribution | /statistics/salary-distribution |
薪资分布 | ⏳ Story 13.24 |
| getJobStatusDistribution | /statistics/job-status-distribution |
在职状态分布 | ⏳ Story 13.25 |
| getEmploymentRate | /statistics/employment-rate |
在职率统计 | ⏳ Story 13.24 |
| getAverageSalary | /statistics/average-salary |
平均薪资统计 | ✅ 无需修复 |
/statistics/employment-count 返回的 count/statistics/disability-type-distribution 返回的 total/statistics/gender-distribution 返回的 total/statistics/age-distribution 返回的 total/statistics/household-distribution 返回的 total/statistics/salary-distribution 返回的 total/statistics/job-status-distribution 返回的 total/company/overview 返回的在职人数所有以上数值应该相等。
使用 Playwright MCP 验证:
cd allin-packages/statistics-module
pnpm test
cd web
pnpm test:e2e:chromium statistics-page
# 统计模块数据一致性验证报告
## 验证日期
2026-01-XX
## 验证范围
- 统计方法: 8 个
- API 端点: 8 个
- UI 图表: 7 个
## 验证结果
### 代码审查
- [ ] 所有方法使用统一的统计口径
- [ ] 没有残留的旧代码引用
- [ ] 查询逻辑正确
### API 数据一致性
| API | Total/Count | 与首页一致 |
|-----|-------------|------------|
| employment-count | X | ✅/❌ |
| disability-type-distribution | X | ✅/❌ |
| ... | ... | ... |
### UI 数据一致性
| 图表 | Total | 与首页一致 |
|------|-------|------------|
| 残疾类型分布 | X | ✅/❌ |
| 性别分布 | X | ✅/❌ |
| ... | ... | ... |
### 测试结果
- 单元测试: X/X 通过
- E2E 测试: X/X 通过
### 发现的问题
1. ...
2. ...
### 结论
✅ 所有验证通过 / ⚠️ 存在问题需要修复
allin-packages/statistics-module/src/services/statistics.service.ts - 统计服务实现allin-packages/statistics-module/src/routes/statistics.routes.ts - 统计 API 路由allin-packages/mini-enterprise-module/src/pages/statistics.tsx - 前端统计页面Claude (d8d-model)
N/A
相关文件:
allin-packages/statistics-module/src/services/statistics.service.ts (代码审查)allin-packages/statistics-module/test/statistics.service.spec.ts (单元测试)web/tests/e2e/mini-enterprise/statistics-page.spec.ts (E2E 测试)