From 0ff042d1a14255067b2368066c533c0d3ef86078 Mon Sep 17 00:00:00 2001 From: dongyukun <1208714201@qq.com> Date: 星期二, 06 五月 2025 10:32:23 +0800 Subject: [PATCH] 峰谷平占比计算 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/job/task/RunPeakValleyFlatTask.java | 58 ++++------------------------------------------------------ 1 files changed, 4 insertions(+), 54 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 994a431..9628f91 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 @@ -43,57 +43,21 @@ //根据测点分组 Map<String, List<PeakValleyFlatEntity>> groupedByPointNo = list.stream() - .collect(Collectors.groupingBy(PeakValleyFlatEntity::getPowerNo)); + .collect(Collectors.groupingBy(PeakValleyFlatEntity::getPointNo)); groupedByPointNo.entrySet().stream().forEach(entry -> { //计算昨日的累积量 double value = getSumValue(entry.getValue(), 1, calendar); - //计算昨日总电耗 - Calendar cal = (Calendar) calendar.clone(); - cal.set(Calendar.MILLISECOND, 0); - cal.set(Calendar.MINUTE, 0); - cal.set(Calendar.HOUR_OF_DAY, 0); - Date endTime = calendar.getTime(); - cal.add(Calendar.DAY_OF_YEAR, -1); - Date startTime = cal.getTime(); - double totalValue = getSumValueTotal(entry.getValue().get(0).getPowerNo(), startTime,endTime); - - //下发昨日占比 + //下发昨日的累积量 ApiPointValueWriteDTO dto = new ApiPointValueWriteDTO(); dto.setPointNo(entry.getValue().get(0).getPointNo()); - double percent = totalValue==0?0:value/totalValue*100; - dto.setValue(percent); + dto.setValue(value); dataPointApi.writePointRealValue(dto); - - if(entry.getValue().get(0).getPointNoMonth()!=null){ - //计算前三十日累积量 - double value30 = 0; - for (int i = 1; i < 31; i++) { - //计算前三十日累积量 - value30 = value30 + getSumValue(entry.getValue(), i, calendar); - } - - //计算前三十日总电耗 - calendar.set(Calendar.MILLISECOND, 0); - calendar.set(Calendar.MINUTE, 0); - calendar.set(Calendar.HOUR_OF_DAY, 0); - calendar.add(Calendar.DAY_OF_YEAR, -30); - Date startTimeMonth = calendar.getTime(); - double totalValueMonth = getSumValueTotal(entry.getValue().get(0).getPowerNo(), startTimeMonth,endTime); - - //下发前三十日占比 - ApiPointValueWriteDTO monthDto = new ApiPointValueWriteDTO(); - monthDto.setPointNo(entry.getValue().get(0).getPointNoMonth()); - double percentMonth = totalValueMonth==0?0:value30/totalValueMonth*100; - monthDto.setValue(percentMonth); - dataPointApi.writePointRealValue(monthDto); - } }); } catch (Exception ex) { - logger.error("runPeakValleyFlatTask运行异常"); - ex.printStackTrace(); + logger.error("runPeakValleyFlatTask运行异常", ex); } } @@ -184,19 +148,5 @@ value = value + sum; } return value / 60; - } - - private double getSumValueTotal(String pointNo, Date startTime, Date endTime) { - ApiPointValueQueryDTO dto = new ApiPointValueQueryDTO(); - dto.setPointNo(pointNo); - dto.setStart(startTime); - dto.setEnd(endTime); - - //查找数据 - List<ApiPointValueDTO> valueList = dataPointApi.queryPointHistoryValue(dto); - //补全数据 - valueList = fillMissingData(valueList, startTime, endTime); - //累加 - return valueList.stream().mapToDouble(ApiPointValueDTO::getV).sum()/ 60; } } -- Gitblit v1.9.3