SpecEditor.vue: - 属性表新增 语义/分组/主开关 三列 - 属性编辑表单新增 semantic 下拉(17种标签, 与后端 SpecSemanticResolver 一一对应)、 grp 下拉(8种分组)、is_primary 开关 - 分组说明写明: switch 组的开关位支持整组联动(switch_1~4 一起开关) - 语义说明写明: 决定客户端如何渲染与能否作为主开关, 取代按名称猜测 后端 saveSpec 修复: - 全量替换由逻辑删除改为物理删除 原因: 逻辑删除留下同 (product_id, code) 的软删行, 与 V22 的 (product_id, code, deleted) 唯一索引冲突 —— 连续保存两次即报错 - 新增 ProductEventMapper/ProductActionMapper.physicallyDeleteByProductId - 语义缺失时自动推导(与 SpecSemanticResolver 规则一致) - 状态量被误标 write 时强制只读 - 保存后调用 applyPrimary 重算主开关 - action 缺省 completionMode=SYNC applyPrimary 语义修正: - 人工优先: 已存在人工标记(is_primary=1)则保留人工选择, 不自动改写 - 仅在无人工标记时按语义规则自动补齐 (reconcile 场景重建后无标记 -> 自动选; 后台编辑场景有人工标记 -> 尊重) V22 迁移顺序修正: - 唯一索引统一移到'软删重复行清理'之后执行, 避免索引创建即失败 - 新增软删重复行物理清理(同 (product_id, code) 只保留 id 最小的一条) - 索引语句去重 验证: mvn BUILD SUCCESS; vite build 通过(ProductDetail chunk 已更新)
物联网系统平台
项目简介
企业级物联网系统平台,支持万级设备接入,兼容涂鸦、小度、小米等第三方平台,预留Matter协议扩展接口。
技术栈
后端
- Java 17
- Spring Boot 3.2.x
- Spring Security (认证鉴权)
- MyBatis Plus (持久层)
- MySQL 8.0 (关系数据库)
- InfluxDB 2.x (时序数据库)
- Redis 7.x (缓存)
- RabbitMQ (消息队列)
- EMQX (MQTT Broker)
- XXL-Job (任务调度)
前端
- Vue 3 + TypeScript
- Vite 5.x
- Element Plus (UI组件库)
- Pinia (状态管理)
- Axios (HTTP客户端)
- ECharts (数据可视化)
- UniApp (移动端)
项目结构
iotsaas/
├── backend/ # 后端项目
│ ├── iot-common/ # 公共模块
│ ├── iot-auth/ # 认证服务
│ ├── iot-gateway/ # API网关
│ ├── iot-device/ # 设备管理服务
│ ├── iot-data/ # 数据采集服务
│ ├── iot-rule/ # 规则引擎服务
│ ├── iot-alarm/ # 告警服务
│ └── iot-adapter/ # 设备适配器模块
│ ├── tuya/ # 涂鸦适配器
│ ├── dueros/ # 小度适配器
│ ├── miot/ # 小米适配器
│ └── matter/ # Matter适配器
├── frontend/ # 前端项目
│ ├── admin/ # Web管理后台
│ └── mobile/ # 移动端APP
├── docs/ # 文档
├── docker/ # Docker配置
├── scripts/ # 脚本工具
└── deploy/ # 部署配置
快速开始
环境要求
- JDK 17+
- Node.js 18+
- MySQL 8.0+
- Redis 7.x
- Docker & Docker Compose
后端启动
cd backend
mvn clean install
mvn spring-boot:run
前端启动
cd frontend/admin
npm install
npm run dev
Docker一键启动
docker-compose up -d
核心功能
- 设备管理与监控
- 实时数据采集
- 规则引擎与联动
- 告警服务
- 多平台设备适配
- 数据可视化看板
- 用户权限管理
开发文档
详细开发文档请参考 docs/ 目录。
许可证
Copyright © 2026 IoT Platform
Description
Languages
Java
75.4%
Vue
18.9%
TypeScript
4.3%
Batchfile
0.9%
JavaScript
0.3%
Other
0.1%