Files
water-management-system/EMERGENCY_SIMULATION_GUIDE.md
bot_dev1 7c7179ff1f feat: 实现应急推演功能(爆管模拟+水质异常处置预案)
- 新增 EmergencySimulationService 应急推演核心服务
- 新增 EmergencyPlanService 应急预案管理服务
- 新增 EmergencyDispatchService 应急调度协调服务
- 新增相关 Controller 类提供 REST API
- 新增数据库表结构和初始化数据
- 新增测试脚本和使用指南
- 实现爆管模拟、水质异常处置、预案管理等核心功能

Addresses Issue #70

提交ID: 9f5af5db6e
2026-06-14 22:45:40 +08:00

357 lines
8.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 应急推演功能使用指南
## 功能概述
本功能实现了 Issue #70 要求的"应急推演(爆管模拟 + 水质异常处置预案)",包括:
1. **爆管模拟**:分析爆管影响区域、关阀方案、受影响用户、恢复时间
2. **水质异常处置**:停水方案、备用水源、风险等级评估
3. **预案管理**:应急预案的创建、应用和管理
4. **应急响应**:基于推演结果生成调度指令
## 技术实现
### 核心组件
- **EmergencySimulationService**: 应急推演核心服务
- **EmergencyPlanService**: 应急预案管理服务
- **EmergencyDispatchService**: 应急调度服务
- **EmergencySimulationController**: 推演API控制器
- **EmergencyPlanController**: 预案API控制器
- **EmergencyDispatchController**: 调度API控制器
### 数据库表
- `prod_emergency_simulation`: 应急推演记录表
- `prod_emergency_plan`: 应急预案表
### 主要功能流程
1. 创建推演 → 执行推演 → 生成调度指令 → 应用应急预案 → 完成响应
## API接口文档
### 1. 快速爆管模拟
```bash
POST /api/emergency/dispatch/quick-pipe-burst
Content-Type: application/json
{
"lng": 116.4074,
"lat": 39.9042,
"pipeDiameter": "DN100",
"operatorName": "operator_name"
}
```
响应示例:
```json
{
"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. 快速水质异常模拟
```bash
POST /api/emergency/dispatch/quick-water-quality
Content-Type: application/json
{
"area": "市中心区域",
"pollutant": "重金属",
"lng": 116.4074,
"lat": 39.9042,
"operatorName": "operator_name"
}
```
### 3. 应急预案管理
```bash
# 创建预案
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. 应急状态查询
```bash
GET /api/emergency/dispatch/status
```
响应示例:
```json
{
"success": true,
"status": {
"alertLevel": "medium",
"preparednessScore": 85,
"recentSimulations": [...],
"activePlans": [...],
"activeCommands": [...]
}
}
```
### 5. 生成应急报告
```bash
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服务**: 地理信息分析
- **物联网平台**: 设备状态监控
## 测试和验证
### 自动化测试
运行测试脚本验证功能:
```bash
cd water-management-system
python test_emergency_simulation.py
```
### 手动测试清单
- [x] 爆管模拟创建和执行
- [x] 水质异常模拟创建和执行
- [x] 应急预案创建和管理
- [x] 应急状态查询
- [x] 应急报告生成
- [x] 调度指令生成和应用
- [x] 数据库完整性检查
## 部署和配置
### 数据库迁移
```sql
-- 执行数据库迁移脚本
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` 中添加:
```yaml
spring:
datasource:
url: jdbc:postgresql://localhost:5432/water_management
username: water_user
password: water_pass
```
## 故障排除
### 常见问题
1. **数据库连接失败**
- 检查数据库配置
- 确认数据库服务运行
2. **API接口返回500错误**
- 检查日志文件
- 确认参数格式正确
3. **推演结果异常**
- 检查输入参数
- 确认地理坐标有效
### 日志查看
```bash
# 查看应用日志
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