From a6acf6d1c9689c3c4ab98ea1d2db9701ffa926e5 Mon Sep 17 00:00:00 2001
From: chendaofei <857448963@qq.com>
Date: Fri, 15 Nov 2024 10:51:26 +0800
Subject: [PATCH] =?UTF-8?q?1.=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8A=A5=E8=A1=A8?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E8=B0=83=E6=95=B4=202.=E6=9A=82=E9=99=8D?=
=?UTF-8?q?=E4=BA=8B=E4=BB=B6=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0=E5=90=8E?=
=?UTF-8?q?=E7=AB=AF=E6=8E=92=E5=BA=8F=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../njcn/event/pojo/param/TransientParam.java | 4 +
.../Impl/TransientServiceImpl.java | 19 +-
.../pojo/param/ReportSearchParam.java | 3 +
.../njcn/harmonic/pojo/po/ExcelRptTemp.java | 2 +
.../controller/CustomReportController.java | 2 +
.../mapper/mapping/ExcelRptTempMapper.xml | 26 +-
.../harmonic/service/CustomReportService.java | 3 +
.../service/impl/CustomReportServiceImpl.java | 563 ++++++++++++++++--
8 files changed, 572 insertions(+), 50 deletions(-)
diff --git a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/param/TransientParam.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/param/TransientParam.java
index a5efc6e90..3baf8752d 100644
--- a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/param/TransientParam.java
+++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/param/TransientParam.java
@@ -64,5 +64,9 @@ public class TransientParam extends DeviceInfoParam.BusinessParam {
@ApiModelProperty("在线离线 0:在线 1:离线")
private Integer isType;
+
+ private String sortBy;
+
+ private String orderBy;
}
diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java
index 77ad329cd..3f80a6f30 100644
--- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java
+++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/TransientServiceImpl.java
@@ -301,8 +301,23 @@ public class TransientServiceImpl implements TransientService {
// 事件
.in(CollUtil.isNotEmpty(transientParam.getWaveType()), RmpEventDetailPO::getEventType, transientParam.getWaveType())
.in(CollUtil.isNotEmpty(transientParam.getEventReason()), RmpEventDetailPO::getAdvanceReason, transientParam.getEventReason())
- .in(CollUtil.isNotEmpty(transientParam.getEventType()), RmpEventDetailPO::getAdvanceType, transientParam.getEventType())
- .orderByDesc(RmpEventDetailPO::getStartTime);
+ .in(CollUtil.isNotEmpty(transientParam.getEventType()), RmpEventDetailPO::getAdvanceType, transientParam.getEventType());
+
+
+ if(StrUtil.isNotBlank(transientParam.getOrderBy())){
+ if(transientParam.getSortBy().equals("start_time")){
+ wrapper.orderBy(true,transientParam.getOrderBy().equals("asc"),RmpEventDetailPO::getStartTime);
+ }else if(transientParam.getSortBy().equals("feature_amplitude")){
+ wrapper.orderBy(true,transientParam.getOrderBy().equals("asc"),RmpEventDetailPO::getFeatureAmplitude);
+ }else if(transientParam.getSortBy().equals("firstMs")){
+ wrapper.orderBy(true,transientParam.getOrderBy().equals("asc"),RmpEventDetailPO::getFirstMs);
+ }else if(transientParam.getSortBy().equals("duration")){
+ wrapper.orderBy(true,transientParam.getOrderBy().equals("asc"),RmpEventDetailPO::getDuration);
+ }
+ }else {
+ wrapper.orderByDesc(RmpEventDetailPO::getStartTime);
+ }
+
//暂态幅值
if (Objects.nonNull(transientParam.getEventValueMin())) {
wrapper.ge(RmpEventDetailPO::getFeatureAmplitude, transientParam.getEventValueMin());
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/ReportSearchParam.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/ReportSearchParam.java
index ada22d759..3e03eb773 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/ReportSearchParam.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/param/ReportSearchParam.java
@@ -36,4 +36,7 @@ public class ReportSearchParam {
//目前用于区分不同系统资源,null默认 1.无线系统,配合cs-device
private Integer resourceType;
+ //浙江无线报表特殊标识 null为通用报表 1.浙江无线报表
+ private Integer customType;
+
}
diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ExcelRptTemp.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ExcelRptTemp.java
index 5afdfaceb..fc388204a 100644
--- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ExcelRptTemp.java
+++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ExcelRptTemp.java
@@ -32,4 +32,6 @@ public class ExcelRptTemp extends BaseEntity {
private String reportForm;
+ private Integer sort;
+
}
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/CustomReportController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/CustomReportController.java
index bee939d66..a09fd8e48 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/CustomReportController.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/CustomReportController.java
@@ -266,4 +266,6 @@ public class CustomReportController extends BaseController {
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe);
}
+
+
}
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ExcelRptTempMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ExcelRptTempMapper.xml
index bb0a0bc59..78f59a82f 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ExcelRptTempMapper.xml
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ExcelRptTempMapper.xml
@@ -42,19 +42,21 @@
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/CustomReportService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/CustomReportService.java
index 815d5ea6d..2214dda4e 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/CustomReportService.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/CustomReportService.java
@@ -118,4 +118,7 @@ public interface CustomReportService {
List getTemplateByDept(String id);
void viewCustomReportTemplateById(String id, HttpServletResponse response);
+
+
+
}
diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java
index 6f069e95c..f28021fb1 100644
--- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java
+++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java
@@ -1,8 +1,11 @@
package com.njcn.harmonic.service.impl;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.io.IoUtil;
+import cn.hutool.core.text.StrBuilder;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
@@ -13,6 +16,8 @@ import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.utils.FileUtil;
import com.njcn.csdevice.api.CsCommTerminalFeignClient;
+import com.njcn.csdevice.api.WlRecordFeignClient;
+import com.njcn.csdevice.pojo.po.WlRecord;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.pq.api.DeptLineFeignClient;
import com.njcn.device.pq.api.DeviceUnitClient;
@@ -62,10 +67,12 @@ import sun.reflect.generics.tree.Tree;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -103,6 +110,8 @@ public class CustomReportServiceImpl implements CustomReportService {
private final CsCommTerminalFeignClient csCommTerminalFeignClient;
+ private final WlRecordFeignClient wlRecordFeignClient;
+
@Override
public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) {
checkName(reportTemplateParam, false);
@@ -206,6 +215,7 @@ public class CustomReportServiceImpl implements CustomReportService {
}
+
@Override
public List getTemplateList(ReportSearchParam reportSearchParam) {
return excelRptTempMapper.getReportTemplateList(reportSearchParam);
@@ -241,10 +251,18 @@ public class CustomReportServiceImpl implements CustomReportService {
if (Objects.isNull(excelRptTemp)) {
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE);
}
- analyzeReport(reportSearchParam, excelRptTemp, response);
+ if(Objects.isNull(reportSearchParam.getCustomType())){
+ //通用报表
+ analyzeReport(reportSearchParam, excelRptTemp, response);
+ }else {
+ //浙江无线报表
+ analyzeReportZhejiang(reportSearchParam, excelRptTemp, response);
+ }
}
+
+
@Override
public List reportChooseTree() {
DictData dic = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.CS_DATA_TYPE.getName(), DicDataEnum.EPD.getName()).getData();
@@ -428,10 +446,10 @@ public class CustomReportServiceImpl implements CustomReportService {
*/
private Map unitMap(ReportSearchParam reportSearchParam) {
PqsDeviceUnit deviceUnit;
- if(Objects.isNull(reportSearchParam.getResourceType())){
+ if (Objects.isNull(reportSearchParam.getResourceType())) {
deviceUnit = commTerminalGeneralClient.lineUnitDetail(reportSearchParam.getLineId()).getData();
- }else {
- deviceUnit = csCommTerminalFeignClient.lineUnitDetail(reportSearchParam.getLineId()).getData();
+ } else {
+ deviceUnit = csCommTerminalFeignClient.lineUnitDetail(reportSearchParam.getLineId()).getData();
}
List dictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEVICE_UNIT.getCode()).getData();
Map unit = new HashMap<>();
@@ -657,27 +675,21 @@ public class CustomReportServiceImpl implements CustomReportService {
//处理指标是否合格
- reportLimitList = reportLimitList.stream()
- .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ReportTemplateDTO::getItemName))), ArrayList::new));
-
+ reportLimitList = new LinkedHashSet<>(reportLimitList).stream().sorted(Comparator.comparing(ReportTemplateDTO::getItemName)).collect(Collectors.toList());
Map limitMap = overLimitDeal(reportLimitList, reportSearchParam);
//存放限值指标的map
Map limitTargetMapX = reportLimitList.stream().collect(Collectors.toMap(ReportTemplateDTO::getItemName, Function.identity()));
List endList = new ArrayList<>();
if (CollUtil.isNotEmpty(reportTemplateDTOList)) {
-
//开始组织sql
- reportTemplateDTOList = reportTemplateDTOList.stream()
- .collect(Collectors.collectingAndThen(Collectors.toCollection(
- () -> new TreeSet<>(Comparator.comparing(ReportTemplateDTO::getItemName))), ArrayList::new));
-
+ reportTemplateDTOList = new LinkedHashSet<>(reportTemplateDTOList).stream().sorted(Comparator.comparing(ReportTemplateDTO::getItemName)).collect(Collectors.toList());
Map> classMap = reportTemplateDTOList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getResourceId));
+ //定义存放越限指标的map
Map assNoPassMap = new HashMap<>();
long deal = System.currentTimeMillis();
classMap.forEach((classKey, templateValue) -> {
Map> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod));
-
//avg.max,min,cp95
valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> {
@@ -699,28 +711,8 @@ public class CustomReportServiceImpl implements CustomReportService {
});
- //处理合格率
- assNoPassMap.forEach((key, val) -> {
- limitTargetMapX.remove(key);
- if ("Voltage_Dev".equals(val.getTemplateName()) || "Freq_Dev".equals(val.getTemplateName())) {
- val.setValue("±" + val.getValue());
- }
- if (val.getOverLimitFlag() == 1) {
- val.setValue("不合格 (" + val.getValue() + ")");
- } else {
- val.setValue("合格 (" + val.getValue() + ")");
- }
- endList.add(val);
- });
-
- limitTargetMapX.forEach((key, val) -> {
- if (Objects.isNull(val.getOverLimitFlag())) {
- val.setValue("/");
- } else {
- val.setValue("合格");
- }
- endList.add(val);
- });
+ //处理指标最终判定合格还是不合格
+ dealTargetResult(assNoPassMap,limitTargetMapX,endList);
long dealEnd = System.currentTimeMillis();
System.out.println("模板解析时间:" + (temEnd - begin) / 1000 + "S");
@@ -744,7 +736,6 @@ public class CustomReportServiceImpl implements CustomReportService {
//2、把itemName的value赋给v和m
-
jsonArray.forEach(item -> {
JSONObject jsonObject = (JSONObject) item;
JSONArray itemArr = (JSONArray) jsonObject.get("celldata");
@@ -958,6 +949,506 @@ public class CustomReportServiceImpl implements CustomReportService {
}
}
+
+ private void analyzeReportZhejiang(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp, HttpServletResponse response) {
+
+ //指标
+ List reportTemplateDTOList = new ArrayList<>();
+ //限值
+ List reportLimitList = new ArrayList<>();
+ //台账
+ List terminalList = new ArrayList<>();
+ JSONArray jsonArray;
+ try (InputStream fileStream = fileStorageUtil.getFileStream(excelRptTemp.getContent())) {
+ jsonArray = new JSONArray(new JSONTokener(fileStream, new JSONConfig()));
+ parseTemplateZhejiang(jsonArray, reportTemplateDTOList, reportLimitList, terminalList);
+ } catch (Exception e) {
+ throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
+ }
+
+
+ long temEnd = System.currentTimeMillis();
+
+
+ //处理指标是否合格
+ reportLimitList = new LinkedHashSet<>(reportLimitList)
+ .stream()
+ .sorted(Comparator.comparing(ReportTemplateDTO::getItemName))
+ .collect(Collectors.toList());
+
+ Map limitMap = overLimitDeal(reportLimitList, reportSearchParam);
+ //存放限值指标的map
+ Map limitTargetMapX = reportLimitList.stream().collect(Collectors.toMap(ReportTemplateDTO::getItemName, Function.identity()));
+
+ List endList = new ArrayList<>();
+ if (CollUtil.isNotEmpty(reportTemplateDTOList)) {
+
+ //组装最后监测点条件
+ List wlRecordList = wlRecordFeignClient.getWlAssByWlId(reportSearchParam.getLineId()).getData();
+ if (CollUtil.isEmpty(wlRecordList)) {
+ throw new BusinessException("当前测试项无测试数据");
+ }
+
+ //开始组织sql
+ reportTemplateDTOList = new LinkedHashSet<>(reportTemplateDTOList)
+ .stream()
+ .sorted(Comparator.comparing(ReportTemplateDTO::getItemName))
+ .collect(Collectors.toList());
+
+
+ Map> classMap = reportTemplateDTOList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getResourceId));
+ Map assNoPassMap = new HashMap<>();
+ long deal = System.currentTimeMillis();
+ classMap.forEach((classKey, templateValue) -> {
+ Map> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod));
+
+ //avg.max,min,cp95
+ valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> {
+
+ //相别分组
+ Map> phaseMap = valueTypeVal.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getPhase));
+ phaseMap.forEach((phaseKey, phaseVal) -> {
+ StringBuilder sql = new StringBuilder(InfluxDbSqlConstant.SELECT);
+ if (InfluxDbSqlConstant.MAX.equalsIgnoreCase(valueTypeKey)) {
+ assSqlZhejiang(phaseVal, sql, endList, InfluxDbSqlConstant.MAX, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap, wlRecordList);
+ } else if (InfluxDbSqlConstant.MIN.equalsIgnoreCase(valueTypeKey)) {
+ assSqlZhejiang(phaseVal, sql, endList, InfluxDbSqlConstant.MIN, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap, wlRecordList);
+ } else if (InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(valueTypeKey)) {
+ assSqlZhejiang(phaseVal, sql, endList, InfluxDbSqlConstant.AVG, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap, wlRecordList);
+ } else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) {
+ assSqlZhejiang(phaseVal, sql, endList, InfluxDbSqlConstant.PERCENTILE, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap, wlRecordList);
+ }
+ });
+ });
+
+ });
+
+ //处理指标最终判定合格还是不合格
+ dealTargetResult(assNoPassMap,limitTargetMapX,endList);
+
+ long dealEnd = System.currentTimeMillis();
+ System.out.println("查询数据库花费时间" + (dealEnd - deal) / 1000 + "S");
+ }
+
+
+ if (CollUtil.isNotEmpty(endList)) {
+ long jie = System.currentTimeMillis();
+ //数据单位信息
+ Map unit = unitMap(reportSearchParam);
+ //进行反向赋值到模板
+ //1、根据itemName分组
+ Map> assMap = endList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getItemName));
+ //处理台账信息
+ /*Map terminalMap = null;
+ if (CollUtil.isNotEmpty(terminalList)) {
+ terminalMap = commTerminalGeneralClient.getCustomDetailByLineId(reportSearchParam.getLineId()).getData();
+ }
+ Map finalTerminalMap = terminalMap;*/
+
+
+ //2、把itemName的value赋给v和m
+ dealExcelResult(jsonArray,assMap,unit);
+ long jieEnd = System.currentTimeMillis();
+
+ System.out.println("组装信息耗时 " + (jieEnd - jie) / 1000 + "S");
+ }
+
+
+ long daochu = System.currentTimeMillis();
+ //导出自定义报表
+ downReport(jsonArray, response);
+ long daochuEnd = System.currentTimeMillis();
+ System.out.println("导出耗时 " + (daochuEnd - daochu) / 1000 + "S");
+
+ }
+
+
+ private void assSqlZhejiang(List data, StringBuilder sql, List endList, String method, ReportSearchParam reportSearchParam, Map limitMap, Map overLimitMap, Map assNoPassMap, List wlRecordList) {
+ //sql拼接示例:select MAX(IHA2) as IHA2 from power_quality_data where Phase = 'A' and LineId='1324564568' and Stat_Method='max' tz('Asia/Shanghai')
+ //cp95函数特殊处理 PERCENTILE(field_key, N)
+ if (InfluxDbSqlConstant.PERCENTILE.equals(method)) {
+ for (int i = 0; i < data.size(); i++) {
+ if (i == data.size() - 1) {
+ sql.append(InfluxDbSqlConstant.PERCENTILE)
+ .append(InfluxDbSqlConstant.LBK)
+ .append(data.get(i).getTemplateName()).append(InfluxDbSqlConstant.NUM_95)
+ .append(InfluxDbSqlConstant.RBK)
+ .append(InfluxDbSqlConstant.AS).append(InfluxDbSqlConstant.DQM)
+ .append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM);
+ } else {
+ sql.append(InfluxDbSqlConstant.PERCENTILE)
+ .append(InfluxDbSqlConstant.LBK)
+ .append(data.get(i).getTemplateName()).append(InfluxDbSqlConstant.NUM_95)
+ .append(InfluxDbSqlConstant.RBK)
+ .append(InfluxDbSqlConstant.AS).append(InfluxDbSqlConstant.DQM)
+ .append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM).append(StrUtil.COMMA);
+ }
+ }
+ } else {
+ for (int i = 0; i < data.size(); i++) {
+ if (i == data.size() - 1) {
+ sql.append(method)
+ .append(InfluxDbSqlConstant.LBK)
+ .append(data.get(i).getTemplateName())
+ .append(InfluxDbSqlConstant.RBK)
+ .append(InfluxDbSqlConstant.AS).append(InfluxDbSqlConstant.DQM)
+ .append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM);
+ } else {
+ sql.append(method)
+ .append(InfluxDbSqlConstant.LBK)
+ .append(data.get(i).getTemplateName())
+ .append(InfluxDbSqlConstant.RBK)
+ .append(InfluxDbSqlConstant.AS).append(InfluxDbSqlConstant.DQM)
+ .append(data.get(i).getItemName()).append(InfluxDbSqlConstant.DQM).append(StrUtil.COMMA);
+ }
+ }
+
+ }
+
+ sql.append(StrPool.C_SPACE).append(InfluxDbSqlConstant.FROM).append("pqd_data");
+ //相别特殊处理
+ sql.append(InfluxDbSqlConstant.WHERE)
+ .append(InfluxDBTableConstant.PHASIC_TYPE)
+ .append(InfluxDbSqlConstant.EQ)
+ .append(InfluxDbSqlConstant.QM)
+ .append(data.get(0).getPhase())
+ .append(InfluxDbSqlConstant.QM);
+
+ //data_flicker、data_fluc、data_plt 无 value_type
+ sql.append(InfluxDbSqlConstant.AND)
+ .append(InfluxDBTableConstant.VALUE_TYPE)
+ .append(InfluxDbSqlConstant.EQ)
+ .append(InfluxDbSqlConstant.QM)
+ .append(data.get(0).getStatMethod().toLowerCase())
+ .append(InfluxDbSqlConstant.QM);
+
+ List