验证状态:已源码核验、未联调;适用基线:Web
aa138d8、servicesa3e783d2;核验日期:2026-09-12
本页是本资源族操作页复用的字段正本。字段来自当前 HTTP DTO、Plus DTO、Mapper、Controller、Service 和 JSON 配置;Java LocalDateTime 在 HTTP JSON 中是 UTC epoch 秒,顶层 timestamp 是 epoch 毫秒。未被 Bean Validation 或数据库映射闭合的可空性明确保留为未知。
| JSON 路径 | JSON 类型 | 必填 | 可空 | 默认值/范围 | 语义与证据 |
|---|---|---|---|---|---|
sqlQueryCriteriaLike |
boolean | 否 | 是 | DTO 默认 true |
字符串默认模糊匹配;部分 count 强制改为 false |
sqlQueryCriteria |
object<string,string> |
否 | 否 | {} |
Mapper 只消费已实现的字段操作;不能发送任意 SQL |
sqlQuerySorter.field |
string | 否 | 是 | 无 | 仅 Mapper 白名单字段稳定 |
sqlQuerySorter.order |
string | 否 | 是 | ascend 为升序,其余已实现分支通常降序 |
当前 Web 只发送 ascend 或省略 |
sqlQueryLimit |
number | 否 | 是 | 通常省略为 100;钳制 1..100000 | list/listCache 由 QueryLimits.normalizeSqlQueryLimit 处理;数据采集设备 listCache 的省略值例外为 1000 |
current/pageSize |
number | page 时 Web 发送 | 否 | Java primitive 省略为 0 | Controller 未声明范围校验;当前 Web 从 1、10 开始 |
审计时间 *RangeStart/End |
number | 否 | 是 | 无 | UTC epoch 秒;Mapper 的结束边界使用 < |
tenantId/tenantIds[] |
string / array | 否 | 是 | 无 | 服务端作用域字段;不能代替认证空间 |
各资源 list/page DTO 中的业务筛选字段均可省略并接受 JSON null,默认不增加该字段条件;响应 DTO 未用非空注解约束数据库结果,因此除 Controller 明确构造的在线布尔值、计数和分页元数据外,可空性记为未知。sqlQueryCriteria 在 DTO 初始化为 {},但调用方显式发送 null 可能使需要注入数据权限的 Controller 失败,必须省略或发送 object。
采集盒、采集设备、采集服务器和 Janus server 复用设备基类。查询/返回可含 deviceId/deviceModelId/orgId/deviceNo/name/intro/state/installedLocation/childTableName/janusNo/stunServer/turnServer/turnUsername/turnCredential/sourceUsername/sourceTenantId/sourceDeviceId/cloudServiceDomainName/authorizationCode(string),installedTime/createdTime/lastModifiedTime/deleteTime(number,UTC epoch 秒)和 revision(number)。返回可空性未由 DTO 保证。
写入时 deviceNo 必填、1..36;deviceId/deviceModelId/sourceTenantId/sourceDeviceId 最长 32,orgId/janusNo/sourceUsername 最长 36,name/turnUsername/turnCredential/authorizationCode 最长 256,intro/installedLocation 最长 1024,stunServer/turnServer 最长 512,cloudServiceDomainName 最长 64。更新还要求 deviceId。turnCredential 与 authorizationCode 是敏感字段,当前 DTO/Mapper 可能返回;客户端不得记录或回传无关值。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
deviceId |
string | 否 | 是 | 保存可空;更新否 | 子类型保存函数可用专用 ID 补齐 | 最长 32;子类型更新会覆盖为专用 ID | DeviceSaveRequestDTO:26-28;DeviceUpdateRequestDTO:26-29 |
deviceModelId |
string | 否 | 否 | 是 | 无 | 最长 32 | 同上 DTO :30-33 |
orgId |
string | 否 | 否 | 是 | 无 | 最长 36 | 同上 DTO :34-37 |
deviceNo |
string | 是 | 是 | 否 | 无 | 1..36;采集资产另做全局重复检查 | 同上 DTO :38-42 |
name |
string | Janus 是;其余否 | Janus 是;其余否 | 通常是 | 无 | 最长 256;Janus Controller 另拒绝空白 | DTO :43-46;JanusServerController.validateName |
intro/state/installedLocation |
string | 否 | 否 | 是 | 无 | 最长 1024/128/1024 | Device save/update DTO |
installedTime |
number | 否 | 否 | 是 | 无 | UTC epoch 秒 | JsonFormatConfig.localDateTime* |
childTableName |
string | 否 | 否 | 是 | 由子类型函数覆盖 | 最长 256;客户端值不会决定实际子表 | Device save/update DTO 与各 Save/Update Function |
revision |
number | 否 | 否 | 是 | 无 | 源码未给范围 | Device save/update DTO |
janusNo/sourceUsername |
string | 否 | 否 | 是 | 无 | 最长 36 | Device save/update DTO |
stunServer/turnServer |
string | 否 | 否 | 是 | 无 | 最长 512 | Device save/update DTO |
turnUsername/turnCredential |
string | 否 | 否 | 是 | 无 | 最长 256;credential 敏感 | Device save/update DTO |
sourceTenantId/sourceDeviceId |
string | 否 | 否 | 是 | 无 | 最长 32 | Device save/update DTO |
cloudServiceDomainName |
string | 否 | 否 | 是 | 无 | 最长 64 | Device save/update DTO |
authorizationCode |
string | 否 | 否 | 是 | 无 | 最长 256;设备绑定校验使用,敏感 | Device DTO;DataAcquisitionDevicePlusMapper.selectPlusColumns |
型号查询/返回字段为 deviceModelId/manufacturerId/deviceTypeId/deviceModelCode/name/intro/state/childTableName/createdUsername/lastModifiedUsername/tenantId(string),审计时间(UTC epoch 秒)与 revision(number)。写入必填 manufacturerId/deviceTypeId/deviceModelCode,长度分别 32/32/36;name 256、intro 1024、state 128、childTableName 256。更新还要求 deviceModelId。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
deviceModelId |
string | 否 | 是 | 保存可空;更新否 | 子类型可用专用 ID 补齐 | 最长 32 | DeviceModelSaveRequestDTO:26-28;Update DTO :26-29 |
manufacturerId |
string | 是 | 是 | 否 | 无 | 1..32 | DeviceModel save/update DTO |
deviceTypeId |
string | 是 | 是 | 否 | 无 | 1..32 | DeviceModel save/update DTO |
deviceModelCode |
string | 是 | 是 | 否 | 无 | 1..36;Controller 精确查重 | DeviceModel save/update DTO 与各 Model Controller |
name/intro/state |
string | 否 | 否 | 是 | 无 | 最长 256/1024/128 | DeviceModel save/update DTO |
childTableName |
string | 否 | 否 | 是 | 子类型函数覆盖 | 最长 256 | DeviceModel DTO 与各 Model Save/Update Function |
revision |
number | 否 | 否 | 是 | 无 | 源码未给范围 | DeviceModel save/update DTO |
查询/返回由设备基类字段加 dataAcquisitionBoxId: string;列表另给 orgNo/orgName/deviceModelCode/deviceModelName: string。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 设备基类查询/返回字段 | 见基类 | 否 | 是 | 未知 | 无 | 继承字段 | 设备基类 |
dataAcquisitionBoxId |
string | 否 | 是 | 未知 | 无 | 专用主键,提供时精确匹配 | DataAcquisitionBox List/Get DTO |
orgNo/orgName/deviceModelCode/deviceModelName |
string | 不作为本 DTO 筛选 | 不适用 | 未知 | 无 | Plus 列表派生投影 | DataAcquisitionBoxListPlusResponseDTO |
保存的 dataAcquisitionBoxId 可省略、最长 32;省略 deviceId 时服务会令两个 ID 相同。更新要求专用 ID、deviceId/deviceNo,随后会把 deviceId 强制改为专用 ID;调用方应保持两个 ID 相同。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 设备基类写入字段 | 见基类 | 见基类 | 见基类 | 见基类 | 见基类 | deviceNo 必填;更新另要求 deviceId |
设备基类 |
dataAcquisitionBoxId |
string | 否 | 是 | 保存可空;更新否 | 生成 UUID | 最长 32;更新时覆盖 deviceId |
DataAcquisitionBoxSave/UpdatePlusRequestDTO;对应 Function |
查询/返回由设备型号基类字段加 dataAcquisitionBoxModelId: string、dataAcquisitionPort: number。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 型号基类查询/返回字段 | 见基类 | 否 | 是 | 未知 | 无 | 继承字段 | 设备型号基类 |
dataAcquisitionBoxModelId |
string | 否 | 是 | 未知 | 无 | 专用主键 | BoxModel Plus DTO |
dataAcquisitionPort |
number | 否 | 是 | 未知 | 无 | 端口范围/单位未由源码约束 | BoxModel Plus DTO |
保存的专用 ID 可省略、最长 32;省略 deviceModelId 时服务会令两个 ID 相同。更新请求先校验两个 ID 必填,随后把基类 ID 强制改为专用 ID;调用方应保持两者相同。dataAcquisitionPort 为可选 number,源码未给端口范围。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 型号基类写入字段 | 见基类 | 见基类 | 见基类 | 见基类 | 见基类 | 厂商、类型、型号代码必填 | 设备型号基类 |
dataAcquisitionBoxModelId |
string | 否 | 是 | 保存可空;更新否 | 生成 UUID | 最长 32;更新时覆盖基类 ID | BoxModel Save/UpdatePlus DTO;对应 Function |
dataAcquisitionPort |
number | 否 | 否 | 是 | 无 | 源码未给范围 | BoxModel Save/UpdatePlus DTO |
查询由设备基类字段加 dataAcquisitionDeviceId/dataAcquisitionServerId/dataAcquisitionServerNo: string 和 weight: number。返回还含 onlineStatus/iotOnlineStatus/webrtcOnlineStatus: boolean、orgNo/orgName/treeOrgName/deviceModelCode/deviceModelName/deviceManage/lastClickedDeviceLiveTime: string,可嵌套 dataAcquisitionServer 与 firmwarePackage;动态字段可空。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 设备基类查询/返回字段 | 见基类 | 否 | 是 | 未知 | 无 | 继承字段 | 设备基类 |
dataAcquisitionDeviceId/dataAcquisitionServerId/dataAcquisitionServerNo |
string | 否 | 是 | 未知 | 无 | 设备与绑定服务器筛选/投影 | DataAcquisitionDevice Plus DTO |
weight |
number | 否 | 是 | 不返回 | 无 | 查询权重;范围/单位未闭合 | DataAcquisitionDeviceListPlusRequestDTO |
onlineStatus/iotOnlineStatus/webrtcOnlineStatus |
boolean | 不作为数据库筛选 | 不适用 | Controller 构造为非空 boolean | false(未查到/未在线) | 读取时缓存在线状态 | Controller fill/enrichOnlineStatuses |
orgNo/orgName/treeOrgName/deviceModelCode/deviceModelName/deviceManage/lastClickedDeviceLiveTime |
string | 否(仅部分字段可筛选) | 是 | 未知 | 点击时间缺失时 "1" |
Plus 投影与用户缓存动态字段 | DataAcquisitionDeviceListPlusResponseDTO;Controller |
dataAcquisitionServer/firmwarePackage |
object | 否 | 是 | 是 | 无 | 关联服务器/固件;接口不同可能不填充 | Plus Response DTO;Controller enrichment |
保存的 dataAcquisitionDeviceId/dataAcquisitionServerId 可省略、最长 32,并可带导入解析用的 orgNo/orgName/deviceModelCode/deviceModelName/dataAcquisitionServerNo。省略 deviceId 时服务令其等于采集设备 ID。更新要求 dataAcquisitionDeviceId/deviceId/deviceNo,随后强制令两个设备 ID 相同;服务器 ID 省略时会清除已有服务器绑定。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 设备基类写入字段 | 见基类 | 见基类 | 见基类 | 见基类 | 见基类 | deviceNo 必填;更新另要求 deviceId |
设备基类 |
dataAcquisitionDeviceId |
string | 否 | 是 | 保存可空;更新否 | 生成 UUID | 最长 32;更新覆盖 deviceId |
Device Save/UpdatePlus DTO;对应 Function |
dataAcquisitionServerId |
string | 否 | 否 | 是 | 无 | 最长 32;空值清除设备现有绑定 | Device Save/UpdatePlus DTO;绑定 Service save |
orgNo/orgName/deviceModelCode/deviceModelName/dataAcquisitionServerNo |
string | 常规保存否 | 常规更新不使用 | 是 | 无 | 导入 listener 用编号解析 ID | SavePlus DTO;DataAcquisitionDeviceMessagesPlusListener |
查询/返回由设备型号基类字段加 dataAcquisitionDeviceModelId/manufacturerNo/manufacturerName/deviceTypeCode/deviceTypeName: string。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 型号基类查询/返回字段 | 见基类 | 否 | 是 | 未知 | 无 | 继承字段 | 设备型号基类 |
dataAcquisitionDeviceModelId |
string | 否 | 是 | 未知 | 无 | 专用主键 | DeviceModel Plus DTO |
manufacturerNo/deviceTypeCode |
string | 否 | 是 | 未知 | 无 | 可选关联编号筛选 | ListPlusRequest/Response DTO |
manufacturerName/deviceTypeName |
string | 不作为本 DTO 筛选 | 不适用 | 未知 | 无 | 关联名称投影 | List/Get PlusResponse DTO |
保存的专用 ID 可省略、最长 32;省略基类 ID 时服务令两者相同。更新先校验两个 ID 必填,随后强制令其相同;其余必填与长度见设备型号基类。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 型号基类写入字段 | 见基类 | 见基类 | 见基类 | 见基类 | 见基类 | 厂商、类型、型号代码必填 | 设备型号基类 |
dataAcquisitionDeviceModelId |
string | 否 | 是 | 保存可空;更新否 | 生成 UUID | 最长 32;更新覆盖基类 ID | DeviceModel Save/UpdatePlus DTO;对应 Function |
除设备基类字段外,地址字段 domainName/externalIp/internalIp/privateIp 为 string;对应 *WebPort/*UploadPort 为 number,源码未给端口范围。列表/详情还可含 onlineStatus/iotOnlineStatus/fileOnlineStatus/webrtcOnlineStatus: boolean、orgNo/orgName/deviceModelCode/deviceModelName: string、dataAcquisitionDeviceCount: number 与嵌套最新固件。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 设备基类查询/返回字段 | 见基类 | 否 | 是 | 未知 | 无 | 继承字段 | 设备基类 |
dataAcquisitionServerId/dataAcquisitionDeviceNo/dataAcquisitionDeviceId |
string | 否 | 是 | 专用 ID 未知;设备条件不返回 | 无 | 服务器主键及反查绑定设备的筛选 | Server ListPlusRequest DTO |
domainName/externalIp/internalIp/privateIp |
string | 否 | 是 | 未知 | 无 | 地址字符串;不校验格式 | Server Plus DTO |
八个 *WebPort/*UploadPort |
number | 否 | 是 | 未知 | 无 | 四类地址各有 Web/Upload 端口;范围/单位未由源码约束 | Server Plus DTO |
onlineStatus/iotOnlineStatus/fileOnlineStatus/webrtcOnlineStatus |
boolean | 不作为数据库筛选 | 不适用 | Controller 构造为非空 boolean | false(未查到/未在线) | 读取时缓存在线状态;接口不同填充集合不同 | Server Controller |
orgNo/orgName/deviceModelCode/deviceModelName |
string | 不作为本 DTO 筛选 | 不适用 | 未知 | 无 | Plus 投影字段 | Server ListPlusResponse DTO |
dataAcquisitionDeviceCount |
number | 不适用 | 不适用 | 否(分页构造) | 0 | 分页逐项统计绑定数 | Server Controller page |
firmwarePackage |
object | 不适用 | 不适用 | 是 | 无 | 分页可能补最新固件 | Server Controller page |
保存的 dataAcquisitionServerId 可省略、最长 32;省略 deviceId 时服务令两个 ID 相同。更新要求专用 ID 与 deviceId/deviceNo,随后强制令两个 ID 相同。四类地址最长 512,端口是可选 number。导入还可用 orgNo/orgName/deviceModelCode/deviceModelName 解析关系。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
dataAcquisitionServerId |
string | 否 | 是 | 保存可空;更新否 | 生成 UUID | 最长 32;与基类 ID 共用值 | DataAcquisitionServerSave/UpdatePlusRequestDTO |
domainName/externalIp/internalIp/privateIp |
string | 否 | 否 | 是 | 无 | 各最长 512;源码不验证地址格式 | 同上 Plus DTO |
domainNameWebPort/domainNameUploadPort |
number | 否 | 否 | 是 | 无 | 无源码范围 | 同上 Plus DTO |
externalIpWebPort/externalIpUploadPort |
number | 否 | 否 | 是 | 无 | 无源码范围 | 同上 Plus DTO |
internalIpWebPort/internalIpUploadPort |
number | 否 | 否 | 是 | 无 | 无源码范围 | 同上 Plus DTO |
privateIpWebPort/privateIpUploadPort |
number | 否 | 否 | 是 | 无 | 无源码范围 | 同上 Plus DTO |
orgNo/orgName/deviceModelCode/deviceModelName |
string | 常规保存否 | 常规更新不使用 | 是 | 无 | 导入 listener 用编号解析 ID | SavePlus DTO;DataAcquisitionServerMessagesPlusListener.importList |
查询/返回字段为 dataAcquisitionServerDataAcquisitionDeviceId/dataAcquisitionServerId/dataAcquisitionDeviceId/dataAcquisitionServerNo/dataAcquisitionServerName/dataAcquisitionDeviceNo/dataAcquisitionDeviceName/createdUsername/lastModifiedUsername/tenantId: string,审计时间为 UTC epoch 秒,revision 为 number。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
dataAcquisitionServerDataAcquisitionDeviceId/dataAcquisitionServerId/dataAcquisitionDeviceId |
string | 否 | 是 | 未知 | 无 | 绑定及两端主键;提供时精确匹配 | ListRequest DTO;PlusMapper selectPlusWhere |
dataAcquisitionServerNo/dataAcquisitionServerName |
string | 否 | 是 | 未知 | 无 | 服务器编号/名称,字符串按 like 开关匹配 | ListPlusRequest/Response DTO |
dataAcquisitionDeviceNo/dataAcquisitionDeviceName |
string | 否 | 是 | 未知 | 无 | 设备编号/名称,字符串按 like 开关匹配 | ListPlusRequest/Response DTO |
createdUsername/lastModifiedUsername/tenantId |
string | 否 | 是 | 未知 | 无 | 审计与租户字段 | ListRequest/Response DTO |
createdTime/lastModifiedTime/deleteTime |
number | 仅 range 可查询 | range 可空 | 未知 | 无 | UTC epoch 秒 | ListRequest/Response DTO;JsonFormatConfig |
revision |
number | 否 | 是 | 未知 | 无 | 精确匹配;范围未约束 | ListRequest/Response DTO |
保存必填 dataAcquisitionServerId/dataAcquisitionDeviceId(1..32),绑定 ID 可省略、最长 32;更新三个 ID 均必填、1..32,revision 可选 number。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
dataAcquisitionServerDataAcquisitionDeviceId |
string | 否 | 是 | 保存可空;更新否 | 保存可由 ORM 生成 | 最长 32 | Save/UpdateRequestDTO |
dataAcquisitionServerId |
string | 是 | 是 | 否 | 无 | 1..32;目标服务器 | Save/UpdateRequestDTO |
dataAcquisitionDeviceId |
string | 是 | 是 | 否 | 无 | 1..32;同租户当前态只允许一个绑定 | Save/UpdateRequestDTO;Controller 查重 |
revision |
number | 否 | 否 | 是 | 无 | 源码未给范围 | Save/UpdateRequestDTO |
查询/返回由设备型号基类字段加 dataAcquisitionServerModelId: string。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 型号基类查询/返回字段 | 见基类 | 否 | 是 | 未知 | 无 | 继承字段 | 设备型号基类 |
dataAcquisitionServerModelId |
string | 否 | 是 | 未知 | 无 | 专用主键 | ServerModel Plus DTO |
保存的专用 ID 可省略、最长 32;省略基类 ID 时服务令两者相同。更新先校验两个 ID 必填,随后强制令其相同。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 型号基类写入字段 | 见基类 | 见基类 | 见基类 | 见基类 | 见基类 | 厂商、类型、型号代码必填 | 设备型号基类 |
dataAcquisitionServerModelId |
string | 否 | 是 | 保存可空;更新否 | 生成 UUID | 最长 32;更新覆盖基类 ID | ServerModel Save/UpdatePlus DTO;对应 Function |
查询/返回字段为 deviceTypeId/deviceTypeCode/name/intro/parentDeviceTypeId/treeDeviceTypeId/treeDeviceTypeName/parentDeviceTypeCode/parentDeviceTypeName/createdUsername/lastModifiedUsername/tenantId: string,审计时间为 UTC epoch 秒,revision 为 number。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
deviceTypeId/deviceTypeCode/name/intro/parentDeviceTypeId/treeDeviceTypeId/treeDeviceTypeName |
string | 否 | 是 | 未知 | 无 | 资源、父子及树路径筛选/返回字段 | DeviceTypeListRequest/ResponseDTO |
parentDeviceTypeCode/parentDeviceTypeName |
string | 否 | 是 | 未知 | 无 | Plus 查询与投影字段 | device_type/DeviceTypeListPlusRequest/ResponseDTO |
createdUsername/lastModifiedUsername/tenantId |
string | 否 | 是 | 未知 | 无 | 审计与租户字段 | ListRequest/Response DTO |
| 审计时间 | number | 仅 range 可查询 | range 可空 | 未知 | 无 | UTC epoch 秒 | ListRequest/Response DTO;JsonFormatConfig |
revision |
number | 否 | 是 | 未知 | 无 | 精确匹配;范围未约束 | ListRequest/Response DTO |
deviceTypeCode 必填、1..36;ID 保存可省略、更新必填、最长 32;name 256、intro 1024、父 ID 32。树路径字段 DTO 给出 Java int 最大长度,不能理解为可无限输入;树重建由服务端消息链维护。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
deviceTypeId |
string | 否 | 是 | 保存可空;更新否 | 保存可由 ORM 生成 | 最长 32 | DeviceTypeSave/UpdateRequestDTO |
deviceTypeCode |
string | 是 | 是 | 否 | 无 | 1..36;当前可见范围精确查重 | 同上 DTO;DeviceTypeController |
name |
string | 否 | 否 | 是 | 无 | 最长 256 | 同上 DTO |
intro |
string | 否 | 否 | 是 | 无 | 最长 1024 | 同上 DTO |
parentDeviceTypeId |
string | 否 | 否 | 是 | 无 | 最长 32 | 同上 DTO |
treeDeviceTypeId/treeDeviceTypeName |
string | 否 | 否 | 是 | 无 | DTO 上限为 Java int 最大值;树消息会重建 | 同上 DTO;DeviceTypeService @MyMessage |
revision |
number | 否 | 否 | 是 | 无 | 源码未给范围 | 同上 DTO |
查询/返回字段为 manufacturerId/manufacturerNo/name/intro/createdUsername/lastModifiedUsername/tenantId: string,审计时间为 UTC epoch 秒,revision 为 number。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
manufacturerId/manufacturerNo/name/intro |
string | 否 | 是 | 未知 | 无 | 厂商筛选和返回字段 | ManufacturerListRequest/ResponseDTO |
createdUsername/lastModifiedUsername/tenantId |
string | 否 | 是 | 未知 | 无 | 审计与租户字段 | 同上 DTO |
| 审计时间 | number | 仅 range 可查询 | range 可空 | 未知 | 无 | UTC epoch 秒 | 同上 DTO;JsonFormatConfig |
revision |
number | 否 | 是 | 未知 | 无 | 精确匹配;范围未约束 | 同上 DTO |
manufacturerNo 必填、1..36;ID 保存可省略、更新必填、最长 32;name 最长 256、intro 最长 1024。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
manufacturerId |
string | 否 | 是 | 保存可空;更新否 | 保存可由 ORM 生成 | 最长 32 | ManufacturerSave/UpdateRequestDTO |
manufacturerNo |
string | 是 | 是 | 否 | 无 | 1..36;当前可见范围精确查重 | 同上 DTO;ManufacturerController |
name |
string | 否 | 否 | 是 | 无 | 最长 256 | 同上 DTO |
intro |
string | 否 | 否 | 是 | 无 | 最长 1024 | 同上 DTO |
revision |
number | 否 | 否 | 是 | 无 | 源码未给范围 | 同上 DTO |
查询/返回字段为 firmwarePackageId/deviceModelId/version/description/filePath/md5/binaryHeader/tenantId(string),releaseDate/createdTime/lastModifiedTime/deleteTime(number,UTC epoch 秒),fileSize/revision(number)。Plus 返回还含厂商、设备类型和设备型号的 ID/编号/名称。持久化返回中的 binaryHeader 是 JSON string 或 null,不是嵌套 object。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
firmwarePackageId/deviceModelId/version/description/filePath/md5/binaryHeader/tenantId |
string | 否 | 是 | 未知 | 无 | 固件筛选/返回字段;binaryHeader 返回为编码后的 JSON string | FirmwarePackage List/Get DTO |
releaseDate/createdTime/lastModifiedTime/deleteTime |
number | 仅 range 可查询 | range 可空 | 未知 | 无 | UTC epoch 秒;range 结束不含 | Firmware DTO;JsonFormatConfig;Mapper |
fileSize/revision |
number | 否 | 是 | 未知 | 无 | 精确筛选;范围未约束 | Firmware DTO |
manufacturerId/manufacturerNo/deviceTypeId/deviceTypeCode/deviceModelCode |
string | 否 | 是 | 未知 | 无 | Plus 关联筛选/投影 | FirmwarePackageListPlusRequest/Response DTO |
manufacturerName/deviceTypeName/deviceModelName |
string | 不作为本 DTO 筛选 | 不适用 | 未知 | 无 | Plus 关联名称投影 | FirmwarePackage PlusResponse DTO |
保存必填 deviceModelId(1..32)、version(1..256)、releaseDate(UTC epoch 秒)、filePath(1..1024)、md5(1..1024);ID 可省略。保存 HTTP 合同的 binaryHeader 是对象,Controller 编码成 string 持久化。更新还要求固件 ID;其 DTO 虽声明可选 string binaryHeader,当前 Service 不持久化该字段,Web 也不发送。fileSize/revision 是可选 number。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
firmwarePackageId |
string | 否 | 是 | 保存可空;更新否 | 保存时可由 ORM 生成 | 最长 32 | FirmwarePackageSaveHttpRequestDTO:32-34;Update DTO :27-30 |
deviceModelId |
string | 是 | 是 | 否 | 无 | 1..32 | SaveHttp/Update DTO |
version |
string | 是 | 是 | 否 | 无 | 1..256;与型号组成查重键 | SaveHttp/Update DTO;FirmwarePackageController |
description |
string | 否 | 否 | 是 | 无 | 最长 1024;更新允许写 null 清空 | SaveHttp/Update DTO;FirmwarePackageService.updateById |
releaseDate |
number | 是 | 是 | 否 | 无 | UTC epoch 秒 | DTO @NotNull LocalDateTime;JsonFormatConfig |
filePath |
string | 是 | 是 | 否 | 无 | 1..1024;新文件应为 Tus Location,持久化后改为下载相对路径 | DTO;FirmwarePackageController 文件迁移分支 |
md5 |
string | 是 | 是 | 否 | 无 | 1..1024;原始固件由浏览器计算,服务端不复算 | DTO 与 Web original 表单 |
fileSize/revision |
number | 否 | 否 | 是 | 无 | 源码未给范围 | SaveHttp/Update DTO |
binaryHeader |
object / string | 否 | 否 | 是 | 无 | 保存为对象后编码;更新 string 当前不落库 | SaveHttp DTO、Update DTO、FirmwareBinaryHeaderJsonCodec、FirmwarePackageService |
保存接口允许整个 binaryHeader 省略或为 null。若提供对象,Java record 没有 Bean Validation,源码没有把嵌套对象/字段声明为必填;为避免产生默认 0 或 null 的无效头,调用方应仅发送已由固件解析器完整得到的对象。
| JSON 路径 | JSON 类型 | 必填 | 可空 | 默认值 | 枚举/范围/单位 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
headTag |
object | 否(提供 header 时应有) | DTO 未禁止 null | 无 | — | 固件头基础段 | FirmwareBinaryHeader.HeadTag |
headTag.magic/version |
number | DTO 未约束 | primitive 不表达 null;显式 null 行为未核验 | 缺字段反序列化值未作为合同 | 32 位有符号整数;单位/范围未知 | 魔数与头版本 | HeadTag(int,int,String) |
headTag.md5sum |
string | DTO 未约束 | 是 | 无 | 格式/长度未由 DTO 校验 | 固件头声明的 MD5 | HeadTag.md5sum |
upgradeInfoTag |
object | 否(提供 header 时应有) | DTO 未禁止 null | 无 | — | 升级信息段 | FirmwareBinaryHeader.UpgradeInfoTag |
upgradeInfoTag.fwOffset/fwSize |
number | DTO 未约束 | primitive 不表达 null;显式 null 行为未核验 | 缺字段值未作为合同 | 32 位有符号整数;单位未闭合 | 固件偏移与大小 | UpgradeInfoTag record |
upgradeInfoTag.cpuId/pcbVersion/noForceUpgrade |
number | DTO 未约束 | primitive 不表达 null;显式 null 行为未核验 | 缺字段值未作为合同 | 32 位有符号整数;枚举未闭合 | CPU、PCB 与强制升级标志 | UpgradeInfoTag record |
upgradeInfoTag.imgVersion/devType |
string | DTO 未约束 | 是 | 无 | 长度/枚举未由 DTO 校验 | 镜像版本与设备类型 | UpgradeInfoTag record |
查询/返回由设备基类字段加 janusServerId/remark: string、hasAdminSecret/sfuOnlineStatus: boolean 及 talkGroupCount/dataAcquisitionServerCount/dataAcquisitionDeviceCount: number。响应不返回 adminSecret。
| JSON 路径 | JSON 类型 | 查询必填 | 查询可空 | 返回可空 | 默认值 | 说明 | 字段证据 |
|---|---|---|---|---|---|---|---|
| 设备基类查询/返回字段 | 见基类 | 否 | 是 | 未知 | 无 | 继承字段;响应不含 adminSecret | 设备基类 |
janusServerId/remark |
string | 否 | 是 | 未知 | 无 | Janus 主键与备注 | Janus List/Get Plus DTO |
hasAdminSecret |
boolean | 不适用 | 不适用 | 否(Service 构造) | false | 只表明是否已配置密钥 | Janus Plus Mapper/Response DTO |
sfuOnlineStatus |
boolean | 不适用 | 不适用 | 否(Controller 构造) | false | 读取时在线缓存状态 | JanusServerController fillSfuOnlineStatus |
talkGroupCount/dataAcquisitionServerCount/dataAcquisitionDeviceCount |
number | 不适用 | 不适用 | 否 | 0 | 当前租户关联计数 | Janus Plus Mapper/Response DTO |
保存要求 deviceNo(1..36)、name(Controller 非空校验)和 adminSecret(1..512);Janus ID 可省略。更新要求 Janus ID、deviceNo 和 name,adminSecret 可省略(最长 512),且不能改变原设备号;remark 最长 1024。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
janusServerId |
string | 否 | 是 | 保存可空;更新否 | 保存生成 ID | 最长 32 | JanusServerSave/UpdatePlusRequestDTO |
deviceNo |
string | 是 | 是 | 否 | 无 | 1..36;保存全局查重,更新禁止改变 | Device DTO;JanusServerController.validateDeviceNoAvailable/updateById |
name |
string | 是 | 是 | 否 | 无 | 最长 256,并由 Controller 拒绝空白 | Device DTO;validateName |
adminSecret |
string | 是 | 否 | 更新可空 | 无 | 保存 1..512;更新最长 512;响应只给 hasAdminSecret |
Janus Plus DTO |
remark |
string | 否 | 否 | 是 | 无 | 最长 1024 | Janus Plus DTO |
SpiritCam 写入口最终生成普通固件包记录,读取仍使用固件包操作。
本资源没有独立查询操作;保存/更新成功只返回 boolean,后续通过普通固件包详情/列表读取。
保存要求 releaseDate: number(UTC epoch 秒)和已完成 Tus filePath: string(1..1024),description 最长 1024。更新另要求 firmwarePackageId(1..32)。服务端从二进制头生成 deviceModelId/version/md5/fileSize/binaryHeader,并固定在 scm 租户执行。
| JSON 路径 | JSON 类型 | 保存必填 | 更新必填 | 可空 | 默认值 | 约束/语义 | 字段证据 |
|---|---|---|---|---|---|---|---|
firmwarePackageId |
string | 不适用 | 是 | 否 | 无 | 更新时 1..32 | SpiritCamFirmwareUpdateRequestDTO |
description |
string | 否 | 否 | 是 | 无 | 最长 1024;更新可清空 | SpiritCamFirmwareSave/UpdateRequestDTO |
releaseDate |
number | 是 | 是 | 否 | 无 | UTC epoch 秒 | DTO @NotNull LocalDateTime;JsonFormatConfig |
filePath |
string | 是 | 是 | 否 | 无 | 1..1024;保存必须是已完成 Tus URL;更新可为已有持久化路径或新 Tus URL | SpiritCam DTO;SpiritCamFirmwareController |
派生 deviceModelId/version/md5/fileSize |
string/string/string/number | 客户端不发送 | 客户端不发送 | 解析结果决定 | 从固件头和文件生成 | 服务端写入普通固件记录 | FirmwareBinaryHeaderParser;SpiritCamFirmwareController |
派生 binaryHeader |
string(持久化) | 客户端不发送 | 客户端不发送 | 保存否;更新保留旧值 | 保存从解析对象编码 | 替换更新当前不会改写该列 | FirmwareBinaryHeaderJsonCodec;FirmwarePackageService.updateById |
前端当前 HEAD aa138d8,后端当前 HEAD a3e783d2。两仓所读业务文件与 HEAD 一致;后端工作树中的构建/数据源/测试脏文件不在本票证据链。inventory 工作树文件仅有格式化漂移,读取指纹为 b5cce137b4fc602840fdbe74c99d90667b3e581815bddc709e263ffcc64e00f9。
| 结论 | 状态 | 证据 |
|---|---|---|
| HTTP JSON、header、method 推导与 15 分钟超时 | 已源码核验 | web app/.common/lib/fetch-timeouts.ts:4-75 fetchTimeoutResponseJson;app/.common/auth/index.ts:35-52 getFetchRequestInit;每个操作页另列其完整 wrapper 路径、符号和行号 |
| 设备基类字段与校验 | 已源码核验 | services es-center-server-device-dto/src/main/java/com/es/center/server/device/dto/DeviceSaveRequestDTO.java:22-107、DeviceUpdateRequestDTO.java:22-108、DeviceListRequestDTO.java:23-133、DeviceGetByIdResponseDTO.java:20-103 |
| 采集资产专用字段 | 已源码核验 | services es-center-server-device-dto/src/main/java/com/es/center/server/device/dto/data_acquisition_device/DataAcquisitionDeviceSavePlusRequestDTO.java:21-43、data_acquisition_server/DataAcquisitionServerSavePlusRequestDTO.java:21-76、data_acquisition_box/DataAcquisitionBoxSavePlusRequestDTO.java:21-24 |
| 型号、类型、厂商与绑定字段 | 已源码核验 | services es-center-server-device-dto/src/main/java/com/es/center/server/device/dto/DeviceModelSaveRequestDTO.java:22-62、DeviceTypeSaveRequestDTO.java:22-56、ManufacturerSaveRequestDTO.java:22-44、DataAcquisitionServerDataAcquisitionDeviceSaveRequestDTO.java:22-41 |
| 固件、二进制头与 Janus 字段 | 已源码核验 | services es-center-server-device-dto/src/main/java/com/es/center/server/device/dto/FirmwarePackageSaveHttpRequestDTO.java:28-71、FirmwarePackageUpdateRequestDTO.java:23-68、FirmwareBinaryHeader.java:3-7、janus_server/JanusServerSavePlusRequestDTO.java:15-27 |
| 查询投影与租户字段 | 已源码核验 | services es-center-server-device-common/src/main/resources/mapper/postgresql/es-center-server-device/DataAcquisitionDevicePlusMapper.xml:4-275 selectPlusColumns/selectPlusWhere、DataAcquisitionServerPlusMapper.xml:4-300、FirmwarePackagePlusMapper.xml:4-240、JanusServerPlusMapper.xml:4-220 |
| 唯一性、权限、在线字段和完成语义 | 已源码核验 | services 各操作页列出的完整 Controller/Service 路径、方法符号与当前行号;两个导入页另列各自 listener 的 importList 符号与行号 |
| LocalDateTime 与响应信封 JSON | 已源码核验 | services es-center-server-main-service/src/main/java/com/es/center/server/config/JsonFormatConfig.java:20-111;gt-common-core/src/main/java/tech/gt/api/ApiResult.java:43-159 |
| 真实部署联调 | 未执行 | 未发送 HTTP、未连接数据库/缓存/JMS/Tus/Nginx |