Files
ccdi/docs/tests/records/2026-03-19-results-overview-risk-api-backend-verification.md

3.9 KiB
Raw Blame History

结果总览风险接口后端验证记录

验证范围

  • 风险仪表盘接口
  • 风险人员总览接口
  • 中高风险人员 TOP10 接口
  • 打标完成后项目风险人数回写

验证命令

mvn test -pl ccdi-project -Dtest=CcdiProjectOverviewServiceStructureTest,CcdiProjectOverviewMapperSqlTest,CcdiProjectOverviewServiceImplTest,CcdiProjectOverviewControllerTest,CcdiBankTagServiceRiskCountRefreshTest

验证结果

  • 2026-03-19 14:54:00 执行计划内核心验证命令,CcdiProjectOverviewServiceStructureTestCcdiProjectOverviewMapperSqlTestCcdiProjectOverviewServiceImplTestCcdiProjectOverviewControllerTestCcdiBankTagServiceRiskCountRefreshTest 共 11 个测试全部通过
  • 2026-03-19 14:55:24 补充执行受影响旧用例 CcdiBankTagServiceImplTest8 个测试全部通过
  • 2026-03-19 15:02 在真实联调环境发现 risk-peopletop-risk-people 接口报错,根因是数据库版本为 MySQL 5.7.44,不支持 row_number() over (...)
  • 2026-03-19 15:03 新增 MySQL 5.7 兼容性回归测试,改为 not exists 方式选择代表性规则后,CcdiProjectOverviewMapperSqlTest 重新通过
  • 2026-03-19 15:04 重新执行结果总览相关测试组10 个测试全部通过
  • 2026-03-19 15:14 在真实重算 projectId=43 时发现回写链路报错,根因是风险人数汇总 map 中的聚合值被映射为 BigDecimal
  • 2026-03-19 15:15 新增 BigDecimal 场景回归测试,服务层改为按 Number.intValue() 读取风险人数,相关测试重新通过
  • 合并验证命令如下:
mvn test -pl ccdi-project -Dtest=CcdiProjectOverviewServiceStructureTest,CcdiProjectOverviewMapperSqlTest,CcdiProjectOverviewServiceImplTest,CcdiProjectOverviewControllerTest,CcdiBankTagServiceRiskCountRefreshTest,CcdiBankTagServiceImplTest
  • 2026-03-19 15:16:54 在修复 BigDecimal 取值问题后重新执行完整验证,CcdiProjectOverviewServiceStructureTestCcdiProjectOverviewMapperSqlTestCcdiProjectOverviewServiceImplTestCcdiProjectOverviewControllerTestCcdiBankTagServiceRiskCountRefreshTestCcdiBankTagServiceImplTest 共 21 个测试全部通过
  • 合并验证结果21 个测试全部通过0 failure0 error

真实接口验证

  • 登录接口:POST /login/test,返回 200,成功拿到 token
  • 仪表盘接口:GET /ccdi/project/overview/dashboard?projectId=42,返回 200
  • 风险人员总览接口:GET /ccdi/project/overview/risk-people?projectId=42,返回 200,当前返回 1 条员工风险数据
  • 中高风险 TOP10 接口:GET /ccdi/project/overview/top-risk-people?projectId=42,返回 200,当前返回 1 条中风险员工数据
  • 2026-03-19 15:15:40 触发 POST /ccdi/project/tags/rebuildprojectId=43 的真实手动重算,任务 id=22 最终 SUCCESS
  • 重算后 ccdi_project.project_id=43 更新为:high_risk_count=2medium_risk_count=0low_risk_count=0
  • 重算后接口验证:
    • GET /ccdi/project/overview/risk-people?projectId=43 返回 200,共 2 条高风险员工数据
    • GET /ccdi/project/overview/top-risk-people?projectId=43 返回 200,共 2 条高风险 TOP 数据
    • GET /ccdi/project/overview/dashboard?projectId=43 返回 200,高风险人数更新为 2
  • 说明:projectId=43target_count 当前仍为 0,因此仪表盘中的“无风险人员”计算结果为 -2;这反映的是项目基础人数未维护,与本次风险人数回写链路无关

结论

  • 结果总览后端接口、员工风险聚合 SQL、打标后风险人数回写链路已按实施计划完成
  • 已额外修复 MySQL 5.7 环境下的窗口函数兼容问题
  • 已额外修复真实重算场景下的 BigDecimal 风险人数取值问题
  • 只读查询接口与风险人数回写链路均已通过真实后端联调验证
  • 当前剩余问题是部分项目的 target_count 基础数据为 0会导致仪表盘“无风险人员”出现负数