这是“城市地下管网及设施建设改造智能化系统项目”软件平台中“地下管网管控平台”的 Vue 3 前端,覆盖燃气、排水、供水、管网基础、告警、风险和应急调度等业务域。供水前端与 E:\pipe-ner-server\pipe-network-service 后端共同构成“供水管网安全运行监测系统”。
E:\pipe-ner-server;管理后台基于 Spring Boot/RuoYi,网关路由由 Nacos 动态配置。npm run devhttp://localhost:80npm run dev -- --port 5173/dev-api → 本机 8300/pipe 后端memory/sessions/YYYY-MM-DD.md。报警清单顶部展示蓝色“报警总数”、红色“监测异常”、绿色“监测已恢复”三张卡片;仅增加统计区,保留原查询、表格和分页。统计按当前查询范围的全部事件计数,监测恢复不等同于工单处置完成(2026-09-24)。
报警审核、清单、提醒三个页面及其 utils、styles 统一放在 src/views/subSystem/alarm/common;详情、历史等共享组件继续保留在 alarm 根目录。后端菜单组件白名单、初装及增量 SQL 同步新路径,路由 path 与 query 不变(2026-09-24)。
告警表 alarm_data 不再存储设备名称、设备类型、处理时间、处理人和处理备注(2026-09-24)。名称和类型从设备台账查询,处理状态仍使用 alarm_status;操作日志独立保留。
采用仓库原生 AGENTS.md + memory/ 方案。
直接在当前项目目录维护记忆库,不创建额外 worktree。
记忆库只使用 Markdown,不参与前端运行时,不新增 npm 依赖。
前后端 Issue 均通过内网 Gogs 网页低频维护,不假定 CLI 或 API 集成。
Git 提交信息统一使用中文,说明改动目的与范围;一次提交只承载一个主题;用户未明确要求时不推送。
工程技能采用默认 triage 标签:needs-triage、needs-info、ready-for-agent、ready-for-human、wontfix。
前端领域文档采用单上下文布局;后端 E:\pipe-ner-server 采用按 Maven 模块划分的多上下文布局。
waterSupply/facility/*、waterSupply/device/*、waterSupply/monitoring/*、waterSupply/monitorAlarm/*。/getRouters 动态下发;前端组件入口存在不等于角色已经获得对应 sys_menu 权限。/api/work-order 是跨系统规范 API,旧入口只做兼容适配;统一工单继续采用数据库状态机和统一日志语义。src/views/subSystem/alarm/common/audit.vue,sys_menu.path 均为 alarmAudit,菜单 query.rootTypeId 按设备类型树隔离,燃气再限定 warning_code。确认报警创建待派单工单但不改设备状态;工单后续操作仍在统一工单页。此约定取代早期“审核页承载工单全流程/误报解除”的设计。alarm_level:1~4 为一级~四级报警,一级最严重;audit_status 独立于 alarm_status。本次数据库脚本不迁移历史数据,不引入 source_key;alarm_log.log_id 使用 Kingbase int8 和独立序列 alarm_log_id_seq。alarm/common/remind.vue、alarm/common/list.vue,排水研判与 GIS 为 drainage/alarm/analysis.vue、drainage/alarm/alarmGIS.vue;GIS 菜单 path 为 drainageAlarmGIS,详情无周边环境页签。现有菜单 2139/2140/2141/2143/2117 精确更新,供水 root=1、排水 root=2;后端校验授权菜单后查根及后代,运营读取与审核授权分开。供水 GIS 最新改为复制排水页面至 waterSupply/alarm/alarmGIS.vue(含配套 SCSS),菜单 2120 的 path=waterSupplyAlarmGIS、query={"rootTypeId":1}、perms=alarm:operations:list;旧地图页面、模型及专用地图/台账补全/详情/历史接口删除,首页地图取数也使用统一 /api/alarm/map。地图与曲线允许供水/排水,仍校验授权菜单及设备类型树;执行 migration_water_supply_alarm_gis.sql 后重新登录(2026-09-24 最新要求,取代保留旧供水 GIS 的决定)。alarm_data.alarm_no 改由后端程序新增时生成 BJyyyyMMddHHmmss 加 4 位随机数(北京时间),覆盖请求带入的号码,普通更新不改号;不使用数据库赋号触发器/默认值/序列,保留唯一索引、不回填旧数据。管理端新增/演练及采集新增都赋号,采集复用与恢复不改号。相关列表首列展示报警单号,转工单创建日志使用该号;报警触发和采集自动恢复由 Java 在同事务记报警日志,不依赖自定义函数/触发器。研判仅使用真实采样,日/月均聚合原始有效值,不补零;没有数值数据源的指标明确提示无曲线(2026-09-24 用户最新调整,替代数据库生成及雪花 ID 约定)。alarm_log,仍保留正常 work_order_log。人工日志使用 sys_user.nick_name;审核页与详情页共用 AlarmHistory.vue,按时间、同一时间按 ID 倒序,日期分组样式参考 dispose.vue,保留图片预览。按最新要求,zksy-system 与 zk-api-service 各自定义 AlarmLogOperTypeEnum(0 触发/1 确认/2 误报/3 处理),两份值保持一致,不新增共享模块,移除工单相关类型,不删除旧类型历史行(2026-09-24)。/api/alarm/dashboard(rootTypeId=1、days默认7,后端范围校验),不引用已删除的 getAlarmLedgerDashboard 或旧 /waterSupply/alarm/ledger/dashboard。后端按全量授权数据聚合,仅趋势限制日期,不用分页明细推算总量(2026-09-24 修复)。alarm_status=0,页面不提供“报警清单”操作。报警清单时间条件叫“报警时间”,设备提示“请输入设备编码/名称”,移除审核结果筛选但保留表格结果列。GIS 曲线选项和研判下拉仅展示 actual_value 非空事件(0 有效);地图点位、报警历史不受此限制,研判通过 actualValueOnly=true 后端先过滤再分页,无实际值深链接不能重新加入下拉(2026-09-24)。alarm_data.alarm_status=0,前端不提供监测状态筛选,设备编码/名称和等级筛选使用左标签右控件;设备列表、地图点位、等级统计同口径,详情报警记录保留历史。统计中灰色“报警设备”位于数量前,去掉右上角视图文案及详情底部状态说明(2026-09-24)。prd/outputs/alarm-gis.html:顶部筛选/等级统计、左侧设备列表、大地图及覆盖式详情抽屉,打开详情不挤占地图。统计展示当前结果的设备数,不是报警事件总数;沿用红橙蓝绿等级色、真实 GisMapCanvas/API 和框架分页。详情仅监测曲线、报警记录、设备信息,数值快照明确标注为触发值,不使用原型合成数据或周边环境内容(2026-09-24)。work_order.order_desc 保存根据报警信息生成的故障描述,审核意见单独保存在报警日志中。alarm_data.warning_code 保证一个未办结工单(0/1/2/3/4/6),5 已结案和 7 已取消可释放名额。不同编码不互斥,报警恢复不等于工单办结;查重在设备行锁保护的建单事务中完成,缺失报警编码时明确报错,不按显示名称替代。旧“同设备所有工单互斥”规则不再适用(2026-09-24)。0–7 契约(0 待派单/1 待接单/2 已接单/3 处理中/4 待验收/5 已结案/6 延期中/7 已取消);终态仅已结案和已取消,延期中是处理旁路。验收驳回是“待验收(4)回退到处理中(3)”的动作而非状态。调用方必须按接口契约解释状态编码并以状态名展示。三仓共识见本仓 docs/domain/work-order-lifecycle.md。docs/design/2026-08-22-water-supply-work-order-ui.md。E:\pipe-ner-server\pipe-network-service 后端共同构成。