فهرست منبع

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 سال پیش
والد
کامیت
b6fd5f5edf

+ 16 - 10
service-backend/service-backend-biz/src/main/java/com/usky/backend/controller/DataQueryController.java

@@ -93,20 +93,26 @@ public class DataQueryController {
         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,excelName,excelName);
+//        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());
     }
 
 }

+ 36 - 18
service-backend/service-backend-biz/src/main/java/com/usky/backend/domain/vo/DataAverageExportVO.java

@@ -16,44 +16,62 @@ public class DataAverageExportVO {
     private String dataDate;
 
     /**
-     * 设备Id
+     * 设备名称
      */
-    @Excel(name = "设备Id")
-    private String deviceId;
+    @Excel(name = "设备名称")
+    private String deviceName;
 
     /**
-     * 温度平均值
+     * 室内温度平均值
      */
-    @Excel(name = "温度平均值")
-    private String wd;
+    @Excel(name = "室内温度平均值")
+    private String wdIn;
 
     /**
-     * 湿度平均值
+     * 室外温度平均值
      */
-    @Excel(name = "湿度平均值")
-    private String sd;
+    @Excel(name = "室外温度平均值")
+    private String wdOut;
 
     /**
-     * pm2_5平均值
+     * 室内湿度平均值
      */
-    @Excel(name = "pm2_5平均值")
-    private String pm2_5;
+    @Excel(name = "室内湿度平均值")
+    private String sdIn;
 
     /**
-     * co2平均值
+     * 室外湿度平均值
      */
-    @Excel(name = "co2平均值")
+    @Excel(name = "室外湿度平均值")
+    private String sdOut;
+
+    /**
+     * 室内pm2_5平均值
+     */
+    @Excel(name = "室内pm2_5平均值")
+    private String pm2_5In;
+
+    /**
+     * 室外pm2_5平均值
+     */
+    @Excel(name = "室外pm2_5平均值")
+    private String pm2_5Out;
+
+    /**
+     * 室内co2平均值
+     */
+    @Excel(name = "室内co2平均值")
     private String co2;
 
     /**
-     * voc平均值(优就是1,良是2,差是3)
+     * 室内voc平均值(优就是1,良是2,差是3)
      */
-    @Excel(name = "voc等级值")
+    @Excel(name = "室内voc等级值")
     private String voc;
 
     /**
-     * 空气质量平均值(1、优质 2、良好 3、轻度污染 4、中度污染 5、重度污染 6、严重污染)
+     * 室外空气质量平均值(1、优质 2、良好 3、轻度污染 4、中度污染 5、重度污染 6、严重污染)
      */
-    @Excel(name = "空气质量等级值")
+    @Excel(name = "室外空气质量等级值")
     private String quality;
 }

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

@@ -29,6 +29,9 @@ public class DataAverageRequestVO implements Serializable {
     private String startTime;
     //结束时间
     private String endTime;
-
+    //导出Excel标题名称
+    private String titleName;
+    //导出sheet名称
+    private String sheetName;
 
 }

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

@@ -225,6 +225,9 @@ 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());
         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")){
@@ -246,20 +249,20 @@ public class DataQueryServiceImpl implements DataQueryService {
                     for(int j=0;j<deviceIdList.size();j++){
                         DataAverageExportVO responseVO = new DataAverageExportVO();
                         responseVO.setDataDate(dateList.get(i));
-                        responseVO.setDeviceId(deviceIdList.get(j));
+                        responseVO.setDeviceName(deviceIdList.get(j));
                         for(int k=0;k<list1.size();k++){
                             if(dateList.get(i).equals(list1.get(k).getDataDate()) && deviceIdList.get(j).equals(list1.get(k).getDeviceId())){
                                 if(list1.get(k).getAttributeName().equals("wd")){
-                                    responseVO.setWd(Double.toString(list1.get(k).getAvrg()));
+                                    responseVO.setWdIn(String.format("%.1f",list1.get(k).getAvrg()));
                                 }
                                 if(list1.get(k).getAttributeName().equals("sd")){
-                                    responseVO.setSd(Double.toString(list1.get(k).getAvrg()));
+                                    responseVO.setSdIn(String.format("%.1f",list1.get(k).getAvrg()));
                                 }
                                 if(list1.get(k).getAttributeName().equals("pm2_5")){
-                                    responseVO.setPm2_5(Double.toString(list1.get(k).getAvrg()));
+                                    responseVO.setPm2_5In(String.format("%.1f",list1.get(k).getAvrg()));
                                 }
                                 if(list1.get(k).getAttributeName().equals("co2")){
-                                    responseVO.setCo2(Double.toString(list1.get(k).getAvrg()));
+                                    responseVO.setCo2(String.format("%.1f",list1.get(k).getAvrg()));
                                 }
                                 if(list1.get(k).getAttributeName().equals("voc")){ //voc平均值(优就是1,良是2,差是3)
                                     String name = "";
@@ -273,9 +276,23 @@ public class DataQueryServiceImpl implements DataQueryService {
                                     }
                                     responseVO.setVoc(name);
                                 }
-                                if(list1.get(k).getAttributeName().equals("quality")){ //空气质量平均值(1、优质 2、良好 3、轻度污染 4、中度污染 5、重度污染 6、严重污染)
+                            }
+                        }
+
+                        for(int h=0;h<list2.size();h++){
+                            if(dateList.get(i).equals(list2.get(h).getDataDate())){
+                                if(list2.get(h).getAttributeName().equals("wd")){
+                                    responseVO.setWdOut(String.format("%.1f",list2.get(h).getAvrg()));
+                                }
+                                if(list2.get(h).getAttributeName().equals("sd")){
+                                    responseVO.setSdOut(String.format("%.1f",list2.get(h).getAvrg()));
+                                }
+                                if(list2.get(h).getAttributeName().equals("pm2_5")){
+                                    responseVO.setPm2_5Out(String.format("%.1f",list2.get(h).getAvrg()));
+                                }
+                                if(list2.get(h).getAttributeName().equals("quality")){ //空气质量平均值(1、优质 2、良好 3、轻度污染 4、中度污染 5、重度污染 6、严重污染)
                                     String name = "";
-                                    double value = list1.get(k).getAvrg();
+                                    double value = list2.get(h).getAvrg();
                                     if(value>=1 && value<=1.5){
                                         name = "优质";
                                     }else if(value>1.5 && value<=2.5){
@@ -293,6 +310,7 @@ public class DataQueryServiceImpl implements DataQueryService {
                                 }
                             }
                         }
+
                         list.add(responseVO);
                     }
                 }

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

@@ -46,7 +46,7 @@
         </where>
     </select>
     <select id="QueryEachHistoryAvrgData" resultType="com.usky.backend.domain.vo.DataHistoryAvergerVO">
-        SELECT a.data_date as dataDate,a.device_id as deviceId, a.attribute_name as attributeName ,avg(a.attribute_data) as avrg
+        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}
         <if test="deviceIdList != null and deviceIdList.size() > 0">
             AND device_id in
@@ -63,7 +63,7 @@
         GROUP BY a.data_date,a.device_id,a.attribute_name;
     </select>
     <select id="QueryTotalHistoryAvrgData" resultType="com.usky.backend.domain.vo.DataHistoryAvergerVO">
-        SELECT a.data_date as dataDate,'all_in_room' as deviceId,a.attribute_name as attributeName ,avg(a.attribute_data) as avrg
+        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'
         <if test="attributeNameList != null and attributeNameList.size() > 0">