API设计文档.md 102 KB

智能安防集成应用系统 API 设计文档

文档信息

  • 系统名称: 智能安防集成应用系统
  • 数据库: agapp (MySQL 8.0.35)
  • 文档版本: v1.1
  • 创建日期: 2026-01-30
  • 更新日期: 2026-02-28

目录

  1. 概述
  2. 通用规范
  3. 认证授权
  4. 安防集成管理
  5. 首页
  6. 电子地图
  7. 智能分析
  8. 人员管理
  9. 一标六实
  10. 用户管理
  11. 系统管理

概述

系统简介

智能安防集成应用系统是一个综合性的安防管理平台,集成了设备管理、事件监控、人员管理、电子地图、智能分析等功能模块。

技术栈

  • 后端: Java (Spring Boot)
  • 数据库: MySQL 8.0.35
  • 协议: RESTful API
  • 数据格式: JSON

基础信息


通用规范

请求规范

请求头

Content-Type: application/json
Authorization: Bearer {token}

统一响应格式

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "操作成功",
  "data": {},
  "exception": null
}

字段说明

字段名 类型 说明
status string 接口调用状态:一般为 SUCCESS/FAIL
code int 业务状态码,对应统一错误码说明
msg string 本次调用的提示信息
data object 具体业务数据载体,不同接口结构不同
exception string/null 异常信息,正常情况下为 null

响应状态码

状态码 说明
200 成功
400 请求参数错误
401 未授权
403 无权限
404 资源不存在
500 服务器内部错误

分页规范

请求参数

{
  "current": 1,
  "size": 10,
  "sortField": "create_time",
  "sortOrder": "desc"
}

响应格式

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "records": [],
    "total": 100,
    "current": 1,
    "size": 10,
    "totalPages": 10
  }
}

字段说明

字段名 类型 说明
status string 接口调用状态:一般为 SUCCESS/FAIL
code int 业务状态码,对应统一错误码说明
data object 分页数据对象
data.records array 当前页数据列表
data.total int 总记录数
data.current int 当前页码
data.size int 每页记录数
data.totalPages int 总页数

认证授权

1. 系统激活

接口地址: POST /prod-api/service-sas/activate

功能描述: 系统激活

请求参数:

{
  "licenseKey": "string"
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "激活成功",
  "data": {
    "isPerpetual": false,
    "validityTime": "2026-12-31T23:59:59"
  }
}

字段说明(结合表 sas_system_activation):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 激活结果提示信息
data object 激活结果数据
data.isPerpetual boolean 是否永久授权(对应 sas_system_activation.is_perpetual)
data.validityTime string 授权到期时间,ISO8601 格式(对应 sas_system_activation.validity_time)

安防集成管理

网络配置

1.1 分页查询网络配置

接口地址: GET /prod-api/service-sas/network/config

功能描述: 分页展示网络配置列表,支持按网络名称、IP 地址、启用状态筛选。

请求参数:

参数名 类型 必填 说明
current int 页码,默认 1
size int 每页数量,默认 10
name string 网络名称(模糊查询)
ipAddr string IP 地址(模糊查询)
status boolean 状态:true 启用,false 未启用

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "records": [
      {
        "id": 1,
        "name": "主网络",
        "ipAddr": "192.168.10.151",
        "gatewayAddr": "192.168.10.1",
        "subnetMask": "255.255.255.0",
        "dns": "8.8.8.8",
        "status": true,
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 10,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_system_wlan_config):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.records array 网络配置列表
data.records[].id int 主键 id(sas_system_wlan_config.id)
data.records[].name string 网络名称(sas_system_wlan_config.name)
data.records[].ipAddr string IP 地址(sas_system_wlan_config.ip_addr)
data.records[].gatewayAddr string 网关地址(sas_system_wlan_config.gateway_addr)
data.records[].subnetMask string 子网掩码(sas_system_wlan_config.subnet_mask)
data.records[].dns string DNS 服务器地址(sas_system_wlan_config.dns)
data.records[].status boolean 是否启用:true 启用,false 未启用(sas_system_wlan_config.status)
data.records[].createTime string 创建时间,ISO8601 格式(sas_system_wlan_config.create_time)
data.records[].updateTime string 更新时间,ISO8601 格式(sas_system_wlan_config.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

1.2 编辑网络配置

接口地址: PUT /prod-api/service-sas/network/config

功能描述: 编辑网络配置,点击"网络配置"切换到开启状态,在IP信息栏输入需要配置的信息

请求参数:

{
  "id": 1,
  "name": "主网络",
  "ipAddr": "192.168.10.151",
  "gatewayAddr": "192.168.10.1",
  "subnetMask": "255.255.255.0",
  "dns": "8.8.8.8",
  "status": true
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "更新成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 更新结果提示信息

系统配置

2.1 查询系统配置

接口地址: GET /prod-api/service-sas/system/config

功能描述: 展示系统配置信息

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "id": 1,
    "owlAgentHost": "192.168.10.151",
    "systemHost": "192.168.10.151",
    "videoServerHost": "192.168.10.151",
    "gatewayName": "网关1",
    "daysToKeepHistory": 30,
    "maskAvatar": true,
    "maskIdCardNo": false,
    "createTime": "2026-01-30T10:00:00",
    "updateTime": "2026-01-30T10:00:00"
  }
}

字段说明(结合表 sas_systesas_config 现表名 sas_system_config):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 系统配置数据对象
data.id int 主键id(sas_system_config.id)
data.owlAgentHost string agent 服务器地址(sas_system_config.owl_agent_host)
data.systemHost string 系统服务器地址(sas_system_config.system_host)
data.videoServerHost string 视频服务器地址(sas_system_config.video_server_host)
data.gatewayName string 网关名称(sas_system_config.gateway_name)
data.daysToKeepHistory int 数据保留天数(sas_system_config.days_to_keep_history)
data.maskAvatar boolean 是否显示人员照片(sas_system_config.mask_avatar)
data.maskIdCardNo boolean 是否显示身份证号(sas_system_config.mask_id_card_no)
data.createTime string 创建时间,ISO8601 格式(sas_system_config.create_time)
data.updateTime string 更新时间,ISO8601 格式(sas_system_config.update_time)

2.2 编辑系统配置

接口地址: PUT /prod-api/service-sas/system/config

功能描述: 编辑系统配置,点击"人员照片、身份证信息"切换到开启状态,设置数据保留天数等

请求参数:

{
  "id": 1,
  "owlAgentHost": "192.168.10.151",
  "systemHost": "192.168.10.151",
  "videoServerHost": "192.168.10.151",
  "gatewayName": "网关1",
  "daysToKeepHistory": 30,
  "maskAvatar": true,
  "maskIdCardNo": false
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "更新成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 更新结果提示信息

Agbox/Metabus配置

3.1 查询Agbox/Metabus配置

接口地址: GET /prod-api/service-sas/agbox/config

功能描述: 展示 Agbox/Metabus 配置信息,并返回当前 MQTT 连接状态、监听状态。

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "id": 1,
    "keyds": "agbox_key_12345",
    "host": "192.168.10.151",
    "port": "1883",
    "username": "mqtt_user",
    "password": "mqtt_password",
    "isTsl": false,
    "createTime": "2026-01-30T10:00:00",
    "updateTime": "2026-01-30T10:00:00",
    "isConnected": true,
    "isListening": true
  }
}

字段说明(结合表 sas_config 及运行时 MQTT 状态):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object Agbox/Metabus 配置及状态对象
data.id int 主键id(sas_config.id)
data.keyds string 秘钥 Key(sas_config.keyds)
data.host string MQTT 服务 IP 地址(sas_config.host)
data.port string MQTT 服务端口(sas_config.port)
data.username string MQTT 用户名(sas_config.username)
data.password string MQTT 密码(sas_config.password)
data.isTsl boolean 是否安全传输 TLS,对应 is_tsl:true 启用,false 不启用
data.createTime string 创建时间,ISO8601 格式(sas_config.create_time)
data.updateTime string 更新时间,ISO8601 格式(sas_config.update_time)
data.isConnected boolean MQTT 是否已连接 Broker(运行时状态)
data.isListening boolean MQTT 是否正在监听、未暂停(运行时状态)

3.2 编辑Agbox/Metabus配置

接口地址: PUT /prod-api/service-sas/agbox/config

功能描述: 编辑Agbox/Metabus配置,输入Agbox的Key、IP地址、端口号、Agbox MQTT服务信息

请求参数:

{
  "id": 1,
  "keyds": "agbox_key_12345",
  "host": "192.168.10.151",
  "port": "1883",
  "username": "mqtt_user",
  "password": "mqtt_password",
  "isTsl": false
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "更新成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 更新结果提示信息

3.3 暂停 MQTT 事件订阅

接口地址: POST /prod-api/service-sas/agbox/mqtt/pause

功能描述: 暂停 MQTT 事件订阅。调用后不再处理新到达的 MQTT 消息,与 Broker 的连接保持不断开;用于临时停止事件入库、减轻负载等场景。

请求参数: 无(Request Body 为空)

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "操作成功",
  "data": null
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 操作结果提示信息
data null 无业务数据

3.4 恢复 MQTT 事件订阅

接口地址: POST /prod-api/service-sas/agbox/mqtt/resume

功能描述: 恢复 MQTT 事件订阅。调用后继续处理新到达的 MQTT 消息,与「暂停 MQTT 事件订阅」配对使用。

请求参数: 无(Request Body 为空)

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "操作成功",
  "data": null
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 操作结果提示信息
data null 无业务数据

事件编码/子类型查询

3.5 根据系统类型查询事件编码列表

接口地址: GET /prod-api/service-sas/event/codes

功能描述: 根据系统类型编码返回对应的事件编码(子类型)列表,用于配置事件组、筛选事件类型等。

请求参数:

参数名 类型 必填 说明
code int 系统类型编码,见 SystemTypeCodeEnum:1001 实时智能分析、1002 视频安防监控、1003 视频导出防护、1004 组合认证控制、1005 出入门禁控制、1006 车牌抓拍分析、1007 入侵紧急报警、1008 实时电子巡检、1009 状态感知探测、1010 数据采集探测、1011 状态采集探测、1012 阻车路障探测

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": [
    { "code": 1, "name": "人员识别" },
    { "code": 2, "name": "人脸识别" }
  ]
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data array 事件编码列表;当请求的 code 未匹配任何系统类型时为 null
data[].code int 事件编码(gauth 时为 functions)
data[].name string 名称

设备心跳

4.1 查询设备状态

接口地址: GET /prod-api/service-sas/device/heartbeat

功能描述: 查询设备心跳状态

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
deviceId string 设备编号
deviceType int 设备类型

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "id": "device_001",
        "deviceId": "DEV001",
        "deviceType": 1,
        "ipAddr": "192.168.10.100",
        "triggerTime": "2026-01-30T10:00:00",
        "status": "online",
        "lastHeartbeat": "2026-01-30T10:00:00"
      }
    ],
    "total": 100,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_event_type_group):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 事件组配置列表
