Browse Source

'新增设备实时数据查询接口相关处理以及服务间接口调用'

james 1 year ago
parent
commit
e719fa1b21
25 changed files with 486 additions and 77 deletions
  1. 22 0
      service-backend/service-backend-api/src/main/java/com/usky/backend/client/DataQueryClient.java
  2. 4 3
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/MetricItemVo.java
  3. 32 0
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/StatusVO.java
  4. 1 6
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/request/HistoryQueryVo.java
  5. 1 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/request/LastQueryVo.java
  6. 2 5
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/HistoryResultVo.java
  7. 23 0
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/LastResultVo.java
  8. 5 0
      service-backend/service-backend-biz/pom.xml
  9. 1 1
      service-backend/service-backend-biz/src/main/java/com/usky/backend/MybatisGeneratorUtils.java
  10. 31 15
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/DataQueryController.java
  11. 22 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/DataRealTimeController.java
  12. 40 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/api/DataQueryApi.java
  13. 66 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/DataRealTime.java
  14. 18 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/mapper/DataRealTimeMapper.java
  15. 9 1
      service-backend/service-backend-biz/src/main/java/com/usky/backend/service/DataQueryService.java
  16. 16 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/service/DataRealTimeService.java
  17. 56 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataQueryServiceImpl.java
  18. 20 0
      service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataRealTimeServiceImpl.java
  19. 17 0
      service-backend/service-backend-biz/src/main/resources/mapper.backend/DataRealTimeMapper.xml
  20. 5 0
      service-iot/service-iot-biz/pom.xml
  21. 62 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DeviceHttpController.java
  22. 14 14
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/DmpDeviceInfo.java
  23. 3 5
      service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/DmpDeviceStatus.java
  24. 11 15
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/DmpDeviceInfoRequest.java
  25. 5 11
      service-iot/service-iot-biz/src/main/resources/mapper/iot/DmpDeviceInfoMapper.xml

+ 22 - 0
service-backend/service-backend-api/src/main/java/com/usky/backend/client/DataQueryClient.java

@@ -0,0 +1,22 @@
+package com.usky.backend.client;
+
+import com.usky.backend.domain.StatusVO;
+import com.usky.backend.domain.request.LastQueryVo;
+import com.usky.backend.domain.response.LastResultVo;
+import com.usky.common.core.bean.ApiResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(contextId = "dataQueryClient", value = "usky-backend")
+public interface DataQueryClient {
+
+    @PostMapping("/last")
+    ApiResult<List<LastResultVo>> last(@RequestBody LastQueryVo lastQueryVo);
+
+    @GetMapping("/status")
+    public ApiResult<List<StatusVO>> status();
+}

+ 4 - 3
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/MetricItemVo.java → service-backend/service-backend-api/src/main/java/com/usky/backend/domain/MetricItemVo.java

