# 2026-09-21:统一设备报警阈值配置 ## 目标 - 新增统一报警阈值配置,按设备编码所属设备类型读取 `equipment_warning_type` 指标元数据。 - 支持 data_type 0(最小/最大)、1(仅最小)、2(仅最大),支持设备类型批量保存。 - 供水、排水、燃气、窨井旧阈值入口迁移到生命线统一页面,并按根设备类型隔离。 ## 实现 - 后端新增 `base/warning` 下设备指标元数据、阈值视图、保存请求、Mapper 和服务;`zksy-admin` 新增 `/warning/threshold/types|devices|save`。 - 保存按设备编码 + warning_code 幂等更新已有 `warning_threshold`,并校验设备范围、指标归属和上下限关系。 - 前端新增 `src/views/subSystem/lifeCompany/equipmentWarningType/index.vue` 与 API;旧供水/排水/燃气阈值页面改为统一页面兼容入口。 - 新增 `migration_equipment_warning_threshold_config.sql`,创建 `equipment_warning_type` 表、新菜单,并迁移旧菜单路由。 ## 验证 - 后端 `mvn -o -pl zksy-system,zksy-admin -am -DskipTests compile` 通过。 - 前端 `npm run build:prod` 通过;仅有项目既有 Sass 弃用与大 chunk 警告。 - 两仓 `git diff --check` 通过。 ## 风险 - 菜单脚本需要在 KingbaseES 执行后生效;生产库需先维护各设备类型的 `equipment_warning_type` 指标数据。 - 当前统一页面默认根类型为供水,旧入口 wrapper 分别传入 1/2/3;动态菜单通过 query.rootTypeId 传入根类型。 ## 菜单脚本修订 - 旧阈值入口改为按固定 `menu_id` 精准更新:2119(供水)、2194(排水)、2017(窨井)、2192(燃气)。 - 新增固定两级菜单:2241“阈值管理”(`parent_id=2006`)和 2242“报警阈值”,子菜单指向统一页面。 - 脚本不再使用菜单名称或模糊路径作为更新条件。 ## 旧功能清理 - 删除供水、排水、燃气及窨井旧阈值配置 Vue 页面和供水阈值专属测试。 - 删除旧 `/warningThreshold/*` 管理 Controller、供水专属阈值 Controller/Service/DTO 及测试。 - 删除窨井旧阈值设置页、`saveWarningThreshold` 专属 API/Controller 入口及其入参 DTO;保留报警列表、设备详情读取能力。 - 删除前端旧阈值 API、payload 工具函数和测试;保留水务 UI 模型中仍被 GIS/设备/报警使用的通用函数。 - 精简通用 `WarningThresholdService` 为底层 CRUD,统一管理查询和批量配置由 `EquipmentThresholdService` 承担;实体与 Mapper 保留供运行时读取和新服务复用。 ## 清理后验证 - `npm run build:prod` 通过(仅既有 Sass 弃用及大 chunk 警告)。 - `node --test tests/*.test.mjs`:125 项全部通过。 - `mvn -o -pl zksy-system,zksy-admin -am -DskipTests compile` 通过。 - 两仓 `git diff --check` 通过;旧页面、旧管理路径和已删除 DTO 无残留引用。