From 7fd44ca345b169182ad9cb8d4d2c15c392845a02 Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期三, 07 五月 2025 18:57:31 +0800 Subject: [PATCH] 月累计 平均*30 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java | 29 ++++++++++++++++++----------- 1 files changed, 18 insertions(+), 11 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java index 03ea7f6..b61a29e 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java @@ -54,20 +54,22 @@ Date endTime = calendar.getTime(); cal.add(Calendar.DAY_OF_YEAR, -1); Date startTime = cal.getTime(); - cal.add(Calendar.DAY_OF_YEAR, -29); - Date monthStartTime = cal.getTime(); + cal.add(Calendar.DAY_OF_YEAR, -27); + Date monthStartTime_29 = cal.getTime(); + cal.add(Calendar.DAY_OF_YEAR, -2); + Date monthStartTime_30 = cal.getTime(); //计算昨日的峰/谷累积量 double value = getSumValue(entry.getValue(), 1, calendar); //计算昨日总电耗 - double totalValue = getSumValueTotal(entry.getValue().get(0).getPowerNo(), startTime, endTime); + double totalValue = getSumValueTotal(entry.getValue().get(0).getPowerNo(), startTime, endTime,1440,60); - //计算前三十日峰/谷累积量 - double valueMonth = getSumValueTotal(entry.getValue().get(0).getPointNoTotal(), monthStartTime, startTime)+value; + //计算前29日峰/谷累积量 + 今日 + double valueMonth = getSumValueTotal(entry.getValue().get(0).getPointNoTotal(), monthStartTime_29, endTime,29,1)+value; //计算前三十日总电耗 - double totalValueMonth = getSumValueTotal(entry.getValue().get(0).getPowerNo(), monthStartTime, endTime); + double totalValueMonth = getSumValueTotal(entry.getValue().get(0).getPowerNo(), monthStartTime_30, endTime,1440 * 30,60); logger.info("name:"+entry.getValue().get(0).getName()+";value:"+value+";totalValue:"+totalValue+";valueMonth:"+valueMonth+";totalValueMonth:"+totalValueMonth); @@ -182,15 +184,18 @@ throw new RuntimeException("查询测点异常"); } //补全数据 - valueList = fillMissingData(valueList, startTime, endTime); +// valueList = fillMissingData(valueList, startTime, endTime); + // 计算 startTime和endTime中有多少个点 + long total = (endTime.getTime() - startTime.getTime()) / (60 * 1000); + double sum = valueList.stream().filter(e -> Double.compare(e.getV(), 0.0) > 0).mapToDouble(ApiPointValueDTO::getV).average().orElse(0.0) * Long.valueOf(total).doubleValue(); //累加 - double sum = valueList.stream().mapToDouble(ApiPointValueDTO::getV).sum(); +// double sum = valueList.stream().mapToDouble(ApiPointValueDTO::getV).sum(); value = value + sum; } return value / 60; } - private double getSumValueTotal(String pointNo, Date startTime, Date endTime) { + private double getSumValueTotal(String pointNo, Date startTime, Date endTime,Integer total,Integer divide) { ApiPointValueQueryDTO dto = new ApiPointValueQueryDTO(); dto.setPointNo(pointNo); dto.setStart(startTime); @@ -199,8 +204,10 @@ //查找数据 List<ApiPointValueDTO> valueList = dataPointApi.queryPointHistoryValue(dto); //补全数据 - valueList = fillMissingData(valueList, startTime, endTime); +// valueList = fillMissingData(valueList, startTime, endTime); + double value = valueList.stream().filter(e -> Double.compare(e.getV(), 0.0) > 0).mapToDouble(ApiPointValueDTO::getV).average().orElse(0.0) * Double.valueOf(total); + //累加 - return valueList.stream().mapToDouble(ApiPointValueDTO::getV).sum() / 60; + return value / divide; } } -- Gitblit v1.9.3