Parcourir la source

Merge branch 'usky-zyj' into server-165

james il y a 1 an
Parent
commit
f3a2fadb16
17 fichiers modifiés avec 193 ajouts et 80 suppressions
  1. 11 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/client/DataQueryClient.java
  2. 1 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/DataAverageExportVO.java
  3. 1 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/DataAverageRequestVO.java
  4. 6 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/DataAverageResponseVO.java
  5. 1 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/DataHistoryAvergerVO.java
  6. 1 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/DataHistoryTotalVO.java
  7. 1 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/DataTotalRequestVO.java
  8. 1 1
      service-backend/service-backend-api/src/main/java/com/usky/backend/domain/DataTotalResponseVO.java
  9. 4 51
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/DataQueryController.java
  10. 20 1
      service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/api/DataQueryApi.java
  11. 2 2
      service-backend/service-backend-biz/src/main/java/com/usky/backend/mapper/DataRealTimeMapper.java
  12. 4 5
      service-backend/service-backend-biz/src/main/java/com/usky/backend/service/DataQueryService.java
  13. 1 7
      service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataQueryServiceImpl.java
  14. 9 6
      service-backend/service-backend-biz/src/main/resources/mapper/backend/DataRealTimeMapper.xml
  15. 44 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpDeviceInfoController.java
  16. 9 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpDeviceInfoService.java
  17. 77 0
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceInfoServiceImpl.java

+ 11 - 1
service-backend/service-backend-api/src/main/java/com/usky/backend/client/DataQueryClient.java

@@ -1,6 +1,6 @@
 package com.usky.backend.client;
 
-import com.usky.backend.domain.StatusVO;
+import com.usky.backend.domain.*;
 import com.usky.backend.domain.request.LastQueryVo;
 import com.usky.backend.domain.response.LastResultVo;
 import com.usky.common.core.bean.ApiResult;
@@ -8,10 +8,20 @@ import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 @FeignClient(contextId = "dataQueryClient", value = "usky-backend")
 public interface DataQueryClient {
 
     @RequestMapping(value = "status")
     List<StatusVO> status();
+
+    @RequestMapping(value = "deviceDataTotal")
+    List<Map<String,Object>> deviceDataTotal(@RequestBody DataTotalRequestVO requestVO);
+
+    @RequestMapping(value = "deviceDataAverage")
+    List<DataAverageResponseVO> deviceDataAverage(@RequestBody DataAverageRequestVO requestVO);
+
+    @RequestMapping(value = "DataAverageExport")
+    List<DataAverageExportVO> DataAverageExport(@RequestBody DataAverageRequestVO requestVO);
 }

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

@@ -1,4 +1,4 @@
-package com.usky.backend.domain.vo;
+package com.usky.backend.domain;
 
 import com.usky.common.core.annotation.Excel;
 import lombok.Data;

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

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

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

@@ -1,4 +1,4 @@
-package com.usky.backend.domain.vo;
+package com.usky.backend.domain;
 
 import lombok.Data;
 
