Commit Graph

12 Commits

Author SHA1 Message Date
lzh
a2f500fa20 feat(tenant): 租户-项目两级架构 Phase 2 — IoT + Ops 业务迁移
DO 迁移 (15个 TenantBaseDO → ProjectBaseDO):
- IoT: IotDeviceDO
- Ops 核心: OpsOrderDO, OpsOrderEventDO, OpsOrderDispatchDO, OpsOrderQueueDO,
  OpsBusAreaDO, OpsAreaDeviceRelationDO, OpsDeviceTrajectoryDO
- Ops 保洁: OpsOrderCleanExtDO, OpsCleanerStatusDO, OpsCleanerPerformanceMonthlyDO,
  OpsInspectionRecordDO, OpsInspectionRecordItemDO
- Ops 安保: OpsOrderSecurityExtDO, OpsAreaSecurityUserDO

IoT 适配:
- IotDeviceRespDTO 新增 projectId 字段
- IotDeviceMessage 新增 projectId 字段
- IotDeviceMessageServiceImpl.appendDeviceMessage() 设置 projectId
- IotCleanRuleMessageHandler 嵌套 ProjectUtils.execute() 设置项目上下文

缓存改造:
- ProjectRedisCacheManager extends TenantRedisCacheManager,追加 :projectId 后缀
- ViewshTenantAutoConfiguration 替换为 ProjectRedisCacheManager

SQL 迁移脚本 (sql/mysql/project/):
- 01-create-tables.sql: system_project + system_user_project 建表
- 02-default-data.sql: 默认项目 + 用户关联回填
- 03-alter-business-tables.sql: 15 张表添加 project_id (NULL → 回填 → NOT NULL → 索引)
- 04-index-audit.sql: 现有索引审计 + project_id 补充建议
- 99-rollback.sql: 完整回滚方案

附带修复:
- fix(ops): UserDispatchStatusServiceImpl 添加缺失的 KEY_PREFIX 常量

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 22:27:34 +08:00
lzh
11dcb57ff3 feat(trajectory): 新增轨迹检测与 Beacon 注册表 2026-03-31 22:53:06 +08:00
lzh
b4fad17254 feat(iot): 设备事件增加 nickname 字段
在 BaseDeviceEvent 中新增 nickname 字段,用于存储设备的用户可读显示名称(如"张三的工牌"),
IotDeviceServiceImpl 在发送设备状态变更事件时自动填充该字段。

变更范围:
- BaseDeviceEvent: 新增 nickname 字段
- IotDeviceServiceImpl: 事件发送时携带 nickname

影响模块:IoT Core、IoT Server

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-02 22:26:37 +08:00
lzh
5cc5cd5238 fix(iot): 统一CleanOrderCreateEvent.priority类型为Integer
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:50:35 +08:00
lzh
fa619710ef refactor(iot): 优化事件发布机制并修复状态值解析
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
1. IntegrationEventPublisher 只保留设备状态变更事件发布
   - 注释掉 publishPropertyChanged 和 publishEventOccurred 接口
   - RocketMQIntegrationEventPublisher 对应实现改为注释

2. IotDevicePropertyServiceImpl 属性消息发布暂停
   - 注释掉 saveDeviceProperty 中的 publishPropertyMessage 调用
   - 注释掉 publishToIntegrationEventBus 中的实际发布逻辑

3. IotDeviceMessageServiceImpl 新增状态值解析兼容
   - 新增 parseStateValue 方法支持整数和字符串格式状态值
   - 支持 "online"/"offline" 字符串解析

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 22:56:13 +08:00
lzh
842b40596d fix: 修复RocketMQ topic名称非法字符问题
RocketMQ topic 只允许 ^[%|a-zA-Z0-9_-]+$ 字符,不支持 `.`

IoT 模块 Topic 变更:
- integration.device.status → integration-device-status
- integration.device.property → integration-device-property
- integration.device.event → integration-device-event

Ops 模块 Topic 变更:
- ops.order.create → ops-order-create
- ops.order.arrive → ops-order-arrive
- ops.order.complete → ops-order-complete
- ops.order.audit → ops-order-audit
- ops.order.confirm → ops-order-confirm

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 22:35:22 +08:00
lzh
529171aca6 feat(iot-core): 添加skipReply字段支持协议层回复标记
- IotDeviceMessage 新增 skipReply 字段,用于标记协议层已处理回复
- IotDeviceMessageUtils 新增 isSkipReply() 方法
- isUpstreamMessage() 支持 JT808 协议方法判断
  - jt808.terminal.* 为上行消息
  - jt808.platform.* 为下行消息

解决 JT808 等协议在协议层已发送应答时,业务层无需再回复��场景

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 22:10:29 +08:00
lzh
de427b15ab feat(iot): add-iot-clean-order-integration阶段二-规则处理器 2026-01-17 15:54:12 +08:00
lzh
864b5da245 fix(iot): 修复JT808消息应答
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2026-01-17 00:13:18 +08:00
lzh
a25c16f151 feat(iot): 实现集成事件基础设施 2026-01-15 16:14:16 +08:00
lzh
98f5f031a2 chore: IOT模块单体版本 - 代码合并 2025-12-31 13:32:26 +08:00
lzh
8ccfafe2bb first commit
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
2025-12-31 11:48:19 +08:00