Commit Graph

105 Commits

Author SHA1 Message Date
lzh
ebbefe7980 Merge branch 'test/cleaning-coverage' 2026-01-23 13:49:00 +08:00
lzh
fffada3761 feat(iot): 调整信标和信号丢失处理器以支持配置拆分
配置已按设备类型拆分(BADGE/BEACON/TRAFFIC_COUNTER 各自存储),
工牌设备需要从区域的 BEACON 设备获取信标配置。

- BeaconDetectionRuleProcessor: 从区域 BEACON 设备获取 beaconPresence 配置
- SignalLossRuleProcessor: 从区域 BEACON 设备获取信标配置用于超时检测

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 13:47:04 +08:00
lzh
06ca3070cd feat(iot): 支持按区域和设备类型查询配置
新增 getConfigByAreaIdAndRelationType 方法,用于跨设备获取配置场景。
例如:工牌设备需要获取该区域的信标配置。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 13:46:49 +08:00
lzh
5bb3ff6979 test: Add comprehensive tests for dispatch strategies and IoT signal processing, fix SignalLossRuleProcessor bug 2026-01-23 11:44:49 +08:00
lzh
4cd520ab78 fix(iot-gateway): 兼容设备端消息体长度计算不准确的问题
修改 JT808 解码器,采用更宽松的消息体长度处理策略:
- 使用实际可用的长度(expected 与 actual 取最小值)
- 将长度差异日志降为 DEBUG 级别
- 继续解析消息而不是直接丢弃

