From c19f65f5c10e8671717e19fab5b94b6b2e7fc683 Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Thu, 18 Jan 2024 19:33:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B2=B3=E5=8C=97=E8=B6=85=E9=AB=98=E5=8E=8B?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mysql/Impl/line/DayDataServiceImpl.java | 116 ++++++++++++++++-- 1 file changed, 107 insertions(+), 9 deletions(-) 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 c25d8dcd0..cf9f14777 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 @@ -145,14 +145,21 @@ public class DayDataServiceImpl implements DayDataService { List lineIds = calculatedParam.getIdList(); //河北数据量较大,以尺寸20分片 - List> pendingIds = ListUtils.partition(lineIds,20); + List> pendingIds = ListUtils.partition(lineIds,5); 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) { + lineIds.forEach(item->{ //获取dataV数据 - List vList = getDataV(pendingId,beginDay,endDay); + List vList = getDataV(item,beginDay,endDay); log.info("mysql入库数据:" + vList); list1.addAll(vList); + }); + +// for (List pendingId : pendingIds) { +// //获取dataV数据 +// List vList = getDataV(pendingId,beginDay,endDay); +// log.info("mysql入库数据:" + vList); +// list1.addAll(vList); //获取dataI数据 //List iList = getDataI(pendingId,beginDay,endDay); //list2.addAll(iList); @@ -198,7 +205,7 @@ public class DayDataServiceImpl implements DayDataService { //获取data_plt数据 //List dataPltList = getDataPlt(pendingId,beginDay,endDay); //list16.addAll(dataPltList); - } +// } //dataV数据入库 if (!CollectionUtils.isEmpty(list1)) { for (DataV item : list1) { @@ -444,12 +451,12 @@ public class DayDataServiceImpl implements DayDataService { * @param endTime 结束时间 * @return */ - public List getDataV(List lineIndex, String startTime, String endTime) { + public List getDataV(String lineIndex, String startTime, String endTime) { List result = new ArrayList<>(); //最小值 InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class); influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); - influxQueryWrapper.regular(DataV::getLineId, lineIndex) + influxQueryWrapper.eq(DataV::getLineId, lineIndex) .eq(DataV::getValueType, InfluxDbSqlConstant.MIN) .min(DataV::getFreq) .min(DataV::getFreqDev) @@ -470,7 +477,7 @@ public class DayDataServiceImpl implements DayDataService { //最大值 InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataV.class); influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); - influxQueryWrapper2.regular(DataV::getLineId, lineIndex) + influxQueryWrapper2.eq(DataV::getLineId, lineIndex) .eq(DataV::getValueType, InfluxDbSqlConstant.MAX) .max(DataV::getFreq) .max(DataV::getFreqDev) @@ -491,7 +498,7 @@ public class DayDataServiceImpl implements DayDataService { //平均值 InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataV.class); influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); - influxQueryWrapper3.regular(DataV::getLineId, lineIndex) + influxQueryWrapper3.eq(DataV::getLineId, lineIndex) .eq(DataV::getValueType, InfluxDbSqlConstant.AVG_WEB) .mean(DataV::getFreq) .mean(DataV::getFreqDev) @@ -512,7 +519,7 @@ public class DayDataServiceImpl implements DayDataService { //CP95(取平均值的CP95值) InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataV.class); influxQueryWrapper4.percentileSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1),95); - influxQueryWrapper4.regular(DataV::getLineId, lineIndex) + influxQueryWrapper4.eq(DataV::getLineId, lineIndex) .eq(DataV::getValueType, InfluxDbSqlConstant.AVG_WEB) .percentile(DataV::getFreq,95) .percentile(DataV::getFreqDev,95) @@ -535,6 +542,97 @@ public class DayDataServiceImpl implements DayDataService { result.addAll(result4); return result; } +// public List getDataV(List lineIndex, String startTime, String endTime) { +// List result = new ArrayList<>(); +// //最小值 +// InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class); +// influxQueryWrapper.minSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); +// influxQueryWrapper.regular(DataV::getLineId, lineIndex) +// .eq(DataV::getValueType, InfluxDbSqlConstant.MIN) +// .min(DataV::getFreq) +// .min(DataV::getFreqDev) +// .min(DataV::getRms) +// .min(DataV::getRmsLvr) +// .min(DataV::getVNeg) +// .min(DataV::getVPos) +// .min(DataV::getVThd) +// .min(DataV::getVUnbalance) +// .min(DataV::getVZero) +// .min(DataV::getVlDev) +// .min(DataV::getVuDev) +// .groupBy(DataV::getLineId,DataV::getPhasicType,DataV::getQualityFlag,DataV::getValueType) +// .between(DataV::getTime, startTime, endTime); +// List result1 = dataVMapper.getStatisticsByWraper(influxQueryWrapper); +// log.info("最小值数据:" + result1); +// result.addAll(result1); +// //最大值 +// InfluxQueryWrapper influxQueryWrapper2 = new InfluxQueryWrapper(DataV.class); +// influxQueryWrapper2.maxSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); +// influxQueryWrapper2.regular(DataV::getLineId, lineIndex) +// .eq(DataV::getValueType, InfluxDbSqlConstant.MAX) +// .max(DataV::getFreq) +// .max(DataV::getFreqDev) +// .max(DataV::getRms) +// .max(DataV::getRmsLvr) +// .max(DataV::getVNeg) +// .max(DataV::getVPos) +// .max(DataV::getVThd) +// .max(DataV::getVUnbalance) +// .max(DataV::getVZero) +// .max(DataV::getVlDev) +// .max(DataV::getVuDev) +// .groupBy(DataV::getLineId,DataV::getPhasicType,DataV::getQualityFlag,DataV::getValueType) +// .between(DataV::getTime, startTime, endTime); +// List result2 = dataVMapper.getStatisticsByWraper(influxQueryWrapper2); +// log.info("最大值数据:" + result2); +// result.addAll(result2); +// //平均值 +// InfluxQueryWrapper influxQueryWrapper3 = new InfluxQueryWrapper(DataV.class); +// influxQueryWrapper3.meanSamePrefixAndSuffix(InfluxDbSqlConstant.V,"", HarmonicTimesUtil.harmonicTimesList(1,50,1)); +// influxQueryWrapper3.regular(DataV::getLineId, lineIndex) +// .eq(DataV::getValueType, InfluxDbSqlConstant.AVG_WEB) +// .mean(DataV::getFreq) +// .mean(DataV::getFreqDev) +// .mean(DataV::getRms) +// .mean(DataV::getRmsLvr) +// .mean(DataV::getVNeg) +// .mean(DataV::getVPos) +// .mean(DataV::getVThd) +// .mean(DataV::getVUnbalance) +// .mean(DataV::getVZero) +// .mean(DataV::getVlDev) +// .mean(DataV::getVuDev) +// .groupBy(DataV::getLineId,DataV::getPhasicType,DataV::getQualityFlag,DataV::getValueType) +// .between(DataV::getTime, startTime, endTime); +// List result3 = dataVMapper.getStatisticsByWraper(influxQueryWrapper3); +// log.info("平均值数据:" + result3); +// result.addAll(result3); +// //CP95(取平均值的CP95值) +// InfluxQueryWrapper influxQueryWrapper4 = new InfluxQueryWrapper(DataV.class); +// 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::getPhasicType,DataV::getQualityFlag,DataV::getValueType) +// .between(DataV::getTime, startTime, endTime); +// List result4 = dataVMapper.getStatisticsByWraper(influxQueryWrapper4); +// log.info("CP95值数据:" + result4); +// result4.forEach(item->{ +// item.setValueType(InfluxDbSqlConstant.CP95); +// }); +// result.addAll(result4); +// return result; +// } /** * 功能描述:获取dataI数据