### 数据模型

***

1. 报警条目
1. 报警记录，用于描述一个发生的具体的报警
1. 自动点位报警配置
1. 对象点位报警配置

### 系统说明

***

1. 所有报警记录必须有报警条目
1. 自动点位报警配置数据描述自动触发报警需要满足的类型、分类以及特定条件，以及报警时使用的报警条目
1. 对象点位报警配置数据根据自动点位报警配置的类型自动生成，可以修改为开或者关
1. 对象点位报警配置数据产生后，在接收到物联网采集数据后，系统自动根据配置的条件判断是否触发报警，如果触发报警则创建一条与配置条目对应的报警记录

### 数据结构

***

| 报警条目       |          |              |      |                         |
| -------------- | -------- | ------------ | ---- | ----------------------- |
| 字段           | 字段名称 | 类型         | 非空 | 备注                    |
| id             |          | varchar(40)  | Y    |                         |
| code           |          | varchar(40)  | Y    | 报警条目编码（6位数字） |
| name           |          | varchar(255) |      | 报警条目名称            |
| project_id     |          | varchar(40)  |      | 项目id                  |
| alarm_category |          | varchar(100) |      | 报警分类：消防等        |
| level          |          | varchar(40)  |      | 严重程度 S A B C D 五级 |
| remark         |          | varchar(500) |      | 备注                    |
| valid          | 有效状态 | bit          | Y    | 条目状态：0停用，1有效  |

| 报警记录     |          |              |      |                         |
| ------------ | -------- | ------------ | ---- | ----------------------- |
| 字段         | 字段名称 | 类型         | 非空 | 备注                    |
| id           |          | varchar(40)  | Y    | 报警id                  |
| code         |          | varchar(40)  | Y    | 报警条目编码            |
| project_id   |          | varchar(50)  |      | 项目id                  |
| object_id    |          | varchar(50)  |      | 对象id                  |
| level        |          | varchar(10)  |      | 严重程度 S A B C D 五级 |
| status       |          | varchar(50)  |      | alarm,recovered,deleted |
| create_time  |          | varchar(14)  |      | 创建时间                |
| recover_time |          | varchar(14)  |      | 恢复时间                |
| remark       |          | varchar(500) |      | 备注                    |
|              |          |              |      |                         |

| 自动点位报警配置 |              |              |      |                                                              |
| ---------------- | ------------ | ------------ | ---- | ------------------------------------------------------------ |
| 字段             | 字段名称     | 类型         | 非空 | 备注                                                         |
| id               |              | varchar(40)  | Y    | 报警id                                                       |
| code             |              | varchar(40)  | Y    | 报警条目编码                                                 |
| obj_type         | 对象类型大类 | varchar(50)  | Y    | 空间设备等类型，如设备equipment                              |
| class_code       | 对象类型编码 | varchar(20)  | Y    | 如冷冻泵ACCCOT                                               |
| level            | 严重程度     | varchar(10)  |      | 默认等于报警条目定义的严重程度，可以自定义                   |
| info_code        | 信息点编码   | varchar(40)  | Y    |                                                              |
| condition        | 条件         | json         | Y    | 触发报警时需要满足的条件，如{"$gt": 20}表示信息点的值大于20时触发报警 |
| status           |              | varchar(50)  | Y    | 0无效，1有效                                                 |
| remark           |              | varchar(500) |      | 备注                                                         |
|                  |              |              |      |                                                              |

| 对象点位报警配置 |              |              |      |          |
| ---------------- | ------------ | ------------ | ---- | -------- |
| 字段             | 字段名称     | 类型         | 非空 | 备注     |
| id               |              | varchar(40)  | Y    | 报警id   |
| project_id       | 项目ID       | varchar(50)  | Y    | 项目ID   |
| object_id        | 对象ID       | varchar(20)  | Y    | 对象ID   |
| alarm_code       | 报警条目编码 | varchar(40)  | Y    | 条目编码 |
| status           |              | varchar(50)  | Y    | 0关，1开 |
| remark           |              | varchar(500) |      | 备注     |
|                  |              |              |      |          |

### 接口清单

1. 保存报警条目（创建、更新）
2. 保存自动点位报警配置（创建，更新）
3. 修改对象点位报警配置的开关状态
4. 保存报警记录（创建、更新）