20260529:平台对接初版实现2

This commit is contained in:
zhugongping 2026-05-30 12:57:08 +08:00
parent d4ad1eab67
commit a439081ed1
2 changed files with 77 additions and 134 deletions

View File

@ -2,7 +2,10 @@
"permissions": { "permissions": {
"allow": [ "allow": [
"Bash(python3 -c \"import pdfplumber; pdf = pdfplumber.open\\('D:/SoftProject/Java/fastbee/docs/platform/DCP接口文档\\(轴力计\\).pdf'\\); [print\\(p.extract_text\\(\\)\\) for p in pdf.pages[:15]]; pdf.close\\(\\)\")", "Bash(python3 -c \"import pdfplumber; pdf = pdfplumber.open\\('D:/SoftProject/Java/fastbee/docs/platform/DCP接口文档\\(轴力计\\).pdf'\\); [print\\(p.extract_text\\(\\)\\) for p in pdf.pages[:15]]; pdf.close\\(\\)\")",
"Bash(mvn compile *)" "Bash(mvn compile *)",
"mcp__filesystem__list_directory",
"Bash(mysql:*)",
"Bash(ls -d /Users/admin/IdeaProjects/fastbee/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/*/)"
] ]
} }
} }

View File

@ -211,27 +211,30 @@ Quartz / 手动触发
## 6. 前端功能设计 ## 6. 前端功能设计
一级菜单:**平台对接**。 一级菜单:**平台对接**,只有 3 个子菜单。
建议菜单:
```text ```text
平台对接 平台对接
平台模板 平台管理 ← 平台模板 + 接口 + 流程 + 租户接入,全部内嵌
接口配置 设备接入 ← 设备绑定 + 字段映射 + 交换任务,向导式操作
流程编排 交换记录 ← 数据交换记录 + 尝试日志 + 重试
租户接入
资源映射
设备绑定
数据交换任务
数据交换记录
``` ```
### 6.1 平台模板 资源映射不单独作为菜单,在设备接入页面的绑定详情中内嵌查看。
平台模板是系统级可复用配置。 ### 6.1 平台管理
主要字段: 平台管理页面采用左右布局:左侧是平台列表,右侧是选中平台的详情,通过 Tab 切换。
**左侧:平台列表**
- 展示所有平台模板(DCP、通用 HTTP 等)。
- 每行显示平台名称、类型、适配器、启用状态。
- 支持新增平台模板。
**右侧 Tab 1:基本信息**
平台模板主要字段:
| 字段 | 说明 | | 字段 | 说明 |
| ------ | ----------------------------------------- | | ------ | ----------------------------------------- |
@ -244,84 +247,39 @@ Quartz / 手动触发
| 默认请求配置 | 超时、重试、Content-Type 等。 | | 默认请求配置 | 超时、重试、Content-Type 等。 |
| 启用状态 | 启用、停用。 | | 启用状态 | 启用、停用。 |
### 6.2 接口配置 **右侧 Tab 2:接口列表**
接口配置属于平台模板,可被所有租户复用。 接口属于平台模板,在此 Tab 内直接管理,不单独作为菜单。
接口类型: 接口按类型分组展示,点击接口行展开查看/编辑接口字段:
| 类型 | 说明 | | 分组 | 接口类型 | 说明 |
| --------------- | ----------------------- | | ------ | ------------------------------------- | ----------------------- |
| TOKEN | 获取或刷新 token。 | | 认证接口 | TOKEN | 获取或刷新 token。 |
| QUERY | 查询第三方基础数据,如用户、项目、设备、数据。 | | 公共接口 | QUERY、RESOURCE_CREATE、RESOURCE_BIND | 查询用户/项目、创建/绑定资源等。 |
| RECEIVE | FastBee 接收入口定义。 | | 设备接口 | PUSH、CALLBACK | 按设备类型分组的数据推送接口。 |
| RESOURCE_CREATE | 创建外部资源,如测点、设备、传感器。 | | 接收入口 | RECEIVE | FastBee 被动接收第三方数据的入口定义。 |
| RESOURCE_BIND | 绑定外部资源。 |
| PUSH | 推送设备数据。 |
| CALLBACK | 回调第三方处理结果,可选。 |
配置项: 每个接口展开后显示:请求方法、URL 模板、Header/Query/Body 模板、成功条件、响应变量提取规则、重试策略,以及该接口的 REQUEST/RESPONSE 字段列表(可增删改)。
- 请求方法:GET、POST、PUT、DELETE。 接口字段用于设备接入时的字段映射,字段路径使用 JSONPath 或表单字段名。
- URL 模板:支持 `${变量}`。
- Header、Query、Body 模板。
- Content-Type。
- 成功条件:HTTP 状态码、响应 JSONPath。
- 响应变量提取:例如 `$.id -> pointId`。
- 超时和重试策略。
- RECEIVE 接口还需要配置入口路径、鉴权方式、签名规则、幂等 key 提取规则。
### 6.3 接口字段 **右侧 Tab 3:流程配置**
接口字段用于页面展示和字段映射。 流程属于平台模板,在此 Tab 内管理。
| 字段 | 说明 | 流程列表按类型展示(OUTBOUND_PUSH、INBOUND_PULL、INBOUND_RECEIVE、RESOURCE_SYNC),点击流程行展开步骤列表,支持拖拽排序步骤。
| ---- | ----------------------------------- |
| 接口 | 所属接口。 |
| 方向 | REQUEST、RESPONSE。 |
| 字段路径 | JSONPath 或表单字段名。 |
| 字段名称 | 展示名称。 |
| 数据类型 | string、number、boolean、array、object。 |
| 是否必填 | 是否必填。 |
| 默认值 | 默认值。 |
| 示例值 | 示例值。 |
### 6.4 流程编排 步骤类型:API(引用接口)、ADAPTER(适配器方法)、CONDITION(条件判断)、TRANSFORM(数据转换)、SINK(写入业务落点)。
流程属于平台模板,用于将多个接口和适配器方法组成可复用业务流程。 **右侧 Tab 4:租户接入**
流程类型: 租户接入表示当前租户启用该平台模板,在此 Tab 内配置,不单独作为菜单。
| flow_type | 说明 |
| --------------- | --------------------- |
| OUTBOUND_PUSH | FastBee 推送数据到第三方。 |
| INBOUND_PULL | FastBee 从第三方拉取并消费数据。 |
| INBOUND_RECEIVE | FastBee 接收第三方提交并消费数据。 |
| RESOURCE_SYNC | 同步第三方用户、项目、设备、测点等资源。 |
| CALLBACK | 回调第三方处理结果,可选。 |
流程步骤类型:
| step_type | 说明 |
| --------- | ---------------- |
| API | 调用平台接口配置。 |
| ADAPTER | 调用专用适配器方法。 |
| CONDITION | 条件判断。 |
| TRANSFORM | 数据转换。 |
| SINK | 写入 FastBee 业务落点。 |
流程模板可以被多个租户复用;步骤执行时使用当前租户的授权配置、项目映射、设备绑定、资源映射和字段映射。
### 6.5 租户接入
租户接入表示某个租户启用某个平台模板。
主要字段: 主要字段:
| 字段 | 说明 | | 字段 | 说明 |
| ------- | -------------------------------- | | ------- | -------------------------------- |
| 租户 | 当前租户。 |
| 平台模板 | 选择 DCP 等平台模板。 |
| 实例名称 | 租户内展示名。 | | 实例名称 | 租户内展示名。 |
| baseUrl | 可覆盖模板默认地址。 | | baseUrl | 可覆盖模板默认地址。 |
| 授权配置 | 租户自己的账号、clientId、secret、token 等。 | | 授权配置 | 租户自己的账号、clientId、secret、token 等。 |
@ -330,90 +288,72 @@ Quartz / 手动触发
| 接收安全配置 | webhook token、签名密钥、IP 白名单等。 | | 接收安全配置 | webhook token、签名密钥、IP 白名单等。 |
| 启用状态 | 启用、停用。 | | 启用状态 | 启用、停用。 |
租户接入配置完成后,该租户才能建立资源映射、设备绑定、交换任务和接收入口。 租户接入配置完成后,才能在设备接入页面选择该平台实例。
### 6.6 资源映射 ### 6.2 设备接入
资源映射是平台对接的核心边界之一,表示 FastBee 本地对象和第三方对象的对应关系。 设备接入页面是租户操作的核心入口,采用列表 + 抽屉向导的方式。
常见资源类型: **列表视图**
| resource_type | 说明 | 展示当前租户所有设备绑定,列显示:平台实例、设备类型、FastBee 设备名/编号、交换模式、状态、最近成功时间。
| ------------- | -------- |
| USER | 第三方用户。 |
| PROJECT | 第三方项目。 |
| DEVICE | 第三方设备。 |
| POINT | 第三方测点。 |
| SENSOR | 第三方传感器。 |
| MODULE | 第三方模块。 |
| VIRTUAL | 第三方虚拟资源。 |
| CUSTOM | 其他平台资源。 |
资源映射必须带 `tenant_id` 和 `tenant_channel_id`。除平台模板定义外,第三方资源 id 不允许全局共享。 支持按平台实例、设备类型、状态筛选。
### 6.7 设备绑定 操作列:编辑映射、启用/停用、初始化资源、查看资源映射、查看交换记录、解绑。
设备绑定是租户级配置。 **新增绑定:向导式抽屉(3步)**
绑定内容: **第 1 步:选择平台与设备类型**
```text - 下拉选择平台实例(从当前租户已启用的租户接入中加载,不是写死的枚举)。
租户平台实例 + FastBee 设备 + 平台流程 + 第三方用户/项目/资源 + 字段映射 + 交换模式 - 选择平台实例后,动态加载该平台模板下的设备接口分组,作为设备类型选项(例如 DCP 加载后显示:雨量计、倾角仪、静力水准、轴力计)。
``` - 设备类型对应平台模板中的 PUSH 接口分组,由平台模板定义,不在前端硬编码。
绑定页面左侧使用现有 FastBee 产品、设备、物模型;右侧使用平台模板的接口字段和租户的第三方用户/项目/资源。 **第 2 步:选择 FastBee 设备**
绑定支持:新增、修改、启用、停用、解绑、初始化资源、查看资源映射、查看交换记录。 - 选择产品(下拉)。
- 选择设备(从该产品下的设备列表选,支持搜索设备名/编号)。
- 展示设备基本信息和物模型字段列表(供下一步参考)。
- 可选:填写绑定级第三方用户 id、项目 id(留空则使用租户接入的默认值)。
DCP 绑定规则: **第 3 步:字段映射**
```text 左右分栏:
FastBee 一个设备 = DCP 一个测点 = DCP 一个设备资源
```
DCP 的 `pointId`、`dcpDeviceId`、sensor/module/virtual 等必须按租户设备绑定保存,不能平台级共享。 - 左侧:FastBee 物模型字段列表(identifier、字段名、数据类型),以及系统字段(serialNumber、deviceName、reportTime)。
- 右侧:第 1 步选定的设备接口的 REQUEST 字段列表(字段路径、字段名、是否必填)。
- 中间:映射关系,每行对应一个目标字段,来源可选:物模型字段、系统字段、常量、资源映射(pointId 等)、JSONPath 表达式。
- 支持从平台模板复制默认映射(如果平台模板预置了默认映射规则)。
### 6.8 字段映射 字段映射同时支持 OUTBOUND(FastBee → 第三方)和 INBOUND(第三方 → FastBee),通过方向 Tab 切换。
字段映射按设备绑定维护,也可以支持从平台模板复制默认映射。 **绑定详情:资源映射内嵌**
映射来源: 点击列表行的"查看资源映射",在侧边抽屉中展示该绑定下的资源映射记录(USER、PROJECT、POINT、DEVICE、SENSOR 等),不单独作为菜单。
| source_type | 说明 | **交换任务**
| ----------- | ------------------------------------------- |
| THING_MODEL | 物模型字段,例如 rainfall。 |
| SYSTEM | 系统字段,例如 serialNumber、deviceName、reportTime。 |
| CONSTANT | 常量。 |
| RESOURCE | 外部资源映射,例如 pointId、dcpDeviceId。 |
| JSONPATH | 从 rawPayload 或第三方响应中取值。 |
| EXPRESSION | 受限表达式,后续增强。 |
字段映射同时服务 OUTBOUND 和 INBOUND: 在设备接入列表页顶部提供"交换任务"入口(或作为 Tab),管理当前租户的定时推送、主动拉取、资源同步任务。
- OUTBOUND:FastBee 内部字段映射到第三方字段。 任务配置:选择平台实例、选择流程、设置 Cron 表达式、时间窗口类型、批次大小、最大重试次数。
- INBOUND:第三方字段映射到 FastBee 标准消息或业务落点字段。
表达式必须受限,不能执行任意代码。 任务与绑定的关联在任务详情中配置(选择哪些设备绑定参与该任务)。
### 6.9 数据交换任务与记录 ### 6.3 交换记录
数据交换任务是租户级配置。 交换记录是运维监控视图,展示所有数据交换的执行状态。
任务类型: 筛选条件:平台实例、方向(OUTBOUND_PUSH/INBOUND_PULL/INBOUND_RECEIVE)、设备编号、状态、时间范围。
| task_type | 说明 | 列表列:方向、平台实例、设备名/编号、数据时间、状态、重试次数、最近错误、创建时间。
| ------------- | ----------------------- |
| OUTBOUND_PUSH | 定时推送或补推 FastBee 数据到第三方。 |
| INBOUND_PULL | 定时拉取第三方数据并消费。 |
| RESOURCE_SYNC | 定时同步第三方用户、项目、设备、测点等资源。 |
INBOUND_RECEIVE 一般不依赖定时任务,而是通过接收入口触发;如果接收后异步处理,也会生成交换记录。 操作:
数据交换记录展示业务层面的交换状态: - 点击行展开查看:原始输入、标准消息、最终 payload、幂等 key、请求响应详情、错误信息。
- 失败记录:单条重试、批量重试。
- 按租户、平台、方向、流程、设备、状态、时间筛选。 - 成功记录:强制重放(新建 REPLAY 记录,幂等 key 追加批次号)。
- 查看原始输入、标准消息、最终 payload、幂等 key、请求响应、错误信息。 - 点击"尝试日志"查看每次请求的 URL、请求头(脱敏)、请求体、响应状态、响应内容、耗时。
- 失败重试、批量重试、成功记录强制重放。
## 7. 标准数据模型 ## 7. 标准数据模型