设备与资产域总览

验证状态:已源码核验、未联调;适用基线:源码归纳 @ 2026-09-14。本页为领域页(原 81 个逐端点 CRUD 正本页 + 域内字段正本 + SpiritCam 固件两页已收拢至此,验证状态随收拢继承;纯 CRUD 行为不复述)。

设备资产台账域——data-service device 模块的采集设备/采集服务器/采集箱三族主档、各自型号字典、服务器—设备绑定关联、设备类型/厂商字典、Janus 流媒体服务器登记与固件包管理。固件文件本体的两条动线是独立叙事页(不在本页收拢):以 Tus 上传固件文件下载固件文件。端点全量事实(参数、请求/响应字段、错误码、权限点)不复述,一律见:

公共行为:写/删除操作没有幂等键,超时后须先查询资源状态再决定是否重试;删除为逻辑删除;资源表受当前认证租户与数据权限约束,请求中的 tenantId 不能替代空间切换(认证与空间)。

query-controls 通用查询控制字段

本域各族 list/page/listCache 共用的查询控制约定(字段级形态见 Swagger;与配置与翻译域是同一套 DTO 约定,此处只列本域差异与要点):

  • sqlQueryLimit 省略通常为 100、钳制 1..100000;例外:采集设备 listCache 省略默认 1000。部分 count 会强制改为精确匹配。
  • sqlQueryCriteria 在 DTO 初始化为 {},但调用方显式发送 null 可能使需要注入数据权限的 Controller 失败——必须省略或发送 object。
  • 排序白名单与时间范围左闭右开(<)的通用约定与配置域同源,见配置与翻译域 · query-controls;本域无额外差异。

data-acquisition-device 采集设备

采集设备(执法记录仪等)主档,本域业务重心。CRUD 面:count/getById/list/page/save/updateById/removeById/removeByIds,基路径 /main-service/main-api/device/data-acquisition-device。独立子流程:异步导入缓存读取。契约见清单层 · data-acquisition-device设备业务 · data-acquisition-device

data-acquisition-device-import-list 异步导入

POST /main-service/main-api/device/data-acquisition-device/importList —— 异步导入设备台账:

  • status=200 && data=true 只表示合法项已提交 JMS;同进程监听器随后逐项 upsert、解析机构/型号/服务器并重建机构树。没有关联响应、进度或逐行最终结果,调用方只能稍后重新查询。
  • 冲突处理:单条入口的 deviceNo 跨租户冲突会业务拒绝并返回冲突租户;本导入入口不整体拒绝,仅把跨租户冲突号剔除进 rejectedDeviceNos(库存租户更新是源码中的例外);空白 deviceNo 被静默丢弃;同批重复号只保留第一项。

data-acquisition-device-list-cache 缓存读取

POST /main-service/main-api/device/data-acquisition-device/listCache —— 缓存列表,供选择器与直播/回放/远控页消费(sqlQueryLimit 省略默认 1000,见通用查询控制字段):

  • 读取语义:详情/列表会组合绑定服务器、在线状态和最近直播点击时间——这些是读取时动态值,不是持久化写入的回显。

data-acquisition-device-model 采集设备型号

采集设备型号字典 CRUD;契约见清单层 · data-acquisition-device-model

data-acquisition-server 采集服务器

采集服务器主档。CRUD 面:count/getById/list/page/save/updateById/removeById/removeByIds,基路径 /main-service/main-api/device/data-acquisition-server。独立子流程:异步导入缓存读取。服务器在线/信息同步的运行时面见设备业务 · 运行时关联。契约见清单层 · data-acquisition-server

data-acquisition-server-import-list 异步导入

POST /main-service/main-api/device/data-acquisition-server/importList —— 与采集设备异步导入同款语义:data=true 只表示合法项已提交 JMS,监听器随后逐项 upsert、解析机构/型号/服务器并重建机构树;没有关联响应、进度或逐行最终结果。

data-acquisition-server-list-cache 缓存读取

POST /main-service/main-api/device/data-acquisition-server/listCache —— 缓存列表(供服务器选择器消费)。读取语义:详情/列表会组合服务在线状态;分页还会补最新固件与已绑定采集设备数——均为读取时动态值。

data-acquisition-server-model 采集服务器型号

采集服务器型号字典 CRUD;契约见清单层 · data-acquisition-server-model

data-acquisition-server-data-acquisition-device 采集服务器与采集设备关联

采集服务器与采集设备的绑定关联表(设备详情里「绑定服务器」组合项的来源)。CRUD 族,无独立子流程;契约见清单层 · data-acquisition-server-data-acquisition-device

data-acquisition-box 采集箱

采集箱台账 CRUD;契约见清单层 · data-acquisition-box

data-acquisition-box-model 采集箱型号

采集箱型号字典 CRUD;契约见清单层 · data-acquisition-box-model

device-type 设备类型

设备类型字典 CRUD(listTree 类型树正本在查询设备类型树)。行为规则:写操作(save/updateById/removeById*)成功后异步发布设备类型树重建消息,无完成信号,读树方需重读正本——细节见设备业务 · device-type。契约见清单层 · device-type

manufacturer 厂商

设备厂商字典 CRUD。删除返回 data=false 可表示没有受影响行;Web 的成功提示未统一检查 data,App 不应复制该判定。契约见清单层 · manufacturer

janus-server Janus 流媒体服务器

Janus 流媒体服务器登记 CRUD + listCache 缓存列表——直播/对讲媒体路由的基础设施表(信令转发与会话路由在 device-service 侧)。行为规则:详情/分页/缓存列表会实时补 sfuOnlineStatus(读取时动态值);响应只给 hasAdminSecret,不会返回 adminSecret 明文。契约见清单层 · janus-server

firmware-package 固件包

固件包管理面 CRUD(原始固件条目)。文件本体动线:以 Tus 上传固件文件 → 保存/更新(本资源) → 下载固件文件。固件升级不是「推送」,而是 Web 发 MQTT retrieve 命令让设备来取最新固件包信息(中心消费应答发往设备 topic,Web 看不到)。写行为规则——同一 deviceModelId + version 重复业务拒绝;仅 .bin/.img 已完成 Tus 文件会被迁移,filePath 查不到 Tus 信息时不拒绝而保存原路径(必须只提交上传回调给出的 URL);md5 由浏览器在保存前算好、服务端不复算——细节见设备业务 · firmware-package

契约见清单层 · firmware-package

spirit-cam-firmware 随身摄像机固件

随身摄像机(SpiritCam)固件条目维护,只有 save/updateById 两个写端点(无独立查询——写入最终生成普通固件包记录,读取走 firmware-package 端点)。行为规则:文件须为已完成 Tus 上传且扩展名 .bin/.img(解析二进制头失败即业务拒绝);deviceModelId/version/md5/fileSize/binaryHeader 五项全部由服务端从固件头派生,客户端不发送;元数据固定写 scm 租户;已知风险——替换文件时 binaryHeader 保留旧值,不得用于校验新文件。细节见设备业务 · spirit-cam-firmware

契约见清单层 · spirit-cam-firmware