water-home-dashboard-fix-2026-09-24.md 1.7 KB

供水首页报警态势接口修复

原因与修复

恢复的 WaterSupplyHome.vue 仍引用已删除的 getAlarmLedgerDashboard,导致浏览器在加载模块时抛出 named export 错误,页面无法打开。旧后台台账 dashboard 同样已删除,不能只补前端导出。

  • 首页改用 src/api/alarm.js 的 getAlarmDashboard。
  • 统一 AlarmController 提供 GET /api/alarm/dashboard?rootTypeId=1&days=7。
  • 保留 alarm:operations:list 权限和 AlarmReviewScopeService.resolveOperations 的菜单授权/设备类型树校验。
  • 返回 totalCount、alarmingDeviceCount、trend、warningTypeRatio、deviceTypeRatio,兼容首页现有统计图表的数据形状。
  • 总量和占比包含范围内历史已处理事件;报警中设备按设备状态去重,不以事件已处理状态代替。近 N 天分级趋势按北京时间自然日统计,支持 1~31 天,无事件日期补 0。
  • 聚合在 SQL 内完成,不拉取全量明细、不按某一分页推算总数。指标名称优先关联配置表,未知分类有明确兜底。

验证与生效

  • 前端相关 Node 测试 50 项、生产构建通过,新增首页 API 命名导入/导出契约回归。
  • 后端运营 service、mapper、controller 及范围测试共 26 项通过。
  • sql/tests/alarm_dashboard.test.mjs 使用 MyBatis 实际生成 SQL,4 项内存 PGlite 测试通过,覆盖供水范围、去重、日期边界、历史事件与名称关联;不是 KingbaseES 实机验收。
  • 两仓 diff 检查通过,未进行真实登录/数据库验证,未提交或部署。

无数据库结构或菜单脚本。更新前端、重新构建启动管理后端后刷新供水首页;仅刷新前端不能使尚未部署的新后端接口生效。