data.list[].id string 主键id(sas_event_type_group.id)
data.list[].name string 事件分组名称(sas_event_type_group.name)
data.list[].deviceType int 设备事件类型(sas_event_type_group.device_type)
data.list[].eventCodes string 事件类型编码集合,逗号分隔(sas_event_type_group.event_codes)
data.list[].eventLevel int 事件等级(sas_event_type_group.event_level,对应事件优先级编码)
data.list[].canDel boolean 是否可删除:true 可删,false 不可删(sas_event_type_group.can_del)
data.list[].createTime string 创建时间(sas_event_type_group.create_time)
data.list[].updateTime string 更新时间(sas_event_type_group.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

字段说明(结合表 sas_device 与心跳时间字段):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 设备心跳列表
data.list[].id string 设备主键id(可对应 sas_device.id)
data.list[].deviceId string 设备编码(sas_device.device_id)
data.list[].deviceType int 设备类型编码(sas_device.device_type)
data.list[].ipAddr string 设备 IP 地址(sas_device.ip_addr)
data.list[].triggerTime string 最近心跳时间(对应 sas_device.trigger_time)
data.list[].status string 设备在线状态,如 online/offline
data.list[].lastHeartbeat string 最近一次心跳时间(与 triggerTime 一致或更精确)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

事件组配置

5.1 查询事件组配置

接口地址: GET /prod-api/service-sas/event/group

功能描述: 展示已配置事件组信息,返回事件组名称、设备事件类型名称、事件等级名称以及按系统类型解析后的事件编码列表。

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
deviceType int 设备事件类型
name string 事件组名称(模糊查询)

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "id": "group_001",
        "name": "报警事件组",
        "deviceType": 1007,
        "deviceTypeName": "入侵紧急报警",
        "eventCodes": [
          { "code": 2001, "name": "入侵报警" },
          { "code": 2002, "name": "紧急报警" }
        ],
        "eventLevel": 1,
        "eventLevelName": "紧急",
        "canDel": true,
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 10,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_event_type_group 及各事件编码表,如 sas_alarsas_event_codesas_snap_type_code 等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 事件组配置列表
data.list[].id string 主键id(sas_event_type_group.id)
data.list[].name string 事件分组名称(sas_event_type_group.name)
data.list[].deviceType int 设备事件类型编码(sas_event_type_group.device_type,对应 SystemTypeCodeEnum.code
data.list[].deviceTypeName string 设备事件类型名称(SystemTypeCodeEnum.message,如:入侵紧急报警、实时智能分析等)
data.list[].eventCodes array 事件编码列表,已按系统类型解析为对象数组
data.list[].eventCodes[].code int 事件编码(各事件编码表 code;组合认证 gauth 时为 functions)
data.list[].eventCodes[].name string 事件名称(各事件编码表 name,gauth 时为 name/actionName)
data.list[].eventLevel int 事件等级编码(sas_event_type_group.event_level,对应事件优先级编码)
data.list[].eventLevelName string 事件等级名称,如:紧急/高/普通/无
data.list[].canDel boolean 是否可删除:true 可删,false 不可删(sas_event_type_group.can_del)
data.list[].createTime string 创建时间(sas_event_type_group.create_time)
data.list[].updateTime string 更新时间(sas_event_type_group.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

5.2 新增事件组配置

接口地址: POST /prod-api/service-sas/event/group

功能描述: 新增事件组,选择设备事件类型并输入事件组名称、选择报警事件

请求参数:

{
  "name": "报警事件组",
  "deviceType": 1,
  "eventCodes": [1001, 1002, 1003],
  "eventLevel": 1
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "创建成功",
  "data": {
    "id": "group_001"
  }
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 创建结果提示信息
data object 新建结果对象
data.id string 新建事件组主键id(对应 sas_event_type_group.id)

5.3 编辑事件组配置

接口地址: PUT /prod-api/service-sas/event/group/{id}

功能描述: 编辑事件组配置

请求参数:

{
  "name": "报警事件组",
  "deviceType": 1,
  "eventCodes": [1001, 1002, 1003],
  "eventLevel": 1
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "更新成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 更新结果提示信息

5.4 删除事件组配置

接口地址: DELETE /prod-api/service-sas/event/group/{id}

功能描述: 删除事件组配置

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "删除成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 删除结果提示信息

事件优先级配置

6.1 查询事件优先级配置

接口地址: GET /prod-api/service-sas/event/priority

功能描述: 展示已配置事件优先级信息

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "urgent": ["group_001", "group_002"],
    "high": ["group_003"],
    "normal": ["group_004"],
    "none": ["group_005"]
  }
}

6.2 编辑事件优先级配置

接口地址: PUT /prod-api/service-sas/event/priority

功能描述: 将事件组按照紧急、高、普通、无四个等级进行分类,将事件拖拉至对应等级

请求参数:

{
  "urgent": ["group_001", "group_002"],
  "high": ["group_003"],
  "normal": ["group_004"],
  "none": ["group_005"]
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "更新成功"
}

设备配置

7.1 查询设备配置

接口地址: GET /prod-api/service-sas/device/config

功能描述: 可根据报警联动组、视频监控组、设备类型、设备编码、设备ip查询

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
alarmGroupType string 报警联动组
videoGroupType string 视频监控组
deviceType int 设备类型
deviceId string 设备编码
ipAddr string 设备IP

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "id": "device_001",
        "deviceId": "DEV001",
        "channel": 0,
        "deviceType": 1,
        "ipAddr": "192.168.10.100",
        "port": 8000,
        "username": "admin",
        "shield": false,
        "villageCode": "village_001",
        "houseCode": "house_001",
        "address": "一楼大厅",
        "videoGroupType": "video_group_001",
        "alarmGroupType": "alarm_group_001",
        "note": "摄像头设备",
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 100,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_device):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 设备配置列表
data.list[].id string 主键id(sas_device.id)
data.list[].deviceId string 设备编码(sas_device.device_id)
data.list[].channel int 通道号(sas_device.channel)
data.list[].deviceType int 设备类型编码(sas_device.device_type)
data.list[].ipAddr string 设备 IP 地址(sas_device.ip_addr)
data.list[].port int 设备端口号(sas_device.port)
data.list[].username string 登录用户名(sas_device.username)
data.list[].shield boolean 是否屏蔽设备(sas_device.shield)
data.list[].villageCode string 地块编码(sas_device.village_code)
data.list[].houseCode string 部位编码(sas_device.house_code)
data.list[].address string 设备安装位置(sas_device.address)
data.list[].videoGroupType string 视频监控组类型(sas_device.video_group_type)
data.list[].alarmGroupType string 报警联动组类型(sas_device.alarsas_group_type)
data.list[].note string 备注描述(sas_device.note)
data.list[].createTime string 创建时间(sas_device.create_time)
data.list[].updateTime string 更新时间(sas_device.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

7.2 新增设备配置

接口地址: POST /prod-api/service-sas/device/config

功能描述: 新增设备配置

请求参数:

{
  "deviceId": "DEV001",
  "channel": 0,
  "deviceType": 1,
  "ipAddr": "192.168.10.100",
  "port": 8000,
  "username": "admin",
  "password": "password",
  "shield": false,
  "villageCode": "village_001",
  "houseCode": "house_001",
  "address": "一楼大厅",
  "videoGroupType": "video_group_001",
  "alarmGroupType": "alarm_group_001",
  "note": "摄像头设备"
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "创建成功",
  "data": {
    "id": "device_001"
  }
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 创建结果提示信息
data object 新增结果对象
data.id string 新建设备主键id(对应 sas_device.id)

7.3 编辑设备配置

接口地址: PUT /prod-api/service-sas/device/config/{id}

功能描述: 编辑设备配置

请求参数: 同新增接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "更新成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 更新结果提示信息

7.4 删除设备配置

接口地址: DELETE /prod-api/service-sas/device/config/{id}

功能描述: 删除设备配置

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "删除成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 删除结果提示信息

7.5 同步 AG 设备

接口地址: POST /prod-api/service-sas/device/syncAgboxDevice

功能描述: 从 AG(Agbox)同步设备到 sas_device。按系统类型(实时智能分析、视频安防监控、出入门禁控制等)依次调用 AG 的 getDeviceList,对每个设备可选调用 getDeviceChannelList;若有通道则按通道落库多条设备,否则按设备落库一条(通道号为 0)。已存在的设备(按 deviceId + deviceType + channel 判定)不会重复插入。若 AG 返回设备经纬度信息则自动写入 sas_gis 并关联设备的 gis_id。依赖 Agbox 配置(sas_config 的 host、port、keyds)。

请求参数: 无(POST 无请求体)

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": null,
  "msg": "操作成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 操作结果提示信息

7.6 获取设备导入模板

接口地址: GET /prod-api/service-sas/device/import/template

功能描述: 获取设备批量导入的 Excel 模板文件。前端调用后浏览器会直接下载一个名为「设备导入模板」的 .xlsx 文件,示例中会包含一行演示数据,方便用户参考填写格式。后续可配合“批量设备导入”接口使用(本次仅实现模板导出)。

请求参数: 无

响应说明:

  • Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • 响应体: 二进制 Excel 文件流,不再包装 ApiResult

模板示例字段(列头与内容示例):

列名 示例值 说明
设备类型(必填) 1001 对应 SystemTypeCodeEnum.code,如 1001-实时智能分析
设备编号(必填) test-01 设备唯一编号
设备IP(必填) 192.168.3.141 设备 IP 地址
端口(必填) 8000 设备端口
通道号 1 NVR 通道号,普通 IPC 可填 1 或留空
视频设备类型 1 预留字段,例如 1-IPC、2-NVR 等
视频协议 2 预留字段,例如 1-ONVIF、2-海康、3-大华 等
用户名 admin 登录用户名
密码 admin 登录密码
备注 备注 说明文字
安装位置 位置示例 安装地点描述
部位编码(houseCode) 示例-houseCode 关联 sas_device.house_code
经度 可选,经度
纬度 可选,纬度
高度 可选,高度
楼层 11 可选,楼层号

7.7 批量设备导入(Excel)

接口地址: POST /prod-api/service-sas/device/importBatchDeviceByExcel

功能描述: 通过上传设备导入模板 Excel 文件,批量新增设备到 sas_device 表。系统会按行解析 Excel 内容,对每一行生成一条设备记录;若已存在相同的设备(按 deviceId + deviceType + channel 判重)则跳过,不会重复插入。

请求参数multipart/form-data):

参数名 类型 必填 说明
file file 设备导入 Excel 文件(可使用 7.6 接口下载的模板)

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": "设备批量导入成功",
  "msg": "操作成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data string 导入结果提示信息,如“设备批量导入成功”
msg string 通用提示信息

导入规则说明

  • 必填列:设备类型(必填)设备编号(必填)设备IP(必填)端口(必填),任意一列为空则整行导入失败并返回错误。
  • 判重规则:同一条记录以 deviceId + deviceType + channel 作为唯一键;若数据库中已存在相同组合,则该行数据会被自动跳过,不报错。
  • 经纬度/高度:若模板中填写了经纬度或高度,则会自动在 sas_gis 中生成一条坐标记录,并把 gis_id 关联到设备。
  • 其他字段:用户名、密码、安装位置、备注、houseCode、视频设备类型、视频协议等字段会直接写入 sas_device 对应列;is_binding 默认 falseshield 默认 false

报警联动配置

8.1 查询联动报警组

接口地址: GET /prod-api/service-sas/alarm/group

功能描述: 展示已添加联动报警组

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "id": "alarm_group_001",
        "name": "报警联动组1",
        "note": "描述信息",
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 10,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_alarsas_group_type):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 报警联动组列表
data.list[].id string 主键id(sas_alarsas_group_type.id)
data.list[].name string 报警联动组名称(sas_alarsas_group_type.name)
data.list[].note string 描述信息(sas_alarsas_group_type.note)
data.list[].createTime string 创建时间
data.list[].updateTime string 更新时间
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

8.2 新增联动报警组

接口地址: POST /prod-api/service-sas/alarm/group

功能描述: 新增填写名称及描述并将需要联动设备绑定到同一个报警组

请求参数:

{
  "name": "报警联动组1",
  "note": "描述信息",
  "deviceIds": ["device_001", "device_002"]
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "创建成功",
  "data": {
    "id": "alarm_group_001"
  }
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 创建结果提示信息
data object 新建结果对象
data.id string 新建报警联动组主键id(对应 sas_alarsas_group_type.id)

8.3 编辑联动报警组

接口地址: PUT /prod-api/service-sas/alarm/group/{id}

功能描述: 编辑联动报警组

请求参数: 同新增接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "更新成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 更新结果提示信息

8.4 删除联动报警组

接口地址: DELETE /prod-api/service-sas/alarm/group/{id}

功能描述: 删除联动报警组

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "删除成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 删除结果提示信息

电子地图配置

9.1 查询电子地图

接口地址: GET /prod-api/service-sas/map

功能描述: 展示已添加地图及绑定设备信息,如摄像头可点击绑定的摄像头图标查看直播与回放

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
parentId string 父地图ID

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "id": "map_001",
        "name": "一楼平面图",
        "type": 1,
        "remark": "描述",
        "parentId": null,
        "width": 1920,
        "height": 1080,
        "isMask": false,
        "backImgId": "img_001",
        "devices": [
          {
            "id": "map_device_001",
            "deviceId": "device_001",
            "deviceName": "摄像头1",
            "x": 100.5,
            "y": 200.3,
            "type": "camera"
          }
        ],
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 10,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_mapssas_map_device):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 地图列表
data.list[].id string 地图主键id(sas_maps.id)
data.list[].name string 地图名称(sas_maps.name)
data.list[].type int 地图类型(sas_maps.type)
data.list[].remark string 地图描述(sas_maps.remark)
data.list[].parentId string/null 父地图id(sas_maps.parent_id)
data.list[].width number 画布宽度(sas_maps.width)
data.list[].height number 画布高度(sas_maps.height)
data.list[].isMask boolean 超出画布是否隐藏(sas_maps.is_mask)
data.list[].backImgId string 背景图片id(sas_maps.back_img_id)
data.list[].devices array 绑定在该地图上的设备列表(关联 sas_map_device)
data.list[].devices[].id string 地图设备主键id(sas_map_device.id)
data.list[].devices[].deviceId string 绑定设备id(sas_map_device.device_id)
data.list[].devices[].deviceName string 设备名称(业务字段,便于展示)
data.list[].devices[].x number 设备在地图上的 X 坐标(sas_map_device.x)
data.list[].devices[].y number 设备在地图上的 Y 坐标(sas_map_device.y)
data.list[].devices[].type string 地图设备类型,如 camera 等(sas_map_device.type)
data.list[].createTime string 地图创建时间(sas_maps.create_time)
data.list[].updateTime string 地图更新时间(sas_maps.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

9.2 新增电子地图

接口地址: POST /prod-api/service-sas/map

功能描述: 在地图导航添加地图名称及地图描述;再点击上传图片将项目平面图上传并开启父地图

请求参数:

{
  "name": "一楼平面图",
  "type": 1,
  "remark": "描述",
  "parentId": null,
  "width": 1920,
  "height": 1080,
  "isMask": false,
  "backImgId": "img_001"
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "创建成功",
  "data": {
    "id": "map_001"
  }
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 创建结果提示信息
data object 新建结果对象
data.id string 新建地图主键id(对应 sas_maps.id)

9.3 编辑电子地图

接口地址: PUT /prod-api/service-sas/map/{id}

功能描述: 编辑电子地图

请求参数: 同新增接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "更新成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 更新结果提示信息

9.4 删除电子地图

接口地址: DELETE /prod-api/service-sas/map/{id}

功能描述: 删除电子地图。会递归删除当前地图及其所有子地图,并同时删除这些地图下绑定的所有设备点位(sas_map_device 记录)。

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "删除成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 删除结果提示信息

9.5 绑定地图设备

接口地址: POST /prod-api/service-sas/map/{mapId}/device

功能描述: 在地图上绑定设备

请求参数:

{
  "deviceId": "device_001",
  "imgId": "img_002",
  "type": "camera",
  "x": 100.5,
  "y": 200.3,
  "width": 50,
  "height": 50,
  "angle": 0,
  "text": "摄像头1"
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "绑定成功",
  "data": {
    "id": "map_device_001"
  }
}

字段说明(结合表 sas_map_device):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 绑定结果提示信息
data object 新建地图设备对象
data.id string 地图设备主键id(sas_map_device.id)

9.6 解绑地图设备

接口地址: DELETE /prod-api/service-sas/map/{mapId}/device/{deviceId}

功能描述: 解绑地图设备

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "解绑成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 解绑结果提示信息

视频导出防护配置

10.1 查询视频导出防护配置

接口地址: GET /prod-api/service-sas/video/protection

功能描述: 显示与电子地图一致,右下角会有视频导出防护事件

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "enabled": true,
    "events": [
      {
        "eventId": "event_001",
        "deviceId": "device_001",
        "triggerTime": "2026-01-30T10:00:00",
        "eventCode": 2001
      }
    ]
  }
}

字段说明(结合表 sas_video_event 或相关事件表):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 视频导出防护配置对象
data.enabled boolean 是否启用视频导出防护
data.events array 告警事件列表
data.events[].eventId string 事件编码(对应各事件表 event_id)
data.events[].deviceId string 设备编号(各事件表 device_id)
data.events[].triggerTime string 触发时间(各事件表 trigger_time)
data.events[].eventCode int 事件编码(各事件编码表 code)

实时电子巡检配置

11.1 查询实时电子巡检配置

接口地址: GET /prod-api/service-sas/patrol/config

功能描述: 显示与电子地图一致,右下角会有实时电子巡检事件

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "enabled": true,
    "events": [
      {
        "eventId": "event_001",
        "deviceId": "device_001",
        "name": "巡检员1",
        "triggerTime": "2026-01-30T10:00:00",
        "eventCode": 3001
      }
    ]
  }
}