@@ -16,6 +16,11 @@ public class DataAverageResponseVO implements Serializable {
      */
     private String deviceId;
 
+    /**
+     * 设备名称
+     */
+    private String DeviceName;
+
     /**
      * 温度平均值
      */

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

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

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

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

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

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

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

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

+ 4 - 51
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/DataQueryController.java

@@ -1,14 +1,13 @@
 package com.usky.backend.controller;
-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.domain.vo.DataAverageExportVO;
-import com.usky.backend.domain.vo.DataAverageRequestVO;
-import com.usky.backend.domain.vo.DataAverageResponseVO;
-import com.usky.backend.domain.vo.DataTotalRequestVO;
+import com.usky.backend.domain.DataAverageExportVO;
+import com.usky.backend.domain.DataAverageRequestVO;
+import com.usky.backend.domain.DataAverageResponseVO;
+import com.usky.backend.domain.DataTotalRequestVO;
 import com.usky.backend.service.DataQueryService;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.utils.poi.ExcelUtil;
@@ -19,8 +18,6 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -84,49 +81,5 @@ public class DataQueryController {
         return ApiResult.success(dataQueryService.status());
     }
 
-    /**
-     * 获取设备某个时间端内的汇总值
-     * @param requestVO
-     * @return
-     */
-    @PostMapping("deviceDataTotal")
-    @ApiOperation("获取设备某个时间端内的汇总值")
-    public ApiResult<List<Map<String,Object>>> deviceDataTotal(@RequestBody DataTotalRequestVO requestVO){
-        return ApiResult.success(dataQueryService.deviceDataTotal(requestVO));
-    }
-
-    /**
-     * 设备日平均值、月平均值、年平均值
-     * @param requestVO
-     * @return
-     */
-    @PostMapping("deviceDataAverage")
-    @ApiOperation("获取设备日平均、月平均、年平均值")
-    public ApiResult<List<DataAverageResponseVO>> deviceDataAverage(@RequestBody DataAverageRequestVO requestVO){
-        return ApiResult.success(dataQueryService.deviceDataAverage(requestVO));
-    }
-
-    /**
-     * 设备日平均值、月平均值、年平均值导出
-     * @param requestVO
-     * @param response
-     * @throws IOException
-     */
-    @PostMapping("export")
-    public void export(@RequestBody DataAverageRequestVO requestVO, HttpServletResponse response) throws IOException{
-        List<DataAverageExportVO> list = dataQueryService.DataAverageExport(requestVO);
-        ExcelUtil<DataAverageExportVO> util = new ExcelUtil<DataAverageExportVO>(DataAverageExportVO.class);
-//        String rangeDate = "";
-//        if(requestVO.getDataType().equals("Day")){
-//            rangeDate = requestVO.getStartTime().substring(0,10)+"_"+requestVO.getEndTime().substring(0,10);
-//        }else if(requestVO.getDataType().equals("Month")){
-//            rangeDate = requestVO.getStartTime().substring(0,7)+"_"+requestVO.getEndTime().substring(0,7);
-//        }else if(requestVO.getDataType().equals("Year")){
-//            rangeDate = requestVO.getStartTime().substring(0,4)+"_"+requestVO.getEndTime().substring(0,4);
-//        }
-//        String excelName = requestVO.getGroupType()+"_"+requestVO.getDataType()+"_"+rangeDate;
-        util.exportExcel(response,list,requestVO.getSheetName(),requestVO.getTitleName());
-    }
-
 }
 

+ 20 - 1
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/api/DataQueryApi.java

@@ -1,6 +1,6 @@
 package com.usky.backend.controller.api;
 import com.usky.backend.client.DataQueryClient;
-import com.usky.backend.domain.StatusVO;
+import com.usky.backend.domain.*;
 import com.usky.backend.domain.request.LastQueryVo;
 import com.usky.backend.domain.response.LastResultVo;
 import com.usky.backend.service.DataQueryService;
@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -30,4 +31,22 @@ public class DataQueryApi implements DataQueryClient {
         return list;
     }
 
+    @Override
+    public List<Map<String,Object>> deviceDataTotal(DataTotalRequestVO requestVO){
+        List<Map<String,Object>> list = dataQueryService.deviceDataTotal(requestVO);
+        return list;
+    }
+
+    @Override
+    public List<DataAverageResponseVO> deviceDataAverage(DataAverageRequestVO requestVO){
+        List<DataAverageResponseVO> list = dataQueryService.deviceDataAverage(requestVO);
+        return list;
+    }
+
+    @Override
+    public List<DataAverageExportVO> DataAverageExport(DataAverageRequestVO requestVO){
+        List<DataAverageExportVO> list = dataQueryService.DataAverageExport(requestVO);
+        return list;
+    }
+
 }

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

@@ -3,8 +3,8 @@ package com.usky.backend.mapper;
 import com.usky.backend.domain.DataRealTime;
 //import com.usky.backend.domain.request.DeviceDataInfoVO;
 import com.usky.backend.domain.MetricItemVo;
-import com.usky.backend.domain.vo.DataHistoryAvergerVO;
-import com.usky.backend.domain.vo.DataHistoryTotalVO;
+import com.usky.backend.domain.DataHistoryAvergerVO;
+import com.usky.backend.domain.DataHistoryTotalVO;
 import com.usky.common.mybatis.core.CrudMapper;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;

+ 4 - 5
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/DataQueryService.java

@@ -6,11 +6,10 @@ 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.domain.vo.DataAverageExportVO;
-import com.usky.backend.domain.vo.DataAverageRequestVO;
-import com.usky.backend.domain.vo.DataAverageResponseVO;
-import com.usky.backend.domain.vo.DataTotalRequestVO;
-import org.springframework.web.bind.annotation.RequestBody;
+import com.usky.backend.domain.DataAverageExportVO;
+import com.usky.backend.domain.DataAverageRequestVO;
+import com.usky.backend.domain.DataAverageResponseVO;
+import com.usky.backend.domain.DataTotalRequestVO;
 
 import java.util.List;
 import java.util.Map;

