|
|
@@ -0,0 +1,47 @@
|
|
|
+# 2026-09-17:供水首页工作台 #58 四项修正收尾(前端呈现 + 后端实时报警根因)
|
|
|
+
|
|
|
+## 目标
|
|
|
+
|
|
|
+关闭 T05R / Gogs #58「供水首页工作台四项修正」的最后一段:按用户人工验收反馈,修复实时报警状态、全域态势地图铺满、B 区卡片比例、列表滚动四项问题,并补齐后端实时报警取数根因。
|
|
|
+
|
|
|
+## 结论与变更
|
|
|
+
|
|
|
+### 前端(E:\city-life-line)
|
|
|
+
|
|
|
+- `f275f1f`(#58 主交付):移除 A/B/C 子标题占位;实时报警按展示状态分流(待审核→报警审核,已转工单→设备维修派单);全域态势改用公共 GIS 画布 `GisMapCanvas`;工单进展跳转改到设备维修派单(带 keyword)。
|
|
|
+- `d5a044e`(验收反馈第一轮):`normalizeRealtimeAlarmRows` 增加展示状态兜底;B 区改用 `workbench-grid--equal` 三卡等宽;`.compact-list` 增加 `max-height:360px; overflow-y:auto`;取数上限从 6/7/8 提到 20。
|
|
|
+- `fb03a30`(验收反馈第二轮):兜底判定顺序与后端 `resolveDisplayStatus` 对齐 —— **在办工单优先**,其次才是报警已处理/误报解除,避免把「已转工单」误判为「已解除」而从实时列表丢弃。
|
|
|
+
|
|
|
+### 后端(E:\pipe-ner-server)
|
|
|
+
|
|
|
+- `72017c3`(#58 根因修复):`WaterSupplyAlarmServiceImpl.getRealtimeAlarmList()` 去掉 `.eq(AlarmData::getAlarmStatus, 0)` 硬过滤,改为 `buildLedgerVoList(alarms)` 富化后在 Java 侧排除 `displayStatus=3`(已解除)。原因是已转工单(存在未取消工单)的报警 `alarm_status=1`,被原过滤条件整体挡掉,导致首页实时报警全部显示为「待审核」。
|
|
|
+- 同步修正 `WaterSupplyAlarmController` 的 `/realtime` `@ApiOperation` 描述为「待审核/已转工单,已解除不返回」。
|
|
|
+
|
|
|
+## 关键决策
|
|
|
+
|
|
|
+- 实时报警的分流口径以「展示状态」为唯一依据,而不是 `alarm_status`;`alarm_status` 只作为设备报警状态与兜底推导的输入。
|
|
|
+- 前端兜底的判定顺序必须与后端 `resolveDisplayStatus` 一致:有未取消工单 → `2 已转工单`;否则报警已处理/误报解除 → `3 已解除`;其余 → `1 待审核`。
|
|
|
+- 后端明确返回 `displayStatus` 时始终优先,前端兜底仅作用于旧进程/旧产物缺失该字段的过渡期。
|
|
|
+
|
|
|
+## 文件变更
|
|
|
+
|
|
|
+前端:`src/utils/waterHomeModel.js`、`src/views/subSystem/waterSupply/components/WaterSupplyHome.vue`、`tests/waterHomeModel.test.mjs`、`tests/waterSupplyHomeContract.test.mjs`。
|
|
|
+
|
|
|
+后端:`pipe-network-service/zksy-system/.../WaterSupplyAlarmServiceImpl.java`、`.../WaterSupplyAlarmRealtimeContractTest.java`、`pipe-network-service/zksy-admin/.../WaterSupplyAlarmController.java`。
|
|
|
+
|
|
|
+## 验证结果
|
|
|
+
|
|
|
+- 前端:`node --test tests/*.test.mjs` 157/157 通过(net/新增:兜底推导、在办工单优先、已取消工单不视为已转工单、B 区等宽、列表滚动、地图铺满契约);`vite build --logLevel error` 通过(仅既有 Sass 弃用告警)。
|
|
|
+- 后端:`WaterSupplyAlarmRealtimeContractTest` 先红(2 失败)后绿,4 用例通过;`mvn -pl pipe-network-service/zksy-system test` 141/141 通过;`mvn -o -pl pipe-network-service/zksy-admin -am compile` 通过。
|
|
|
+- 数据库口径(KingbaseES 实库核对):待审核 `alarm_status=0` 有 7 条,已转工单 `alarm_status=1` 有 5 条 —— 修复前这 5 条完全不在实时列表内,修复后应同时出现在首页。
|
|
|
+
|
|
|
+## 风险与后续
|
|
|
+
|
|
|
+- 本地后端进程(PID 24724,09:13 启动)为修复前产物,需重启后端(或依赖 devtools 热重启)后首页实时报警才会出现「已转工单」行;验收需重启后复测。
|
|
|
+- 该项属 T05R 修复范围,不触碰 #51(运行系统清警能力缺失)与 #50(报警与设备 service 收敛)。
|
|
|
+- 前端两仓均只提交未推送;用户确认人工验收通过后再推送并关闭 Gogs #58。
|
|
|
+
|
|
|
+## 未决
|
|
|
+
|
|
|
+- #58 待用户人工验收(重启后端 → 首页实时报警出现「已转工单」→ 点击跳转设备维修派单)。
|
|
|
+- 报警管理页「设备报警状态 vs 报警展示状态」矛盾观察项,转入 #51 范畴,后续用 `/grill-with-docs` 澄清。
|