按采集服务器批量查询文件分类总数(list-file-category-total)

验证状态:存在关键缺口,不可作为完整契约发布。Web 发布与应答消费已源码核验;采集服务器是 server/{采集服务器 deviceNo}/data/v1/list-file-category-total 的最终消费者,其源码不在本工作区,应答权威 schema、错误形态与完成语义缺证。 适用基线:源码归纳 @ 2026-09-14

用途与场景

回放入口页(($lng).$spaceId.playback/to-b-1)在设备在线状态就绪后,把已绑定采集服务器且 IoT 在线的设备按采集服务器分组,逐台服务器批量查询每台设备的文件分类总数(全部/视频/音频/图片/报警),写入 fileCategoryTotalList 供回放首页的设备卡片分类统计图消费。本页不承诺服务端过滤、分页或统计口径——这些属采集服务器契约(缺证)。前置链路见设备清单 listCache 正本监看 list-online-status 正本

使用位置

页面/功能 角色或空间分支
回放入口页分组发送分类统计查询 登录用户;回放入口页
消费:按 deviceNo 取行,渲染分类统计图(剔除 all

对应 inventory operationId:mqtt-list-file-category-total

端点

MQTT 请求 server/{serverDeviceNo}/data/v1/list-file-category-total(Web → Broker → 采集服务器直连,应答按 reply topic 回流;中心网关不消费)— 按采集服务器批量查询每台设备的文件分类总数(全部/视频/音频/图片/报警)。

通道口径:该 topic 不在中心消费/发布点清单内(网关默认订阅清单无 server/+/data/#,见MQTT 主题清单 · 服务端订阅面);应答回流、凭据与 QoS 等 wire 约定见MQTT 连接与消息边界

请求形态 {id, reply, params:{deviceNos, categories}}(不带 replyNumberMax/replyInterval,即默认单次应答);按采集服务器分组、逐台串行发布。

动线与完成判据

层级 判据
发布完成 publishAsync Promise 成功;仅代表 Broker 受理,不代表采集服务器收到或完成统计
应答到达 reply topic 收到应答且 data 可解析,fileCategoryTotalList 更新
空结果 data 缺失或非数组按 [] 写入(getReplyRows
超时 无内置请求超时;deviceStatusList 变化(throttle 100ms)触发整批重发,无失败终态

错误与边界

  • 本操作不经中心 HTTP 出口,错误响应差异总表的 HTTP 条目不适用;采集服务器的业务错误形态缺证(待核验,不按服务名猜测)。
  • 发布失败被 Promise 链记录后丢弃,依赖下一轮 deviceStatusList 触发补偿;MQTT 断线由自动重连补偿(clean)。
  • 设备未绑定采集服务器(dataAcquisitionServer 缺失)或其 IoT 离线时整台跳过,页面上表现为该设备无统计行。
  • 多台采集服务器逐个串行发布以保持迁移前的发送顺序与并发上限。

调用关系与资源清理

已知缺口

  1. 采集服务器是最终消费者:应答权威 schema(行字段类型、缺失分类如何表达)、错误形态、统计口径(是否含已加密文件、时间边界)均以其实现为准,本工作区缺证。
  2. replyNumberMax/replyInterval 缺省时采集服务器的应答行为(单次或多帧)缺证。
  3. Broker ACL(server/{no}/data/v1/# 发布、采集服务器订阅)待部署核验;未执行真实 Broker/采集服务器联调。