lenovo
2fcc39dbad
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 2 týdny
lenovo
ccfd3a4e7e
Merge remote-tracking branch 'origin/master' into mqy20260511
před 2 týdny
lenovo
502604ea6c
Merge remote-tracking branch 'origin/master' into mqy20260511
před 2 týdny
lenovo
5667d23b2e
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 2 týdny
lenovo
83c0ffdcf1
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 2 týdny
humanleft
fd11440482
docs: 更新部署文档为容器化方案
- deploy/README.md: systemd → Podman 容器化部署
- CLAUDE.md: 更新部署命令、TDengine URL、.env 加载方式
před 2 týdny
humanleft
ea084791d6
chore(deploy): 部署脚本改为容器化 (Podman)
- 停止/启动 systemd 服务 → 停止/启动 Podman 容器
- 部署时自动构建容器镜像
- 回滚逻辑同步改为容器方式
před 2 týdny
humanleft
356fd0b43c
chore: 修改 TDengine JDBC URL 为 127.0.0.1:6031
- application.yml: localhost → 127.0.0.1 避免 IPv6 解析问题
- IotProperties.java: 同步修改默认 URL
před 2 týdny
humanleft
350327912e
Merge remote-tracking branch 'origin/mqy20260511'
před 2 týdny
lenovo
a84e9ef88c
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 2 týdny
lenovo
609e23ff9d
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 2 týdny
humanleft
a2d0c7d0d6
Merge remote-tracking branch 'origin/mqy20260511'
před 2 týdny
lenovo
bda327cf66
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 2 týdny
lenovo
833288c1b4
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 2 týdny
humanleft
bb26329b48
chore: 部署全新 TDengine 3.3.6.0 实例(端口 6031),升级 JDBC 驱动至 3.3.2
- 服务器新建独立 TDengine 容器实例(Podman),端口 6031
- 数据卷挂载至 /mnt/tdengine-new/(大容量数据盘)
- 部署 taos-explorer Web 控制台,nginx 6060 端口反向代理 + Basic Auth
- 升级 taos-jdbcdriver 3.2.7 → 3.3.2
- 应用 JDBC URL 指向新实例 localhost:6031
- TdEngineService 删除 device_id VARCHAR(32) 特殊处理,统一 VARCHAR(255)
před 2 týdny
lenovo
a66d8179ed
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 2 týdny
lenovo
2e06aefae5
修改超级表
před 2 týdny
lenovo
de65516db4
修改超级表
před 2 týdny
humanleft
216f58c8b6
超级表传输
před 2 týdny
humanleft
04e70a5dea
格式
před 2 týdny
humanleft
5c88b90a61
fix(service): 放宽表名校验正则,允许数字开头和连字符
před 2 týdny
humanleft
72e23e493c
refactor(service): 统一 VARCHAR 长度为 255,移除 device_id 特殊处理
- DEFAULT_VARCHAR_LENGTH 38 → 255
- 删除 DEVICE_ID_VARCHAR_LENGTH 常量
- 删除 getColumnTypeForDDL 中 device_id 的 VARCHAR(32) 特殊分支
- 删除 formatValue 中 device_id 的 UUID 去连字符逻辑
- 同步更新相关单元测试断言
před 2 týdny
humanleft
9313097021
chore: 删除 TdEngineService 中未使用的 closeQuietly 方法
před 2 týdny
humanleft
1de1fcc14c
refactor(service): 全面优化 TdEngineService 资源管理与代码质量
- 资源管理:loadStableColumnsFromDB / ensureColumnsExist / ensureTableExists
统一改为 try-with-resources,消除手动 close 的冗长代码
- 缓存策略:getStableColumns 使用 computeIfAbsent 解决多线程竞态条件;
缓存满时改为淘汰最老的 20% 条目,替代粗暴 clear()
- 列数计算:insertBatchInternal 中扣除 existingColumns 与 columnTypes 的交集,
避免重复计算导致不必要的插入拒绝
- 缓存更新:ensureColumnsExist 循环结束后统一更新 stableColumnCache
- 连接池配置:IotProperties.TDengine 新增 HikariCP 配置项,initDataSource 改为读取配置
- 日志级别:loadStableColumnsFromDB 表不存在场景 error→debug;
formatValue 超长截断 info→debug
- ZoneOffset.of("+8") 提取为 static final ZONE_OFFSET_8,避免重复创建
před 2 týdny
humanleft
2acb0f92d8
refactor(mqtt): 优化 MqttChargeStationConsumer 并补充单元测试
- 移除冗余的 deepCopyMap 调用(JSON 解析结果已是新对象)
- 空数据列表提前返回,避免无效的 topic 解析
- 简化空 map 过滤逻辑,消除误导性变量名 'list'
- 新增 4 个单元测试覆盖正常写入、空数据、无效 topic、过滤 null/空 map 场景
před 2 týdny
humanleft
7a2edf5fa2
fix(mapper): 修复 SysControllerMapper XML id 与接口方法名不一致
selectjingweidu → selectCoordinates,与 Java 接口定义保持一致。
před 2 týdny
humanleft
7a72c540e7
refactor(domain): Domain 类字段命名规范化(snake_case → camelCase)
- ControllerData: fleet_id→fleetId, controller_id→controllerId, cmd_topics→cmdTopics, fault_prot→faultProt,加 @JSONField 保持 JSON 序列化兼容,字段改为 private
- SysFault: 修复 getter/setter 内部引用旧字段名的问题
- MqttGenericConsumer/MqttFaultConsumer: 同步更新字段访问器调用
- TDengineServiceTest: 更新超长 VARCHAR 截断测试断言
před 2 týdny
humanleft
9ef8ad942c
refactor: 全面规范化项目命名
变量名:
- weather → faultData(消除误导性命名)
- jingdu/weidu → longitude/latitude(消除中文拼音)
- jingduValue/weiduValue → longitudeValue/latitudeValue
- tdEngineshuju → tdEngineData(消除中文拼音)
- companyid → companyId
- controllername → controllerName
- tablename → tableNames
方法名(camelCase 规范化):
- selectall → selectAll
- insertfault → insertFault, updatefault → updateFault
- insertalarm → insertAlarm
- createmessage → createMessage
- selecttables → selectTables, inserttables → insertTables
- selectjingweidu → selectCoordinates(消除中文拼音)
- triggermethod → triggerMethod
- 等 40+ 个 mapper/service 方法名
类名:
- Sysrealtime → SysRealtime
- SysrealtimeMapper → SysRealtimeMapper
- SysrealtimeService → SysRealtimeService
- 所有引用同步更新
před 2 týdny
humanleft
b8c75cd505
chore: 清理未使用的 Jackson ObjectMapper,调整测试可见性
- MqttFaultConsumerTest: 删除未使用的 ObjectMapper 实例和导入
- MqttFaultConsumer: insertTdEngine/triggermethod 改为 package-private
以支持同包测试访问
před 2 týdny
humanleft
280890b8dc
fix(security): 修复 CRITICAL/HIGH 安全漏洞并全面优化代码质量
安全修复:
- MqttFaultConsumer: 修复 SSRF 漏洞,使用 UriComponentsBuilder + controllerId 白名单
- TdEngineService: 修复 SQL 注入,information_schema 查询改用 PreparedStatement
- TdEngineService: 收紧 ALLOWED_COLUMNS 正则,仅允许 ASCII 字母数字下划线
- TdEngineService: 修复静默数据丢失,超长字符串截断存储而非返回 NULL
- TdEngineAlarm: SQL 查询参数化,防止注入
- MqttFaultConsumer/MqttDynamicConsumer: topic/controllerId/dbName 白名单校验
- SysDeviceService: 添加表名校验
代码质量:
- 统一使用 Fastjson2 替代 Jackson ObjectMapper
- Domain 类字段全部改为 private(13 个类)
- topics.java 重命名为 Topics.java
- SimpleDateFormat 替换为线程安全的 DateTimeFormatter
- 提取魔法数字为常量(DEFAULT_BATCH_SIZE 等)
- SysWorkorderMapper.xml 修复 SQL 逻辑错误(AND/OR 括号)
- SysIndicatorsMapper.xml 修正字段名 createtime -> createdata
- SysControllerService 移除 Service 层 @Param 注解
- MqttGenericConsumer 提取过长方法
- NumericIdGenerator 支持 @Value 注入 workerId/dataCenterId
- 空 catch 块补充日志
日志级别优化:
- WARN 31 -> 9 (-71%),数据校验/格式问题降级为 INFO
- INFO 28 -> 50 (+79%),正常业务流使用 INFO
- ERROR 37 -> 33 (-11%),仅最终失败使用 ERROR
před 2 týdny
lenovo
0638d28c74
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 3 týdny
lenovo
374acea39e
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 3 týdny
lenovo
1a1e92631a
Merge branch 'mqy20260511' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
před 3 týdny
lenovo
265a8fbc46
Merge branch 'master' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
Conflicts:
iot-platform/src/main/java/com/iot/platform/task/VehicleSyncTask.java
před 3 týdny
lenovo
b7dee4c46f
Merge branch 'master' of http://114.215.146.132:3000/Mqy/Wisdom-Data into mqy20260511
Conflicts:
iot-platform/src/main/java/com/iot/platform/task/VehicleSyncTask.java
před 3 týdny
lenovo
171b3f4d6d
Merge remote-tracking branch 'origin/mqy20260511' into mqy20260511
před 3 týdny
lenovo
a92ddec47a
Merge remote-tracking branch 'origin/mqy20260511' into mqy20260511
před 4 týdny
humanleft
084000c8b8
del test
před 3 týdny
humanleft
459ffcbb07
pom
před 3 týdny
humanleft
eb72db0253
del
před 3 týdny
humanleft
b8d3d8587c
chore: temporarily disable VehicleSyncTask to suppress MySQL table missing errors
před 4 týdny
humanleft
55f1074b48
chore: extend health check timeout from 30s to 60s
před 4 týdny
humanleft
ab5c6e7d5e
fix: explicitly name TDengineService bean as 'tdengineService'
před 4 týdny
humanleft
58c2cae5cb
feat: add --no-rollback flag to deploy script
When --no-rollback is set, the script keeps the new version on the
server even if health check fails, making it possible to inspect
startup logs via journalctl to diagnose the issue.
před 4 týdny
lenovo
0c93311599
Merge remote-tracking branch 'origin/mqy20260511' into mqy20260511
před 4 týdny
lenovo
1518869329
Merge remote-tracking branch 'origin/master' into mqy20260511
před 4 týdny
humanleft
a8d4903d34
fix: add @Qualifier to TDengineService constructor for explicit bean wiring
Without -parameters compiler flag, Spring cannot match ExecutorService
parameter by name when multiple beans of the same type exist. This
caused 'No bean named tdengineService available' startup failure on
production deployment.
před 4 týdny
lenovo
e03f53003c
docs: update CLAUDE.md with security, MQTT, and lock improvements
před 4 týdny
lenovo
3785254b58
docs: update CLAUDE.md with security, MQTT, and lock improvements
před 4 týdny
humanleft
ebc7ce0564
refactor: remove dead code from VehicleSyncTask
- Remove unused service fields (sysWorkorderService, sysIndicatorsService, sysCompanyService)
- Remove commented-out insertIndicators() method
- Remove unused imports (SysCompany, LocalDate, DateTimeFormatter, @Autowired )
- Clean constructor to only keep actively used dependencies
před 4 týdny