# 山东党校第一期需求 ## 需求 * 对接党校9个子系统的数据 * 获取推送的数据进行大屏展示 ## 对接甲方系统 * 门禁系统 缩写:eg * 停车系统 缩写:car * 消防应急系统 缩写:fire * 用户采购系统 缩写:ap * 会议系统 缩写:meeting * 机房 缩写:machine * 背景音乐 缩写:music * 视频监控 缩写:video * 设备故障管理 缩写:sm ## 详细需求 ### 对接子系统采集数据 * c++程序,通过采集子系统数据,进行持久化的同时,并且进行mqtt的推送 * 消费者程序接收消息后,进行数据的处理 * 通过webscoket推送给前端进行数据的展示 ### 通过手机端控制数据进行推送 * 手机页面显示9个不同的子系统模块 * 用户进行数据的填充,然后调用接口 * 后台接口通过webscoket推送到前端 ## 注意事项 * c++程序进行mqtt数据推送的数据格式是json * json里面需要的字段 * module:子系统名称 * business:业务名称 * describe:描述(以此作为策略模式的开始) * data:json * json示例 * module:电力告警 * business:火灾模块 * describe:火灾事故统计 * data:数据 * mqtt的topic主题命名规则:公司名称/系统名称/模块名称/接口描述 * 通道名称示例:sd/eg(门禁系统)/come(出入模块)/comeCount(出入统计) * 消费者监听这些队列,然后通过策略模式为不同的子系统进行不同的实现 ### 子系统的业务需求 #### 消防应急系统 * topic * sd/fire/程序模块编号/info * sd/fire/程序模块编号/alarm * 响应参数 | 参数名称 | 参数说明 | 类型 | schema | | -------------------------- | --------------------------------- | ------ | --------------------------------------- | | devId | 设备唯一编码 | string | | | connType | 传输方式 | string | 通信方式 G:4G N:NB L:LoRa S:专线 B:总线 | | devs | 设备列表 | array | 设备列表 | |   dp | 设备属性 | array | | |    property | 属性名称 | string | | |    value | 属性值 | string | | |    serial | 序号 | string | | |    status | 告警状态 | int | 0未消除 1已消除 | |   deviceName | 设备名称 | string | | |   timeStamp | 时间戳 | string | | |   devceType | 设备类型 | string | | |   devcieModel | 设备型号 | string | | |   devId | 设备id | string | | | type | 数据类型 INFO:心跳数据 ALARM:告警 | string | | | timestamp | 时间戳 | long | | ```json { "devId":"1000001", "connType":"G", "deviceName":"烟感", "devs":[ { "dp":[ { "property":"温度", "serial":"xxx", "value":"23" }, { "property":"电池", "serial":"xxx", "value":"77" }, { "property":"信号", "serial":"xxx", "value":"-144" } ], "deviceName":"烟感", "timeStamp":"", "devceType":"", "devcieModel":"xxxx", "devId":"xxx" } ], "type":"INFO", "timeStamp":"1627978385065" } ``` ```json { "devId":"1000001", "connType":"G", "deviceName":"", "alarams":[ { "dp":[ { "property":"信号", "serial":"222", "value":"-144", "status":"1" } ], "deviceName":"烟感", "timeStamp":"", "devcieModel":"xxxxx", "deviceType":"", "devId":"" } ], "type":"ALARM", "timeStamp":"1627978385065" } ```