fix: 绑定功能优化完善,新增清零功能接口。

This commit is contained in:
tianyongbao
2026-07-11 19:16:18 +08:00
parent 818b59046d
commit 143dcd8e63
8 changed files with 187 additions and 12 deletions

View File

@@ -87,4 +87,13 @@ public interface DeviceSensorDataMapper {
@InterceptorIgnore(tenantLine = "true")
DeviceSensorData getLatestReportTime(@Param("serialNum") String serialNum);
/**
* 删除设备子表(清除该设备的所有时序数据)
*
* @param serialNum 设备序列号
*/
@DS("taos")
@InterceptorIgnore(tenantLine = "true")
void dropSubTable(@Param("serialNum") String serialNum);
}

View File

@@ -46,4 +46,11 @@ public interface IDeviceSensorDataService {
* @return 最新上数时间字符串,格式 yyyy-MM-dd HH:mm:ss无数据时返回 null
*/
String getLatestReportTime(String serialNum);
/**
* 删除设备子表(清除该设备的所有时序数据)
*
* @param serialNum 设备序列号
*/
void dropSubTable(String serialNum);
}

View File

@@ -296,4 +296,27 @@ public class DeviceSensorDataService implements IDeviceSensorDataService {
default: return "未知";
}
}
/**
* 删除设备子表(清除该设备的所有时序数据)
*/
@Override
public void dropSubTable(String serialNum) {
if (serialNum == null || serialNum.isBlank()) {
return;
}
try {
deviceSensorDataMapper.dropSubTable(serialNum);
// 清除建表缓存,下次插入数据时会重新建表
CREATED_TABLES.remove(serialNum);
log.info("已删除设备TDengine子表: serialNum={}", serialNum);
} catch (Exception e) {
String errorMsg = e.getMessage();
if (errorMsg != null && errorMsg.toLowerCase().contains("not exist")) {
log.debug("设备TDengine子表不存在无需删除: serialNum={}", serialNum);
} else {
log.warn("删除设备TDengine子表失败: serialNum={}, error={}", serialNum, errorMsg);
}
}
}
}

View File

@@ -120,4 +120,8 @@
ORDER BY `time` DESC
LIMIT 1
</select>
<update id="dropSubTable">
DROP TABLE IF EXISTS `fishery`.`t_${serialNum}`
</update>
</mapper>