字段说明(结合表 sas_patrol_eventsas_patrol_event_code):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 实时电子巡检配置对象
data.enabled boolean 是否启用实时电子巡检事件展示
data.events array 巡检事件列表
data.events[].eventId string 事件编码(sas_patrol_event.event_id)
data.events[].deviceId string 设备编号(sas_patrol_event.device_id)
data.events[].name string 巡检人姓名(sas_patrol_event.name)
data.events[].triggerTime string 触发时间(sas_patrol_event.trigger_time)
data.events[].eventCode int 事件编码(sas_patrol_event.event_code / sas_patrol_event_code.code)

首页

首页包含以下功能区域:

  • 左上角:已添加摄像头信息,可点击进行直播或回放
  • 左下角:服务器信息与资源使用情况
  • 中上部分:三个模块——实时监控(默认空,点击摄像头进行直播或播放)、事件列表(各模块所有事件)、实时事件(开启通知时弹窗:左侧关联摄像头、右侧事件信息,可提前关闭)
  • 中下部分:按分类显示各类型开启通知的事件预警历史,可点击详情重新查看

1. 查询首页综合信息

接口地址: GET /prod-api/service-sas/homepage/info

功能描述: 首页综合信息查询。包含:左上角已添加摄像头列表(可点击直播或回放);设备与事件统计;左下角服务器信息与资源使用情况(JVM 内存、处理器数等)。

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "cameras": [
      {
        "id": "device_001",
        "name": "摄像头1",
        "ipAddr": "192.168.10.100",
        "status": "online",
        "liveUrl": "rtsp://192.168.10.100:554/stream",
        "playbackUrl": "http://192.168.10.151/playback"
      }
    ],
    "statistics": {
      "totalDevices": 100,
      "onlineDevices": 95,
      "todayEvents": 50,
      "alarmEvents": 5
    },
    "serverInfo": {
      "memoryMaxMb": 1024,
      "memoryUsedMb": 256,
      "memoryFreeMb": 768,
      "availableProcessors": 8,
      "serverTime": "2026-02-27T10:00:00"
    }
  }
}

字段说明(部分字段结合表 sas_device、事件表等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 首页综合信息对象
data.cameras array 首页左上角摄像头列表,来源于设备表 sas_device
data.cameras[].id string 设备主键id(sas_device.id)
data.cameras[].name string 摄像头名称
data.cameras[].ipAddr string 摄像头 IP 地址(sas_device.ip_addr)
data.cameras[].status string 在线状态
data.cameras[].liveUrl string 实时直播地址
data.cameras[].playbackUrl string 回放地址
data.statistics object 设备与事件统计信息
data.statistics.totalDevices int 设备总数
data.statistics.onlineDevices int 在线设备数量
data.statistics.todayEvents int 今日事件总数
data.statistics.alarmEvents int 今日报警事件数量
data.serverInfo object 服务器资源使用情况
data.serverInfo.memoryMaxMb int JVM 最大内存(MB)
data.serverInfo.memoryUsedMb int JVM 已用内存(MB)
data.serverInfo.memoryFreeMb int JVM 空闲内存(MB)
data.serverInfo.availableProcessors int 可用处理器核心数
data.serverInfo.serverTime string 服务器当前时间

2. 事件列表

接口地址: GET /prod-api/service-sas/homepage/events

功能描述: 中上部分「事件列表」模块使用。查看各模块(智能分析抓拍、报警、出入口、停车、巡更等)所有事件信息,支持分页与按事件类型、设备、时间筛选。

请求参数:

参数名 类型 必填 说明
eventType string 事件类型:snap / alarm / entrance / parking / patrol,不传则默认 snap
current int 页码,默认 1
size int 每页数量,默认 10
deviceId string 设备编号
startTime string 开始时间(ISO 格式)
endTime string 结束时间(ISO 格式)

响应示例: 与智能分析事件分页一致,返回 data.listdata.totaldata.currentdata.size,列表中每项为事件对象(含 eventId、deviceId、triggerTime、eventCode 等)。

3. 实时事件(开启通知)

接口地址: GET /prod-api/service-sas/homepage/realtimeNotificationEvents

功能描述: 中上部分「实时事件」弹窗使用。返回最近一批开启通知的事件,用于弹窗左侧播放关联摄像头、右侧展示事件信息,支持提前关闭。最多返回 20 条,按触发时间倒序。

请求参数: 无

响应示例: 返回数组,每项为事件对象(结构同事件列表单项)。

4. 预警历史

接口地址: GET /prod-api/service-sas/homepage/alertHistory

功能描述: 中下部分使用。按分类显示各类型开启通知的事件预警历史,支持分页;前端可点击详情重新查看。当前支持事件类型为智能分析抓拍(snap)。

请求参数:

参数名 类型 必填 说明
current int 页码,默认 1
size int 每页数量,默认 10
eventType string 事件类型,默认 snap

响应示例: 分页结构同事件列表,data.list 为开启通知的预警事件列表。


电子地图

1. 电子地图导航

接口地址: GET /prod-api/service-sas/map/navigate

功能描述: 在电子地图中,将鼠标放置在点位图标上,此时会将绑定的设备信息展示出来

请求参数:

参数名 类型 必填 说明
mapId string 地图ID
x decimal X坐标
y decimal Y坐标

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "map": {
      "id": "map_001",
      "name": "一楼平面图",
      "backImgUrl": "http://192.168.10.151/images/map_001.jpg"
    },
    "devices": [
      {
        "id": "map_device_001",
        "deviceId": "device_001",
        "deviceName": "摄像头1",
        "deviceType": "camera",
        "x": 100.5,
        "y": 200.3,
        "status": "online"
      }
    ]
  }
}

2. 获取设备详情

接口地址: GET /prod-api/service-sas/map/device/{deviceId}/detail

功能描述: 获取地图上设备的详细信息

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "id": "device_001",
    "deviceId": "DEV001",
    "name": "摄像头1",
    "type": "camera",
    "ipAddr": "192.168.10.100",
    "status": "online",
    "liveUrl": "rtsp://192.168.10.100:554/stream",
    "playbackUrl": "http://192.168.10.151/playback",
    "address": "一楼大厅"
  }
}

智能分析

1. 查询事件信息

接口地址: GET /prod-api/service-sas/intelligent/events

功能描述: 点击头部不同事件类型显示所有相关事件的记录

请求参数:

参数名 类型 必填 说明
eventType string 事件类型(snap/alarm/entrance/parking/patrol等)
current int 页码
size int 每页数量
startTime datetime 开始时间
endTime datetime 结束时间
deviceId string 设备编号

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "eventId": "event_001",
        "deviceId": "device_001",
        "deviceName": "摄像头1",
        "channel": 0,
        "triggerTime": "2026-01-30T10:00:00",
        "eventCode": 1001,
        "eventName": "人员识别",
        "picId": "pic_001",
        "picUrl": "http://192.168.10.151/images/pic_001.jpg",
        "similarity": 95,
        "personCode": "person_001",
        "personName": "张三"
      }
    ],
    "total": 100,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_snap_eventsas_snap_type_code 等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 智能分析事件列表
data.list[].eventId string 事件编码(sas_snap_event.event_id 等)
data.list[].deviceId string 设备编号(sas_snap_event.device_id)
data.list[].deviceName string 设备名称(业务字段)
data.list[].channel int 通道号(sas_snap_event.channel)
data.list[].triggerTime string 触发时间(sas_snap_event.trigger_time)
data.list[].eventCode int 事件编码(sas_snap_event.event_code / sas_snap_type_code.code)
data.list[].eventName string 事件名称
data.list[].picId string 图片id(sas_snap_event.event_pic_id 或 scene_pic_id)
data.list[].picUrl string 图片访问地址(关联 sas_pic.url/path)
data.list[].similarity int 比对相似度(sas_snap_event.similarity)
data.list[].personCode string 人员编码(sas_snap_event.person_code)
data.list[].personName string 人员姓名(关联 sas_person.name)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

