lipenghui 3 ماه پیش
والد
کامیت
514cd86569

+ 9 - 6
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/IotDeviceController.java

@@ -185,12 +185,15 @@ public class IotDeviceController {
             String deviceCode = iotDeviceRespVO.getDeviceCode();
             allDevice.stream().filter(e -> e.getSerialNumber().equals(deviceCode)).findFirst().ifPresent(e -> {
                 iotDeviceRespVO.setIfInline(e.getStatus());
-                List<DeviceVO> deviceVOS = deviceMapper.selectLastTime(e.getSerialNumber());
-                if (CollUtil.isNotEmpty(deviceVOS)) {
-                    Timestamp ts = deviceVOS.get(0).getTs();
-                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-                    String format = sdf.format(ts);
-                    iotDeviceRespVO.setLastInlineTime(format);
+                Integer i = deviceMapper.tableIfExist(e.getSerialNumber());
+                if (i==1) {
+                    List<DeviceVO> deviceVOS = deviceMapper.selectLastTime(e.getSerialNumber());
+                    if (CollUtil.isNotEmpty(deviceVOS)) {
+                        Timestamp ts = deviceVOS.get(0).getTs();
+                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                        String format = sdf.format(ts);
+                        iotDeviceRespVO.setLastInlineTime(format);
+                    }
                 }
             });
 

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/TDDeviceMapper.java

@@ -56,6 +56,10 @@ public interface TDDeviceMapper extends BaseMapperX<TDDeviceDO> {
     @TenantIgnore
     List<DeviceVO> selectLastParam(@Param("deviceName") String tableName, @Param("params") List<String> params);
 
+    @Select({"SELECT COUNT(*) FROM information_schema.ins_tables WHERE table_name = 'device_${deviceName}';"})
+    @DS("tdengine")
+    @TenantIgnore
+    Integer tableIfExist(@Param("deviceName") String tableName);
 
     @Select("SELECT * FROM iot_log.device_${deviceName} WHERE ts = #{ts}")
     @DS("tdengine")