@@ -1,20 +1,21 @@
-package com.usky.backend.domain.vo;
+package com.usky.backend.domain;
 
 import lombok.Data;
 
 import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.Date;
 
 @Data
 public class MetricItemVo implements Serializable {
 
-    private Date timestamp;
+    private LocalDateTime timestamp;
     private Object value;
 
     public MetricItemVo() {
     }
 
-    public MetricItemVo(Date timestamp, Object value) {
+    public MetricItemVo(LocalDateTime timestamp, Object value) {
         this.timestamp = timestamp;
         this.value = value;
     }

+ 32 - 0
service-backend/service-backend-api/src/main/java/com/usky/backend/domain/StatusVO.java

@@ -0,0 +1,32 @@
+package com.usky.backend.domain;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.apache.tomcat.jni.Local;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class StatusVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 设备Id
+     */
+    private String  deviceId;
+
+    /**
+     * 设备数据时间
+     */
+    private String time;
+
+    public StatusVO(String deviceId, String time){
+        this.deviceId = deviceId;
+        this.time = time;
+    }
+
+}

+ 1 - 6
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/HistoryQueryVo.java → service-backend/service-backend-api/src/main/java/com/usky/backend/domain/request/HistoryQueryVo.java

@@ -1,14 +1,9 @@
-package com.usky.backend.domain.vo;
+package com.usky.backend.domain.request;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
-import java.math.BigDecimal;
-import java.util.Date;
 import java.util.List;
 
 /**

+ 1 - 1
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/LastQueryVo.java → service-backend/service-backend-api/src/main/java/com/usky/backend/domain/request/LastQueryVo.java

@@ -1,4 +1,4 @@
-package com.usky.backend.domain.vo;
+package com.usky.backend.domain.request;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;

+ 2 - 5
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/HistoryResultVo.java → service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/HistoryResultVo.java

@@ -1,9 +1,9 @@
-package com.usky.backend.domain.vo;
+package com.usky.backend.domain.response;
 
+import com.usky.backend.domain.MetricItemVo;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.util.Date;
 import java.util.List;
 
 @Data
@@ -15,9 +15,6 @@ public class HistoryResultVo implements Serializable {
    private String metric;
    private List<MetricItemVo> metricItems;
 
-   public HistoryResultVo() {
-   }
-
    public HistoryResultVo(String deviceId, String metric, List<MetricItemVo> metricItems) {
       this.deviceId = deviceId;
       this.metric = metric;

+ 23 - 0
service-backend/service-backend-api/src/main/java/com/usky/backend/domain/response/LastResultVo.java

@@ -0,0 +1,23 @@
+package com.usky.backend.domain.response;
+
+import com.usky.backend.domain.MetricItemVo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class LastResultVo implements Serializable {
+
+    private static final long serialVersionUID = 8837428366010205859L;
+
+    private String deviceId;
+    private String metric;
+    private List<MetricItemVo> metricItems;
+
+    public LastResultVo(String deviceId, String metric, List<MetricItemVo> metricItems) {
+        this.deviceId = deviceId;
+        this.metric = metric;
+        this.metricItems = metricItems;
+    }
+}

+ 5 - 0
service-backend/service-backend-biz/pom.xml

@@ -34,6 +34,11 @@
             <artifactId>springfox-swagger-ui</artifactId>
             <version>${swagger.fox.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>service-backend-api</artifactId>
+            <version>0.0.1</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 1 - 1
service-backend/service-backend-biz/src/main/java/com/usky/backend/MybatisGeneratorUtils.java

@@ -43,7 +43,7 @@ public class MybatisGeneratorUtils {
         //2、数据源配置
         //修改数据源
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://usky-cloud-mysql:3306/usky-cloud?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
+        dsc.setUrl("jdbc:mysql://172.16.120.165:3306/usky-data?useUnicode=true&serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
         dsc.setDriverName("com.mysql.jdbc.Driver");
         dsc.setUsername("usky");
         dsc.setPassword("Yt#75Usky");

+ 31 - 15
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/DataQueryController.java

@@ -1,16 +1,19 @@
 package com.usky.backend.controller;
-import com.usky.backend.domain.vo.HistoryQueryVo;
-import com.usky.backend.domain.vo.HistoryResultVo;
-import com.usky.backend.domain.vo.LastQueryVo;
-import com.usky.backend.domain.vo.MetricItemVo;
+import com.usky.backend.domain.MetricItemVo;
+import com.usky.backend.domain.StatusVO;
+import com.usky.backend.domain.request.HistoryQueryVo;
+import com.usky.backend.domain.request.LastQueryVo;
+import com.usky.backend.domain.response.HistoryResultVo;
+import com.usky.backend.domain.response.LastResultVo;
+import com.usky.backend.service.DataQueryService;
 import com.usky.common.core.bean.ApiResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.stereotype.Controller;
 
+import java.time.LocalDateTime;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -23,17 +26,18 @@ import java.util.List;
 @Api(tags = "数据统一查询")
 @RequestMapping("/dataQuery")
 public class DataQueryController {
-
+    @Autowired
+    private DataQueryService dataQueryService;
 
     @GetMapping("/history")
     @ApiOperation("获取单个设备单属性历史数据")
     public ApiResult<HistoryResultVo> history(@RequestParam("startTime") String startTime,
-                                     @RequestParam("endTime") String endTime,
-                                     @RequestParam("deviceId") String deviceId,
-                                     @RequestParam("metric") String metric ) {
+                                              @RequestParam("endTime") String endTime,
+                                              @RequestParam("deviceId") String deviceId,
+                                              @RequestParam("metric") String metric ) {
         //以下是mock模拟数据
         List<MetricItemVo> items = new ArrayList<>();
-        items.add(new MetricItemVo(new Date(),12.3));
+        items.add(new MetricItemVo(LocalDateTime.now(),12.3));
         HistoryResultVo historyResultVo = new HistoryResultVo(deviceId,metric,items);
         return ApiResult.success(historyResultVo);
     }
@@ -43,19 +47,31 @@ public class DataQueryController {
     public ApiResult<List<HistoryResultVo>> history(@RequestBody HistoryQueryVo historyQueryVo) {
         List<HistoryResultVo> result  = new ArrayList<>();
         List<MetricItemVo> items = new ArrayList<>();
-        items.add(new MetricItemVo(new Date(),12.3));
+        items.add(new MetricItemVo(LocalDateTime.now(),12.3));
         HistoryResultVo historyResultVo = new HistoryResultVo(historyQueryVo.getDeviceId(),"cpu.load",items);
         result.add(historyResultVo);
         return ApiResult.success(result);
     }
 
+    /**
+     * 获取单个设备多指标实时数据
+     * @param lastQueryVo
+     * @return
+     */
     @PostMapping("/last")
     @ApiOperation("获取单个设备多指标实时数据")
-    public ApiResult<List<MetricItemVo>> last(@RequestBody LastQueryVo lastQueryVo) {
-        List<MetricItemVo>  metricItemVos = new ArrayList<>();
-        return ApiResult.success(metricItemVos);
+    public ApiResult<List<LastResultVo>> last(@RequestBody LastQueryVo lastQueryVo) {
+        return ApiResult.success(dataQueryService.last(lastQueryVo));
     }
 
+    /**
+     * 查询设备状态
+     * @return
+     */
+    @GetMapping("/status")
+    public ApiResult<List<StatusVO>> status(){
+        return ApiResult.success(dataQueryService.status());
+    }
 
 }
 

+ 22 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/DataRealTimeController.java

@@ -0,0 +1,22 @@
+package com.usky.backend.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 实时数据表 前端控制器
+ * </p>
+ *
+ * @author ya
+ * @since 2023-06-07
+ */
+@RestController
+@RequestMapping("/dataRealTime")
+public class DataRealTimeController {
+
+}
+

+ 40 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/api/DataQueryApi.java

@@ -0,0 +1,40 @@
+package com.usky.backend.controller.api;
+import com.usky.backend.client.DataQueryClient;
+import com.usky.backend.domain.StatusVO;
+import com.usky.backend.domain.request.LastQueryVo;
+import com.usky.backend.domain.response.LastResultVo;
+import com.usky.backend.service.DataQueryService;
+import com.usky.common.core.bean.ApiResult;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  数据统一查询 前端控制器
+ * </p>
+ *
+ */
+@RestController
+@Api(tags = "数据统一查询RPC")
+@RequestMapping("/dataQueryApi")
+public class DataQueryApi implements DataQueryClient {
+
+    @Autowired
+    private DataQueryService dataQueryService;
+
+    @Override
+    public ApiResult<List<LastResultVo>> last(LastQueryVo lastQueryVo) {
+        List<LastResultVo> last = dataQueryService.last(lastQueryVo);
+        return ApiResult.success(last);
+    }
+
+    @Override
+    public ApiResult<List<StatusVO>> status(){
+        List<StatusVO> list = dataQueryService.status();
+        return ApiResult.success(list);
+    }
+
+}

+ 66 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/DataRealTime.java

@@ -0,0 +1,66 @@
+package com.usky.backend.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 实时数据表
+ * </p>
+ *
+ * @author ya
+ * @since 2023-06-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DataRealTime implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设备ID
+     */
+    private String deviceId;
+
+    /**
+     * 设备编号
+     */
+    private String deviceCode;
+
+    /**
+     * 设备类型
+     */
+    private Integer deviceType;
+
+    /**
+     * 属性名称
+     */
+    private String attributeName;
+
+    /**
+     * 属性值
+     */
+    private String attributeData;
+
+    /**
+     * 数据时间
+     */
+    private LocalDateTime dataTime;
+
+    /**
+     * 插入时间
+     */
+    private LocalDateTime insertTime;
+
+
+}