2. 查询实时智能分析事件

接口地址: GET /prod-api/service-sas/intelligent/snap

功能描述: 查询实时智能分析事件(人脸识别等)

请求参数: 同查询事件信息接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "eventId": "snap_001",
        "deviceId": "device_001",
        "channel": 0,
        "triggerTime": "2026-01-30T10:00:00",
        "eventCode": 1001,
        "eventName": "人员识别",
        "scenePicId": "pic_001",
        "eventPicId": "pic_002",
        "similarity": 95,
        "personCode": "person_001",
        "personName": "张三",
        "notify": true,
        "scene": true
      }
    ],
    "total": 100,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_snap_event):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 实时智能分析事件列表
data.list[].eventId string 事件编码(sas_snap_event.event_id)
data.list[].deviceId string 设备编号(sas_snap_event.device_id)
data.list[].channel int 通道号(sas_snap_event.channel)
data.list[].triggerTime string 触发时间(sas_snap_event.trigger_time)
data.list[].eventCode int 事件编码(sas_snap_event.event_code)
data.list[].eventName string 事件名称
data.list[].scenePicId string 场景图片id(sas_snap_event.scene_pic_id)
data.list[].eventPicId string 事件图片id(sas_snap_event.event_pic_id)
data.list[].similarity int 比对相似度(sas_snap_event.similarity)
data.list[].personCode string 人员编码(sas_snap_event.person_code)
data.list[].personName string 人员姓名(关联 sas_person.name)
data.list[].notify boolean 是否本地 MQTT 通知(sas_snap_event.notify)
data.list[].scene boolean 是否包含场景图片(sas_snap_event.scene)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

3. 查询报警事件

接口地址: GET /prod-api/service-sas/intelligent/alarm

功能描述: 查询入侵紧急报警事件

请求参数: 同查询事件信息接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "eventId": "alarm_001",
        "deviceId": "device_001",
        "channel": 0,
        "triggerTime": "2026-01-30T10:00:00",
        "eventCode": 2001,
        "eventName": "入侵报警",
        "picId": "pic_001",
        "relPerson": "person_001",
        "dealPerson": "user_001",
        "eventSystem": 1
      }
    ],
    "total": 50,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_alarsas_eventsas_alarsas_event_code):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 报警事件列表
data.list[].eventId string 事件编码(sas_alarsas_event.event_id)
data.list[].deviceId string 设备编号(sas_alarsas_event.device_id)
data.list[].channel int 通道号(sas_alarsas_event.channel)
data.list[].triggerTime string 触发时间(sas_alarsas_event.trigger_time)
data.list[].eventCode int 事件编码(sas_alarsas_event.event_code / sas_alarsas_event_code.code)
data.list[].eventName string 事件名称
data.list[].picId string 事件图片id(sas_alarsas_event.pic_id)
data.list[].relPerson string 关联对象(sas_alarsas_event.rel_person)
data.list[].dealPerson string 发现/处置人员(sas_alarsas_event.deal_person)
data.list[].eventSystem int 系统编码(sas_alarsas_event.event_system)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

4. 查询门禁事件

接口地址: GET /prod-api/service-sas/intelligent/entrance

功能描述: 查询出入门禁控制事件

请求参数: 同查询事件信息接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "eventId": "entrance_001",
        "deviceId": "device_001",
        "channel": 0,
        "certifiedType": 1,
        "certifiedNo": "110101199001011234",
        "name": "张三",
        "phone": "13800138000",
        "triggerTime": "2026-01-30T10:00:00",
        "eventCode": 3001,
        "cardId": "card_001",
        "similarity": 98,
        "picId": "pic_001"
      }
    ],
    "total": 200,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_entrance_eventsas_entrance_event_code):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 门禁事件列表
data.list[].eventId string 事件编码(sas_entrance_event.event_id)
data.list[].deviceId string 设备编号(sas_entrance_event.device_id)
data.list[].channel int 通道号(sas_entrance_event.channel)
data.list[].certifiedType int 证件类型(sas_entrance_event.certified_type)
data.list[].certifiedNo string 证件号码(sas_entrance_event.certified_no)
data.list[].name string 姓名(sas_entrance_event.name)
data.list[].phone string 电话(sas_entrance_event.phone)
data.list[].triggerTime string 触发时间(sas_entrance_event.trigger_time)
data.list[].eventCode int 事件编码(sas_entrance_event.event_code / sas_entrance_event_code.code)
data.list[].cardId string 卡号(sas_entrance_event.card_id)
data.list[].similarity int 比对相似度(sas_entrance_event.similarity)
data.list[].picId string 图片id(sas_entrance_event.pic_id)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

5. 查询停车事件

接口地址: GET /prod-api/service-sas/intelligent/parking

功能描述: 查询停车场车牌抓拍事件

请求参数: 同查询事件信息接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "eventId": "parking_001",
        "deviceId": "device_001",
        "channel": 0,
        "triggerTime": "2026-01-30T10:00:00",
        "eventCode": 4001,
        "entranceCode": "entrance_001",
        "plateNo": "京A12345",
        "plateType": 1,
        "plateColor": "blue",
        "carType": 1,
        "accessType": 1,
        "similarity": 95,
        "platePicId": "pic_001",
        "eventPicId": "pic_002"
      }
    ],
    "total": 150,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_parking_eventsas_parking_event_codesas_car_type_code 等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 停车场车牌抓拍事件列表
data.list[].eventId string 事件编码(sas_parking_event.event_id)
data.list[].deviceId string 设备编号(sas_parking_event.device_id)
data.list[].channel int 通道号(sas_parking_event.channel)
data.list[].triggerTime string 触发时间(sas_parking_event.trigger_time)
data.list[].eventCode int 事件编码(sas_parking_event.event_code / sas_parking_event_code.code)
data.list[].entranceCode string 出入口编号(sas_parking_event.entrance_code)
data.list[].plateNo string 车牌号码(sas_parking_event.plate_no)
data.list[].plateType int 车牌类型(sas_parking_event.plate_type / sas_plate_type_code.code)
data.list[].plateColor string 车牌颜色(sas_parking_event.plate_color / sas_plate_color.code)
data.list[].carType int 车辆类型(sas_parking_event.car_type / sas_car_type_code.code)
data.list[].accessType int 出入类型:1 进、2 出、9 抓拍(sas_parking_event.access_type)
data.list[].similarity int 识别可信度(sas_parking_event.similarity)
data.list[].platePicId string 车牌照片id(sas_parking_event.plate_pic_id)
data.list[].eventPicId string 事件图片id(sas_parking_event.event_pic_id)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

6. 查询巡检事件

接口地址: GET /prod-api/service-sas/intelligent/patrol

功能描述: 查询实时电子巡检事件

请求参数: 同查询事件信息接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "eventId": "patrol_001",
        "deviceId": "device_001",
        "channel": 0,
        "triggerTime": "2026-01-30T10:00:00",
        "eventCode": 5001,
        "name": "巡检员1",
        "credentialType": 1,
        "credentialNo": "110101199001011234",
        "typeName": "正常巡检",
        "picId": "pic_001"
      }
    ],
    "total": 80,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_patrol_eventsas_patrol_event_code):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 巡检事件列表
data.list[].eventId string 事件编码(sas_patrol_event.event_id)
data.list[].deviceId string 设备编号(sas_patrol_event.device_id)
data.list[].channel int 通道号(sas_patrol_event.channel)
data.list[].triggerTime string 触发时间(sas_patrol_event.trigger_time)
data.list[].eventCode int 事件编码(sas_patrol_event.event_code / sas_patrol_event_code.code)
data.list[].name string 巡检人姓名(sas_patrol_event.name)
data.list[].credentialType int 证件类型编码(sas_patrol_event.credential_type)
data.list[].credentialNo string 证件号(sas_patrol_event.credential_no)
data.list[].typeName string 巡检类型名称(sas_patrol_event.type_name)
data.list[].picId string 照片id(sas_patrol_event.pic_id)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

人员管理

白名单

1.1 查询白名单人员信息

接口地址: GET /prod-api/service-sas/personnel/whitelist

功能描述: 同步agbox白名单,正常展示:姓名、人脸照片、备注、更新时间、详情

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
name string 姓名(模糊查询)
personCode string 人员编码

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "personCode": "person_001",
        "name": "张三",
        "picId": "pic_001",
        "picUrl": "http://192.168.10.151/images/pic_001.jpg",
        "remark": "备注信息",
        "updateTime": "2026-01-30T10:00:00",
        "credentialType": 1,
        "credentialNo": "110101199001011234"
      }
    ],
    "total": 100,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_personsas_credential_type_code):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 白名单人员列表
data.list[].personCode string 人员唯一编码(sas_person.person_code)
data.list[].name string 姓名(sas_person.name)
data.list[].picId string 人脸图片id(sas_person.pic_id)
data.list[].picUrl string 人脸图片访问地址(关联 sas_pic.url)
data.list[].remark string 备注信息
data.list[].updateTime string 人员更新时间(sas_person.update_time)
data.list[].credentialType int 证件类型编码(sas_person.credential_type / sas_credential_type_code.code)
data.list[].credentialNo string 证件号码(sas_person.credential_no)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

