# 预警管理系统集成说明

## 一、系统概述

本预警管理系统为城市地下管网及设施建设改造智能化系统提供完整的预警发布、处置、督办等功能。

## 二、数据库配置

### 2.1 执行建表SQL

```bash
# 执行SQL文件
pipe-network-service/sql/early-warning-system.sql
```

### 2.2 数据库表说明

| 表名 | 说明 |
|------|------|
| early_warning | 预警信息主表 |
| alarm_warning_rel | 报警预警关联表 |
| warning_attachment | 预警附件表 |
| warning_disposal | 预警处置记录表 |
| warning_supervision | 预警督办表 |
| leader_instruction | 领导批示表 |
| warning_todo | 预警待办表 |
| warning_type_config | 预警类型配置表 |
| warning_level_config | 预警级别配置表 |

## 三、Flowable工作流引擎集成（可选）

### 3.1 添加Maven依赖

在 `pipe-network-service/zksy-system/pom.xml` 中添加：

```xml
<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-spring-boot-starter</artifactId>
    <version>6.8.0</version>
</dependency>
```

### 3.2 配置Flowable数据源

在 `application.yml` 中添加：

```yaml
flowable:
  database-schema-update: true
  async-executor-activate: false
  process-definition-location-prefix: classpath*:/processes/
  history-level: audit
```

### 3.3 部署流程定义

将 `early-warning-process.bpmn20.xml` 放置在 `src/main/resources/processes/` 目录下，启动时会自动部署。

## 四、后端API接口说明

### 4.1 预警管理接口 (`/warning`)

| 接口 | 方法 | 说明 |
|------|------|------|
| `/warning/list` | GET | 分页查询预警列表 |
| `/warning/detail/{warningId}` | GET | 预警详情 |
| `/warning/save` | POST | 保存预警信息 |
| `/warning/publish/{warningId}` | POST | 发布预警 |
| `/warning/upgrade` | POST | 预警升级 |
| `/warning/resolve` | POST | 解除预警 |
| `/warning/return` | POST | 退回重办 |
| `/warning/supervision` | POST | 预警督办 |
| `/warning/instruction` | POST | 领导批示 |
| `/warning/link/alarms` | POST | 关联报警信息 |
| `/warning/link/alarms/{warningId}` | GET | 获取关联报警列表 |
| `/warning/disposal/{warningId}` | GET | 获取处置记录列表 |
| `/warning/statistics` | GET | 获取统计数据 |
| `/warning/config/types` | GET | 预警类型配置 |
| `/warning/config/levels` | GET | 预警级别配置 |

### 4.2 待办预警接口

| 接口 | 方法 | 说明 |
|------|------|------|
| `/warning/todo/list` | GET | 待办预警列表 |

### 4.3 工作流接口 (`/workflow`)

| 接口 | 方法 | 说明 |
|------|------|------|
| `/workflow/start` | POST | 启动流程 |
| `/workflow/task/complete` | POST | 完成任务 |
| `/workflow/task/todo/{userId}` | GET | 待办任务列表 |
| `/workflow/task/history/{processInstanceId}` | GET | 历史任务列表 |
| `/workflow/diagram/{processInstanceId}` | GET | 获取流程路线图（可视化） |
| `/workflow/task/current/{processInstanceId}` | GET | 获取当前任务信息 |

## 五、工作流路线图可视化

### 5.1 数据结构