原因:部分设备端计算消息体长度时存在偏差,导致位置上报等消息被跳过。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 10:10:09 +08:00
lzh
b1ecc7786b feat(iot-gateway): JT808 新增 instruction_config 服务并修正 TTS 标志
1. 新增 instruction_config 服务
   - 用于下发服务指令配置(如 #2014*SET*TTS0:...#)
   - 使用 0x01 标志位(静默执行),设备解析后不发声
   - 通过文本信息下发 (0x8300) 发送

2. 修正 TTS 服务默认标志
   - 默认 tts_flag 从 4 改为 0x08(普通通知)
   - 日志输出改为十六进制格式 (0x08, 0x09)

JT808 播报标志规范:
- 0x01: 静默执行(配置指令)
- 0x08: TTS 普通通知
- 0x09: TTS 紧急通知

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 09:58:01 +08:00
lzh
a4cfbbcba1 fix(iot-gateway): 降级扩展字段长度越界日志级别
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
将 JT808 解码器中扩展字段长度越界的日志级别从 WARN 降为 DEBUG。
这是设备端数据格式问题,不影响正常消息解析,跳过该扩展字段即可。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 23:30:48 +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
4e387e410c refactor(iot-gateway): 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
- 提取 enrichParamsWithMetadata 方法统一处理元数据
- 提取 extractPhoneFromMap 和 extractFlowIdFromMap 方法
- 优化 getParamsAsMap 方法,同时支持 params 和 data 字段
- 优化代码注释格式

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 22:15:12 +08:00
lzh
110cfc8cf8 fix(iot-server): 消费者优先判断skipReply字段
- handleUpstreamDeviceMessage 优先检查 skipReply 字段
- 协议层已处理回复的消息跳过业务层回复逻辑

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 22:12:56 +08:00
lzh
0c2cd85915 fix(iot-gateway): JT808协议使用skipReply标记协议层已应答
- Jt808ProtocolHandler 使用 setSkipReply(true) 替代 setCode(0)
- 避免业务层重复发送回复消息

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 22:12:03 +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
5dab9622d6 fix(iot): TCP消息处理容错改进,避免异常断开连接
- 消息格式无法识别时记录警告并跳过,不断开连接
- 消息解码失败时记录警告并跳过,不断开连接
- 设备不存在时断开连接,其他认证失败只记录日志
- 添加 bytesToHex 工具方法用于调试

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 18:05:23 +08:00
lzh
7c7b122de3 fix(iot): 修复JT808业务消息重复应答问题
- 在 handleBusinessMessage 中设置 message.setCode(0) 标记协议层已应答
- 避免业务层重复发送 reply 消息

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 18:04:57 +08:00
lzh
eb5513f9b6 fix(iot): 修复JT808事件消息identifier字段不匹配问题
- 修复 parseButtonEventAsEvent 使用 eventId 而非 identifier
- 添加消息体长度校验,防止越界访问
- 解码失败时返回 null 而非抛异常,避免断开连接

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 18:04:21 +08:00
lzh
447ea8fe90 fix(iot): 修改jt808应答调用IotDeviceMessage.requestOf
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-21 15:20:38 +08:00
lzh
e6406f7c6e fix(iot): 修复RssiSlidingWindowDetector-component注解
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-21 15:04:51 +08:00
lzh
ed127c3b29 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-21 14:48:16 +08:00
lzh
1d056a5e7a feat(iot): 信号丢失提醒 & 工单完成检测排除P0 2026-01-19 10:52:21 +08:00
lzh
64928f5a3f feat(ops): add-iot-clean-order-integration阶段3-客流计数器重置 2026-01-17 17:44:30 +08:00
lzh
6933a22e1c feat(ops): add-iot-clean-order-integration阶段2-ButtonEventRuleProcessor补充 2026-01-17 17:27:29 +08:00
lzh
de427b15ab feat(iot): add-iot-clean-order-integration阶段二-规则处理器 2026-01-17 15:54:12 +08:00
lzh
471cd45162 feat(iot): add-iot-clean-order-integration阶段一-基础设施 2026-01-17 15:20:57 +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
cd362e3f82 fix(iot-gateway): 修复 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-16 16:15:52 +08:00
lzh
cea43d282c fix: 修复iot-gateway调用iot-server地址错误问题 2026-01-16 15:31:29 +08:00
lzh
200a505394 fix(iot): fix JT808 escape logic to exclude packet delimiters 2026-01-16 15:01:18 +08:00
lzh
69a9a912da fix(iot): support JT808 auto-authentication on business messages 2026-01-16 14:22:23 +08:00
lzh
0cfd659bd8 fix(iot): fix UnsupportedOperationException in JT808 codec 2026-01-16 13:24:39 +08:00
lzh
8a543db18f fix: 修复iot-gateway容器端口未映射
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-16 11:46:47 +08:00
lzh
7b3e028bea feat(iot): 实现设备 API 接口及更新网关处理逻辑 2026-01-15 16:14:25 +08:00
lzh
de08aea83f feat(iot): 定义设备控制与属性查询 API 2026-01-15 16:14:21 +08:00
lzh
a25c16f151 feat(iot): 实现集成事件基础设施 2026-01-15 16:14:16 +08:00
lzh
2a1cdfc4dc Merge remote-tracking branch 'origin/master' into merge-temp 2026-01-14 22:49:28 +08:00
lzh
bcbbde1879 fix: iot-gateway去除健康检查、nacos配置
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-14 17:48:00 +08:00
lzh
244c8aee96 fix: iot-server暂时禁用rabbitMQ
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-14 17:23:21 +08:00
lzh
3194ea7f10 fix: iot-server添加admin监控
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-14 17:12:55 +08:00
lzh
0768ac345e fix: iot-gateway添加admin监控
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-14 17:01:56 +08:00
lzh
99a4d72e04 fix: 调整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
2026-01-14 16:14:35 +08:00
lzh
01f900a6fe fix: 修改xxl-job地址
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-14 15:43:41 +08:00
lzh
d04b2e91e1 fix: Jenkins修复7-tdengine从 TAOS-WS 改为 TAOS-RS
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-14 13:25:52 +08:00
lzh
4162783263 fix: Jenkins修复3-iot-server时序库缺失
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-14 12:02:30 +08:00
lzh
52017f7e23 fix: Jenkins修复3-prod缺失配置添加
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-14 11:43:47 +08:00
lzh
a20ef566d0 fix: Jenkins修复3-修改nacos配置
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-14 11:12:28 +08:00
lzh
efe05ad624 refactor: 重构配置管理,移除.env依赖,使用docker-compose环境变量+Nacos配置中心
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
- 更新所有application-prod.yaml,将环境变量占位符替换为硬编码默认值
- 重写docker-compose.core.yml,使用Spring Boot环境变量命名规范
- 修复Jenkins pipeline中的getContainerName方法调用错误
- 配置优先级:Nacos配置中心 > Docker环境变量 > application-prod.yaml

变更文件:
- viewsh-gateway/src/main/resources/application-prod.yaml
- viewsh-module-system-server/src/main/resources/application-prod.yaml
- viewsh-module-infra-server/src/main/resources/application-prod.yaml
- viewsh-module-iot-server/src/main/resources/application-prod.yaml
- viewsh-module-iot-gateway/src/main/resources/application-prod.yaml
- docker-compose.core.yml
- Jenkinsfile
2026-01-13 23:50:37 +08:00
lzh
62978560c5 feat: iot-gateway 支持 Nacos 配置管理
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
- 在 application.yaml 中添加 Nacos config import
- 在 application-prod.yaml 中添加 Nacos 配置
- 在 docker-compose.core.yml 中注入 Nacos 环境变量
- 支持配置统一管理和动态刷新
- 与其他微服务保持架构一致性
2026-01-13 14:10:05 +08:00
lzh
98d3db9ade fix: 调整 iot-gateway prod 配置结构与 application.yaml 保持一致
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
- 移除 Nacos 配置(在 application.yaml 中通过 import 引入)
- 保持与 application.yaml 完全相同的结构
- 仅将硬编码值替换为环境变量占位符
2026-01-13 13:51:53 +08:00
lzh
f9aa7828c7 feat: 完善 iot-gateway 生产环境配置
- 添加 IoT 网关特有的配置项环境变量支持
- 支持 HTTP/MQTT/TCP/EMQX 协议配置
- 支持设备 RPC 和 Token 配置
- 支持消息总线配置
- 添加生产环境配置文档
2026-01-13 12:32:14 +08:00
lzh
2b9c1aa7d8 feat: 添加所有核心服务的生产环境配置文件
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
- 创建 application-prod.yaml 支持环境变量占位符
- 支持 Docker Compose 环境变量注入
- 支持 Nacos 配置中心覆盖
- 涵盖 5 个核心服务: gateway, system, infra, iot-server, iot-gateway
2026-01-13 11:52:27 +08:00