1.2 同步白名单

接口地址: POST /prod-api/service-sas/personnel/whitelistSync

功能描述: 从agbox同步白名单数据

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "同步成功",
  "data": {
    "syncCount": 50
  }
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 同步结果提示信息
data object 同步结果对象
data.syncCount int 本次同步的记录数量

1.3 查询白名单人员详情

接口地址: GET /prod-api/service-sas/personnel/whitelist/{personCode}

功能描述: 查询白名单人员详细信息

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "personCode": "person_001",
    "name": "张三",
    "credentialType": 1,
    "credentialNo": "110101199001011234",
    "picId": "pic_001",
    "picUrl": "http://192.168.10.151/images/pic_001.jpg",
    "phone1": "13800138000",
    "phone2": "010-12345678",
    "remark": "备注信息",
    "updateTime": "2026-01-30T10:00:00"
  }
}

字段说明(结合表 sas_personsas_credential_type_code):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 白名单人员详情对象
data.personCode string 人员唯一编码(sas_person.person_code)
data.name string 姓名(sas_person.name)
data.credentialType int 证件类型编码(sas_person.credential_type / sas_credential_type_code.code)
data.credentialNo string 证件号码(sas_person.credential_no)
data.picId string 人脸图片id(sas_person.pic_id)
data.picUrl string 人脸图片访问地址(关联 sas_pic.url)
data.phone1 string 电话1(sas_person.phone1)
data.phone2 string 电话2(sas_person.phone2)
data.remark string 备注信息
data.updateTime string 更新时间(sas_person.update_time)

黑名单

2.1 查询黑名单人员信息

接口地址: GET /prod-api/service-sas/personnel/blacklist

功能描述: 同步agbox黑名单展示字段与白名单相同

请求参数: 同白名单查询接口

响应示例: 同白名单查询接口

2.2 同步黑名单

接口地址: POST /prod-api/service-sas/personnel/blacklistSync

功能描述: 从agbox同步黑名单数据

请求参数: 无

响应示例: 同白名单同步接口

2.3 查询黑名单人员详情

接口地址: GET /prod-api/service-sas/personnel/blacklist/{personCode}

功能描述: 查询黑名单人员详细信息

请求参数: 无

响应示例: 同白名单详情接口

在册人员

3.1 查询在册人员信息

接口地址: GET /prod-api/service-sas/personnel/registered

功能描述: 同步agbox白名单,默认展示:姓名、证件类型、证件号码、人员类型、更新日期、详情

请求参数: 同白名单查询接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "personCode": "person_001",
        "name": "张三",
        "credentialType": 1,
        "credentialNo": "110101199001011234",
        "credentialTypeName": "身份证",
        "peopleTypeCode": 1,
        "peopleTypeName": "常住人口",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 200,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_personsas_credential_type_codesas_people_type_code/sas_person_type_code):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 在册人员列表
data.list[].personCode string 人员唯一编码(sas_person.person_code)
data.list[].name string 姓名(sas_person.name)
data.list[].credentialType int 证件类型编码(sas_person.credential_type)
data.list[].credentialNo string 证件号码(sas_person.credential_no)
data.list[].credentialTypeName string 证件类型名称(sas_credential_type_code.name)
data.list[].peopleTypeCode int 人员类型编码(sas_person.person_type_code / sas_people_type_code.code)
data.list[].peopleTypeName string 人员类型名称
data.list[].updateTime string 更新时间(sas_person.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

3.2 同步在册人员

接口地址: POST /prod-api/service-sas/personnel/registeredSync

功能描述: 从agbox同步在册人员数据

请求参数: 无

响应示例: 同白名单同步接口

3.3 查询在册人员详情

接口地址: GET /prod-api/service-sas/personnel/registered/{personCode}

功能描述: 查询在册人员详细信息

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "personCode": "person_001",
    "name": "张三",
    "credentialType": 1,
    "credentialNo": "110101199001011234",
    "credentialTypeName": "身份证",
    "peopleTypeCode": 1,
    "peopleTypeName": "常住人口",
    "picId": "pic_001",
    "phone1": "13800138000",
    "phone2": "010-12345678",
    "phone3": null,
    "entranceTypeCode": null,
    "entranceTypeName": null,
    "remark": null,
    "educationCode": 1,
    "maritalStatusCode": 1,
    "nationalityCode": "CHN",
    "origin": "北京市",
    "placeOfBirth": "北京市",
    "updateTime": "2026-01-30T10:00:00"
  }
}

字段说明(结合表 sas_personsas_education_codesas_marital_status_codesas_nationality_code 等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 在册人员详情对象
data.personCode string 人员唯一编码(sas_person.person_code)
data.name string 姓名(sas_person.name)
data.credentialType int 证件类型编码(sas_person.credential_type)
data.credentialNo string 证件号码(sas_person.credential_no)
data.credentialTypeName string 证件类型名称(sas_credential_type_code.name,如:身份证)
data.peopleTypeCode int 人员类型编码(sas_person.people_type_code)
data.peopleTypeName string 人员类型名称(sas_people_type_code.name,如:常住人口)
data.picId string 人脸图片id(sas_person.pic_id)
data.phone1 string 电话1(sas_person.phone1)
data.phone2 string 电话2(sas_person.phone2)
data.phone3 string 电话3(sas_person.phone3)
data.entranceTypeCode int 出入类型编码(sas_person.entrance_type_code)
data.entranceTypeName string 出入类型名称(暂无编码表时可为空)
data.remark string 备注(sas_person 表暂无该字段时可为空)
data.educationCode int 学历编码(sas_person.education_code / sas_education_code.code)
data.maritalStatusCode int 婚姻状况编码(sas_person.marital_status_code / sas_marital_status_code.code)
data.nationalityCode string 国家编码(sas_person.nationality_code / sas_nationality_code.code)
data.origin string 籍贯(sas_person.origin)
data.placeOfBirth string 出生地(sas_person.place_of_birth)
data.updateTime string 更新时间(sas_person.update_time)

关注人员

4.1 查询关注人员信息

接口地址: GET /prod-api/service-sas/personnel/follow

功能描述: 同步agbox黑名单展示字段与关注人员相同

请求参数: 同白名单查询接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "personCode": "person_001",
        "name": "张三",
        "followPeopleType": 1,
        "followPeopleTypeName": "重点关注",
        "picId": "pic_001",
        "picUrl": "http://192.168.10.151/images/pic_001.jpg",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 50,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_follow_personsas_follow_people_typesas_pic):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 关注人员列表
