fix: 设备最后上数时间,新增字段,接口调用,小程序显示。

This commit is contained in:
tianyongbao
2026-06-04 13:53:30 +08:00
parent 2596fe6551
commit f4bd1c6942
13 changed files with 259 additions and 0 deletions

View File

@@ -77,4 +77,14 @@ public interface DeviceSensorDataMapper {
@Param("endTime") String endTime,
@Param("intervalType") Integer intervalType);
/**
* 查询设备最新上数时间
*
* @param serialNum 设备序列号
* @return 最新传感器数据
*/
@DS("taos")
@InterceptorIgnore(tenantLine = "true")
DeviceSensorData getLatestReportTime(@Param("serialNum") String serialNum);
}

View File

@@ -38,4 +38,12 @@ public interface IDeviceSensorDataService {
* @return 设备传感器数据列表
*/
public List<DeviceSensorData> getHistoryDataList(String serialNum, String startTime, String endTime, Integer intervalType);
/**
* 查询设备最新上数时间
*
* @param serialNum 设备序列号
* @return 最新上数时间字符串,格式 yyyy-MM-dd HH:mm:ss无数据时返回 null
*/
String getLatestReportTime(String serialNum);
}

View File

@@ -256,6 +256,30 @@ public class DeviceSensorDataService implements IDeviceSensorDataService {
}
return list;
}
/**
* 查询设备最新上数时间
*/
@Override
public String getLatestReportTime(String serialNum) {
if (serialNum == null || serialNum.isBlank()) {
return null;
}
try {
Integer exists = deviceSensorDataMapper.checkTableExists(serialNum);
if (exists == null || exists == 0) {
return null;
}
DeviceSensorData latest = deviceSensorDataMapper.getLatestReportTime(serialNum);
if (latest == null) {
return null;
}
return latest.getCreateTime() != null ? latest.getCreateTime() : latest.getTime();
} catch (Exception e) {
log.warn("查询设备最新上数时间失败: serialNum={}, error={}", serialNum, e.getMessage());
return null;
}
}
/**
* 获取间隔类型描述

View File

@@ -111,4 +111,13 @@
</choose>
</if>
</select>
<select id="getLatestReportTime" resultType="com.intc.tdengine.domain.DeviceSensorData">
SELECT
`time`,
createTime
FROM `fishery`.`t_${serialNum}`
ORDER BY `time` DESC
LIMIT 1
</select>
</mapper>