编辑 | blame | 历史 | 原始文档

LIMS 数据分析与展示 - 前端联调文档

1. 模块说明

本次在 lims 模块新增了“数据分析与展示”能力,覆盖:

  • 数据趋势分析(按天/按小时)
  • 数据比较分析(按数据类型/设备)
  • 数据质量分布统计
  • 概览指标看板(总量、异常、合格率、预警等)

接口统一前缀:/lims/dataAnalysis


2. 鉴权与通用约定

  1. 鉴权方式:沿用系统现有 Token(Authorization 请求头)。
  2. 返回格式:AjaxResult
{
  "code": 200,
  "msg": "操作成功",
  "data": {}
}
  1. 时间参数格式:yyyy-MM-dd HH:mm:ss
  2. 默认时间范围:若 startTime/endTime 都不传,则默认最近 7 天。

3. 查询参数(通用)

参数 类型 必填 说明
startTime string 开始时间,格式:yyyy-MM-dd HH:mm:ss
endTime string 结束时间,格式:yyyy-MM-dd HH:mm:ss
dataType string 数据类型:temperature/humidity/pressure/flow/concentration
deviceCode string 设备编号
granularity string 趋势粒度:day/hour,默认 day
dimension string 比较维度:dataType/deviceName/deviceCode,默认 dataType
topN number 比较分析返回条数,默认 10,最大 50

4. 接口清单

接口 方法 说明
/lims/dataAnalysis/dashboard GET 一次返回看板全部数据(推荐)
/lims/dataAnalysis/overview GET 仅返回概览指标
/lims/dataAnalysis/trend GET 仅返回趋势数据
/lims/dataAnalysis/comparison GET 仅返回比较分析数据
/lims/dataAnalysis/qualityDistribution GET 仅返回质量分布数据

5. 详细返回结构

5.1 GET /lims/dataAnalysis/dashboard

data 结构:

{
  "startTime": "2026-05-16 00:00:00",
  "endTime": "2026-05-22 23:59:59",
  "granularity": "day",
  "dimension": "dataType",
  "overview": {
    "totalCollections": 1200,
    "todayCollections": 210,
    "abnormalCollections": 38,
    "qualifiedRate": 94.17,
    "inProgressExperiments": 6,
    "warningMonitors": 3,
    "inStockSamples": 168
  },
  "trend": [
    {
      "time": "2026-05-16",
      "pointCount": 145,
      "avgValue": 23.65,
      "maxValue": 29.40,
      "minValue": 20.10
    }
  ],
  "comparison": [
    {
      "dimensionValue": "temperature",
      "pointCount": 560,
      "avgValue": 24.31,
      "maxValue": 33.20,
      "minValue": 18.90
    }
  ],
  "qualityDistribution": [
    {
      "category": "qualified",
      "pointCount": 1130,
      "ratio": 94.17
    },
    {
      "category": "abnormal",
      "pointCount": 38,
      "ratio": 3.17
    },
    {
      "category": "pending",
      "pointCount": 32,
      "ratio": 2.67
    }
  ]
}

字段解释:

  • overview.totalCollections:时间范围内采集总条数
  • overview.todayCollections:最近 24 小时采集条数
  • overview.qualifiedRate:合格率(百分比)
  • trend:折线图数据源
  • comparison:柱状图/横向条形图数据源
  • qualityDistribution:饼图数据源

6. 前端调用建议

  1. 页面初始化优先调用 dashboard,减少请求次数。
  2. 用户切换筛选条件(时间、设备、数据类型)后,重新请求 dashboard
  3. 若页面分区加载,可分别调 overview/trend/comparison/qualityDistribution
  4. trend 已补齐时间轴空档位(无数据返回 0),可直接绘制连续折线。

7. 调用示例

curl -G 'http://localhost:8080/lims/dataAnalysis/dashboard' \
  --data-urlencode 'startTime=2026-05-16 00:00:00' \
  --data-urlencode 'endTime=2026-05-22 23:59:59' \
  --data-urlencode 'granularity=day' \
  --data-urlencode 'dimension=dataType' \
  --data-urlencode 'topN=10' \
  -H 'Authorization: Bearer <token>'