data.list[].personCode string 人员编码(sas_follow_person.person_code)
data.list[].name string 姓名(sas_follow_person.name)
data.list[].followPeopleType int 关注人员类型编码(sas_follow_person.follow_people_type / sas_follow_people_type.code)
data.list[].followPeopleTypeName string 关注人员类型名称(sas_follow_people_type.name)
data.list[].picId string 图片地址id(sas_follow_person.pic_id)
data.list[].picUrl string 图片访问地址(关联 sas_pic.url)
data.list[].updateTime string 更新时间(sas_follow_person.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

4.2 同步关注人员

接口地址: POST /prod-api/service-sas/personnel/followSync

功能描述: 从agbox同步关注人员数据

请求参数: 无

响应示例: 同白名单同步接口

4.3 查询关注人员详情

接口地址: GET /prod-api/service-sas/personnel/follow/{personCode}

功能描述: 查询关注人员详细信息

请求参数: 无

响应示例: 同关注人员查询接口,包含更多详细信息


一标六实

实有力量

1.1 查询实有力量信息

接口地址: GET /prod-api/service-sas/one-standard-six-realities/power

功能描述: 与关注人员相同

请求参数: 同人员查询接口

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "personCode": "person_001",
        "name": "张三",
        "powerCode": "power_001",
        "powerName": "保安",
        "securityCardNo": "SEC001",
        "securityDutiesCode": "duty_001",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 30,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_personsas_power_codesas_security_duties_code 等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 实有力量人员列表
data.list[].personCode string 人员编码(sas_person.person_code)
data.list[].name string 姓名(sas_person.name)
data.list[].powerCode string 实有力量分类编码(sas_person.power_code / sas_power_code.code)
data.list[].powerName string 实有力量分类名称(sas_power_code.name)
data.list[].securityCardNo string 保安人员卡号(sas_person.security_card_no)
data.list[].securityDutiesCode string 安全职责编码(sas_person.security_duties_code / sas_security_duties_code.code)
data.list[].updateTime string 更新时间(sas_person.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

1.2 同步实有力量

接口地址: POST /prod-api/service-sas/one-standard-six-realities/powerSync

功能描述: 从agbox同步实有力量数据

请求参数: 无

响应示例: 同人员同步接口

实有设施

2.1 查询实有设施信息

接口地址: GET /prod-api/service-sas/one-standard-six-realities/facility

功能描述: 同步agbox

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
equipType int 装备类型
villageCode string 地块编码

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "code": "equip_001",
        "equipName": "消防栓",
        "equipType": 1,
        "equipTypeName": "消防设施",
        "villageCode": "village_001",
        "floor": 1,
        "urlId": "img_001",
        "picUrl": "http://192.168.10.151/images/img_001.jpg",
        "gisId": "gis_001",
        "remark": "备注",
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 50,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_equipsas_equip_codesas_villagesas_picsas_gis):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 实有设施(装备)列表
data.list[].code string 装备编码(sas_equip.code)
data.list[].equipName string 装备昵称(sas_equip.equip_name)
data.list[].equipType int 装备类型编码(sas_equip.equip_type / sas_equip_code.code)
data.list[].equipTypeName string 装备类型名称(sas_equip_code.name)
data.list[].villageCode string 地块编码(sas_equip.village_code / sas_village.village_code)
data.list[].floor int 楼层(sas_equip.floor)
data.list[].urlId string 装备图片地址id(sas_equip.url_id / sas_pic.id)
data.list[].picUrl string 装备图片访问地址(关联 sas_pic.url)
data.list[].gisId string 定位地址id(sas_equip.gis_id / sas_gis.id)
data.list[].remark string 备注(sas_equip.remark)
data.list[].createTime string 创建时间(sas_equip.create_time)
data.list[].updateTime string 更新时间(sas_equip.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

2.2 同步实有设施

接口地址: POST /prod-api/service-sas/one-standard-six-realities/facilitySync

功能描述: 从agbox同步实有设施数据

请求参数: 无

响应示例: 同人员同步接口

出入口

3.1 查询出入口信息

接口地址: GET /prod-api/service-sas/one-standard-six-realities/entrance

功能描述: 同步agbox

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
villageCode string 地块编码

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "entranceCode": "entrance_001",
        "name": "主入口",
        "villageCode": "village_001",
        "address": "一楼大厅",
        "deviceIds": ["device_001", "device_002"],
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 10,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_entrance_eventsas_villagesas_device 等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 出入口信息列表
data.list[].entranceCode string 出入口编号(来自停车/门禁事件 entrance_code 或独立配置)
data.list[].name string 出入口名称
data.list[].villageCode string 地块编码(sas_village.village_code)
data.list[].address string 地址
data.list[].deviceIds array 关联设备id 列表(关联 sas_device.id)
data.list[].createTime string 创建时间
data.list[].updateTime string 更新时间
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

3.2 同步出入口

接口地址: POST /prod-api/service-sas/one-standard-six-realities/entranceSync

功能描述: 从agbox同步出入口数据

请求参数: 无

响应示例: 同人员同步接口

区域信息

4.1 查询区域信息

接口地址: GET /prod-api/service-sas/one-standard-six-realities/area

功能描述: 同步agbox

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
villageCode string 地块编码

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "buildingCode": "building_001",
        "buildingNo": "B001",
        "floorTotal": 10,
        "houseTotal": 100,
        "note": "区域描述",
        "gisId": "gis_001",
        "villageCode": "village_001",
        "placeType": 1,
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 20,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_buildingsas_villagesas_gissas_place_type 等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 区域信息列表
data.list[].buildingCode string 区域编码(sas_building.building_code)
data.list[].buildingNo string 区域编号(sas_building.building_no)
data.list[].floorTotal int 楼层数(sas_building.floor_total)
data.list[].houseTotal int 户数(sas_building.house_total)
data.list[].note string 区域描述(sas_building.note)
data.list[].gisId string gis 定位id(sas_building.gis_id / sas_gis.id)
data.list[].villageCode string 地块编码(sas_building.village_code / sas_village.village_code)
data.list[].placeType int 用途类型编码(sas_building.place_type / sas_place_type.id)
data.list[].createTime string 创建时间(sas_building.create_time)
data.list[].updateTime string 更新时间(sas_building.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

4.2 同步区域信息

接口地址: POST /prod-api/service-sas/one-standard-six-realities/areaSync

功能描述: 从agbox同步区域信息数据

请求参数: 无

响应示例: 同人员同步接口

房屋信息

5.1 查询房屋信息

接口地址: GET /prod-api/service-sas/one-standard-six-realities/house

功能描述: 同步agbox

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
buildingCode string 区域编码
villageCode string 地块编码
houseNo string 部位编号

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "houseCode": "house_001",
        "houseNo": "101",
        "houseName": "101室",
        "floor": 1,
        "houseLabelCode": 1,
        "houseLabel": "住宅",
        "housePurposeCode": 1,
        "housePurpose": "居住",
        "note": "部位描述",
        "isPublic": false,
        "isAction": true,
        "systemTypeCode": 1,
        "buildingCode": "building_001",
        "gisId": "gis_001",
        "personNumber": 3,
        "houseArea": 100,
        "villageCode": "village_001",
        "tags": "tag1,tag2",
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 500,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_housesas_house_type_codesas_house_purpose_codesas_villagesas_building 等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 房屋(部位)信息列表
data.list[].houseCode string 部位编码(sas_house.house_code)
data.list[].houseNo string 部位编号(sas_house.house_no)
data.list[].houseName string 部位名称(sas_house.house_name)
data.list[].floor int 楼层(sas_house.floor)
data.list[].houseLabelCode int 部位类别编码(sas_house.house_label_code / sas_house_type_code.id)
data.list[].houseLabel string 部位类别名称(sas_house.house_label)
data.list[].housePurposeCode int 部位用途编码(sas_house.house_purpose_code / sas_house_purpose_code.id)
data.list[].housePurpose string 部位用途名称(sas_house.house_purpose)
data.list[].note string 部位描述(sas_house.note)
data.list[].isPublic boolean 是否公共部位(sas_house.is_public)
data.list[].isAction boolean 是否受控区域(sas_house.is_action)
data.list[].systemTypeCode int 系统类型编码(sas_house.systesas_type_code / sas_systesas_type_code.code)
data.list[].buildingCode string 区域编码(sas_house.building_code / sas_building.building_code)
data.list[].gisId string 经纬度id(sas_house.gis_id / sas_gis.id)
data.list[].personNumber int 最大居住/办公人数(sas_house.person_number)
data.list[].houseArea int 部位面积(sas_house.house_area)
data.list[].villageCode string 地块编码(sas_house.village_code / sas_village.village_code)
data.list[].tags string 系统标签(sas_house.tags)
data.list[].createTime string 创建时间(sas_house.create_time)
data.list[].updateTime string 更新时间(sas_house.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

5.2 同步房屋信息

接口地址: POST /prod-api/service-sas/one-standard-six-realities/houseSync

功能描述: 从 agbox 同步房屋信息数据。可选传入 buildingCode 仅同步指定区域下的房屋。

请求参数:

参数名 类型 必填 说明
buildingCode string 区域编码,不传则同步全部房屋

响应示例: 同人员同步接口

地块信息

6.1 查询地块信息

接口地址: GET /prod-api/service-sas/one-standard-six-realities/village

功能描述: 同步agbox

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量
villageName string 地块名称(模糊查询)
isDefault boolean 是否默认

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "villageCode": "village_001",
        "villageName": "XX小区",
        "address": "XX路XX号",
        "provinceCode": 110000,
        "provinceName": "上海市",
        "cityCode": 110100,
        "cityName": "市辖区",
        "districtCode": 110101,
        "districtName": "青浦区",
        "streetCode": 110101001,
        "streetName": "徐泾镇",
        "roadCode": "road_001",
        "roadName": "华徐公路",
        "policeStationCode": "station_001",
        "policeStationName": "青浦分局徐乐路派出所",
        "latitude": 31.123456,
        "longitude": 121.123456,
        "altitude": 0,
        "companyCode": "company_001",
        "companyName": "XX物业公司",
        "picUrlId": "img_001",
        "gisId": "gis_001",
        "gisAreaId": "area_001",
        "isDefault": true,
        "createTime": "2026-01-30T10:00:00",
        "updateTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 5,
    "current": 1,
    "size": 10
  }
}

字段说明(结合表 sas_villagesas_police_stationsas_sys_area 等):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 地块信息列表
data.list[].villageCode string 地块编码(sas_village.village_code)
data.list[].villageName string 地块名称(sas_village.village_name)
data.list[].address string 地块地址(sas_village.address)
data.list[].provinceCode int 省编码(sas_village.province_code / sas_sys_area.code)
data.list[].provinceName string 省份名称(sas_sys_area.name)
data.list[].cityCode int 市编码(sas_village.city_code / sas_sys_area.code)
data.list[].cityName string 城市名称(sas_sys_area.name)
data.list[].districtCode int 区县编码(sas_village.district_code / sas_sys_area.code)
data.list[].districtName string 区县名称(sas_sys_area.name)
data.list[].streetCode int 街道编码(sas_village.street_code / sas_sys_area.code)
data.list[].streetName string 街道名称(sas_sys_area.name)
data.list[].roadCode string 道路编码(sas_village.road_code)
data.list[].roadName string 道路名称(sas_sys_area.name)
data.list[].policeStationCode string 派出所编码(sas_village.police_station_code / sas_police_station.code)
data.list[].policeStationName string 派出所名称(sas_police_station.name)
data.list[].latitude number 纬度(sas_gis.lat,无数据时默认 0)
data.list[].longitude number 经度(sas_gis.lon,无数据时默认 0)
data.list[].altitude number 高度(sas_gis.alt,无数据时默认 0)
data.list[].companyCode string 单位编码(sas_village.company_code / sas_company_type_code.code)
data.list[].companyName string 单位名称(sas_village.company_name)
data.list[].picUrlId string 图片地址路径id(sas_village.pic_url_id / sas_pic.id)
data.list[].gisId string gis 定位id(sas_village.gis_id / sas_gis.id)
data.list[].gisAreaId string 区域坐标id(sas_village.gis_area_id / sas_gis_area.id)
data.list[].isDefault boolean 是否默认地块(sas_village.is_default)
data.list[].createTime string 创建时间(sas_village.create_time)
data.list[].updateTime string 更新时间(sas_village.update_time)
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

6.2 同步地块信息

接口地址: POST /prod-api/service-sas/one-standard-six-realities/villageSync

功能描述: 从agbox同步地块信息数据

请求参数: 无

响应示例: 同人员同步接口

6.3 设置默认地块

接口地址: PUT /prod-api/service-sas/one-standard-six-realities/villageDefault/{villageCode}

功能描述: 设置默认地块

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "设置成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 设置默认地块结果提示信息

系统管理

系统信息

1.1 查询系统信息

接口地址: GET /prod-api/service-sas/system/info

功能描述: 共分三个模块:系统信息、系统版本、系统备份

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "systemInfo": {
      "id": "client_001",
      "name": "XX厂商",
      "createTime": "2026-01-30T10:00:00",
      "updateTime": "2026-01-30T10:00:00"
    },
    "versionInfo": {
      "id": 1,
      "jarVersion": "1.0.0",
      "vueVersion": "1.0.0",
      "durationOfUpdate": "5分钟",
      "createTime": "2026-01-30T10:00:00",
      "updateTime": "2026-01-30T10:00:00"
    },
    "backupInfo": {
      "lastBackupTime": "2026-01-30T10:00:00",
      "backupFiles": [
        {
          "fileName": "backup_20260130.sql",
          "fileSize": "1024MB",
          "createTime": "2026-01-30T10:00:00"
        }
      ]
    }
  }
}

