关闭 T05R / Gogs #58「供水首页工作台四项修正」的最后一段:按用户人工验收反馈,修复实时报警状态、全域态势地图铺满、B 区卡片比例、列表滚动四项问题,并补齐后端实时报警取数根因。
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 对齐 —— 在办工单优先,其次才是报警已处理/误报解除,避免把「已转工单」误判为「已解除」而从实时列表丢弃。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 通过。alarm_status=0 有 7 条,已转工单 alarm_status=1 有 5 条 —— 修复前这 5 条完全不在实时列表内,修复后应同时出现在首页。/grill-with-docs 澄清。