+ 1 - 7
service-backend/service-backend-biz/src/main/java/com/usky/backend/service/impl/DataQueryServiceImpl.java

@@ -1,22 +1,16 @@
 package com.usky.backend.service.impl;
 
-import cn.hutool.db.meta.Table;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.usky.backend.domain.*;
 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.domain.vo.*;
 import com.usky.backend.mapper.DataRealTimeMapper;
 import com.usky.backend.service.*;
-import net.sf.ehcache.search.expression.IsNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -264,7 +258,7 @@ public class DataQueryServiceImpl implements DataQueryService {
         List<DataHistoryAvergerVO> list1 = new ArrayList<>();
         List<String> outDeviceList = new ArrayList<>();
         outDeviceList.add("weather0001");
-        List<DataHistoryAvergerVO> list2 = dataRealTimeMapper.QueryEachHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),outDeviceList,requestVO.getAttributeNames());
+        List<DataHistoryAvergerVO> list2 = dataRealTimeMapper.QueryEachHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),null,outDeviceList,requestVO.getAttributeNames());
         if(requestVO.getGroupType().equals("Each")){
             list1 = dataRealTimeMapper.QueryEachHistoryAvrgData(leftLen,tableName,requestVO.getStartTime(),requestVO.getEndTime(),requestVO.getProductCode(),requestVO.getDeviceIds(),requestVO.getAttributeNames());
         }else if(requestVO.getGroupType().equals("Total")){

+ 9 - 6
service-backend/service-backend-biz/src/main/resources/mapper/backend/DataRealTimeMapper.xml

@@ -45,7 +45,7 @@
             </if>
         </where>
     </select>
-    <select id="QueryEachHistoryTotalData" resultType="com.usky.backend.domain.vo.DataHistoryTotalVO">
+    <select id="QueryEachHistoryTotalData" resultType="com.usky.backend.domain.DataHistoryTotalVO">
         select device_id as deviceId,attribute_name as attributeName,sum(attribute_data) as totalValue
         FROM ${tableName}
         WHERE data_time  BETWEEN  #{startTime} AND  #{endTime} AND product_code = #{productCode}
@@ -63,7 +63,7 @@
         </if>
         group by device_id,attribute_name
     </select>
-    <select id="QueryTotalHistoryTotalData" resultType="com.usky.backend.domain.vo.DataHistoryTotalVO">
+    <select id="QueryTotalHistoryTotalData" resultType="com.usky.backend.domain.DataHistoryTotalVO">
         select "all" as deviceId,attribute_name as attributeName,sum(attribute_data) as totalValue
         FROM ${tableName}
         WHERE data_time  BETWEEN  #{startTime} AND  #{endTime} AND product_code = #{productCode}
@@ -75,9 +75,12 @@
         </if>
         group by attribute_name
     </select>
-    <select id="QueryEachHistoryAvrgData" resultType="com.usky.backend.domain.vo.DataHistoryAvergerVO">
-        SELECT a.data_date as dataDate,concat("房间",a.device_id) as deviceId, a.attribute_name as attributeName ,avg(a.attribute_data) as avrg
-        from (select product_code,device_id,attribute_name,attribute_data,left(data_time,#{leftLen}) as data_date FROM ${tableName} WHERE data_time  BETWEEN  #{startTime} AND  #{endTime} AND product_code = #{productCode}
+    <select id="QueryEachHistoryAvrgData" resultType="com.usky.backend.domain.DataHistoryAvergerVO">
+        SELECT a.data_date as dataDate,a.device_id as deviceId, a.attribute_name as attributeName ,avg(a.attribute_data) as avrg
+        from (select product_code,device_id,attribute_name,attribute_data,left(data_time,#{leftLen}) as data_date FROM ${tableName} WHERE data_time  BETWEEN  #{startTime} AND  #{endTime}
+        <if test="productCode != null">
+            AND product_code = #{productCode}
+        </if>
         <if test="deviceIdList != null and deviceIdList.size() > 0">
             AND device_id in
             <foreach item="item" collection="deviceIdList" open="(" separator="," close=")">
@@ -92,7 +95,7 @@
         </if>) a
         GROUP BY a.data_date,a.device_id,a.attribute_name;
     </select>
-    <select id="QueryTotalHistoryAvrgData" resultType="com.usky.backend.domain.vo.DataHistoryAvergerVO">
+    <select id="QueryTotalHistoryAvrgData" resultType="com.usky.backend.domain.DataHistoryAvergerVO">
         SELECT a.data_date as dataDate,'所有房间' as deviceId,a.attribute_name as attributeName ,avg(a.attribute_data) as avrg
         FROM (SELECT product_code,attribute_name,attribute_data,LEFT(data_time,#{leftLen}) AS data_date FROM ${tableName} WHERE data_time  BETWEEN  #{startTime} AND  #{endTime} AND product_code = #{productCode}
         AND device_id != 'weather0001'

+ 44 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/DmpDeviceInfoController.java

@@ -4,19 +4,26 @@ package com.usky.iot.controller.web;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.usky.backend.domain.DataAverageExportVO;
+import com.usky.backend.domain.DataAverageRequestVO;
+import com.usky.backend.domain.DataAverageResponseVO;
+import com.usky.backend.domain.DataTotalRequestVO;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
+import com.usky.common.core.utils.poi.ExcelUtil;
 import com.usky.iot.domain.BaseFacilityDevice;
 import com.usky.iot.domain.DmpDeviceInfo;
 import com.usky.iot.service.DmpDeviceInfoService;
 import com.usky.iot.service.vo.BaseFacilityDeviceVO;
 import com.usky.iot.service.vo.DmpDeviceInfoRequest;
+import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotNull;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -130,5 +137,42 @@ public class DmpDeviceInfoController {
                                                                @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize){
         return ApiResult.success(dmpDeviceInfoService.deviceCurrentDataList(deviceName,installAddress,productCode,pageNum,pageSize));
     }
+
+
+
+    /**
+     * 获取设备某个时间端内的汇总值
+     * @param requestVO
+     * @return
+     */
+    @PostMapping("deviceDataTotal")
+    @ApiOperation("获取设备某个时间端内的汇总值")
+    public ApiResult<List<Map<String,Object>>> deviceDataTotal(@RequestBody DataTotalRequestVO requestVO){
+        return ApiResult.success(dmpDeviceInfoService.deviceDataTotal(requestVO));
+    }
+
+    /**
+     * 设备日平均值、月平均值、年平均值
+     * @param requestVO
+     * @return
+     */
+    @PostMapping("deviceDataAverage")
+    @ApiOperation("获取设备日平均、月平均、年平均值")
+    public ApiResult<List<DataAverageResponseVO>> deviceDataAverage(@RequestBody DataAverageRequestVO requestVO){
+        return ApiResult.success(dmpDeviceInfoService.deviceDataAverage(requestVO));
+    }
+
+    /**
+     * 设备日平均值、月平均值、年平均值导出
+     * @param requestVO
+     * @param response
+     * @throws IOException
+     */
+    @PostMapping("deviceDataAverageExport")
+    public void export(@RequestBody DataAverageRequestVO requestVO, HttpServletResponse response) throws IOException{
+        List<DataAverageExportVO> list = dmpDeviceInfoService.DataAverageExport(requestVO);
+        ExcelUtil<DataAverageExportVO> util = new ExcelUtil<DataAverageExportVO>(DataAverageExportVO.class);
+        util.exportExcel(response,list,requestVO.getSheetName(),requestVO.getTitleName());
+    }
 }
 

+ 9 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/DmpDeviceInfoService.java

@@ -1,10 +1,15 @@
 package com.usky.iot.service;
 
+import com.usky.backend.domain.DataAverageExportVO;
+import com.usky.backend.domain.DataAverageRequestVO;
+import com.usky.backend.domain.DataAverageResponseVO;
+import com.usky.backend.domain.DataTotalRequestVO;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.iot.domain.DmpDeviceInfo;
 import com.usky.iot.service.vo.BaseFacilityDeviceVO;
 import com.usky.iot.service.vo.DmpDeviceInfoRequest;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
@@ -58,4 +63,8 @@ public interface DmpDeviceInfoService extends CrudService<DmpDeviceInfo> {
     void export(DmpDeviceInfoRequest dmpDeviceInfoRequest, HttpServletResponse response);
 
     CommonPage<Object> deviceCurrentDataList(String deviceName,String installAddress,String productCode,Integer pageNum,Integer pageSize);
+
+    List<Map<String,Object>> deviceDataTotal(DataTotalRequestVO requestVO);
+    List<DataAverageResponseVO> deviceDataAverage(DataAverageRequestVO requestVO);
+    List<DataAverageExportVO> DataAverageExport(DataAverageRequestVO requestVO);
 }

+ 77 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/DmpDeviceInfoServiceImpl.java

@@ -16,7 +16,12 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.mysql.cj.x.protobuf.MysqlxDatatypes;
+import com.usky.backend.client.DataQueryClient;
 import com.usky.backend.client.DeviceDataClient;
+import com.usky.backend.domain.DataAverageExportVO;
+import com.usky.backend.domain.DataAverageRequestVO;
+import com.usky.backend.domain.DataAverageResponseVO;
+import com.usky.backend.domain.DataTotalRequestVO;
 import com.usky.backend.domain.response.DataRealTimeResponseVO;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
@@ -63,6 +68,9 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
     @Autowired
     private DeviceDataClient deviceDataClient;
 
+    @Autowired
+    private DataQueryClient dataQueryClient;
+
     @Override
     public void add(DmpDeviceInfo dmpDeviceInfo) {
         if (checkNameUnique(dmpDeviceInfo)){
@@ -562,4 +570,73 @@ public class DmpDeviceInfoServiceImpl extends AbstractCrudService<DmpDeviceInfoM
 
         return new CommonPage<>(objectList,total,pageNum,pageSize);
     }
+
+    @Override
+    public List<Map<String,Object>> deviceDataTotal(DataTotalRequestVO requestVO){
+        List<Map<String,Object>> list = dataQueryClient.deviceDataTotal(requestVO);
+
+        return list;
+    }
+
+    @Override
+    public List<DataAverageResponseVO> deviceDataAverage(DataAverageRequestVO requestVO){
+        List<DataAverageResponseVO> list = dataQueryClient.deviceDataAverage(requestVO);
+
+        if(requestVO.getGroupType().equals("Each")){
+            if(list.size() > 0){
+                List<String> deviceIdList = new ArrayList<>();
+                for (int i = 0; i < list.size(); i++) {
+                    deviceIdList.add(list.get(i).getDeviceId());
+                }
+                LambdaQueryWrapper<DmpDeviceInfo> queryWrapper = Wrappers.lambdaQuery();
+                queryWrapper.in(DmpDeviceInfo::getDeviceId,deviceIdList)
+                        .eq(DmpDeviceInfo::getDeleteFlag,0)
+                        .eq(DmpDeviceInfo::getTenantId,SecurityUtils.getTenantId());
+                List<DmpDeviceInfo> deviceInfoList = this.list(queryWrapper);
+                if(CollectionUtils.isNotEmpty(deviceIdList)){
+                    for (int i = 0; i < list.size(); i++) {
+                        for (int j = 0; j < deviceInfoList.size(); j++) {
+                            if(list.get(i).getDeviceId().equals(deviceInfoList.get(j).getDeviceId())){
+                                list.get(i).setDeviceName(deviceInfoList.get(j).getDeviceName());
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        return list;
+    }
+
+    @Override
+    public List<DataAverageExportVO> DataAverageExport(DataAverageRequestVO requestVO){
+        List<DataAverageExportVO> list = dataQueryClient.DataAverageExport(requestVO);
+
+        if(requestVO.getGroupType().equals("Each")){
+            if(list.size() > 0){
+                List<String> deviceIdList = new ArrayList<>();
+                for (int i = 0; i < list.size(); i++) {
+                    deviceIdList.add(list.get(i).getDeviceName());
+                }
+                LambdaQueryWrapper<DmpDeviceInfo> queryWrapper = Wrappers.lambdaQuery();
+                queryWrapper.in(DmpDeviceInfo::getDeviceId,deviceIdList)
+                        .eq(DmpDeviceInfo::getDeleteFlag,0)
+                        .eq(DmpDeviceInfo::getTenantId,SecurityUtils.getTenantId());
+                List<DmpDeviceInfo> deviceInfoList = this.list(queryWrapper);
+                if(CollectionUtils.isNotEmpty(deviceIdList)){
+                    for (int i = 0; i < list.size(); i++) {
+                        for (int j = 0; j < deviceInfoList.size(); j++) {
+                            if(list.get(i).getDeviceName().equals(deviceInfoList.get(j).getDeviceId())){
+                                list.get(i).setDeviceName(deviceInfoList.get(j).getDeviceName());
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        return list;
+    }
 }