字段说明(结合表 sas_systesas_infosas_version_admin 以及备份记录):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 系统信息综合对象
data.systemInfo object 系统信息(对应 sas_systesas_info)
data.systemInfo.id string 客户端id(sas_systesas_info.id)
data.systemInfo.name string 厂商名称(sas_systesas_info.name)
data.systemInfo.createTime string 创建时间(sas_systesas_info.create_time)
data.systemInfo.updateTime string 更新时间(sas_systesas_info.update_time)
data.versionInfo object 系统版本信息(sas_version_admin)
data.versionInfo.id int 主键id(sas_version_admin.id)
data.versionInfo.jarVersion string 后端 jar 版本号(sas_version_admin.jar_version)
data.versionInfo.vueVersion string 前端 vue 版本号(sas_version_admin.vue_version)
data.versionInfo.durationOfUpdate string 更新时长描述(sas_version_admin.duration_of_update)
data.versionInfo.createTime string 创建时间(sas_version_admin.create_time)
data.versionInfo.updateTime string 更新时间(sas_version_admin.update_time)
data.backupInfo object 备份信息
data.backupInfo.lastBackupTime string 最近一次备份时间
data.backupInfo.backupFiles array 备份文件列表
data.backupInfo.backupFiles[].fileName string 备份文件名
data.backupInfo.backupFiles[].fileSize string 备份文件大小
data.backupInfo.backupFiles[].createTime string 备份文件创建时间

系统版本

2.1 查询系统版本

接口地址: GET /prod-api/service-sas/system/version

功能描述: 查询系统版本信息

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "id": 1,
    "jarVersion": "1.0.0",
    "vueVersion": "1.0.0",
    "durationOfUpdate": "5分钟",
    "createTime": "2026-01-30T10:00:00",
    "updateTime": "2026-01-30T10:00:00"
  }
}

字段说明(结合表 sas_version_admin):

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 系统版本信息对象
data.id int 主键id(sas_version_admin.id)
data.jarVersion string 后端 jar 版本号(sas_version_admin.jar_version)
data.vueVersion string 前端 vue 版本号(sas_version_admin.vue_version)
data.durationOfUpdate string 更新时长描述(sas_version_admin.duration_of_update)
data.createTime string 创建时间(sas_version_admin.create_time)
data.updateTime string 更新时间(sas_version_admin.update_time)

2.2 升级系统版本

接口地址: POST /prod-api/service-sas/system/versionUpgrade

功能描述: 点击升级至最新版本会进行版本号检查并升级

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "升级成功",
  "data": {
    "jarVersion": "1.0.1",
    "vueVersion": "1.0.1"
  }
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 升级结果提示信息
data object 升级后版本信息
data.jarVersion string 新的后端 jar 版本号
data.vueVersion string 新的前端 vue 版本号

系统备份

3.1 备份数据库

接口地址: POST /prod-api/service-sas/system/backupBd

功能描述: 将当前系统数据库文件进行备份

请求参数: 无

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "备份成功",
  "data": {
    "fileName": "backup_20260130_100000.sql",
    "filePath": "/backup/backup_20260130_100000.sql",
    "fileSize": "1024MB"
  }
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 备份结果提示信息
data object 备份结果对象
data.fileName string 备份文件名
data.filePath string 备份文件存储路径
data.fileSize string 备份文件大小

3.2 查询备份文件列表

接口地址: GET /prod-api/service-sas/system/backupList

功能描述: 查询所有备份文件

请求参数:

参数名 类型 必填 说明
current int 页码
size int 每页数量

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "list": [
      {
        "fileName": "backup_20260130_100000.sql",
        "filePath": "/backup/backup_20260130_100000.sql",
        "fileSize": "1024MB",
        "createTime": "2026-01-30T10:00:00"
      }
    ],
    "total": 10,
    "current": 1,
    "size": 10
  }
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
data object 分页数据对象
data.list array 备份文件列表
data.list[].fileName string 备份文件名
data.list[].filePath string 备份文件存储路径
data.list[].fileSize string 备份文件大小
data.list[].createTime string 备份文件创建时间
data.total int 总记录数
data.current int 当前页码
data.size int 每页数量

3.3 恢复数据库

接口地址: POST /prod-api/service-sas/system/backupRestore

功能描述: 将生成的备份文件上传点击恢复进行数据还原

请求参数:

{
  "fileName": "backup_20260130_100000.sql",
  "filePath": "/backup/backup_20260130_100000.sql"
}

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "msg": "恢复成功"
}

字段说明

字段名 类型 说明
status string 接口调用状态
code int 业务状态码
msg string 数据库恢复结果提示信息

3.4 下载备份文件

接口地址: GET /prod-api/service-sas/system/backupDownload/{fileName}

功能描述: 下载备份文件

请求参数: 无

响应: 文件流


附录

数据字典

设备类型编码

编码 名称
1 摄像头
2 门禁设备
3 报警设备
4 停车设备
5 巡检设备

事件类型编码

编码 名称
1001 人员识别
1002 人脸识别
2001 入侵报警
2002 紧急报警
3001 门禁开门
3002 门禁关门
4001 车辆进入
4002 车辆离开
5001 正常巡检
5002 异常巡检

证件类型编码

编码 名称
1 身份证
2 护照
3 军官证
4 其他

事件优先级编码

编码 名称
1 紧急
2
3 普通
4

错误码说明

错误码 说明
200 成功
400 请求参数错误
401 未授权,请先登录
403 无权限访问
404 资源不存在
500 服务器内部错误
1001 用户名或密码错误
1002 账号已被禁用
1003 账号不存在
2001 设备不存在
2002 设备已离线
3001 人员不存在
3002 人员已在白名单中
4001 地图不存在
4002 设备已绑定到其他地图
5001 系统配置错误
5002 数据库连接失败

时间格式

所有时间字段统一使用 ISO 8601 格式:YYYY-MM-DDTHH:mm:ss

示例:2026-01-30T10:00:00

视频流接口

获取直播流地址

接口地址: GET /prod-api/service-sas/video/liveStream

功能描述: 获取设备直播流地址

请求参数:

参数名 类型 必填 说明
deviceId string 设备ID
channel int 通道号,默认0

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "rtspUrl": "rtsp://192.168.10.100:554/stream",
    "hlsUrl": "http://192.168.10.151/hls/stream_001.m3u8",
    "flvUrl": "http://192.168.10.151/flv/stream_001.flv"
  }
}

获取回放流地址

接口地址: GET /prod-api/service-sas/video/playbackStream

功能描述: 获取设备回放流地址

请求参数:

参数名 类型 必填 说明
deviceId string 设备ID
channel int 通道号,默认0
startTime datetime 开始时间
endTime datetime 结束时间

响应示例:

{
  "status": "SUCCESS",
  "code": 200,
  "data": {
    "rtspUrl": "rtsp://192.168.10.100:554/playback?start=20260130100000&end=20260130110000",
    "hlsUrl": "http://192.168.10.151/hls/playback_001.m3u8",
    "flvUrl": "http://192.168.10.151/flv/playback_001.flv"
  }
}

版本历史

版本 日期 说明 作者
v1.0 2026-01-30 初始版本,完成所有模块 API 设计 -
v1.1 2026-02-28 网络配置改为分页接口;修正黑名单/实有设施接口路径;系统配置与激活表名更正为 sassystem*;同步房屋支持可选 buildingCode;实有设施响应示例修正 -

联系方式

如有问题或建议,请联系开发团队。