智慧水务管理系统 - 精河县供水工程综合管理平台

应急推演功能使用指南

功能概述

本功能实现了 Issue #70 要求的"应急推演(爆管模拟 + 水质异常处置预案)",包括:

  1. 爆管模拟:分析爆管影响区域、关阀方案、受影响用户、恢复时间
  2. 水质异常处置:停水方案、备用水源、风险等级评估
  3. 预案管理:应急预案的创建、应用和管理
  4. 应急响应:基于推演结果生成调度指令

技术实现

核心组件

  • EmergencySimulationService: 应急推演核心服务
  • EmergencyPlanService: 应急预案管理服务
  • EmergencyDispatchService: 应急调度服务
  • EmergencySimulationController: 推演API控制器
  • EmergencyPlanController: 预案API控制器
  • EmergencyDispatchController: 调度API控制器

数据库表

  • prod_emergency_simulation: 应急推演记录表
  • prod_emergency_plan: 应急预案表

主要功能流程

  1. 创建推演 → 执行推演 → 生成调度指令 → 应用应急预案 → 完成响应

API接口文档

1. 快速爆管模拟

POST /api/emergency/dispatch/quick-pipe-burst
Content-Type: application/json

{
  "lng": 116.4074,
  "lat": 39.9042,
  "pipeDiameter": "DN100",
  "operatorName": "operator_name"
}

响应示例:

{
  "success": true,
  "simulation": {
    "simulationNo": "SIM-20240614010001",
    "scenarioType": "pipe_burst",
    "scenarioName": "爆管应急推演",
    "affectedArea": "半径500m圆形区域",
    "affectedCustomers": 230,
    "estimatedRecoveryHours": 4,
    "status": "completed"
  },
  "executionResult": {
    "impactAnalysis": {
      "affectedArea": "半径500m圆形区域",
      "affectedCustomers": 230,
      "estimatedRecoveryHours": 4
    },
    "emergencyMeasures": {
      "valveShutdown": "关闭上游阀门 V-001, V-002",
      "emergencyWater": "启动应急供水方案 B",
      "userNotification": "通知受影响用户(短信+公告)",
      "repairTeam": "调度抢修队出发"
    }
  },
  "suggestedCommands": [
    {
      "title": "爆管应急推演",
      "type": "emergency",
      "priority": "high",
      "content": "爆管应急响应..."
    }
  ]
}

2. 快速水质异常模拟

POST /api/emergency/dispatch/quick-water-quality
Content-Type: application/json

{
  "area": "市中心区域",
  "pollutant": "重金属",
  "lng": 116.4074,
  "lat": 39.9042,
  "operatorName": "operator_name"
}

3. 应急预案管理

# 创建预案
POST /api/emergency/plan/create
?planName=预案名称&planType=disaster&scenario=爆管&operatorName=operator_name

# 激活预案
POST /api/emergency/plan/{planId}/activate
?operatorName=operator_name

# 查询预案列表
GET /api/emergency/plan/list
?page=1&size=10&planType=all&status=active

4. 应急状态查询

GET /api/emergency/dispatch/status

响应示例:

{
  "success": true,
  "status": {
    "alertLevel": "medium",
    "preparednessScore": 85,
    "recentSimulations": [...],
    "activePlans": [...],
    "activeCommands": [...]
  }
}

5. 生成应急报告

GET /api/emergency/dispatch/report?period=week

数据模型

EmergencySimulation(应急推演记录)

字段 类型 描述
simulationNo String 推演编号
scenarioType String 推演类型(pipe_burst/water_quality)
scenarioName String 推演名称
locationLng Double 经度
locationLat Double 纬度
pipeDiameter String 管道直径
affectedArea String 影响区域
affectedCustomers Integer 受影响用户数
estimatedRecoveryHours Integer 预计恢复时间
status String 状态(draft/executing/completed/with_plan)

EmergencyPlan(应急预案)

