lipenghui 3 месяцев назад
Родитель
Сommit
c6540fea95

+ 17 - 3
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/stat/IotStaticController.java

@@ -7,10 +7,12 @@ import cn.iocoder.yudao.module.pms.controller.admin.inspect.order.vo.IotInspectO
 import cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.iotmainworkorder.vo.IotMainWorkOrderSaveReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.maintain.vo.IotMaintainPageReqVO;
+import cn.iocoder.yudao.module.pms.controller.admin.vo.DeviceVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.inspect.IotInspectOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotmainworkorder.IotMainWorkOrderDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.maintain.IotMaintainDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.failure.IotFailureReportMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.inspect.IotInspectOrderMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotmainworkorder.IotMainWorkOrderMapper;
@@ -29,7 +31,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.sql.Timestamp;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -296,11 +300,21 @@ public class IotStaticController {
         return CommonResult.success(resultMap);
     }
 
-    @GetMapping("/td/chart/{identifier}")
-    public CommonResult<Map<String, String>> getTdChart(@PathVariable("identifier") String identifier) {
+    @Resource
+    private TDDeviceMapper tdDeviceMapper;
+    @GetMapping("/td/chart/{deviceName}/{identifier}")
+    public CommonResult<List<DeviceVO>> getTdChart(@PathVariable("deviceName") String deviceName,@PathVariable("identifier") String identifier) {
         if (StringUtils.isBlank(identifier)) {
             return null;
         }
-        return null;
+        long current = System.currentTimeMillis();
+        Timestamp start = new Timestamp(current - 120 * 60 * 1000);
+        Timestamp end = new Timestamp(current);
+        List<DeviceVO> deviceVOS = tdDeviceMapper.selectAllBtTimeAndIdentifier(deviceName.toLowerCase(), identifier, start, end);
+        deviceVOS.forEach(deviceVO->{
+            deviceVO.setTimestamp(deviceVO.getTs().getTime());
+            deviceVO.setValue(Double.valueOf(deviceVO.getLogValue()));
+        });
+        return CommonResult.success(deviceVOS);
     }
 }

+ 3 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/vo/DeviceVO.java

@@ -245,4 +245,7 @@ public class DeviceVO extends PageParam {
         return serialVersionUID;
     }
 
+    private Long timestamp;
+    private Double value;
+
 }

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

@@ -80,6 +80,11 @@ public interface TDDeviceMapper extends BaseMapperX<TDDeviceDO> {
     DeviceVO getYesInfo(@Param("deviceName") String tableName,@Param("colName") String colName);
 
 
-
-    List<DeviceVO> selectAllBtTime(@Param("deviceName") String tableName, @Param("identifier") String identifier);
+    @Select("<script>" +
+            "SELECT * FROM iot_log.device_${deviceName} " +
+            "WHERE ts between #{start} and #{end} and identity = #{identifier}" +
+            "</script>")
+    @DS("tdengine")
+    @TenantIgnore
+    List<DeviceVO> selectAllBtTimeAndIdentifier(@Param("deviceName") String tableName, @Param("identifier") String identifier,@Param("start") Timestamp start,@Param("end") Timestamp end);
 }