Răsfoiți Sursa

feat(APP端设备导出参数增减指标类型过滤导出数据为指定指标): APP端设备导出参数增减指标类型过滤导出数据为指定指标

APP端设备导出参数增减指标类型过滤导出数据为指定指标
zjian 1 săptămână în urmă
părinte
comite
d387562b41

+ 9 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/param/export/AppTrendParam.java

@@ -27,5 +27,14 @@ public class AppTrendParam {
     @NotBlank(message = "结束时间不能为空")
     private String endTime;
 
+    /**
+     * 时间间隔单位
+     */
     private String aggregationWindow;
+
+
+    /**
+     * 指标类型 如 temperature/humidity/co2/pm25...
+     */
+    private String type;
 }

+ 14 - 2
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/app/service/AppDeviceService.java

@@ -798,6 +798,18 @@ public class AppDeviceService {
             // 并行构建导出数据列表
             Map<String, List<ExportParam>> exportDataMap = buildExportDataParallel(
                     monitorTargetRegion, trendParam, sensorEchartDataResult);
+            //指定指标则只需要单个指标
+            Map<String, List<ExportParam>> finalExportDataMap = new HashMap<>(8);
+            if (StrUtil.isNotBlank(trendParam.getType())) {
+                for (Map.Entry<String, List<ExportParam>> entry : exportDataMap.entrySet()) {
+                    if (StrUtil.equals(entry.getKey(), trendParam.getType())) {
+                        finalExportDataMap.put(entry.getKey(), entry.getValue());
+                        break;
+                    }
+                }
+            } else {
+                finalExportDataMap = exportDataMap;
+            }
             // 温度导出参数
             List<ExportParam> tempExportParamList = exportDataMap.get("temperature");
             // 湿度导出参数
@@ -845,7 +857,7 @@ public class AppDeviceService {
 
             // 生成PDF报告
             generatePdfReport(response, file, monitorTargetRegion, trendParam,
-                    sensorEchartDataResult, statsMap, exportDataMap);
+                    sensorEchartDataResult, statsMap, finalExportDataMap);
         } catch (Exception e) {
             throw new RuntimeException("PDF生成失败", e);
         }
@@ -1814,7 +1826,7 @@ public class AppDeviceService {
                     value += "°C";
                 } else if (type.equals("S")) {
                     value += "%";
-                } else if (type.equals("C")){
+                } else if (type.equals("C")) {
                     value += "ppm";
                 }
                 dataTable.addCell(new Cell().add(new Paragraph(value).setFont(font)));