字段 类型 描述
planNo String 预案编号
planName String 预案名称
planType String 预案类型(disaster/accident/emergency)
scenario String 适用场景
triggerConditions String 触发条件
responseProcedure String 响应流程
responsibleDepartments String 责任部门
contactInfo String 联系信息
resourceRequirements String 资源需求
backupSolutions String 备用方案
status String 状态(draft/active/inactive/expired)

业务流程

爆管应急响应流程

  1. 触发条件检测

    • 管道压力异常波动
    • 地面出现喷水现象
    • 用户报告大面积停水
    • 系统监测到漏水量异常
  2. 影响分析

    • 基于管道直径计算影响半径
    • 计算受影响用户数量
    • 生成关阀方案
  3. 应急措施

    • 关闭上游阀门
    • 启动应急供水方案
    • 通知受影响用户
    • 调度抢修队
  4. 恢复重建

    • 组织抢修
    • 水质检测
    • 恢复供水
    • 用户通知

水质异常应急响应流程

  1. 触发条件检测

    • 水质检测指标超标
    • 用户反映水质异常
    • 上游水源污染报告
    • 系统监测到浊度/色度异常
  2. 影响分析

    • 评估污染程度和范围
    • 确定风险等级
    • 选择备用水源
  3. 应急措施

    • 立即停止异常区域供水
    • 启动备用水源
    • 水质采样送检
    • 发布停水通知
  4. 恢复重建

    • 水质达标后恢复供水
    • 清洗管道系统
    • 用户通知和解释

预警级别定义

警报级别

  • 低级(low):日常监测,无需特别关注
  • 中级(medium):有推演记录,需要关注
  • 高级(high):高风险事件,需要立即响应

风险等级(水质异常)

  • 中等(medium):一般污染物影响,2-4小时恢复
  • (high):较严重污染物,4-8小时恢复
  • 严重(critical):剧毒污染物,8小时以上恢复

系统集成

与现有调度系统集成

  1. DispatchCommandService: 生成调度指令
  2. DispatchTrackingService: 跟踪指令执行
  3. AlertEngine: 警报系统集成

与其他系统集成

  • 用户服务: 获取用户信息
  • 通知服务: 发送用户通知
  • GIS服务: 地理信息分析
  • 物联网平台: 设备状态监控

测试和验证

自动化测试

运行测试脚本验证功能:

cd water-management-system
python test_emergency_simulation.py

手动测试清单

  • 爆管模拟创建和执行
  • 水质异常模拟创建和执行
  • 应急预案创建和管理
  • 应急状态查询
  • 应急报告生成
  • 调度指令生成和应用
  • 数据库完整性检查

部署和配置

数据库迁移

-- 执行数据库迁移脚本
psql -d water_management -f wm-production/src/main/resources/db/V3__emergency_simulation.sql
psql -d water_management -f wm-production/src/main/resources/db/V3__emergency_simulation_data.sql

Spring Boot 配置

application.yml 中添加:

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/water_management
    username: water_user
    password: water_pass

故障排除

常见问题

  1. 数据库连接失败

    • 检查数据库配置
    • 确认数据库服务运行
  2. API接口返回500错误

    • 检查日志文件
    • 确认参数格式正确
  3. 推演结果异常

    • 检查输入参数
    • 确认地理坐标有效

日志查看

# 查看应用日志
tail -f logs/wm-production.log

# 查看数据库日志
tail -f postgresql.log

扩展功能

未来规划

  1. AI驱动的智能推演

    • 机器学习预测影响范围
    • 智能推荐最佳方案
  2. 3D可视化

    • 三维地理信息展示
    • 实时监控和预警
  3. 移动端支持

    • 手机端应急响应
    • 现场数据采集

性能优化

  1. 缓存机制

    • 缓存常用预案
    • 缓存地理信息
  2. 异步处理

    • 推演任务异步执行
    • 推送通知异步处理
  3. 负载均衡

    • 分布式部署
    • 负载均衡配置

联系支持

如有问题请联系:

  • 开发团队:dev-team@water.com
  • 技术支持:support@water.com
  • 紧急联系:400-123-4567