+ 18 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/mapper/DataRealTimeMapper.java

@@ -0,0 +1,18 @@
+package com.usky.backend.mapper;
+
+import com.usky.backend.domain.DataRealTime;
+import com.usky.common.mybatis.core.CrudMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * <p>
+ * 实时数据表 Mapper 接口
+ * </p>
+ *
+ * @author ya
+ * @since 2023-06-07
+ */
+@Repository
+public interface DataRealTimeMapper extends CrudMapper<DataRealTime> {
+
+}

+ 9 - 1
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/DataQueryService.java

@@ -1,6 +1,14 @@
 package com.usky.backend.service;
 
-public interface DataQueryService {
 
+import com.usky.backend.domain.StatusVO;
+import com.usky.backend.domain.request.LastQueryVo;
+import com.usky.backend.domain.response.LastResultVo;
+
+import java.util.List;
+
+public interface DataQueryService {
+    List<LastResultVo> last(LastQueryVo lastQueryVo);
 
+    List<StatusVO> status();
 }

+ 16 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/DataRealTimeService.java

@@ -0,0 +1,16 @@
+package com.usky.backend.service;
+
+import com.usky.backend.domain.DataRealTime;
+import com.usky.common.mybatis.core.CrudService;
+
+/**
+ * <p>
+ * 实时数据表 服务类
+ * </p>
+ *
+ * @author ya
+ * @since 2023-06-07
+ */
+public interface DataRealTimeService extends CrudService<DataRealTime> {
+
+}

+ 56 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataQueryServiceImpl.java

@@ -1,7 +1,63 @@
 package com.usky.backend.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.backend.domain.DataRealTime;
+import com.usky.backend.domain.MetricItemVo;
+import com.usky.backend.domain.StatusVO;
+import com.usky.backend.domain.request.LastQueryVo;
+import com.usky.backend.domain.response.LastResultVo;
 import com.usky.backend.service.DataQueryService;
+import com.usky.backend.service.DataRealTimeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Service
 public class DataQueryServiceImpl implements DataQueryService {
+    @Autowired
+    private DataRealTimeService dataRealTimeService;
+
+    @Override
+    public List<LastResultVo> last(LastQueryVo lastQueryVo){
+        List<LastResultVo> list = new ArrayList<>();
+
+        List<String> items = lastQueryVo.getMetrics();
+        for(int i=0;i<items.size();i++){
+            LambdaQueryWrapper<DataRealTime> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.select(DataRealTime::getAttributeData,DataRealTime::getDataTime)
+                    .eq(DataRealTime::getDeviceId,lastQueryVo.getDeviceId())
+                    .eq(DataRealTime::getAttributeName,items.get(i));
+            DataRealTime one = dataRealTimeService.getOne(queryWrapper);
+            List<MetricItemVo> list1 = new ArrayList<>();
+            MetricItemVo metric = new MetricItemVo(one.getDataTime(),one.getAttributeData());
+            list1.add(metric);
+            LastResultVo lastResultVo = new LastResultVo(lastQueryVo.getDeviceId(),items.get(i),list1);
+            list.add(lastResultVo);
+        }
+
+        return list;
+    }
+
+    @Override
+    public List<StatusVO> status(){
+        List<StatusVO> list = new ArrayList<>();
+        QueryWrapper<DataRealTime> query = Wrappers.query();
+        query.select("device_id as deviceId","Max(data_time) as maxTime")
+                .groupBy("device_id");
+        List<Map<String,Object>> maps = dataRealTimeService.listMaps(query);
+        if(maps.size()>0) {
+            for (int i = 0; i < maps.size(); i++) {
+                StatusVO statusVO = new StatusVO(maps.get(i).get("deviceId").toString(),maps.get(i).get("maxTime").toString());
+                list.add(statusVO);
+            }
+        }
+
+        return list;
+    }
 
 }

+ 20 - 0
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataRealTimeServiceImpl.java

@@ -0,0 +1,20 @@
+package com.usky.backend.service.impl;
+
+import com.usky.backend.domain.DataRealTime;
+import com.usky.backend.mapper.DataRealTimeMapper;
+import com.usky.backend.service.DataRealTimeService;
+import com.usky.common.mybatis.core.AbstractCrudService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 实时数据表 服务实现类
+ * </p>
+ *
+ * @author ya
+ * @since 2023-06-07
+ */
+@Service
+public class DataRealTimeServiceImpl extends AbstractCrudService<DataRealTimeMapper, DataRealTime> implements DataRealTimeService {
+
+}

+ 17 - 0
service-backend/service-backend-biz/src/main/resources/mapper.backend/DataRealTimeMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.usky.backend.mapper.DataRealTimeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.usky.backend.domain.DataRealTime">
+        <id column="id" property="id" />
+        <result column="device_id" property="deviceId" />
+        <result column="device_code" property="deviceCode" />
+        <result column="device_type" property="deviceType" />
+        <result column="attribute_name" property="attributeName" />
+        <result column="attribute_data" property="attributeData" />
+        <result column="data_time" property="dataTime" />
+        <result column="insert_time" property="insertTime" />
+    </resultMap>
+
+</mapper>

+ 5 - 0
service-iot/service-iot-biz/pom.xml

@@ -37,6 +37,11 @@
             <artifactId>poi-ooxml</artifactId>
             <version>4.1.2</version>
         </dependency>
+        <dependency>
+            <groupId>com.usky</groupId>
+            <artifactId>service-backend-api</artifactId>
+            <version>0.0.1</version>
+        </dependency>
 
 
     </dependencies>

+ 62 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DeviceHttpController.java

@@ -0,0 +1,62 @@
+package com.usky.iot.controller.web;
+
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+//import com.usky.backend.client.DataQueryClient;
+//import com.usky.backend.domain.StatusVO;
+//import com.usky.backend.domain.request.LastQueryVo;
+//import com.usky.backend.domain.response.LastResultVo;
+import com.usky.common.core.bean.ApiResult;
+import com.usky.iot.domain.DmpDeviceStatus;
+import com.usky.iot.service.DmpDeviceStatusService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+
+/**
+ * @author zyj
+ * @date 2023/6/8 13:52:05
+ */
+@RestController
+@RequestMapping("/deviceHttp")
+public class DeviceHttpController {
+//    @Autowired
+//    private DataQueryClient dataQueryClient;
+//
+//    @Autowired
+//    private DmpDeviceStatusService dmpDeviceStatusService;
+//
+//    @PostMapping("/last")
+//    public ApiResult<List<LastResultVo>> lastDeviceInfo(@RequestBody LastQueryVo lastQueryVO) {
+//        return dataQueryClient.last(lastQueryVO);
+//    }
+//
+//    @GetMapping("/status")
+//    public ApiResult<Void> status(){
+//         List<StatusVO> list = dataQueryClient.status().getData();
+//         if(CollectionUtils.isNotEmpty(list)){
+//             for(int i=0;i<list.size();i++){
+//                 String date = list.get(i).getTime().substring(1,10);
+//                 String currentDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+//                 LambdaUpdateWrapper<DmpDeviceStatus> updateWrapper = Wrappers.lambdaUpdate();
+//                 if(date.equals(currentDate)){
+//                     updateWrapper.set(DmpDeviceStatus::getDeviceStatus,1)
+//                             .set(DmpDeviceStatus::getLastOnlineTime,LocalDateTime.parse(list.get(i).getTime(),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+//                             .eq(DmpDeviceStatus::getDeviceId,list.get(i).getDeviceId());
+//                 }else{
+//                     updateWrapper.set(DmpDeviceStatus::getDeviceStatus,2)
+//                             .set(DmpDeviceStatus::getLastOfflineTime,LocalDateTime.parse(list.get(i).getTime(),DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))
+//                             .eq(DmpDeviceStatus::getDeviceId,list.get(i).getDeviceId());
+//                 }
+//                 dmpDeviceStatusService.update(updateWrapper);
+//             }
+//         }
+//         return ApiResult.success();
+//    }
+
+
+}

+ 14 - 14
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/DmpDeviceInfo.java

@@ -62,6 +62,11 @@ public class DmpDeviceInfo implements Serializable {
      */
     private String imsiCode;
 
+    /**
+     * 是否自动订阅
+     */
+    private Integer subscribeFlag;
+
     /**
      * 节点类型
      */
@@ -103,28 +108,23 @@ public class DmpDeviceInfo implements Serializable {
     private Integer tenantId;
 
     /**
-     * 产品名称
-     */
-    @TableField(exist = false)
-    private String productName;
-
-    /**
-     * 业务状态;1:未激活,2:已激活,3:禁用
+     * 单位编号
      */
-    private Integer serviceStatus;
+    private String companyCode;
 
     /**
-     * 是否自动订阅
+     * 安装位置
      */
-    private Integer subscribeFlag;
+    private String installAddress;
 
     /**
-     * 单位编号
+     * 业务状态;1:未激活,2:已激活,3:禁用
      */
-    private String companyCode;
+    private Integer serviceStatus;
 
     /**
-     * 安装位置
+     * 设备状态;1:在线,2:离线
      */
-    private String installAddress;
+    @TableField(exist = false)
+    private Integer deviceStatus;
 }

+ 3 - 5
service-iot/service-iot-biz/src/main/java/com/usky/iot/domain/DmpDeviceStatus.java

@@ -2,20 +2,18 @@ package com.usky.iot.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
+import java.time.LocalDateTime;
+import java.io.Serializable;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
 /**
  * <p>
  * 设备状态表
  * </p>
  *
  * @author ya
- * @since 2022-10-08
+ * @since 2023-06-08
  */
 @Data
 @EqualsAndHashCode(callSuper = false)

+ 11 - 15
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/DmpDeviceInfoRequest.java

@@ -17,28 +17,24 @@ public class DmpDeviceInfoRequest {
     private Integer size;
 
     /**
-     * 设备名称
+     * 产品ID
      */
-    private String deviceName;
-    /**
-     * 产品id
-      */
     private Integer productId;
+
     /**
-     * 产品名称
+     * 设备名称
      */
-    private String productName;
+    private String deviceName;
+
     /**
-     * 设备状态
+     * 业务状态(1:未激活,2:已激活,3:禁用)
       */
-    private Integer deviceStatus;
+    private Integer serviceStatus;
 
     /**
-     * 开始时间
-     */
-    private Date startTime;
-    /**
-     * 结束时间
+     * 设备状态;1:在线,2:离线
      */
-    private Date endTime;
+    private Integer deviceStatus;
+
+
 }

+ 5 - 11
service-iot/service-iot-biz/src/main/resources/mapper/iot/DmpDeviceInfoMapper.xml

@@ -21,25 +21,19 @@
         <result column="tenant_id" property="tenantId" />
     </resultMap>
     <select id="page" resultType="com.usky.iot.domain.DmpDeviceInfo">
-        select ddi.*,dpi.product_name as productName, dds.device_status as deviceStatus
-        from dmp_product dpi
-        inner join dmp_device ddi
-        on dpi.id = ddi.product_id
+        select ddi.*,dds.device_status as deviceStatus
+        from dmp_device ddi
         left join dmp_device_status dds
         on ddi.device_id  = dds.device_id
         <where>
-            <if test="ar.startTime != null and ar.endTime != null">
-                and  dds.last_online_time between #{ar.startTime}
-                and #{ar.endTime}
-            </if>
             <if test="ar.deviceName != null">
                 and ddi.device_name like CONCAT('%',#{ar.deviceName},'%')
             </if>
             <if test="ar.productId != null">
-                and dpi.id = #{ar.productId}
+                and ddi.product_id = #{ar.productId}
             </if>
-            <if test="ar.productName != null">
-                and dpi.product_name like CONCAT('%',#{ar.productName},'%')
+            <if test="ar.serviceStatus != null">
+                and ddi.service_status = #{ar.serviceStatus}
             </if>
             <if test="ar.deviceStatus != null">
                 and dds.device_status = #{ar.deviceStatus}