# 供水首页报警态势接口修复 ## 原因与修复 恢复的 `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 检查通过,未进行真实登录/数据库验证,未提交或部署。 无数据库结构或菜单脚本。更新前端、重新构建启动管理后端后刷新供水首页;仅刷新前端不能使尚未部署的新后端接口生效。