```json
{
  "nodes": [
    {
      "id": "start",
      "name": "开始",
      "type": "startEvent",
      "x": 50,
      "y": 150,
      "status": "completed"
    },
    {
      "id": "publish",
      "name": "发布预警",
      "type": "userTask",
      "x": 180,
      "y": 150,
      "status": "completed"
    },
    {
      "id": "handle",
      "name": "处理预警",
      "type": "userTask",
      "x": 360,
      "y": 150,
      "status": "active"
    },
    {
      "id": "decision",
      "name": "是否解除",
      "type": "exclusiveGateway",
      "x": 540,
      "y": 150,
      "status": "waiting"
    },
    {
      "id": "resolve",
      "name": "解除预警",
      "type": "userTask",
      "x": 720,
      "y": 100,
      "status": "waiting"
    },
    {
      "id": "return",
      "name": "退回重办",
      "type": "userTask",
      "x": 720,
      "y": 200,
      "status": "waiting"
    },
    {
      "id": "end",
      "name": "结束",
      "type": "endEvent",
      "x": 900,
      "y": 150,
      "status": "waiting"
    }
  ],
  "edges": [
    {
      "source": "start",
      "target": "publish",
      "status": "completed"
    },
    {
      "source": "publish",
      "target": "handle",
      "status": "completed"
    },
    {
      "source": "handle",
      "target": "decision",
      "status": "active"
    },
    {
      "source": "decision",
      "target": "resolve",
      "label": "是",
      "status": "waiting"
    },
    {
      "source": "decision",
      "target": "return",
      "label": "否",
      "status": "waiting"
    },
    {
      "source": "resolve",
      "target": "end",
      "status": "waiting"
    },
    {
      "source": "return",
      "target": "handle",
      "status": "waiting"
    }
  ],
  "processDefinitionName": "预警处置流程"
}
```

### 5.2 节点类型和状态

| 类型 | 说明 |
|------|------|
| startEvent | 开始事件 |
| endEvent | 结束事件 |
| userTask | 用户任务 |
| exclusiveGateway | 排他网关 |

| 状态 | 说明 | 颜色 |
|------|------|------|
| completed | 已完成 | 绿色 |
| active | 进行中 | 橙色 |
| waiting | 等待中 | 灰色 |

## 六、预警级别说明

| 级别编码 | 级别名称 | 颜色 | 说明 |
|----------|----------|------|------|
| 1 | 蓝色预警 | #1890FF | 注意 |
| 2 | 黄色预警 | #FAAD14 | 关注 |
| 3 | 橙色预警 | #FA8C16 | 较严重 |
| 4 | 红色预警 | #F5222D | 严重 |

## 七、预警状态说明

| 状态值 | 状态名称 | 说明 |
|--------|----------|------|
| DRAFT | 草稿 | 预警信息已保存，未发布 |
| PENDING | 待办 | 已发布，等待处置 |
| PROCESSING | 处置中 | 正在处理中 |
| RELEASED | 已发布 | 已发布 |
| HANDLED | 已处置 | 已处理完毕 |
| CLOSED | 已解除 | 已解除预警 |

## 八、快速开始

1. 执行 `early-warning-system.sql` 初始化数据库表
2. 启动应用
3. 访问 Swagger 文档（如：`http://localhost:8080/swagger-ui/index.html`）
4. 使用接口进行测试

## 九、文件结构

```
pipe-network-service/
├── sql/
│   └── early-warning-system.sql          # 数据库建表SQL
├── zksy-system/
│   └── src/main/java/com/zksy/base/warning/
│       ├── domain/                       # 实体类
│       │   ├── EarlyWarning.java
│       │   ├── AlarmWarningRel.java
│       │   ├── WarningAttachment.java
│       │   ├── WarningDisposal.java
│       │   ├── WarningTodo.java
│       │   ├── WarningTypeConfig.java
│       │   └── WarningLevelConfig.java
│       ├── mapper/                       # Mapper接口
│       │   ├── EarlyWarningMapper.java
│       │   ├── AlarmWarningRelMapper.java
│       │   ├── WarningAttachmentMapper.java
│       │   ├── WarningDisposalMapper.java
│       │   ├── WarningTodoMapper.java
│       │   ├── WarningTypeConfigMapper.java
│       │   └── WarningLevelConfigMapper.java
│       └── service/                      # Service层
│           ├── EarlyWarningService.java
│           ├── WorkflowService.java
│           └── impl/
│               ├── EarlyWarningServiceImpl.java
│               └── WorkflowServiceImpl.java
├── zksy-admin/
│   └── src/main/java/com/zksy/web/controller/warning/
│       ├── EarlyWarningController.java   # 预警管理Controller
│       └── WorkflowController.java       # 工作流Controller
└── zksy-system/src/main/resources/
    ├── mapper/warning/                   # MyBatis XML
    │   ├── EarlyWarningMapper.xml
    │   ├── AlarmWarningRelMapper.xml
    │   └── WarningDisposalMapper.xml
    └── processes/                        # Flowable流程定义
        └── early-warning-process.bpmn20.xml
```
