Skip to content

问题

大屏的动态数据需要写接口,还是可以直接读取机器数据动态展示?结合 RuoyiOffice 与 GoView 集成情况,支持哪些获取业务数据的方式?

答案

不能绕过平台直接从机器/设备读数。 GoView 是前端可视化设计器,动态数据必须经过后端(HTTP 接口或经后端执行的 SQL)。设备数据典型链路为:机器 → 采集入库(如 IoT 模块)→ 后端接口/SQL → GoView 定时拉取展示

详细说明

集成架构

  • PC 管理端 report/goview 通过 iframe 嵌入独立 GoView 前端,传递 accessTokenrefreshToken
  • GoView 调用 /admin-api/report/go-view/* 及平台业务 API,项目配置存 report_go_view_project 表。
  • 文档:GoView 大屏设计器

支持的数据获取方式

方式说明适用场景
静态数据设计器内填 JSON原型、占位,不接真实业务
HTTP 接口(AJAX)配置 URL,支持秒/分/时/天轮询刷新;请求 RuoyiOffice 后端自动带 Token、tenant-id主推;可调各业务模块已有 API
SQL 请求POST /admin-api/report/go-view/data/get-by-sql,查默认 MySQL,返回 dimensions + source数据已在业务库、简单统计
数据池(Data Pond)多组件共享同一数据源同屏多图表看同一指标

内置 HTTP 示例 POST /admin-api/report/go-view/data/get-by-http 仅为演示(随机 PV/UV);源码注释明确:实际每个查询场景通常需单独写或复用业务接口

机器/设备数据怎么接

场景推荐方式
设备数据已通过 IoT 采集入库SQL 查属性表,或 HTTP 调 /iot/device/property/get-latesthistory-list
多设备汇总、计算、权限过滤后端写专用聚合接口,返回 GoView 需要的 dimensions + source
秒级/毫秒级实时推送需二开:当前为 HTTP 轮询,无内置 WebSocket
设备协议直连(PLC/传感器不经平台)不支持,须先有采集层

IoT 接口返回格式与 GoView 图表默认结构不一致时,需在大屏配置数据过滤器做字段映射,或封装专用大屏 API。

选型建议(回复客户)

数据类型是否要写接口推荐做法
已在业务库(订单、项目、资产等)可不写,用 SQL简单统计用 SQL;复杂逻辑建议封装 API
设备/产线实时数据要写采集 + 通常要写展示接口IoT 采集 → 库/API → GoView
跨模块经营驾驶舱建议写聚合 API统一口径、权限、性能
展厅演示/原型可不写静态数据或示例 get-by-http

一句话: 大屏不能直接从机器读数;数据在库可用 SQL,设备与复杂场景建议写接口;刷新为定时轮询,极高实时性需额外开发。

涉及代码 / 配置

位置说明
yudao-module-report/.../GoViewDataController.javaget-by-sqlget-by-http
yudao-module-report/.../GoViewDataServiceImpl.javaSQL 经 JdbcTemplate 查默认数据源
ruoyi-office-ui-go-view/src/enums/httpEnum.ts静态 / AJAX / 数据池
ruoyi-office-ui-go-view/src/api/http.ts请求封装、Token/租户头
yudao-module-iot/.../IotDevicePropertyController.java设备属性最新值与历史

生产环境慎用大屏内自由 SQL,建议限制数据源与语句范围,优先封装业务聚合接口。

相关链接

修订记录

日期修改
2026-06-17初稿
联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版