From 3377da4ae38a428c07a7d4d985a3f71323da9c23 Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Tue, 26 Nov 2024 19:49:48 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=88=86=E9=92=9F=E6=95=B0=E6=8D=AE=E8=BD=AC?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E6=95=B0=E6=8D=AEmysql=E6=97=A5=E8=A1=A8?= =?UTF-8?q?=E4=B9=8B=E5=A4=96=E6=B7=BB=E5=8A=A0inflxudb=E6=97=A5=E8=A1=A8?= =?UTF-8?q?=202.=E6=8A=A5=E8=A1=A8=E9=BB=98=E8=AE=A4=E6=9F=A5=E8=AF=A2infl?= =?UTF-8?q?uxdb=E6=97=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => report}/CustomReportController.java | 31 +- .../service/impl/CustomReportServiceImpl.java | 1507 +++++++++-------- .../mysql/Impl/line/DayDataServiceImpl.java | 605 +++---- 3 files changed, 1162 insertions(+), 981 deletions(-) rename pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/{ => report}/CustomReportController.java (99%) 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/report/CustomReportController.java similarity index 99% rename from pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/CustomReportController.java rename to pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/report/CustomReportController.java index a09fd8e48..6df2034bd 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/report/CustomReportController.java @@ -1,4 +1,4 @@ -package com.njcn.harmonic.controller; +package com.njcn.harmonic.controller.report; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.njcn.common.pojo.annotation.OperateInfo; @@ -42,6 +42,21 @@ public class CustomReportController extends BaseController { private final CustomReportService customReportService; + + /** + * 替换报表数据并返回 + * @author qijian + * @date 2022/10/19 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getCustomReport") + @ApiOperation("获取报表") + @ApiImplicitParam(name = "reportSearchParam", value = "查询体", required = false) + public void getCustomReport(@RequestBody ReportSearchParam reportSearchParam, HttpServletResponse response) { + customReportService.getCustomReport(reportSearchParam,response); + } + + /** * 新增自定义报表模板 * @author cdf @@ -222,19 +237,7 @@ public class CustomReportController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); } - /** - * 替换报表数据并返回 - * @author qijian - * @date 2022/10/19 - */ - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/getCustomReport") - @ApiOperation("获取报表") - @ApiImplicitParam(name = "reportSearchParam", value = "查询体", required = false) - public void getCustomReport(@RequestBody ReportSearchParam reportSearchParam, HttpServletResponse response) { - String methodDescribe = getMethodDescribe("getCustomReport"); - customReportService.getCustomReport(reportSearchParam,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 02dc46a3e..a28ff3a9f 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 @@ -119,6 +119,22 @@ public class CustomReportServiceImpl implements CustomReportService { private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() + 1); + @Override + public void getCustomReport(ReportSearchParam reportSearchParam, HttpServletResponse response) { + ExcelRptTemp excelRptTemp = excelRptTempMapper.selectById(reportSearchParam.getTempId()); + if (Objects.isNull(excelRptTemp)) { + throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE); + } + if (Objects.isNull(reportSearchParam.getCustomType())) { + //通用报表 + analyzeReport(reportSearchParam, excelRptTemp, response); + } else { + //浙江无线报表 + analyzeReportZhejiang(reportSearchParam, excelRptTemp, response); + } + } + + @Override public boolean addCustomReportTemplate(ReportTemplateParam reportTemplateParam) { checkName(reportTemplateParam, false); @@ -252,22 +268,6 @@ public class CustomReportServiceImpl implements CustomReportService { } - @Override - public void getCustomReport(ReportSearchParam reportSearchParam, HttpServletResponse response) { - ExcelRptTemp excelRptTemp = excelRptTempMapper.selectById(reportSearchParam.getTempId()); - if (Objects.isNull(excelRptTemp)) { - throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE); - } - 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(); @@ -514,6 +514,163 @@ public class CustomReportServiceImpl implements CustomReportService { * @param assNoPassMap 用于存储不合格的指标 * @date 2023/10/20 */ + private void assSqlNew(List data, StringBuilder sql, List endList, String method, ReportSearchParam reportSearchParam, Map limitMap, Map overLimitMap, Map assNoPassMap) { + //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.CP95.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); + String temS = data.get(0).getResourceId().replace("r_stat_data", "day").replace("_d",""); + sql.append(InfluxDbSqlConstant.FROM).append(temS); + + sql.append(InfluxDbSqlConstant.WHERE) + .append(InfluxDBTableConstant.LINE_ID) + .append(InfluxDbSqlConstant.EQ) + .append(InfluxDbSqlConstant.QM) + .append(reportSearchParam.getLineId()) + .append(InfluxDbSqlConstant.QM); + //相别特殊处理 + if (!InfluxDBTableConstant.NO_PHASE.equals(data.get(0).getPhase())) { + sql.append(InfluxDbSqlConstant.AND) + .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 + if (!InfluxDBTableConstant.DATA_FLICKER.equals(data.get(0).getClassId()) && !InfluxDBTableConstant.DATA_FLUC.equals(data.get(0).getClassId()) && !InfluxDBTableConstant.DATA_PLT.equals(data.get(0).getClassId())) { + sql.append(InfluxDbSqlConstant.AND) + .append(InfluxDBTableConstant.VALUE_TYPE) + .append(InfluxDbSqlConstant.EQ) + .append(InfluxDbSqlConstant.QM) + .append(data.get(0).getStatMethod()) + .append(InfluxDbSqlConstant.QM); + } + + //频率和频率偏差仅统计T相 + if (data.get(0).getTemplateName().equals("freq_dev") || data.get(0).getTemplateName().equals("freq")) { + sql.append(InfluxDbSqlConstant.AND) + .append(InfluxDBTableConstant.PHASIC_TYPE) + .append(InfluxDbSqlConstant.EQ) + .append(InfluxDbSqlConstant.QM) + .append(InfluxDBTableConstant.PHASE_TYPE_T) + .append(InfluxDbSqlConstant.QM); + } + //时间范围处理 + sql.append(InfluxDbSqlConstant.AND) + .append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.GE).append(InfluxDbSqlConstant.QM).append(reportSearchParam.getStartTime()).append(InfluxDbSqlConstant.START_TIME).append(InfluxDbSqlConstant.QM) + .append(InfluxDbSqlConstant.AND) + .append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.LT).append(InfluxDbSqlConstant.QM).append(reportSearchParam.getEndTime()).append(InfluxDbSqlConstant.END_TIME).append(InfluxDbSqlConstant.QM); + + sql.append(InfluxDbSqlConstant.TZ); + + long a = System.currentTimeMillis(); + List> mapList = influxDbUtils.getMapResult(sql.toString()); + long b = System.currentTimeMillis(); + System.out.println(sql); + System.out.println("当前sql执行了:"+(b-a)+"ms"); + if (CollUtil.isEmpty(mapList)) { + data = data.stream().peek(item -> item.setValue("/")).collect(Collectors.toList()); + } else { + Map map = mapList.get(0); + for (ReportTemplateDTO item : data) { + if (Objects.nonNull(map) && map.containsKey(item.getItemName())) { + double v = Double.parseDouble(map.get(item.getItemName()).toString()); + item.setValue(String.format("%.3f", v)); + + if (overLimitMap.containsKey(item.getLimitName())) { + Float tagVal = overLimitMap.get(item.getLimitName()); + if (v > tagVal) { + item.setOverLimitFlag(1); + } else { + item.setOverLimitFlag(0); + } + } + + //判断是否越限 + if (limitMap.size() != 0) { + String key = item.getLimitName() + "#" + item.getStatMethod().toLowerCase() + "#pq_overlimit"; + if (limitMap.containsKey(key)) { + ReportTemplateDTO tem = limitMap.get(key); + double limitVal = Double.parseDouble(tem.getValue()); + if (v > limitVal) { + tem.setOverLimitFlag(1); + assNoPassMap.put(key, tem); + } else if (!assNoPassMap.containsKey(key)) { + tem.setOverLimitFlag(0); + assNoPassMap.put(key, tem); + } + } + } + } else { + item.setValue("/"); + } + } + } + endList.addAll(data); + } + + + + + /* + */ +/** + * @param data 同类型的cell模板 + * @param sql 单个cell模板 + * @param endList 用于返回最终组装好的数据,类似data + * @param limitMap 指标是否合格模板 + * @param assNoPassMap 用于存储不合格的指标 + * @date 2023/10/20 + *//* + private void assSqlNew(List data, StringBuilder sql, List endList, String method, ReportSearchParam reportSearchParam, Map limitMap, Map overLimitMap, Map assNoPassMap) { //sql拼接示例:select MAX(IHA2) as IHA2 from power_quality_data where Phase = 'A' and LineId='1324564568' and Stat_Method='max' tz('Asia/Shanghai') if (InfluxDbSqlConstant.CP95.equals(method)) { @@ -650,6 +807,7 @@ public class CustomReportServiceImpl implements CustomReportService { endList.addAll(data); } +*/ /** * 处理 @@ -698,34 +856,31 @@ public class CustomReportServiceImpl implements CustomReportService { long deal = System.currentTimeMillis(); - - classMap.forEach((classKey, templateValue) -> { - - Map> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod)); + classMap.forEach((classKey, templateValue) -> { + Map> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod)); + futures.add(executorService.submit(() -> { //avg.max,min,cp95 valueTypeMap.forEach((valueTypeKey, valueTypeVal) -> { - //相别分组 Map> phaseMap = valueTypeVal.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getPhase)); phaseMap.forEach((phaseKey, phaseVal) -> { - futures.add(executorService.submit(() -> { + StringBuilder sql = new StringBuilder(InfluxDbSqlConstant.SELECT); if (InfluxDbSqlConstant.MAX.equalsIgnoreCase(valueTypeKey)) { assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.MAX, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap); } else if (InfluxDbSqlConstant.MIN.equalsIgnoreCase(valueTypeKey)) { assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.MIN, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap); } else if (InfluxDbSqlConstant.AVG_WEB.equalsIgnoreCase(valueTypeKey)) { - assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.AVG_WEB, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap); + assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.AVG, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap); } else if (InfluxDbSqlConstant.CP95.equalsIgnoreCase(valueTypeKey)) { assSqlNew(phaseVal, sql, endList, InfluxDbSqlConstant.CP95, reportSearchParam, limitTargetMapX, limitMap, assNoPassMap); } - })); + }); - }); + })); - - }); + }); // 等待所有任务完成 @@ -738,549 +893,31 @@ public class CustomReportServiceImpl implements CustomReportService { } - //处理指标最终判定合格还是不合格 - dealTargetResult(assNoPassMap, limitTargetMapX, endList); - - long dealEnd = System.currentTimeMillis(); - System.out.println("模板解析时间:" + (temEnd - begin) / 1000 + "S"); - 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 - jsonArray.forEach(item -> { - JSONObject jsonObject = (JSONObject) item; - JSONArray itemArr = (JSONArray) jsonObject.get("celldata"); - itemArr.forEach((it) -> { - if (Objects.nonNull(it) && !"null".equals(it.toString())) { - //获取到1列 - JSONObject data = (JSONObject) it; - JSONObject son = (JSONObject) data.get("v"); - if (son.containsKey("v")) { - String v = son.getStr("v"); - //数据格式:$HA[_25]#B#max#classId$ 或 $HA[_25]#max#classId$ - if (v.charAt(0) == '$' && v.contains("#")) { - String str = ""; - List rDto = assMap.get(v.replace("$", "")); - if (Objects.nonNull(rDto)) { - str = rDto.get(0).getValue(); - //没有值,赋"/" - if (StringUtils.isBlank(str)) { - str = "/"; - } - son.set("v", str); - if (Objects.nonNull(rDto.get(0).getOverLimitFlag()) && rDto.get(0).getOverLimitFlag() == 1) { - son.set("fc", "#990000"); - } - } - } else if (v.charAt(0) == '%' && v.contains("#")) { - //指标合格情况 - String str = ""; - List rDto = assMap.get(v.replace("%", "")); - if (Objects.nonNull(rDto)) { - str = rDto.get(0).getValue(); - //没有值,赋"/" - if (StringUtils.isBlank(str)) { - str = "/"; - } - son.set("v", str); - if ("不合格".equals(str)) { - son.set("fc", "#990000"); - } - } - } else if (v.charAt(0) == '&') { - //结论 - String tem = v.replace("&", ""); - if (Objects.nonNull(finalTerminalMap)) { - if ("statis_time".equals(tem)) { - son.set("v", reportSearchParam.getStartTime() + InfluxDbSqlConstant.START_TIME + "_" + reportSearchParam.getEndTime() + InfluxDbSqlConstant.END_TIME); - } else { - //台账信息 - son.set("v", finalTerminalMap.getOrDefault(tem, "/")); - } - } - } - //解决数据单位问题 @指标#类型@ - if (v.charAt(0) == '@' && v.contains("#")) { - String replace = v.replace("@", ""); - son.set("v", unit.getOrDefault(replace, "/")); - - } - } - } - }); - }); - 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"); + //处理指标最终判定合格还是不合格 + dealTargetResult(assNoPassMap, limitTargetMapX, endList); + long dealEnd = System.currentTimeMillis(); + System.out.println("模板解析时间:" + (temEnd - begin) / 1000 + "S"); + System.out.println("查询数据库花费时间" + (dealEnd - deal) / 1000 + "S"); } - /** - * 解析模板 - * - * @author cdf - * @date 2023/10/20 - */ - private void parseTemplate (JSONArray - jsonArray, List < ReportTemplateDTO > reportTemplateDTOList, List < ReportTemplateDTO > reportLimitList, List < ReportTemplateDTO > terminalList) - { - try { - //通过文件服务器获取 - - jsonArray.forEach(item -> { - JSONObject jsonObject = (JSONObject) item; - JSONArray itemArr = (JSONArray) jsonObject.get("celldata"); - itemArr.forEach((it) -> { - if (Objects.nonNull(it) && !"null".equals(it.toString())) { - //获取到1列 - JSONObject data = (JSONObject) it; - JSONObject son = (JSONObject) data.get("v"); - if (son.containsKey("v")) { - String v = son.getStr("v"); - //数据格式:$HA[_25]#B#max#classId$ 或 $HA[_25]#max#classId$ - if (v.charAt(0) == '$' && v.contains("#")) { - //剔除前后$ - v = v.replace("$", ""); - //封装ReportTemplateDTO - ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); - reportTemplateDTO.setItemName(v); - //根据#分割数据 - String[] vItem = v.split("#"); - if (vItem.length == 5) { - //$HA[_25]#B#max#classId$ - reportTemplateDTO.setTemplateName(vItem[0]); - reportTemplateDTO.setPhase(vItem[1].substring(0, 1)); - reportTemplateDTO.setStatMethod(vItem[2].toUpperCase()); - reportTemplateDTO.setResourceId(vItem[3]); - reportTemplateDTO.setLimitName(vItem[4]); - } else if (vItem.length == 4) { - //$HA[_25]#max#classId$ - reportTemplateDTO.setTemplateName(vItem[0]); - reportTemplateDTO.setPhase("M"); - reportTemplateDTO.setStatMethod(vItem[1].toUpperCase()); - reportTemplateDTO.setResourceId(vItem[2]); - reportTemplateDTO.setLimitName(vItem[3]); - } - - reportTemplateDTOList.add(reportTemplateDTO); - } else if (v.charAt(0) == '%' && v.contains("#")) { - //封装ReportTemplateDTO - ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); - - v = v.replace("%", ""); - reportTemplateDTO.setItemName(v); - //根据#分割数据 - String[] vItem = v.split("#"); - if (vItem.length == 3) { - //$HA[_25]#B#max#classId$ - reportTemplateDTO.setTemplateName(vItem[0]); - reportTemplateDTO.setStatMethod(vItem[1].toUpperCase()); - reportTemplateDTO.setResourceId(vItem[2]); - } - reportLimitList.add(reportTemplateDTO); - } else if (v.charAt(0) == '&') { - //封装ReportTemplateDTO - ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); - v = v.replace("&", ""); - reportTemplateDTO.setItemName(v); - reportTemplateDTO.setTemplateName(v); - terminalList.add(reportTemplateDTO); - } - } - } - }); - }); - } catch (Exception e) { - throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); - } - } - - - /** - * 获取测点限值 - * - * @author cdf - * @date 2023/10/23 - */ - private Map overLimitDeal (List < ReportTemplateDTO > reportLimitList, ReportSearchParam - reportSearchParam){ - Map limitMap = new HashMap<>(); - if (CollUtil.isNotEmpty(reportLimitList)) { - StringBuilder sql = new StringBuilder("select "); - for (int i = 0; i < reportLimitList.size(); i++) { - if (i == reportLimitList.size() - 1) { - sql.append(reportLimitList.get(i).getTemplateName()); - } else { - sql.append(reportLimitList.get(i).getTemplateName()).append(","); - } - } - sql.append(" from ").append(reportLimitList.get(0).getResourceId()).append(" where id ='").append(reportSearchParam.getLineId()).append("'"); - limitMap = excelRptTempMapper.dynamicSqlMap(sql.toString()); - if (Objects.isNull(limitMap)) { - throw new BusinessException("当前测点限值缺失!"); - } - - for (ReportTemplateDTO item : reportLimitList) { - if (limitMap.containsKey(item.getTemplateName())) { - item.setValue(limitMap.get(item.getTemplateName()).toString()); - } - } - } - return limitMap; - } - - /** - * 报告下载 - */ - private void downReport (JSONArray jsonArray, HttpServletResponse response){ - InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8); - //String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json")); - - response.setContentType("application/octet-stream;charset=UTF-8"); - response.setHeader("Content-Disposition", "attachment;filename=" + "aa"); - //入库前判断是否有了,有了就更新 - - OutputStream toClient = null; - try { - toClient = new BufferedOutputStream(response.getOutputStream()); - //通过IOUtils对接输入输出流,实现文件下载 - IOUtils.copy(reportStream, toClient); - toClient.flush(); - } catch (Exception e) { - throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_STREAM_ERROR); - } finally { - IOUtils.closeQuietly(reportStream); - IOUtils.closeQuietly(toClient); - } - } - - - 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); - } - - //处理指标是否合格 - 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(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;*/ + 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 < ReportTemplateDTO > data, StringBuilder - sql, List < ReportTemplateDTO > endList, String method, ReportSearchParam - reportSearchParam, Map < String, ReportTemplateDTO > limitMap, Map < String, Float > overLimitMap, Map < String, ReportTemplateDTO > assNoPassMap, List < WlRecord > 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> allList = new ArrayList<>(); - for (WlRecord wlRecord : wlRecordList) { - StringBuilder temSql = new StringBuilder(sql); - String start = LocalDateTimeUtil.format(wlRecord.getStartTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)); - String end = LocalDateTimeUtil.format(wlRecord.getEndTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)); - temSql.append(" and line_id = '").append(wlRecord.getLineId()).append(InfluxDbSqlConstant.QM) - .append(InfluxDbSqlConstant.AND) - .append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.GE).append(InfluxDbSqlConstant.QM).append(start).append(InfluxDbSqlConstant.QM) - .append(InfluxDbSqlConstant.AND) - .append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.LT).append(InfluxDbSqlConstant.QM).append(end).append(InfluxDbSqlConstant.QM) - .append(InfluxDbSqlConstant.TZ); - - List> temMapList = influxDbUtils.getMapResult(temSql.toString()); - if (CollUtil.isNotEmpty(temMapList)) { - allList.add(temMapList.get(0)); - } - } - - Map resultMap = dealResultMap(method, allList); - if (resultMap.isEmpty()) { - data = data.stream().peek(item -> item.setValue("/")).collect(Collectors.toList()); - } else { - for (ReportTemplateDTO item : data) { - if (resultMap.containsKey(item.getItemName())) { - double v = (Double) resultMap.get(item.getItemName()); - item.setValue(String.format("%.3f", v)); - - - if (overLimitMap.containsKey(item.getLimitName())) { - Float tagVal = overLimitMap.get(item.getLimitName()); - if (v > tagVal) { - item.setOverLimitFlag(1); - } else { - item.setOverLimitFlag(0); - } - } - - //结论判断是否越限 - String key = item.getLimitName() + "#" + item.getStatMethod().toLowerCase() + "#pq_overlimit"; - if (limitMap.containsKey(key)) { - ReportTemplateDTO tem = limitMap.get(key); - double limitVal = Double.parseDouble(tem.getValue()); - if (v > limitVal) { - tem.setOverLimitFlag(1); - tem.setValue(tem.getValue()); - assNoPassMap.put(key, tem); - } else if (!assNoPassMap.containsKey(key)) { - tem.setOverLimitFlag(0); - tem.setValue(tem.getValue()); - assNoPassMap.put(key, tem); - } - } - } else { - item.setValue("/"); - } - } - } - - endList.addAll(data); - } - - - private Map dealResultMap (String method, List < Map < String, Object >> allList){ - Map resultMap = new HashMap<>(); - // 遍历列表中的每个Map - if (method.equals(InfluxDbSqlConstant.MIN)) { - for (Map map : allList) { - // 遍历当前Map的键值对 - for (Map.Entry entry : map.entrySet()) { - String key = entry.getKey(); - if (!key.equals("time")) { - double value = (double) entry.getValue(); - // 检查结果Map中是否已包含该键 - if (!resultMap.containsKey(key) || (double) resultMap.get(key) > value) { - // 如果不包含,或当前值更大,则更新结果Map - resultMap.put(key, value); - } - } - } - } - } else if (method.equals(InfluxDbSqlConstant.MAX) || method.equals(InfluxDbSqlConstant.PERCENTILE)) { - for (Map map : allList) { - // 遍历当前Map的键值对 - for (Map.Entry entry : map.entrySet()) { - String key = entry.getKey(); - if (!key.equals("time")) { - double value = (double) entry.getValue(); - // 检查结果Map中是否已包含该键 - if (!resultMap.containsKey(key) || (double) resultMap.get(key) < value) { - // 如果不包含,或当前值更大,则更新结果Map - resultMap.put(key, value); - } - } - } - } - } else if (method.equals(InfluxDbSqlConstant.AVG)) { - Map sumMap = new HashMap<>(); - Map countMap = new HashMap<>(); - // 遍历列表中的每个Map - for (Map map : allList) { - // 遍历当前Map的键值对 - for (Map.Entry entry : map.entrySet()) { - String key = entry.getKey(); - if (!key.equals("time")) { - double value = (double) entry.getValue(); - - // 更新累计和 - sumMap.put(key, sumMap.getOrDefault(key, 0.0) + value); - // 更新计数 - countMap.put(key, countMap.getOrDefault(key, 0) + 1); - } - } - } - - // 计算平均值并存储到结果Map中 - for (String key : sumMap.keySet()) { - double sum = sumMap.get(key); - int count = countMap.get(key); - double average = BigDecimal.valueOf(sum / count).setScale(3, RoundingMode.HALF_UP).doubleValue(); - resultMap.put(key, average); - } - } - - return resultMap; - } - - - private void dealExcelResult (JSONArray - jsonArray, Map < String, List < ReportTemplateDTO >> assMap, Map < String, String > unit){ + //2、把itemName的value赋给v和m jsonArray.forEach(item -> { JSONObject jsonObject = (JSONObject) item; JSONArray itemArr = (JSONArray) jsonObject.get("celldata"); @@ -1321,7 +958,523 @@ public class CustomReportServiceImpl implements CustomReportService { son.set("fc", "#990000"); } } - } /*else if (v.charAt(0) == '&') { + } else if (v.charAt(0) == '&') { + //结论 + String tem = v.replace("&", ""); + if (Objects.nonNull(finalTerminalMap)) { + if ("statis_time".equals(tem)) { + son.set("v", reportSearchParam.getStartTime() + InfluxDbSqlConstant.START_TIME + "_" + reportSearchParam.getEndTime() + InfluxDbSqlConstant.END_TIME); + } else { + //台账信息 + son.set("v", finalTerminalMap.getOrDefault(tem, "/")); + } + } + } + //解决数据单位问题 @指标#类型@ + if (v.charAt(0) == '@' && v.contains("#")) { + String replace = v.replace("@", ""); + son.set("v", unit.getOrDefault(replace, "/")); + + } + } + } + }); + }); + 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"); + + } + + + /** + * 解析模板 + * + * @author cdf + * @date 2023/10/20 + */ + private void parseTemplate(JSONArray + jsonArray, List reportTemplateDTOList, List reportLimitList, List terminalList) { + try { + //通过文件服务器获取 + + jsonArray.forEach(item -> { + JSONObject jsonObject = (JSONObject) item; + JSONArray itemArr = (JSONArray) jsonObject.get("celldata"); + itemArr.forEach((it) -> { + if (Objects.nonNull(it) && !"null".equals(it.toString())) { + //获取到1列 + JSONObject data = (JSONObject) it; + JSONObject son = (JSONObject) data.get("v"); + if (son.containsKey("v")) { + String v = son.getStr("v"); + //数据格式:$HA[_25]#B#max#classId$ 或 $HA[_25]#max#classId$ + if (v.charAt(0) == '$' && v.contains("#")) { + //剔除前后$ + v = v.replace("$", ""); + //封装ReportTemplateDTO + ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); + reportTemplateDTO.setItemName(v); + //根据#分割数据 + String[] vItem = v.split("#"); + if (vItem.length == 5) { + //$HA[_25]#B#max#classId$ + reportTemplateDTO.setTemplateName(vItem[0]); + reportTemplateDTO.setPhase(vItem[1].substring(0, 1)); + reportTemplateDTO.setStatMethod(vItem[2].toUpperCase()); + reportTemplateDTO.setResourceId(vItem[3]); + reportTemplateDTO.setLimitName(vItem[4]); + } else if (vItem.length == 4) { + //$HA[_25]#max#classId$ + reportTemplateDTO.setTemplateName(vItem[0]); + reportTemplateDTO.setPhase("M"); + reportTemplateDTO.setStatMethod(vItem[1].toUpperCase()); + reportTemplateDTO.setResourceId(vItem[2]); + reportTemplateDTO.setLimitName(vItem[3]); + } + + reportTemplateDTOList.add(reportTemplateDTO); + } else if (v.charAt(0) == '%' && v.contains("#")) { + //封装ReportTemplateDTO + ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); + + v = v.replace("%", ""); + reportTemplateDTO.setItemName(v); + //根据#分割数据 + String[] vItem = v.split("#"); + if (vItem.length == 3) { + //$HA[_25]#B#max#classId$ + reportTemplateDTO.setTemplateName(vItem[0]); + reportTemplateDTO.setStatMethod(vItem[1].toUpperCase()); + reportTemplateDTO.setResourceId(vItem[2]); + } + reportLimitList.add(reportTemplateDTO); + } else if (v.charAt(0) == '&') { + //封装ReportTemplateDTO + ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); + v = v.replace("&", ""); + reportTemplateDTO.setItemName(v); + reportTemplateDTO.setTemplateName(v); + terminalList.add(reportTemplateDTO); + } + } + } + }); + }); + } catch (Exception e) { + throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); + } + } + + + /** + * 获取测点限值 + * + * @author cdf + * @date 2023/10/23 + */ + private Map overLimitDeal(List reportLimitList, ReportSearchParam + reportSearchParam) { + Map limitMap = new HashMap<>(); + if (CollUtil.isNotEmpty(reportLimitList)) { + StringBuilder sql = new StringBuilder("select "); + for (int i = 0; i < reportLimitList.size(); i++) { + if (i == reportLimitList.size() - 1) { + sql.append(reportLimitList.get(i).getTemplateName()); + } else { + sql.append(reportLimitList.get(i).getTemplateName()).append(","); + } + } + sql.append(" from ").append(reportLimitList.get(0).getResourceId()).append(" where id ='").append(reportSearchParam.getLineId()).append("'"); + limitMap = excelRptTempMapper.dynamicSqlMap(sql.toString()); + if (Objects.isNull(limitMap)) { + throw new BusinessException("当前测点限值缺失!"); + } + + for (ReportTemplateDTO item : reportLimitList) { + if (limitMap.containsKey(item.getTemplateName())) { + item.setValue(limitMap.get(item.getTemplateName()).toString()); + } + } + } + return limitMap; + } + + /** + * 报告下载 + */ + private void downReport(JSONArray jsonArray, HttpServletResponse response) { + InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8); + //String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json")); + + response.setContentType("application/octet-stream;charset=UTF-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + "aa"); + //入库前判断是否有了,有了就更新 + + OutputStream toClient = null; + try { + toClient = new BufferedOutputStream(response.getOutputStream()); + //通过IOUtils对接输入输出流,实现文件下载 + IOUtils.copy(reportStream, toClient); + toClient.flush(); + } catch (Exception e) { + throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_STREAM_ERROR); + } finally { + IOUtils.closeQuietly(reportStream); + IOUtils.closeQuietly(toClient); + } + } + + + 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); + } + + //处理指标是否合格 + 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> allList = new ArrayList<>(); + for (WlRecord wlRecord : wlRecordList) { + StringBuilder temSql = new StringBuilder(sql); + String start = LocalDateTimeUtil.format(wlRecord.getStartTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)); + String end = LocalDateTimeUtil.format(wlRecord.getEndTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)); + temSql.append(" and line_id = '").append(wlRecord.getLineId()).append(InfluxDbSqlConstant.QM) + .append(InfluxDbSqlConstant.AND) + .append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.GE).append(InfluxDbSqlConstant.QM).append(start).append(InfluxDbSqlConstant.QM) + .append(InfluxDbSqlConstant.AND) + .append(InfluxDbSqlConstant.TIME).append(InfluxDbSqlConstant.LT).append(InfluxDbSqlConstant.QM).append(end).append(InfluxDbSqlConstant.QM) + .append(InfluxDbSqlConstant.TZ); + + List> temMapList = influxDbUtils.getMapResult(temSql.toString()); + if (CollUtil.isNotEmpty(temMapList)) { + allList.add(temMapList.get(0)); + } + } + + Map resultMap = dealResultMap(method, allList); + if (resultMap.isEmpty()) { + data = data.stream().peek(item -> item.setValue("/")).collect(Collectors.toList()); + } else { + for (ReportTemplateDTO item : data) { + if (resultMap.containsKey(item.getItemName())) { + double v = (Double) resultMap.get(item.getItemName()); + item.setValue(String.format("%.3f", v)); + + + if (overLimitMap.containsKey(item.getLimitName())) { + Float tagVal = overLimitMap.get(item.getLimitName()); + if (v > tagVal) { + item.setOverLimitFlag(1); + } else { + item.setOverLimitFlag(0); + } + } + + //结论判断是否越限 + String key = item.getLimitName() + "#" + item.getStatMethod().toLowerCase() + "#pq_overlimit"; + if (limitMap.containsKey(key)) { + ReportTemplateDTO tem = limitMap.get(key); + double limitVal = Double.parseDouble(tem.getValue()); + if (v > limitVal) { + tem.setOverLimitFlag(1); + tem.setValue(tem.getValue()); + assNoPassMap.put(key, tem); + } else if (!assNoPassMap.containsKey(key)) { + tem.setOverLimitFlag(0); + tem.setValue(tem.getValue()); + assNoPassMap.put(key, tem); + } + } + } else { + item.setValue("/"); + } + } + } + + endList.addAll(data); + } + + + private Map dealResultMap(String method, List> allList) { + Map resultMap = new HashMap<>(); + // 遍历列表中的每个Map + if (method.equals(InfluxDbSqlConstant.MIN)) { + for (Map map : allList) { + // 遍历当前Map的键值对 + for (Map.Entry entry : map.entrySet()) { + String key = entry.getKey(); + if (!key.equals("time")) { + double value = (double) entry.getValue(); + // 检查结果Map中是否已包含该键 + if (!resultMap.containsKey(key) || (double) resultMap.get(key) > value) { + // 如果不包含,或当前值更大,则更新结果Map + resultMap.put(key, value); + } + } + } + } + } else if (method.equals(InfluxDbSqlConstant.MAX) || method.equals(InfluxDbSqlConstant.PERCENTILE)) { + for (Map map : allList) { + // 遍历当前Map的键值对 + for (Map.Entry entry : map.entrySet()) { + String key = entry.getKey(); + if (!key.equals("time")) { + double value = (double) entry.getValue(); + // 检查结果Map中是否已包含该键 + if (!resultMap.containsKey(key) || (double) resultMap.get(key) < value) { + // 如果不包含,或当前值更大,则更新结果Map + resultMap.put(key, value); + } + } + } + } + } else if (method.equals(InfluxDbSqlConstant.AVG)) { + Map sumMap = new HashMap<>(); + Map countMap = new HashMap<>(); + // 遍历列表中的每个Map + for (Map map : allList) { + // 遍历当前Map的键值对 + for (Map.Entry entry : map.entrySet()) { + String key = entry.getKey(); + if (!key.equals("time")) { + double value = (double) entry.getValue(); + + // 更新累计和 + sumMap.put(key, sumMap.getOrDefault(key, 0.0) + value); + // 更新计数 + countMap.put(key, countMap.getOrDefault(key, 0) + 1); + } + } + } + + // 计算平均值并存储到结果Map中 + for (String key : sumMap.keySet()) { + double sum = sumMap.get(key); + int count = countMap.get(key); + double average = BigDecimal.valueOf(sum / count).setScale(3, RoundingMode.HALF_UP).doubleValue(); + resultMap.put(key, average); + } + } + + return resultMap; + } + + + private void dealExcelResult(JSONArray + jsonArray, Map> assMap, Map unit) { + jsonArray.forEach(item -> { + JSONObject jsonObject = (JSONObject) item; + JSONArray itemArr = (JSONArray) jsonObject.get("celldata"); + itemArr.forEach((it) -> { + if (Objects.nonNull(it) && !"null".equals(it.toString())) { + //获取到1列 + JSONObject data = (JSONObject) it; + JSONObject son = (JSONObject) data.get("v"); + if (son.containsKey("v")) { + String v = son.getStr("v"); + //数据格式:$HA[_25]#B#max#classId$ 或 $HA[_25]#max#classId$ + if (v.charAt(0) == '$' && v.contains("#")) { + String str = ""; + List rDto = assMap.get(v.replace("$", "")); + if (Objects.nonNull(rDto)) { + str = rDto.get(0).getValue(); + //没有值,赋"/" + if (StringUtils.isBlank(str)) { + str = "/"; + } + son.set("v", str); + if (Objects.nonNull(rDto.get(0).getOverLimitFlag()) && rDto.get(0).getOverLimitFlag() == 1) { + son.set("fc", "#990000"); + } + } + } else if (v.charAt(0) == '%' && v.contains("#")) { + //指标合格情况 + String str = ""; + List rDto = assMap.get(v.replace("%", "")); + if (Objects.nonNull(rDto)) { + str = rDto.get(0).getValue(); + //没有值,赋"/" + if (StringUtils.isBlank(str)) { + str = "/"; + } + son.set("v", str); + if ("不合格".equals(str)) { + son.set("fc", "#990000"); + } + } + } /*else if (v.charAt(0) == '&') { //结论 String tem = v.replace("&", ""); if (Objects.nonNull(finalTerminalMap)) { @@ -1333,132 +1486,130 @@ public class CustomReportServiceImpl implements CustomReportService { } } }*/ else if (v.charAt(0) == '@' && v.contains("#")) { - //解决数据单位问题 @指标#类型@ - String replace = v.replace("@", ""); - son.set("v", unit.getOrDefault(replace, "/")); + //解决数据单位问题 @指标#类型@ + String replace = v.replace("@", ""); + son.set("v", unit.getOrDefault(replace, "/")); + } + } + } + }); + }); + } + + + /** + * 处理指标超标结论 + */ + private void dealTargetResult + (Map assNoPassMap, Map limitTargetMapX, List endList) { + 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); + }); + } + + + /** + * 解析模板 + * + * @author cdf + * @date 2023/10/20 + */ + private void parseTemplateZhejiang(JSONArray + jsonArray, List reportTemplateDTOList, List reportLimitList, List terminalList) { + try { + //通过文件服务器获取 + + jsonArray.forEach(item -> { + JSONObject jsonObject = (JSONObject) item; + JSONArray itemArr = (JSONArray) jsonObject.get("celldata"); + itemArr.forEach((it) -> { + if (Objects.nonNull(it) && !"null".equals(it.toString())) { + //获取到1列 + JSONObject data = (JSONObject) it; + JSONObject son = (JSONObject) data.get("v"); + if (son.containsKey("v")) { + String v = son.getStr("v"); + //数据格式:$HA[_25]#B#max#classId$ 或 $HA[_25]#max#classId$ + if (v.charAt(0) == '$' && v.contains("#")) { + //剔除前后$ + v = v.replace("$", ""); + //封装ReportTemplateDTO + ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); + reportTemplateDTO.setItemName(v); + //根据#分割数据 + String[] vItem = v.split("#"); + if (vItem.length == 5) { + //$HA[_25]#B#max#classId$ + reportTemplateDTO.setTemplateName(vItem[0]); + reportTemplateDTO.setPhase(vItem[1]); + reportTemplateDTO.setStatMethod(vItem[2].toUpperCase()); + reportTemplateDTO.setResourceId(vItem[3]); + reportTemplateDTO.setLimitName(vItem[4]); + } else if (vItem.length == 4) { + //$HA[_25]#max#classId$ + reportTemplateDTO.setTemplateName(vItem[0]); + reportTemplateDTO.setPhase("M"); + reportTemplateDTO.setStatMethod(vItem[1].toUpperCase()); + reportTemplateDTO.setResourceId(vItem[2]); + reportTemplateDTO.setLimitName(vItem[3]); + } + + reportTemplateDTOList.add(reportTemplateDTO); + } else if (v.charAt(0) == '%' && v.contains("#")) { + //封装ReportTemplateDTO + ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); + + v = v.replace("%", ""); + reportTemplateDTO.setItemName(v); + //根据#分割数据 + String[] vItem = v.split("#"); + if (vItem.length == 3) { + //$HA[_25]#B#max#classId$ + reportTemplateDTO.setTemplateName(vItem[0]); + reportTemplateDTO.setStatMethod(vItem[1].toUpperCase()); + reportTemplateDTO.setResourceId(vItem[2]); + } + reportLimitList.add(reportTemplateDTO); + } else if (v.charAt(0) == '&') { + //封装ReportTemplateDTO + ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); + v = v.replace("&", ""); + reportTemplateDTO.setItemName(v); + reportTemplateDTO.setTemplateName(v); + terminalList.add(reportTemplateDTO); } } } }); }); + } catch (Exception e) { + throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); } - - - /** - * 处理指标超标结论 - */ - private void dealTargetResult - (Map < String, ReportTemplateDTO > assNoPassMap, Map < String, ReportTemplateDTO > limitTargetMapX, List < ReportTemplateDTO > endList) - { - 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); - }); - } - - - /** - * 解析模板 - * - * @author cdf - * @date 2023/10/20 - */ - private void parseTemplateZhejiang (JSONArray - jsonArray, List < ReportTemplateDTO > reportTemplateDTOList, List < ReportTemplateDTO > reportLimitList, List < ReportTemplateDTO > terminalList) - { - try { - //通过文件服务器获取 - - jsonArray.forEach(item -> { - JSONObject jsonObject = (JSONObject) item; - JSONArray itemArr = (JSONArray) jsonObject.get("celldata"); - itemArr.forEach((it) -> { - if (Objects.nonNull(it) && !"null".equals(it.toString())) { - //获取到1列 - JSONObject data = (JSONObject) it; - JSONObject son = (JSONObject) data.get("v"); - if (son.containsKey("v")) { - String v = son.getStr("v"); - //数据格式:$HA[_25]#B#max#classId$ 或 $HA[_25]#max#classId$ - if (v.charAt(0) == '$' && v.contains("#")) { - //剔除前后$ - v = v.replace("$", ""); - //封装ReportTemplateDTO - ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); - reportTemplateDTO.setItemName(v); - //根据#分割数据 - String[] vItem = v.split("#"); - if (vItem.length == 5) { - //$HA[_25]#B#max#classId$ - reportTemplateDTO.setTemplateName(vItem[0]); - reportTemplateDTO.setPhase(vItem[1]); - reportTemplateDTO.setStatMethod(vItem[2].toUpperCase()); - reportTemplateDTO.setResourceId(vItem[3]); - reportTemplateDTO.setLimitName(vItem[4]); - } else if (vItem.length == 4) { - //$HA[_25]#max#classId$ - reportTemplateDTO.setTemplateName(vItem[0]); - reportTemplateDTO.setPhase("M"); - reportTemplateDTO.setStatMethod(vItem[1].toUpperCase()); - reportTemplateDTO.setResourceId(vItem[2]); - reportTemplateDTO.setLimitName(vItem[3]); - } - - reportTemplateDTOList.add(reportTemplateDTO); - } else if (v.charAt(0) == '%' && v.contains("#")) { - //封装ReportTemplateDTO - ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); - - v = v.replace("%", ""); - reportTemplateDTO.setItemName(v); - //根据#分割数据 - String[] vItem = v.split("#"); - if (vItem.length == 3) { - //$HA[_25]#B#max#classId$ - reportTemplateDTO.setTemplateName(vItem[0]); - reportTemplateDTO.setStatMethod(vItem[1].toUpperCase()); - reportTemplateDTO.setResourceId(vItem[2]); - } - reportLimitList.add(reportTemplateDTO); - } else if (v.charAt(0) == '&') { - //封装ReportTemplateDTO - ReportTemplateDTO reportTemplateDTO = new ReportTemplateDTO(); - v = v.replace("&", ""); - reportTemplateDTO.setItemName(v); - reportTemplateDTO.setTemplateName(v); - terminalList.add(reportTemplateDTO); - } - } - } - }); - }); - } catch (Exception e) { - throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); - } - } - - } +} + + diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java index 3c681ab87..97d71042f 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java @@ -99,12 +99,12 @@ public class DayDataServiceImpl implements DayDataService { List dayVList = new ArrayList<>(); List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取dataV数据 - List vList = getDataV(pendingId,beginDay,endDay); + List vList = getDataV(pendingId, beginDay, endDay); list1.addAll(vList); } //dataV数据入库 @@ -116,7 +116,7 @@ public class DayDataServiceImpl implements DayDataService { //todo 此数据质量标记为influxdb查询得出,数据转换时未做数据异常判断,因前置那边未做判断,系统先做判断拦截,后期前置应该加判断 po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); //fixme 因现场数据异常,先处理频率偏差、电压偏差、电压总谐波畸变率、三相电压不平衡度、长时闪变异常数据拦截 - po1.setQualityFlag(DataAnomalyDetectio(po1,null)); + po1.setQualityFlag(DataAnomalyDetectio(po1, null)); dataVPOList.add(po1); DayV dayV = new DayV(); BeanUtils.copyProperties(item, dayV); @@ -137,12 +137,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取dataI数据 - List iList = getDataI(pendingId,beginDay,endDay); + List iList = getDataI(pendingId, beginDay, endDay); list2.addAll(iList); } //dataI数据入库 @@ -172,12 +172,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取dataFlicker数据 - List dataFlickerList = getDataFlicker(pendingId,beginDay,endDay); + List dataFlickerList = getDataFlicker(pendingId, beginDay, endDay); list3.addAll(dataFlickerList); } //dataFlicker数据入库 @@ -207,12 +207,12 @@ public class DayDataServiceImpl implements DayDataService { List dayFlucList = new ArrayList<>(); List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取dataFluc数据 - List dataFlucList = getDataFluc(pendingId,beginDay,endDay); + List dataFlucList = getDataFluc(pendingId, beginDay, endDay); list4.addAll(dataFlucList); } //dataFluc数据入库 @@ -243,12 +243,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取DataHarmPhasicI数据 - List dataHarmPhasicIList = getDataHarmphasicI(pendingId,beginDay,endDay); + List dataHarmPhasicIList = getDataHarmphasicI(pendingId, beginDay, endDay); list5.addAll(dataHarmPhasicIList); } //data_harmphasic_i数据入库 @@ -280,12 +280,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取DataHarmPhasicV数据 - List dataHarmPhasicVList = getDataHarmphasicV(pendingId,beginDay,endDay); + List dataHarmPhasicVList = getDataHarmphasicV(pendingId, beginDay, endDay); list6.addAll(dataHarmPhasicVList); } //data_harmphasic_v数据入库 @@ -315,12 +315,12 @@ public class DayDataServiceImpl implements DayDataService { List dayHarmPowerPList = new ArrayList<>(); List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取data_harmpower_p数据 - List dataHarmPowerPList = getDataHarmPowerP(pendingId,beginDay,endDay); + List dataHarmPowerPList = getDataHarmPowerP(pendingId, beginDay, endDay); list7.addAll(dataHarmPowerPList); } //data_harmpower_p数据入库 @@ -351,12 +351,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取data_harmpower_q数据 - List dataHarmPowerQList = getDataHarmPowerQ(pendingId,beginDay,endDay); + List dataHarmPowerQList = getDataHarmPowerQ(pendingId, beginDay, endDay); list8.addAll(dataHarmPowerQList); } //data_harmpower_q数据入库 @@ -387,12 +387,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取data_harmpower_s数据 - List dataHarmPowerSList = getDataHarmPowerS(pendingId,beginDay,endDay); + List dataHarmPowerSList = getDataHarmPowerS(pendingId, beginDay, endDay); list9.addAll(dataHarmPowerSList); } //data_harmpower_s数据入库 @@ -423,12 +423,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取data_harmrate_i数据 - List dataHarmRateIList = getDataHarmRateI(pendingId,beginDay,endDay); + List dataHarmRateIList = getDataHarmRateI(pendingId, beginDay, endDay); list10.addAll(dataHarmRateIList); } //data_harmrate_i数据入库 @@ -459,12 +459,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取data_harmrate_v数据 - List dataHarmRateVList = getDataHarmRateV(pendingId,beginDay,endDay); + List dataHarmRateVList = getDataHarmRateV(pendingId, beginDay, endDay); list11.addAll(dataHarmRateVList); } //data_harmrate_v数据入库 @@ -495,12 +495,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取data_inharm_i数据 - List dataInHarmIList = getDataInHarmI(pendingId,beginDay,endDay); + List dataInHarmIList = getDataInHarmI(pendingId, beginDay, endDay); list12.addAll(dataInHarmIList); } //data_inharm_i数据入库 @@ -531,12 +531,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取data_inharm_v数据 - List dataInHarmVList = getDataInHarmV(pendingId,beginDay,endDay); + List dataInHarmVList = getDataInHarmV(pendingId, beginDay, endDay); list13.addAll(dataInHarmVList); } //data_inharm_v数据入库 @@ -568,12 +568,12 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,单个监测点执行 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取data_plt数据 - List dataPltList = getDataPlt(pendingId,beginDay,endDay); + List dataPltList = getDataPlt(pendingId, beginDay, endDay); list16.addAll(dataPltList); } //data_plt数据入库 @@ -583,7 +583,7 @@ public class DayDataServiceImpl implements DayDataService { BeanUtils.copyProperties(item, po1); po1.setTime(LocalDate.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER)); po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); - po1.setQualityFlag(DataAnomalyDetectio(null,po1)); + po1.setQualityFlag(DataAnomalyDetectio(null, po1)); dataPltPOList.add(po1); DayPlt dayPlt = new DayPlt(); @@ -635,7 +635,7 @@ public class DayDataServiceImpl implements DayDataService { List dataPltPOList = new ArrayList<>(); List dataFlickerPOList = new ArrayList<>(); //day表 - /* List dayVList = new ArrayList<>(); + List dayVList = new ArrayList<>(); List dayIList = new ArrayList<>(); List dayFlickerList = new ArrayList<>(); List dayFlucList = new ArrayList<>(); @@ -648,61 +648,61 @@ public class DayDataServiceImpl implements DayDataService { List dayHarmRateIList = new ArrayList<>(); List dayInHarmIList = new ArrayList<>(); List dayInHarmVList = new ArrayList<>(); - List dayPltList = new ArrayList<>();*/ + List dayPltList = new ArrayList<>(); List lineIds = calculatedParam.getIdList(); //河北数据量较大,以尺寸20分片 - List> pendingIds = ListUtils.partition(lineIds,20); - String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); - String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN); + List> pendingIds = ListUtils.partition(lineIds, 20); + String beginDay = LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); + String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATETIME_PATTERN); for (List pendingId : pendingIds) { //获取dataV数据 - List vList = getDataV(pendingId,beginDay,endDay); + List vList = getDataV(pendingId, beginDay, endDay); list1.addAll(vList); //获取dataI数据 - List iList = getDataI(pendingId,beginDay,endDay); + List iList = getDataI(pendingId, beginDay, endDay); list2.addAll(iList); //获取dataFlicker数据 - List dataFlickerList = getDataFlicker(pendingId,beginDay,endDay); + List dataFlickerList = getDataFlicker(pendingId, beginDay, endDay); list3.addAll(dataFlickerList); //获取dataFluc数据 - List dataFlucList = getDataFluc(pendingId,beginDay,endDay); + List dataFlucList = getDataFluc(pendingId, beginDay, endDay); list4.addAll(dataFlucList); //获取DataHarmPhasicI数据 - List dataHarmPhasicIList = getDataHarmphasicI(pendingId,beginDay,endDay); + List dataHarmPhasicIList = getDataHarmphasicI(pendingId, beginDay, endDay); list5.addAll(dataHarmPhasicIList); //获取DataHarmPhasicV数据 - List dataHarmPhasicVList = getDataHarmphasicV(pendingId,beginDay,endDay); + List dataHarmPhasicVList = getDataHarmphasicV(pendingId, beginDay, endDay); list6.addAll(dataHarmPhasicVList); //获取data_harmpower_p数据 - List dataHarmPowerPList = getDataHarmPowerP(pendingId,beginDay,endDay); + List dataHarmPowerPList = getDataHarmPowerP(pendingId, beginDay, endDay); list7.addAll(dataHarmPowerPList); //获取data_harmpower_q数据 - List dataHarmPowerQList = getDataHarmPowerQ(pendingId,beginDay,endDay); + List dataHarmPowerQList = getDataHarmPowerQ(pendingId, beginDay, endDay); list8.addAll(dataHarmPowerQList); //获取data_harmpower_s数据 - List dataHarmPowerSList = getDataHarmPowerS(pendingId,beginDay,endDay); + List dataHarmPowerSList = getDataHarmPowerS(pendingId, beginDay, endDay); list9.addAll(dataHarmPowerSList); //获取data_harmrate_i数据 - List dataHarmRateIList = getDataHarmRateI(pendingId,beginDay,endDay); + List dataHarmRateIList = getDataHarmRateI(pendingId, beginDay, endDay); list10.addAll(dataHarmRateIList); //获取data_harmrate_v数据 - List dataHarmRateVList = getDataHarmRateV(pendingId,beginDay,endDay); + List dataHarmRateVList = getDataHarmRateV(pendingId, beginDay, endDay); list11.addAll(dataHarmRateVList); //获取data_inharm_i数据 - List dataInHarmIList = getDataInHarmI(pendingId,beginDay,endDay); + List dataInHarmIList = getDataInHarmI(pendingId, beginDay, endDay); list12.addAll(dataInHarmIList); //获取data_inharm_v数据 - List dataInHarmVList = getDataInHarmV(pendingId,beginDay,endDay); + List dataInHarmVList = getDataInHarmV(pendingId, beginDay, endDay); list13.addAll(dataInHarmVList); //获取data_inharmrate_i数据 influxDB暂无此表数据,统计待定 - List dataInHarmRateIList = getDataInHarmRateI(pendingId,beginDay,endDay); + List dataInHarmRateIList = getDataInHarmRateI(pendingId, beginDay, endDay); list14.addAll(dataInHarmRateIList); //获取data_inharmrate_v数据 influxDB暂无此表数据,统计待定 - List dataInHarmRateVList = getDataInHarmRateV(pendingId,beginDay,endDay); + List dataInHarmRateVList = getDataInHarmRateV(pendingId, beginDay, endDay); list15.addAll(dataInHarmRateVList); //获取data_plt数据 - List dataPltList = getDataPlt(pendingId,beginDay,endDay); + List dataPltList = getDataPlt(pendingId, beginDay, endDay); list16.addAll(dataPltList); } //dataV数据入库 @@ -713,13 +713,14 @@ public class DayDataServiceImpl implements DayDataService { po1.setTime(LocalDate.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER)); po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataVPOList.add(po1); - /* DayV dayV = new DayV(); + + DayV dayV = new DayV(); BeanUtils.copyProperties(item, dayV); dayV.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayVList.add(dayV);*/ + dayVList.add(dayV); } statDataVDService.insert(dataVPOList); - // dayVMapper.insertBatch(dayVList); + dayVMapper.insertBatch(dayVList); } //dataI数据入库 if (!CollectionUtils.isEmpty(list2)) { @@ -729,13 +730,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setTime(LocalDate.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER)); po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataIPOList.add(po1); - /* DayI dayI = new DayI(); + DayI dayI = new DayI(); BeanUtils.copyProperties(item, dayI); dayI.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayIList.add(dayI);*/ + dayIList.add(dayI); } statDataIDService.insert(dataIPOList); - //dayIMapper.insertBatch(dayIList); + dayIMapper.insertBatch(dayIList); } //dataFlicker数据入库 if (!CollectionUtils.isEmpty(list3)) { @@ -746,13 +747,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataFlickerPOList.add(po1); - /* DayFlicker dayFlicker = new DayFlicker(); + DayFlicker dayFlicker = new DayFlicker(); BeanUtils.copyProperties(item, dayFlicker); dayFlicker.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayFlickerList.add(dayFlicker);*/ + dayFlickerList.add(dayFlicker); } statDataFlickerDService.insert(dataFlickerPOList); - //dayFlickerMapper.insertBatch(dayFlickerList); + dayFlickerMapper.insertBatch(dayFlickerList); } //dataFluc数据入库 if (!CollectionUtils.isEmpty(list4)) { @@ -763,13 +764,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataFlucPOList.add(po1); - /* DayFluc dayFluc = new DayFluc(); + DayFluc dayFluc = new DayFluc(); BeanUtils.copyProperties(item, dayFluc); dayFluc.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayFlucList.add(dayFluc);*/ + dayFlucList.add(dayFluc); } statDataFlucDService.insert(dataFlucPOList); - //dayFlucMapper.insertBatch(dayFlucList); + dayFlucMapper.insertBatch(dayFlucList); } //data_harmphasic_i数据入库 if (!CollectionUtils.isEmpty(list5)) { @@ -780,13 +781,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataHarmPhasicIPOList.add(po1); - /* DayHarmPhasicI dayHarmPhasicI = new DayHarmPhasicI(); + DayHarmPhasicI dayHarmPhasicI = new DayHarmPhasicI(); BeanUtils.copyProperties(item, dayHarmPhasicI); dayHarmPhasicI.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayHarmPhasicIList.add(dayHarmPhasicI);*/ + dayHarmPhasicIList.add(dayHarmPhasicI); } statDataHarmphasicIDService.insert(dataHarmPhasicIPOList); - //dayHarmPhasicIMapper.insertBatch(dayHarmPhasicIList); + dayHarmPhasicIMapper.insertBatch(dayHarmPhasicIList); } //data_harmphasic_v数据入库 if (!CollectionUtils.isEmpty(list6)) { @@ -797,13 +798,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataHarmPhasicVPOList.add(po1); - /* DayHarmPhasicV dayHarmPhasicV = new DayHarmPhasicV(); + DayHarmPhasicV dayHarmPhasicV = new DayHarmPhasicV(); BeanUtils.copyProperties(item, dayHarmPhasicV); dayHarmPhasicV.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayHarmPhasicVList.add(dayHarmPhasicV);*/ + dayHarmPhasicVList.add(dayHarmPhasicV); } statDataHarmphasicVDService.insert(dataHarmPhasicVPOList); - //dayHarmPhasicVMapper.insertBatch(dayHarmPhasicVList); + dayHarmPhasicVMapper.insertBatch(dayHarmPhasicVList); } //data_harmpower_p数据入库 if (!CollectionUtils.isEmpty(list7)) { @@ -814,13 +815,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataHarmPowerPPOList.add(po1); - /* DayHarmPowerP dayHarmPowerP = new DayHarmPowerP(); + DayHarmPowerP dayHarmPowerP = new DayHarmPowerP(); BeanUtils.copyProperties(item, dayHarmPowerP); dayHarmPowerP.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayHarmPowerPList.add(dayHarmPowerP);*/ + dayHarmPowerPList.add(dayHarmPowerP); } statDataHarmpowerPDService.insert(dataHarmPowerPPOList); - //dayHarmPowerPMapper.insertBatch(dayHarmPowerPList); + dayHarmPowerPMapper.insertBatch(dayHarmPowerPList); } //data_harmpower_q数据入库 if (!CollectionUtils.isEmpty(list8)) { @@ -831,13 +832,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataHarmPowerQPOList.add(po1); - /* DayHarmPowerQ dayHarmPowerQ = new DayHarmPowerQ(); + DayHarmPowerQ dayHarmPowerQ = new DayHarmPowerQ(); BeanUtils.copyProperties(item, dayHarmPowerQ); dayHarmPowerQ.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayHarmPowerQList.add(dayHarmPowerQ);*/ + dayHarmPowerQList.add(dayHarmPowerQ); } statDataHarmpowerQDService.insert(dataHarmPowerQPOList); - //dayHarmPowerQMapper.insertBatch(dayHarmPowerQList); + dayHarmPowerQMapper.insertBatch(dayHarmPowerQList); } //data_harmpower_s数据入库 if (!CollectionUtils.isEmpty(list9)) { @@ -848,13 +849,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataHarmPowerSPOList.add(po1); - /* DayHarmPowerS dayHarmPowerS = new DayHarmPowerS(); + DayHarmPowerS dayHarmPowerS = new DayHarmPowerS(); BeanUtils.copyProperties(item, dayHarmPowerS); dayHarmPowerS.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayHarmPowerSList.add(dayHarmPowerS);*/ + dayHarmPowerSList.add(dayHarmPowerS); } statDataHarmpowerSDService.insert(dataHarmPowerSPOList); - //dayHarmPowerSMapper.insertBatch(dayHarmPowerSList); + dayHarmPowerSMapper.insertBatch(dayHarmPowerSList); } //data_harmrate_i数据入库 if (!CollectionUtils.isEmpty(list10)) { @@ -865,13 +866,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataHarmRateIPOList.add(po1); - /* DayHarmRateI dayHarmRateI = new DayHarmRateI(); + DayHarmRateI dayHarmRateI = new DayHarmRateI(); BeanUtils.copyProperties(item, dayHarmRateI); dayHarmRateI.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayHarmRateIList.add(dayHarmRateI);*/ + dayHarmRateIList.add(dayHarmRateI); } statDataHarmRateIDService.insert(dataHarmRateIPOList); - //dayHarmRateIMapper.insertBatch(dayHarmRateIList); + dayHarmRateIMapper.insertBatch(dayHarmRateIList); } //data_harmrate_v数据入库 if (!CollectionUtils.isEmpty(list11)) { @@ -882,13 +883,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataHarmRateVPOList.add(po1); - /* DayHarmRateV dayHarmRateV = new DayHarmRateV(); + DayHarmRateV dayHarmRateV = new DayHarmRateV(); BeanUtils.copyProperties(item, dayHarmRateV); dayHarmRateV.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayHarmRateVList.add(dayHarmRateV);*/ + dayHarmRateVList.add(dayHarmRateV); } statDataHarmRateVDService.insert(dataHarmRateVPOList); - //dayHarmRateVMapper.insertBatch(dayHarmRateVList); + dayHarmRateVMapper.insertBatch(dayHarmRateVList); } //data_inharm_i数据入库 if (!CollectionUtils.isEmpty(list12)) { @@ -899,13 +900,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataInHarmIPOList.add(po1); - /* DayInHarmI dayInHarmI = new DayInHarmI(); + DayInHarmI dayInHarmI = new DayInHarmI(); BeanUtils.copyProperties(item, dayInHarmI); dayInHarmI.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayInHarmIList.add(dayInHarmI);*/ + dayInHarmIList.add(dayInHarmI); } statDataInharmIDService.insert(dataInHarmIPOList); - //dayInHarmIMapper.insertBatch(dayInHarmIList); + dayInHarmIMapper.insertBatch(dayInHarmIList); } //data_inharm_v数据入库 if (!CollectionUtils.isEmpty(list13)) { @@ -916,13 +917,13 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataInHarmVPOList.add(po1); - /* DayInHarmV dayInHarmV = new DayInHarmV(); + DayInHarmV dayInHarmV = new DayInHarmV(); BeanUtils.copyProperties(item, dayInHarmV); dayInHarmV.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayInHarmVList.add(dayInHarmV);*/ + dayInHarmVList.add(dayInHarmV); } statDataInharmVDService.insert(dataInHarmVPOList); - //dayInHarmVMapper.insertBatch(dayInHarmVList); + dayInHarmVMapper.insertBatch(dayInHarmVList); } //data_plt数据入库 if (!CollectionUtils.isEmpty(list16)) { @@ -933,18 +934,24 @@ public class DayDataServiceImpl implements DayDataService { po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); dataPltPOList.add(po1); - /* DayPlt dayPlt = new DayPlt(); + DayPlt dayPlt = new DayPlt(); BeanUtils.copyProperties(item, dayPlt); dayPlt.setTime(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER).toInstant()); - dayPltList.add(dayPlt);*/ + dayPltList.add(dayPlt); } statDataPltDService.insert(dataPltPOList); - //dayPltMapper.insertBatch(dayPltList); + dayPltMapper.insertBatch(dayPltList); } } + + + + + /** * 功能描述:获取dataV数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -954,7 +961,7 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataV::getLineId, lineIndex) .eq(DataV::getValueType, InfluxDbSqlConstant.MIN) .min(DataV::getFreq) @@ -968,13 +975,13 @@ public class DayDataServiceImpl implements DayDataService { .min(DataV::getVZero) .min(DataV::getVlDev) .min(DataV::getVuDev) - .groupBy(DataV::getLineId,DataV::getPhaseType,DataV::getQualityFlag,DataV::getValueType) + .groupBy(DataV::getLineId, DataV::getPhaseType, DataV::getQualityFlag, DataV::getValueType) .between(DataV::getTime, startTime, endTime); List result1 = dataVMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataV.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataV::getLineId, lineIndex) .eq(DataV::getValueType, InfluxDbSqlConstant.MAX) .max(DataV::getFreq) @@ -988,13 +995,13 @@ public class DayDataServiceImpl implements DayDataService { .max(DataV::getVZero) .max(DataV::getVlDev) .max(DataV::getVuDev) - .groupBy(DataV::getLineId,DataV::getPhaseType,DataV::getQualityFlag,DataV::getValueType) + .groupBy(DataV::getLineId, DataV::getPhaseType, DataV::getQualityFlag, DataV::getValueType) .between(DataV::getTime, startTime, endTime); List result2 = dataVMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataV.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataV::getLineId, lineIndex) .eq(DataV::getValueType, InfluxDbSqlConstant.AVG_WEB) .mean(DataV::getFreq) @@ -1008,30 +1015,30 @@ public class DayDataServiceImpl implements DayDataService { .mean(DataV::getVZero) .mean(DataV::getVlDev) .mean(DataV::getVuDev) - .groupBy(DataV::getLineId,DataV::getPhaseType,DataV::getQualityFlag,DataV::getValueType) + .groupBy(DataV::getLineId, DataV::getPhaseType, DataV::getQualityFlag, DataV::getValueType) .between(DataV::getTime, startTime, endTime); List result3 = dataVMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataV.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataV::getLineId, lineIndex) .eq(DataV::getValueType, InfluxDbSqlConstant.AVG_WEB) - .percentile(DataV::getFreq,95) - .percentile(DataV::getFreqDev,95) - .percentile(DataV::getRms,95) - .percentile(DataV::getRmsLvr,95) - .percentile(DataV::getVNeg,95) - .percentile(DataV::getVPos,95) - .percentile(DataV::getVThd,95) - .percentile(DataV::getVUnbalance,95) - .percentile(DataV::getVZero,95) - .percentile(DataV::getVlDev,95) - .percentile(DataV::getVuDev,95) - .groupBy(DataV::getLineId,DataV::getPhaseType,DataV::getQualityFlag,DataV::getValueType) + .percentile(DataV::getFreq, 95) + .percentile(DataV::getFreqDev, 95) + .percentile(DataV::getRms, 95) + .percentile(DataV::getRmsLvr, 95) + .percentile(DataV::getVNeg, 95) + .percentile(DataV::getVPos, 95) + .percentile(DataV::getVThd, 95) + .percentile(DataV::getVUnbalance, 95) + .percentile(DataV::getVZero, 95) + .percentile(DataV::getVlDev, 95) + .percentile(DataV::getVuDev, 95) + .groupBy(DataV::getLineId, DataV::getPhaseType, DataV::getQualityFlag, DataV::getValueType) .between(DataV::getTime, startTime, endTime); List result4 = dataVMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1040,6 +1047,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取dataI数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1049,7 +1057,7 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataI::getLineId, lineIndex) .eq(DataI::getValueType, InfluxDbSqlConstant.MIN) .min(DataI::getINeg) @@ -1058,13 +1066,13 @@ public class DayDataServiceImpl implements DayDataService { .min(DataI::getIThd) .min(DataI::getIUnbalance) .min(DataI::getIZero) - .groupBy(DataI::getLineId,DataI::getPhaseType,DataI::getQualityFlag,DataI::getValueType) + .groupBy(DataI::getLineId, DataI::getPhaseType, DataI::getQualityFlag, DataI::getValueType) .between(DataI::getTime, startTime, endTime); List result1 = dataIMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataI.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataI::getLineId, lineIndex) .eq(DataI::getValueType, InfluxDbSqlConstant.MAX) .max(DataI::getINeg) @@ -1073,13 +1081,13 @@ public class DayDataServiceImpl implements DayDataService { .max(DataI::getIThd) .max(DataI::getIUnbalance) .max(DataI::getIZero) - .groupBy(DataI::getLineId,DataI::getPhaseType,DataI::getQualityFlag,DataI::getValueType) + .groupBy(DataI::getLineId, DataI::getPhaseType, DataI::getQualityFlag, DataI::getValueType) .between(DataI::getTime, startTime, endTime); List result2 = dataIMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataI.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataI::getLineId, lineIndex) .eq(DataI::getValueType, InfluxDbSqlConstant.AVG_WEB) .mean(DataI::getINeg) @@ -1088,25 +1096,25 @@ public class DayDataServiceImpl implements DayDataService { .mean(DataI::getIThd) .mean(DataI::getIUnbalance) .mean(DataI::getIZero) - .groupBy(DataI::getLineId,DataI::getPhaseType,DataI::getQualityFlag,DataI::getValueType) + .groupBy(DataI::getLineId, DataI::getPhaseType, DataI::getQualityFlag, DataI::getValueType) .between(DataI::getTime, startTime, endTime); List result3 = dataIMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataI.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataI::getLineId, lineIndex) .eq(DataI::getValueType, InfluxDbSqlConstant.AVG_WEB) - .percentile(DataI::getINeg,95) - .percentile(DataI::getIPos,95) - .percentile(DataI::getRms,95) - .percentile(DataI::getIThd,95) - .percentile(DataI::getIUnbalance,95) - .percentile(DataI::getIZero,95) - .groupBy(DataI::getLineId,DataI::getPhaseType,DataI::getQualityFlag,DataI::getValueType) + .percentile(DataI::getINeg, 95) + .percentile(DataI::getIPos, 95) + .percentile(DataI::getRms, 95) + .percentile(DataI::getIThd, 95) + .percentile(DataI::getIUnbalance, 95) + .percentile(DataI::getIZero, 95) + .groupBy(DataI::getLineId, DataI::getPhaseType, DataI::getQualityFlag, DataI::getValueType) .between(DataI::getTime, startTime, endTime); List result4 = dataIMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1115,6 +1123,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取dataFlicker数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1128,10 +1137,10 @@ public class DayDataServiceImpl implements DayDataService { .min(DataFlicker::getFluc) .min(DataFlicker::getPlt) .min(DataFlicker::getPst) - .groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag) + .groupBy(DataFlicker::getLineId, DataFlicker::getPhaseType, DataFlicker::getQualityFlag) .between(DataFlicker::getTime, startTime, endTime); List result1 = dataFlickerMapper.getStatisticsByWraper2(influxQueryWrapper); - result1.forEach(item->{ + result1.forEach(item -> { item.setValueType(InfluxDbSqlConstant.MIN); }); result.addAll(result1); @@ -1141,10 +1150,10 @@ public class DayDataServiceImpl implements DayDataService { .max(DataFlicker::getFluc) .max(DataFlicker::getPlt) .max(DataFlicker::getPst) - .groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag) + .groupBy(DataFlicker::getLineId, DataFlicker::getPhaseType, DataFlicker::getQualityFlag) .between(DataFlicker::getTime, startTime, endTime); List result2 = dataFlickerMapper.getStatisticsByWraper2(influxQueryWrapper2); - result2.forEach(item->{ + result2.forEach(item -> { item.setValueType(InfluxDbSqlConstant.MAX); }); result.addAll(result2); @@ -1154,23 +1163,23 @@ public class DayDataServiceImpl implements DayDataService { .mean(DataFlicker::getFluc) .mean(DataFlicker::getPlt) .mean(DataFlicker::getPst) - .groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag) + .groupBy(DataFlicker::getLineId, DataFlicker::getPhaseType, DataFlicker::getQualityFlag) .between(DataFlicker::getTime, startTime, endTime); List result3 = dataFlickerMapper.getStatisticsByWraper2(influxQueryWrapper3); - result3.forEach(item->{ + result3.forEach(item -> { item.setValueType(InfluxDbSqlConstant.AVG_WEB); }); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataFlicker.class); influxQueryWrapper4.regular(DataFlicker::getLineId, lineIndex) - .percentile(DataFlicker::getFluc,95) - .percentile(DataFlicker::getPlt,95) - .percentile(DataFlicker::getPst,95) - .groupBy(DataFlicker::getLineId,DataFlicker::getPhaseType,DataFlicker::getQualityFlag) + .percentile(DataFlicker::getFluc, 95) + .percentile(DataFlicker::getPlt, 95) + .percentile(DataFlicker::getPst, 95) + .groupBy(DataFlicker::getLineId, DataFlicker::getPhaseType, DataFlicker::getQualityFlag) .between(DataFlicker::getTime, startTime, endTime); List result4 = dataFlickerMapper.getStatisticsByWraper2(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1179,6 +1188,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取dataFluc数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1192,7 +1202,7 @@ public class DayDataServiceImpl implements DayDataService { .eq(DataFluc::getValueType, InfluxDbSqlConstant.MIN) .min(DataFluc::getFluc) .min(DataFluc::getFluccf) - .groupBy(DataFluc::getLineId,DataFluc::getPhaseType,DataFluc::getQualityFlag,DataFluc::getValueType) + .groupBy(DataFluc::getLineId, DataFluc::getPhaseType, DataFluc::getQualityFlag, DataFluc::getValueType) .between(DataFluc::getTime, startTime, endTime); List result1 = dataFlucMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); @@ -1202,7 +1212,7 @@ public class DayDataServiceImpl implements DayDataService { .eq(DataFluc::getValueType, InfluxDbSqlConstant.MAX) .max(DataFluc::getFluc) .max(DataFluc::getFluccf) - .groupBy(DataFluc::getLineId,DataFluc::getPhaseType,DataFluc::getQualityFlag,DataFluc::getValueType) + .groupBy(DataFluc::getLineId, DataFluc::getPhaseType, DataFluc::getQualityFlag, DataFluc::getValueType) .between(DataFluc::getTime, startTime, endTime); List result2 = dataFlucMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); @@ -1212,7 +1222,7 @@ public class DayDataServiceImpl implements DayDataService { .eq(DataFluc::getValueType, InfluxDbSqlConstant.AVG_WEB) .mean(DataFluc::getFluc) .mean(DataFluc::getFluccf) - .groupBy(DataFluc::getLineId,DataFluc::getPhaseType,DataFluc::getQualityFlag,DataFluc::getValueType) + .groupBy(DataFluc::getLineId, DataFluc::getPhaseType, DataFluc::getQualityFlag, DataFluc::getValueType) .between(DataFluc::getTime, startTime, endTime); List result3 = dataFlucMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); @@ -1220,12 +1230,12 @@ public class DayDataServiceImpl implements DayDataService { InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataFluc.class); influxQueryWrapper4.regular(DataFluc::getLineId, lineIndex) .eq(DataFluc::getValueType, InfluxDbSqlConstant.AVG_WEB) - .percentile(DataFluc::getFluc,95) - .percentile(DataFluc::getFluccf,95) - .groupBy(DataFluc::getLineId,DataFluc::getPhaseType,DataFluc::getQualityFlag,DataFluc::getValueType) + .percentile(DataFluc::getFluc, 95) + .percentile(DataFluc::getFluccf, 95) + .groupBy(DataFluc::getLineId, DataFluc::getPhaseType, DataFluc::getQualityFlag, DataFluc::getValueType) .between(DataFluc::getTime, startTime, endTime); List result4 = dataFlucMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1234,6 +1244,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_harmphasic_i数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1243,40 +1254,40 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmPhasicI.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataHarmPhasicI::getLineId, lineIndex) .eq(DataHarmPhasicI::getValueType, InfluxDbSqlConstant.MIN) - .groupBy(DataHarmPhasicI::getLineId,DataHarmPhasicI::getPhaseType,DataHarmPhasicI::getQualityFlag,DataHarmPhasicI::getValueType) + .groupBy(DataHarmPhasicI::getLineId, DataHarmPhasicI::getPhaseType, DataHarmPhasicI::getQualityFlag, DataHarmPhasicI::getValueType) .between(DataHarmPhasicI::getTime, startTime, endTime); List result1 = dataHarmPhasicIMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataHarmPhasicI.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataHarmPhasicI::getLineId, lineIndex) .eq(DataHarmPhasicI::getValueType, InfluxDbSqlConstant.MAX) - .groupBy(DataHarmPhasicI::getLineId,DataHarmPhasicI::getPhaseType,DataHarmPhasicI::getQualityFlag,DataHarmPhasicI::getValueType) + .groupBy(DataHarmPhasicI::getLineId, DataHarmPhasicI::getPhaseType, DataHarmPhasicI::getQualityFlag, DataHarmPhasicI::getValueType) .between(DataHarmPhasicI::getTime, startTime, endTime); List result2 = dataHarmPhasicIMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataHarmPhasicI.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataHarmPhasicI::getLineId, lineIndex) .eq(DataHarmPhasicI::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataHarmPhasicI::getLineId,DataHarmPhasicI::getPhaseType,DataHarmPhasicI::getQualityFlag,DataHarmPhasicI::getValueType) + .groupBy(DataHarmPhasicI::getLineId, DataHarmPhasicI::getPhaseType, DataHarmPhasicI::getQualityFlag, DataHarmPhasicI::getValueType) .between(DataHarmPhasicI::getTime, startTime, endTime); List result3 = dataHarmPhasicIMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataHarmPhasicI.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataHarmPhasicI::getLineId, lineIndex) .eq(DataHarmPhasicI::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataHarmPhasicI::getLineId,DataHarmPhasicI::getPhaseType,DataHarmPhasicI::getQualityFlag,DataHarmPhasicI::getValueType) + .groupBy(DataHarmPhasicI::getLineId, DataHarmPhasicI::getPhaseType, DataHarmPhasicI::getQualityFlag, DataHarmPhasicI::getValueType) .between(DataHarmPhasicI::getTime, startTime, endTime); List result4 = dataHarmPhasicIMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1285,6 +1296,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_harmphasic_v数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1294,40 +1306,40 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmPhasicV.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataHarmPhasicV::getLineId, lineIndex) .eq(DataHarmPhasicV::getValueType, InfluxDbSqlConstant.MIN) - .groupBy(DataHarmPhasicV::getLineId,DataHarmPhasicV::getPhaseType,DataHarmPhasicV::getQualityFlag,DataHarmPhasicV::getValueType) + .groupBy(DataHarmPhasicV::getLineId, DataHarmPhasicV::getPhaseType, DataHarmPhasicV::getQualityFlag, DataHarmPhasicV::getValueType) .between(DataHarmPhasicV::getTime, startTime, endTime); List result1 = dataHarmPhasicVMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataHarmPhasicV.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataHarmPhasicV::getLineId, lineIndex) .eq(DataHarmPhasicV::getValueType, InfluxDbSqlConstant.MAX) - .groupBy(DataHarmPhasicV::getLineId,DataHarmPhasicV::getPhaseType,DataHarmPhasicV::getQualityFlag,DataHarmPhasicV::getValueType) + .groupBy(DataHarmPhasicV::getLineId, DataHarmPhasicV::getPhaseType, DataHarmPhasicV::getQualityFlag, DataHarmPhasicV::getValueType) .between(DataHarmPhasicV::getTime, startTime, endTime); List result2 = dataHarmPhasicVMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataHarmPhasicV.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataHarmPhasicV::getLineId, lineIndex) .eq(DataHarmPhasicV::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataHarmPhasicV::getLineId,DataHarmPhasicV::getPhaseType,DataHarmPhasicV::getQualityFlag,DataHarmPhasicV::getValueType) + .groupBy(DataHarmPhasicV::getLineId, DataHarmPhasicV::getPhaseType, DataHarmPhasicV::getQualityFlag, DataHarmPhasicV::getValueType) .between(DataHarmPhasicV::getTime, startTime, endTime); List result3 = dataHarmPhasicVMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataHarmPhasicV.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataHarmPhasicV::getLineId, lineIndex) .eq(DataHarmPhasicV::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataHarmPhasicV::getLineId,DataHarmPhasicV::getPhaseType,DataHarmPhasicV::getQualityFlag,DataHarmPhasicV::getValueType) + .groupBy(DataHarmPhasicV::getLineId, DataHarmPhasicV::getPhaseType, DataHarmPhasicV::getQualityFlag, DataHarmPhasicV::getValueType) .between(DataHarmPhasicV::getTime, startTime, endTime); List result4 = dataHarmPhasicVMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1336,6 +1348,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_harmpower_p数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1345,52 +1358,52 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmPowerP.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.P,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.P, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataHarmPowerP::getLineId, lineIndex) .eq(DataHarmPowerP::getValueType, InfluxDbSqlConstant.MIN) .min(DataHarmPowerP::getP) .min(DataHarmPowerP::getPf) .min(DataHarmPowerP::getDf) - .groupBy(DataHarmPowerP::getLineId,DataHarmPowerP::getPhaseType,DataHarmPowerP::getQualityFlag,DataHarmPowerP::getValueType) + .groupBy(DataHarmPowerP::getLineId, DataHarmPowerP::getPhaseType, DataHarmPowerP::getQualityFlag, DataHarmPowerP::getValueType) .between(DataHarmPowerP::getTime, startTime, endTime); List result1 = dataHarmPowerPMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataHarmPowerP.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.P,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.P, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataHarmPowerP::getLineId, lineIndex) .eq(DataHarmPowerP::getValueType, InfluxDbSqlConstant.MAX) .max(DataHarmPowerP::getP) .max(DataHarmPowerP::getPf) .max(DataHarmPowerP::getDf) - .groupBy(DataHarmPowerP::getLineId,DataHarmPowerP::getPhaseType,DataHarmPowerP::getQualityFlag,DataHarmPowerP::getValueType) + .groupBy(DataHarmPowerP::getLineId, DataHarmPowerP::getPhaseType, DataHarmPowerP::getQualityFlag, DataHarmPowerP::getValueType) .between(DataHarmPowerP::getTime, startTime, endTime); List result2 = dataHarmPowerPMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataHarmPowerP.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.P,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.P, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataHarmPowerP::getLineId, lineIndex) .eq(DataHarmPowerP::getValueType, InfluxDbSqlConstant.AVG_WEB) .mean(DataHarmPowerP::getP) .mean(DataHarmPowerP::getPf) .mean(DataHarmPowerP::getDf) - .groupBy(DataHarmPowerP::getLineId,DataHarmPowerP::getPhaseType,DataHarmPowerP::getQualityFlag,DataHarmPowerP::getValueType) + .groupBy(DataHarmPowerP::getLineId, DataHarmPowerP::getPhaseType, DataHarmPowerP::getQualityFlag, DataHarmPowerP::getValueType) .between(DataHarmPowerP::getTime, startTime, endTime); List result3 = dataHarmPowerPMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataHarmPowerP.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.P,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.P, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataHarmPowerP::getLineId, lineIndex) .eq(DataHarmPowerP::getValueType, InfluxDbSqlConstant.AVG_WEB) - .percentile(DataHarmPowerP::getP,95) - .percentile(DataHarmPowerP::getPf,95) - .percentile(DataHarmPowerP::getDf,95) - .groupBy(DataHarmPowerP::getLineId,DataHarmPowerP::getPhaseType,DataHarmPowerP::getQualityFlag,DataHarmPowerP::getValueType) + .percentile(DataHarmPowerP::getP, 95) + .percentile(DataHarmPowerP::getPf, 95) + .percentile(DataHarmPowerP::getDf, 95) + .groupBy(DataHarmPowerP::getLineId, DataHarmPowerP::getPhaseType, DataHarmPowerP::getQualityFlag, DataHarmPowerP::getValueType) .between(DataHarmPowerP::getTime, startTime, endTime); List result4 = dataHarmPowerPMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1399,6 +1412,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_harmpower_q数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1408,44 +1422,44 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmPowerQ.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.Q,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.Q, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataHarmPowerQ::getLineId, lineIndex) .eq(DataHarmPowerQ::getValueType, InfluxDbSqlConstant.MIN) .min(DataHarmPowerQ::getQ) - .groupBy(DataHarmPowerQ::getLineId,DataHarmPowerQ::getPhaseType,DataHarmPowerQ::getQualityFlag,DataHarmPowerQ::getValueType) + .groupBy(DataHarmPowerQ::getLineId, DataHarmPowerQ::getPhaseType, DataHarmPowerQ::getQualityFlag, DataHarmPowerQ::getValueType) .between(DataHarmPowerQ::getTime, startTime, endTime); List result1 = dataHarmPowerQMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataHarmPowerQ.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.Q,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.Q, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataHarmPowerQ::getLineId, lineIndex) .eq(DataHarmPowerQ::getValueType, InfluxDbSqlConstant.MAX) .max(DataHarmPowerQ::getQ) - .groupBy(DataHarmPowerQ::getLineId,DataHarmPowerQ::getPhaseType,DataHarmPowerQ::getQualityFlag,DataHarmPowerQ::getValueType) + .groupBy(DataHarmPowerQ::getLineId, DataHarmPowerQ::getPhaseType, DataHarmPowerQ::getQualityFlag, DataHarmPowerQ::getValueType) .between(DataHarmPowerQ::getTime, startTime, endTime); List result2 = dataHarmPowerQMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataHarmPowerQ.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.Q,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.Q, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataHarmPowerQ::getLineId, lineIndex) .eq(DataHarmPowerQ::getValueType, InfluxDbSqlConstant.AVG_WEB) .mean(DataHarmPowerQ::getQ) - .groupBy(DataHarmPowerQ::getLineId,DataHarmPowerQ::getPhaseType,DataHarmPowerQ::getQualityFlag,DataHarmPowerQ::getValueType) + .groupBy(DataHarmPowerQ::getLineId, DataHarmPowerQ::getPhaseType, DataHarmPowerQ::getQualityFlag, DataHarmPowerQ::getValueType) .between(DataHarmPowerQ::getTime, startTime, endTime); List result3 = dataHarmPowerQMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataHarmPowerQ.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.Q,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.Q, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataHarmPowerQ::getLineId, lineIndex) .eq(DataHarmPowerQ::getValueType, InfluxDbSqlConstant.AVG_WEB) - .percentile(DataHarmPowerQ::getQ,95) - .groupBy(DataHarmPowerQ::getLineId,DataHarmPowerQ::getPhaseType,DataHarmPowerQ::getQualityFlag,DataHarmPowerQ::getValueType) + .percentile(DataHarmPowerQ::getQ, 95) + .groupBy(DataHarmPowerQ::getLineId, DataHarmPowerQ::getPhaseType, DataHarmPowerQ::getQualityFlag, DataHarmPowerQ::getValueType) .between(DataHarmPowerQ::getTime, startTime, endTime); List result4 = dataHarmPowerQMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1454,6 +1468,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_harmpower_s数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1463,44 +1478,44 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmPowerS.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.S,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataHarmPowerS::getLineId, lineIndex) .eq(DataHarmPowerS::getValueType, InfluxDbSqlConstant.MIN) .min(DataHarmPowerS::getS) - .groupBy(DataHarmPowerS::getLineId,DataHarmPowerS::getPhaseType,DataHarmPowerS::getQualityFlag,DataHarmPowerS::getValueType) + .groupBy(DataHarmPowerS::getLineId, DataHarmPowerS::getPhaseType, DataHarmPowerS::getQualityFlag, DataHarmPowerS::getValueType) .between(DataHarmPowerS::getTime, startTime, endTime); List result1 = dataHarmPowerSMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataHarmPowerS.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.S,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataHarmPowerS::getLineId, lineIndex) .eq(DataHarmPowerS::getValueType, InfluxDbSqlConstant.MAX) .max(DataHarmPowerS::getS) - .groupBy(DataHarmPowerS::getLineId,DataHarmPowerS::getPhaseType,DataHarmPowerS::getQualityFlag,DataHarmPowerS::getValueType) + .groupBy(DataHarmPowerS::getLineId, DataHarmPowerS::getPhaseType, DataHarmPowerS::getQualityFlag, DataHarmPowerS::getValueType) .between(DataHarmPowerS::getTime, startTime, endTime); List result2 = dataHarmPowerSMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataHarmPowerS.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.S,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataHarmPowerS::getLineId, lineIndex) .eq(DataHarmPowerS::getValueType, InfluxDbSqlConstant.AVG_WEB) .mean(DataHarmPowerS::getS) - .groupBy(DataHarmPowerS::getLineId,DataHarmPowerS::getPhaseType,DataHarmPowerS::getQualityFlag,DataHarmPowerS::getValueType) + .groupBy(DataHarmPowerS::getLineId, DataHarmPowerS::getPhaseType, DataHarmPowerS::getQualityFlag, DataHarmPowerS::getValueType) .between(DataHarmPowerS::getTime, startTime, endTime); List result3 = dataHarmPowerSMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataHarmPowerS.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.S,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataHarmPowerS::getLineId, lineIndex) .eq(DataHarmPowerS::getValueType, InfluxDbSqlConstant.AVG_WEB) - .percentile(DataHarmPowerS::getS,95) - .groupBy(DataHarmPowerS::getLineId,DataHarmPowerS::getPhaseType,DataHarmPowerS::getQualityFlag,DataHarmPowerS::getValueType) + .percentile(DataHarmPowerS::getS, 95) + .groupBy(DataHarmPowerS::getLineId, DataHarmPowerS::getPhaseType, DataHarmPowerS::getQualityFlag, DataHarmPowerS::getValueType) .between(DataHarmPowerS::getTime, startTime, endTime); List result4 = dataHarmPowerSMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1509,6 +1524,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_harmrate_i数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1518,40 +1534,40 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmRateI.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataHarmRateI::getLineId, lineIndex) .eq(DataHarmRateI::getValueType, InfluxDbSqlConstant.MIN) - .groupBy(DataHarmRateI::getLineId,DataHarmRateI::getPhaseType,DataHarmRateI::getQualityFlag,DataHarmRateI::getValueType) + .groupBy(DataHarmRateI::getLineId, DataHarmRateI::getPhaseType, DataHarmRateI::getQualityFlag, DataHarmRateI::getValueType) .between(DataHarmRateI::getTime, startTime, endTime); List result1 = dataHarmRateIMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataHarmRateI.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataHarmRateI::getLineId, lineIndex) .eq(DataHarmRateI::getValueType, InfluxDbSqlConstant.MAX) - .groupBy(DataHarmRateI::getLineId,DataHarmRateI::getPhaseType,DataHarmRateI::getQualityFlag,DataHarmRateI::getValueType) + .groupBy(DataHarmRateI::getLineId, DataHarmRateI::getPhaseType, DataHarmRateI::getQualityFlag, DataHarmRateI::getValueType) .between(DataHarmRateI::getTime, startTime, endTime); List result2 = dataHarmRateIMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataHarmRateI.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataHarmRateI::getLineId, lineIndex) .eq(DataHarmRateI::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataHarmRateI::getLineId,DataHarmRateI::getPhaseType,DataHarmRateI::getQualityFlag,DataHarmRateI::getValueType) + .groupBy(DataHarmRateI::getLineId, DataHarmRateI::getPhaseType, DataHarmRateI::getQualityFlag, DataHarmRateI::getValueType) .between(DataHarmRateI::getTime, startTime, endTime); List result3 = dataHarmRateIMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataHarmRateI.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataHarmRateI::getLineId, lineIndex) .eq(DataHarmRateI::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataHarmRateI::getLineId,DataHarmRateI::getPhaseType,DataHarmRateI::getQualityFlag,DataHarmRateI::getValueType) + .groupBy(DataHarmRateI::getLineId, DataHarmRateI::getPhaseType, DataHarmRateI::getQualityFlag, DataHarmRateI::getValueType) .between(DataHarmRateI::getTime, startTime, endTime); List result4 = dataHarmRateIMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1560,6 +1576,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_harmrate_v数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1569,40 +1586,40 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmRateV.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataHarmRateV::getLineId, lineIndex) .eq(DataHarmRateV::getValueType, InfluxDbSqlConstant.MIN) - .groupBy(DataHarmRateV::getLineId,DataHarmRateV::getPhaseType,DataHarmRateV::getQualityFlag,DataHarmRateV::getValueType) + .groupBy(DataHarmRateV::getLineId, DataHarmRateV::getPhaseType, DataHarmRateV::getQualityFlag, DataHarmRateV::getValueType) .between(DataHarmRateV::getTime, startTime, endTime); List result1 = dataHarmRateVMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataHarmRateV.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataHarmRateV::getLineId, lineIndex) .eq(DataHarmRateV::getValueType, InfluxDbSqlConstant.MAX) - .groupBy(DataHarmRateV::getLineId,DataHarmRateV::getPhaseType,DataHarmRateV::getQualityFlag,DataHarmRateV::getValueType) + .groupBy(DataHarmRateV::getLineId, DataHarmRateV::getPhaseType, DataHarmRateV::getQualityFlag, DataHarmRateV::getValueType) .between(DataHarmRateV::getTime, startTime, endTime); List result2 = dataHarmRateVMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataHarmRateV.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataHarmRateV::getLineId, lineIndex) .eq(DataHarmRateV::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataHarmRateV::getLineId,DataHarmRateV::getPhaseType,DataHarmRateV::getQualityFlag,DataHarmRateV::getValueType) + .groupBy(DataHarmRateV::getLineId, DataHarmRateV::getPhaseType, DataHarmRateV::getQualityFlag, DataHarmRateV::getValueType) .between(DataHarmRateV::getTime, startTime, endTime); List result3 = dataHarmRateVMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataHarmRateV.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataHarmRateV::getLineId, lineIndex) .eq(DataHarmRateV::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataHarmRateV::getLineId,DataHarmRateV::getPhaseType,DataHarmRateV::getQualityFlag,DataHarmRateV::getValueType) + .groupBy(DataHarmRateV::getLineId, DataHarmRateV::getPhaseType, DataHarmRateV::getQualityFlag, DataHarmRateV::getValueType) .between(DataHarmRateV::getTime, startTime, endTime); List result4 = dataHarmRateVMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1611,6 +1628,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_inharm_i数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1620,40 +1638,40 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInHarmI.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataInHarmI::getLineId, lineIndex) .eq(DataInHarmI::getValueType, InfluxDbSqlConstant.MIN) - .groupBy(DataInHarmI::getLineId,DataInHarmI::getPhaseType,DataInHarmI::getQualityFlag,DataInHarmI::getValueType) + .groupBy(DataInHarmI::getLineId, DataInHarmI::getPhaseType, DataInHarmI::getQualityFlag, DataInHarmI::getValueType) .between(DataInHarmI::getTime, startTime, endTime); List result1 = dataInHarmIMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataInHarmI.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataInHarmI::getLineId, lineIndex) .eq(DataInHarmI::getValueType, InfluxDbSqlConstant.MAX) - .groupBy(DataInHarmI::getLineId,DataInHarmI::getPhaseType,DataInHarmI::getQualityFlag,DataInHarmI::getValueType) + .groupBy(DataInHarmI::getLineId, DataInHarmI::getPhaseType, DataInHarmI::getQualityFlag, DataInHarmI::getValueType) .between(DataInHarmI::getTime, startTime, endTime); List result2 = dataInHarmIMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataInHarmI.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataInHarmI::getLineId, lineIndex) .eq(DataInHarmI::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataInHarmI::getLineId,DataInHarmI::getPhaseType,DataInHarmI::getQualityFlag,DataInHarmI::getValueType) + .groupBy(DataInHarmI::getLineId, DataInHarmI::getPhaseType, DataInHarmI::getQualityFlag, DataInHarmI::getValueType) .between(DataInHarmI::getTime, startTime, endTime); List result3 = dataInHarmIMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataInHarmI.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataInHarmI::getLineId, lineIndex) .eq(DataInHarmI::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataInHarmI::getLineId,DataInHarmI::getPhaseType,DataInHarmI::getQualityFlag,DataInHarmI::getValueType) + .groupBy(DataInHarmI::getLineId, DataInHarmI::getPhaseType, DataInHarmI::getQualityFlag, DataInHarmI::getValueType) .between(DataInHarmI::getTime, startTime, endTime); List result4 = dataInHarmIMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1662,6 +1680,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_inharm_v数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1671,40 +1690,40 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInHarmV.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataInHarmV::getLineId, lineIndex) .eq(DataInHarmV::getValueType, InfluxDbSqlConstant.MIN) - .groupBy(DataInHarmV::getLineId,DataInHarmV::getPhaseType,DataInHarmV::getQualityFlag,DataInHarmV::getValueType) + .groupBy(DataInHarmV::getLineId, DataInHarmV::getPhaseType, DataInHarmV::getQualityFlag, DataInHarmV::getValueType) .between(DataInHarmV::getTime, startTime, endTime); List result1 = dataInHarmVMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataInHarmV.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataInHarmV::getLineId, lineIndex) .eq(DataInHarmV::getValueType, InfluxDbSqlConstant.MAX) - .groupBy(DataInHarmV::getLineId,DataInHarmV::getPhaseType,DataInHarmV::getQualityFlag,DataInHarmV::getValueType) + .groupBy(DataInHarmV::getLineId, DataInHarmV::getPhaseType, DataInHarmV::getQualityFlag, DataInHarmV::getValueType) .between(DataInHarmV::getTime, startTime, endTime); List result2 = dataInHarmVMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataInHarmV.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataInHarmV::getLineId, lineIndex) .eq(DataInHarmV::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataInHarmV::getLineId,DataInHarmV::getPhaseType,DataInHarmV::getQualityFlag,DataInHarmV::getValueType) + .groupBy(DataInHarmV::getLineId, DataInHarmV::getPhaseType, DataInHarmV::getQualityFlag, DataInHarmV::getValueType) .between(DataInHarmV::getTime, startTime, endTime); List result3 = dataInHarmVMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataInHarmV.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataInHarmV::getLineId, lineIndex) .eq(DataInHarmV::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataInHarmV::getLineId,DataInHarmV::getPhaseType,DataInHarmV::getQualityFlag,DataInHarmV::getValueType) + .groupBy(DataInHarmV::getLineId, DataInHarmV::getPhaseType, DataInHarmV::getQualityFlag, DataInHarmV::getValueType) .between(DataInHarmV::getTime, startTime, endTime); List result4 = dataInHarmVMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1713,6 +1732,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_inharmrate_i数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1722,40 +1742,40 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInHarmRateI.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataInHarmRateI::getLineId, lineIndex) .eq(DataInHarmRateI::getValueType, InfluxDbSqlConstant.MIN) - .groupBy(DataInHarmRateI::getLineId,DataInHarmRateI::getPhaseType,DataInHarmRateI::getQualityFlag,DataInHarmRateI::getValueType) + .groupBy(DataInHarmRateI::getLineId, DataInHarmRateI::getPhaseType, DataInHarmRateI::getQualityFlag, DataInHarmRateI::getValueType) .between(DataInHarmRateI::getTime, startTime, endTime); List result1 = dataInHarmRateIMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataInHarmRateI.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataInHarmRateI::getLineId, lineIndex) .eq(DataInHarmRateI::getValueType, InfluxDbSqlConstant.MAX) - .groupBy(DataInHarmRateI::getLineId,DataInHarmRateI::getPhaseType,DataInHarmRateI::getQualityFlag,DataInHarmRateI::getValueType) + .groupBy(DataInHarmRateI::getLineId, DataInHarmRateI::getPhaseType, DataInHarmRateI::getQualityFlag, DataInHarmRateI::getValueType) .between(DataInHarmRateI::getTime, startTime, endTime); List result2 = dataInHarmRateIMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataInHarmRateI.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataInHarmRateI::getLineId, lineIndex) .eq(DataInHarmRateI::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataInHarmRateI::getLineId,DataInHarmRateI::getPhaseType,DataInHarmRateI::getQualityFlag,DataInHarmRateI::getValueType) + .groupBy(DataInHarmRateI::getLineId, DataInHarmRateI::getPhaseType, DataInHarmRateI::getQualityFlag, DataInHarmRateI::getValueType) .between(DataInHarmRateI::getTime, startTime, endTime); List result3 = dataInHarmRateIMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataInHarmRateI.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataInHarmRateI::getLineId, lineIndex) .eq(DataInHarmRateI::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataInHarmRateI::getLineId,DataInHarmRateI::getPhaseType,DataInHarmRateI::getQualityFlag,DataInHarmRateI::getValueType) + .groupBy(DataInHarmRateI::getLineId, DataInHarmRateI::getPhaseType, DataInHarmRateI::getQualityFlag, DataInHarmRateI::getValueType) .between(DataInHarmRateI::getTime, startTime, endTime); List result4 = dataInHarmRateIMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1764,6 +1784,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_inharmrate_v数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1773,40 +1794,40 @@ public class DayDataServiceImpl implements DayDataService { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInHarmRateV.class); - influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper.regular(DataInHarmRateV::getLineId, lineIndex) .eq(DataInHarmRateV::getValueType, InfluxDbSqlConstant.MIN) - .groupBy(DataInHarmRateV::getLineId,DataInHarmRateV::getPhaseType,DataInHarmRateV::getQualityFlag,DataInHarmRateV::getValueType) + .groupBy(DataInHarmRateV::getLineId, DataInHarmRateV::getPhaseType, DataInHarmRateV::getQualityFlag, DataInHarmRateV::getValueType) .between(DataInHarmRateV::getTime, startTime, endTime); List result1 = dataInHarmRateVMapper.getStatisticsByWraper(influxQueryWrapper); result.addAll(result1); //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataInHarmRateV.class); - influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper2.regular(DataInHarmRateV::getLineId, lineIndex) .eq(DataInHarmRateV::getValueType, InfluxDbSqlConstant.MAX) - .groupBy(DataInHarmRateV::getLineId,DataInHarmRateV::getPhaseType,DataInHarmRateV::getQualityFlag,DataInHarmRateV::getValueType) + .groupBy(DataInHarmRateV::getLineId, DataInHarmRateV::getPhaseType, DataInHarmRateV::getQualityFlag, DataInHarmRateV::getValueType) .between(DataInHarmRateV::getTime, startTime, endTime); List result2 = dataInHarmRateVMapper.getStatisticsByWraper(influxQueryWrapper2); result.addAll(result2); //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataInHarmRateV.class); - influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1)); influxQueryWrapper3.regular(DataInHarmRateV::getLineId, lineIndex) .eq(DataInHarmRateV::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataInHarmRateV::getLineId,DataInHarmRateV::getPhaseType,DataInHarmRateV::getQualityFlag,DataInHarmRateV::getValueType) + .groupBy(DataInHarmRateV::getLineId, DataInHarmRateV::getPhaseType, DataInHarmRateV::getQualityFlag, DataInHarmRateV::getValueType) .between(DataInHarmRateV::getTime, startTime, endTime); List result3 = dataInHarmRateVMapper.getStatisticsByWraper(influxQueryWrapper3); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataInHarmRateV.class); - influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); + influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1), 95); influxQueryWrapper4.regular(DataInHarmRateV::getLineId, lineIndex) .eq(DataInHarmRateV::getValueType, InfluxDbSqlConstant.AVG_WEB) - .groupBy(DataInHarmRateV::getLineId,DataInHarmRateV::getPhaseType,DataInHarmRateV::getQualityFlag,DataInHarmRateV::getValueType) + .groupBy(DataInHarmRateV::getLineId, DataInHarmRateV::getPhaseType, DataInHarmRateV::getQualityFlag, DataInHarmRateV::getValueType) .between(DataInHarmRateV::getTime, startTime, endTime); List result4 = dataInHarmRateVMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1815,6 +1836,7 @@ public class DayDataServiceImpl implements DayDataService { /** * 功能描述:获取data_plt数据 + * * @param lineIndex 监测点集合 * @param startTime 起始时间 * @param endTime 结束时间 @@ -1826,10 +1848,10 @@ public class DayDataServiceImpl implements DayDataService { InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataPlt.class); influxQueryWrapper.regular(DataInHarmRateV::getLineId, lineIndex) .min(DataPlt::getPlt) - .groupBy(DataPlt::getLineId,DataPlt::getPhaseType,DataPlt::getQualityFlag,DataPlt::getValueType) + .groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType) .between(DataPlt::getTime, startTime, endTime); List result1 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper); - result1.forEach(item->{ + result1.forEach(item -> { item.setValueType(InfluxDbSqlConstant.MIN); }); result.addAll(result1); @@ -1837,10 +1859,10 @@ public class DayDataServiceImpl implements DayDataService { InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataPlt.class); influxQueryWrapper2.regular(DataPlt::getLineId, lineIndex) .max(DataPlt::getPlt) - .groupBy(DataPlt::getLineId,DataPlt::getPhaseType,DataPlt::getQualityFlag,DataPlt::getValueType) + .groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType) .between(DataPlt::getTime, startTime, endTime); List result2 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper2); - result2.forEach(item->{ + result2.forEach(item -> { item.setValueType(InfluxDbSqlConstant.MAX); }); result.addAll(result2); @@ -1848,21 +1870,21 @@ public class DayDataServiceImpl implements DayDataService { InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataPlt.class); influxQueryWrapper3.regular(DataPlt::getLineId, lineIndex) .mean(DataPlt::getPlt) - .groupBy(DataPlt::getLineId,DataPlt::getPhaseType,DataPlt::getQualityFlag,DataPlt::getValueType) + .groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType) .between(DataPlt::getTime, startTime, endTime); List result3 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper3); - result3.forEach(item->{ + result3.forEach(item -> { item.setValueType(InfluxDbSqlConstant.AVG_WEB); }); result.addAll(result3); //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataPlt.class); influxQueryWrapper4.regular(DataPlt::getLineId, lineIndex) - .percentile(DataPlt::getPlt,95) - .groupBy(DataPlt::getLineId,DataPlt::getPhaseType,DataPlt::getQualityFlag,DataPlt::getValueType) + .percentile(DataPlt::getPlt, 95) + .groupBy(DataPlt::getLineId, DataPlt::getPhaseType, DataPlt::getQualityFlag, DataPlt::getValueType) .between(DataPlt::getTime, startTime, endTime); List result4 = dataPltMapper.getStatisticsByWraper(influxQueryWrapper4); - result4.forEach(item->{ + result4.forEach(item -> { item.setValueType(InfluxDbSqlConstant.CP95); }); result.addAll(result4); @@ -1875,8 +1897,8 @@ public class DayDataServiceImpl implements DayDataService { if (Math.abs(po1.getFreqDev()) > 7.5 || Math.abs(po1.getVlDev()) > 20 || Math.abs(po1.getVuDev()) > 20 - || po1.getVThd() > 30 - || po1.getVUnbalance() > 40) { + || po1.getVThd() > 30 + || po1.getVUnbalance() > 40) { result = 1; } } @@ -1887,4 +1909,9 @@ public class DayDataServiceImpl implements DayDataService { } return result; } + + + + } +