|
@@ -1,6 +1,7 @@
|
|
|
package com.gyee.runeconomy.controller;
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -76,32 +77,36 @@ public class SingleAnalysisController {
|
|
|
map = singleAnalysisService.SingleAnalysisList(pageNum, pageSize, cmId, type, wpId, recordDate);
|
|
|
|
|
|
List<SingleAnalysisVo> subList = (List<SingleAnalysisVo>) map.get("values");
|
|
|
+ List<SingleAnalysisVo> subList2 = subList.stream().filter(s -> null != s.getWindturbineid()).collect(Collectors.toList());
|
|
|
QueryWrapper<TurbineInfoDay> qw = new QueryWrapper<>();
|
|
|
- qw.lambda().eq(TurbineInfoDay::getStationId, wpId).eq(TurbineInfoDay::getRecordDate, recordDate).orderByAsc(TurbineInfoDay::getTurbineId);
|
|
|
+ qw.lambda().eq(TurbineInfoDay::getStationId, wpId)
|
|
|
+ .between(TurbineInfoDay::getRecordDate, DateUtil.beginOfMonth(recordDate), recordDate)
|
|
|
+ .in(TurbineInfoDay::getTurbineId,subList2.stream().map(SingleAnalysisVo::getWindturbineid).collect(Collectors.toList()))
|
|
|
+ .orderByAsc(TurbineInfoDay::getTurbineId);
|
|
|
IPage<TurbineInfoDay> page = new Page<>(pageNum, pageSize);
|
|
|
- IPage<TurbineInfoDay> page1 = turbineInfoDayService.page(page, qw);
|
|
|
- Map<String, TurbineInfoDay> dayMap = page1.getRecords().stream().collect(Collectors.toMap(TurbineInfoDay::getTurbineId, Function.identity()));
|
|
|
- List<SingleAnalysisVo> subList2 = subList.stream().filter(s -> null != s.getWindturbineid()).collect(Collectors.toList());
|
|
|
+ List<TurbineInfoDay> page1 = turbineInfoDayService.list(qw);
|
|
|
+ //Map<String, TurbineInfoDay> dayMap = page1.getRecords().stream().collect(Collectors.toMap(TurbineInfoDay::getTurbineId, Function.identity()));
|
|
|
+ Map<String, List<TurbineInfoDay>> dayMap = page1.stream().collect(Collectors.groupingBy(TurbineInfoDay::getTurbineId));
|
|
|
List<SingleAnalysisVo> subList3 = subList.stream().filter(s -> null == s.getWindturbineid()).collect(Collectors.toList());
|
|
|
if (subList3.size() == 1) {
|
|
|
List<TurbineInfoDay> list = turbineInfoDayService.list(qw);
|
|
|
SingleAnalysisVo sav = subList3.get(0);
|
|
|
double fdl = list.stream().mapToDouble(TurbineInfoDay::getRfdl).sum();
|
|
|
- sav.setFdl(NumberUtil.round(fdl,2).doubleValue());
|
|
|
+ sav.setFdl(NumberUtil.round(fdl, 2).doubleValue());
|
|
|
double fs = list.stream().mapToDouble(TurbineInfoDay::getPjfs).average().orElse(0.0);
|
|
|
- sav.setFs(NumberUtil.round(fs,2).doubleValue());
|
|
|
+ sav.setFs(NumberUtil.round(fs, 2).doubleValue());
|
|
|
double gzss = list.stream().mapToDouble(TurbineInfoDay::getGzss).sum();
|
|
|
- sav.setGzss(NumberUtil.round(gzss,2).doubleValue());
|
|
|
+ sav.setGzss(NumberUtil.round(gzss, 2).doubleValue());
|
|
|
double jxss = list.stream().mapToDouble(TurbineInfoDay::getJhjxss).sum();
|
|
|
- sav.setJxss(NumberUtil.round(jxss,2).doubleValue());
|
|
|
+ sav.setJxss(NumberUtil.round(jxss, 2).doubleValue());
|
|
|
double xdss = list.stream().mapToDouble(TurbineInfoDay::getXdss).sum();
|
|
|
- sav.setXdss(NumberUtil.round(xdss,2).doubleValue());
|
|
|
+ sav.setXdss(NumberUtil.round(xdss, 2).doubleValue());
|
|
|
double xnss = list.stream().mapToDouble(TurbineInfoDay::getXnss).sum();
|
|
|
- sav.setXnss(NumberUtil.round(xnss,2).doubleValue());
|
|
|
+ sav.setXnss(NumberUtil.round(xnss, 2).doubleValue());
|
|
|
double slss = list.stream().mapToDouble(TurbineInfoDay::getSlss).sum();
|
|
|
- sav.setSlss(NumberUtil.round(slss,2).doubleValue());
|
|
|
+ sav.setSlss(NumberUtil.round(slss, 2).doubleValue());
|
|
|
double llfdl = list.stream().mapToDouble(TurbineInfoDay::getLlfdl).sum();
|
|
|
- sav.setLlfdl(NumberUtil.round(llfdl,2).doubleValue());
|
|
|
+ sav.setLlfdl(NumberUtil.round(llfdl, 2).doubleValue());
|
|
|
double gzmin = list.stream().mapToDouble(TurbineInfoDay::getGzMin).sum();
|
|
|
sav.setGzxs(NumberUtil.round(gzmin / 60, 2).doubleValue());
|
|
|
double jxmin = list.stream().mapToDouble(TurbineInfoDay::getJxMin).sum();
|
|
@@ -113,36 +118,61 @@ public class SingleAnalysisController {
|
|
|
double djmin = list.stream().mapToDouble(TurbineInfoDay::getDjMin).sum();
|
|
|
sav.setDjxs(NumberUtil.round(djmin / 60, 2).doubleValue());
|
|
|
double lyxs = list.stream().mapToDouble(TurbineInfoDay::getLyxs).sum();
|
|
|
- sav.setLyxs(NumberUtil.round(lyxs,2).doubleValue());
|
|
|
+ sav.setLyxs(NumberUtil.round(lyxs, 2).doubleValue());
|
|
|
double sbklyl = list.stream().mapToDouble(TurbineInfoDay::getKlyl).average().orElse(0.0);
|
|
|
- sav.setSbklyl(NumberUtil.round(sbklyl,2).doubleValue());
|
|
|
+ sav.setSbklyl(NumberUtil.round(sbklyl, 2).doubleValue());
|
|
|
double xfqrfs = list.stream().mapToDouble(TurbineInfoDay::getXfqrfs).average().orElse(0.0);
|
|
|
- sav.setXfqr(NumberUtil.round(xfqrfs,2).doubleValue());
|
|
|
+ sav.setXfqr(NumberUtil.round(xfqrfs, 2).doubleValue());
|
|
|
double yxfss = list.stream().mapToDouble(TurbineInfoDay::getYxfss).sum();
|
|
|
- sav.setYxfss(NumberUtil.round(yxfss,2).doubleValue());
|
|
|
+ sav.setYxfss(NumberUtil.round(yxfss, 2).doubleValue());
|
|
|
double jfpl = list.stream().mapToDouble(TurbineInfoDay::getJfpl).sum();
|
|
|
- sav.setJfpl(NumberUtil.round(jfpl,2).doubleValue());
|
|
|
+ sav.setJfpl(NumberUtil.round(jfpl, 2).doubleValue());
|
|
|
}
|
|
|
subList2.forEach(sav -> {
|
|
|
- TurbineInfoDay day = dayMap.get(sav.getWindturbineid());
|
|
|
- sav.setFdl(NumberUtil.round(day.getRfdl(),2).doubleValue());
|
|
|
- sav.setFs(NumberUtil.round(day.getPjfs(),2).doubleValue());
|
|
|
- sav.setGzss(NumberUtil.round(day.getGzss(),2).doubleValue());
|
|
|
- sav.setJxss(NumberUtil.round(day.getJhjxss(),2).doubleValue());
|
|
|
- sav.setXdss(NumberUtil.round(day.getXdss(),2).doubleValue());
|
|
|
- sav.setXnss(NumberUtil.round(day.getXnss(),2).doubleValue());
|
|
|
- sav.setSlss(NumberUtil.round(day.getSlss(),2).doubleValue());
|
|
|
- sav.setLlfdl(NumberUtil.round(day.getLlfdl(),2).doubleValue());
|
|
|
- sav.setGzxs(NumberUtil.round(day.getGzMin() / 60, 2).doubleValue());
|
|
|
- sav.setJxxs(NumberUtil.round(day.getJxMin() / 60, 2).doubleValue());
|
|
|
- sav.setTjxs(NumberUtil.round(day.getTjMin() / 60, 2).doubleValue());
|
|
|
- sav.setYxxs(NumberUtil.round(day.getYxMin() / 60, 2).doubleValue());
|
|
|
- sav.setDjxs(NumberUtil.round(day.getDjMin() / 60, 2).doubleValue());
|
|
|
- sav.setLyxs(NumberUtil.round(day.getLyxs(),2).doubleValue());
|
|
|
- sav.setSbklyl(NumberUtil.round(day.getKlyl(),2).doubleValue());
|
|
|
- sav.setXfqr(NumberUtil.round(day.getXfqrfs(),2).doubleValue());
|
|
|
- sav.setYxfss(NumberUtil.round(day.getYxfss(),2).doubleValue());
|
|
|
- sav.setJfpl(NumberUtil.round(day.getJfpl(),2).doubleValue());
|
|
|
+ List<TurbineInfoDay> days = dayMap.get(sav.getWindturbineid());
|
|
|
+ Optional<TurbineInfoDay> tbo= days.stream().reduce((sum, day) -> {
|
|
|
+ sum.setRfdl(sum.getRfdl() + day.getRfdl());
|
|
|
+ sum.setPjfs(sum.getPjfs() + day.getPjfs());
|
|
|
+ sum.setGzss(sum.getGzss() + day.getGzss());
|
|
|
+ sum.setJhjxss(sum.getJhjxss() + day.getJhjxss());
|
|
|
+ sum.setXdss(sum.getXdss() + day.getXdss());
|
|
|
+ sum.setXnss(sum.getXnss() + day.getXnss());
|
|
|
+ sum.setSlss(sum.getSlss() + day.getSlss());
|
|
|
+ sum.setLlfdl(sum.getLlfdl() + day.getLlfdl());
|
|
|
+ sum.setGzMin(sum.getGzMin() + day.getGzMin() / 60);
|
|
|
+ sum.setJxMin(sum.getJxMin() + day.getJxMin() / 60);
|
|
|
+ sum.setXdss(sum.getTjMin() + day.getTjMin() / 60);
|
|
|
+ sum.setYxMin(sum.getYxMin() + day.getYxMin() / 60);
|
|
|
+ sum.setDjMin(sum.getDjMin() + day.getDjMin() / 60);
|
|
|
+ sum.setLyxs(sum.getLyxs() + day.getLyxs());
|
|
|
+ sum.setKlyl(sum.getKlyl() + day.getKlyl());
|
|
|
+ sum.setXfqrfs(sum.getXfqrfs() + day.getXfqrfs());
|
|
|
+ sum.setYxfss(sum.getYxfss() + day.getYxfss());
|
|
|
+ sum.setJfpl(sum.getJfpl() + day.getJfpl());
|
|
|
+ return sum;
|
|
|
+ });
|
|
|
+ TurbineInfoDay tb;
|
|
|
+ if(tbo.isPresent()) {
|
|
|
+ tb = tbo.get();
|
|
|
+ sav.setFdl(NumberUtil.round(tb.getRfdl(), 2).doubleValue());
|
|
|
+ sav.setFs(NumberUtil.round(tb.getPjfs(), 2).doubleValue());
|
|
|
+ sav.setGzss(NumberUtil.round(tb.getGzss(), 2).doubleValue());
|
|
|
+ sav.setJxss(NumberUtil.round(tb.getJhjxss(), 2).doubleValue());
|
|
|
+ sav.setXdss(NumberUtil.round(tb.getXdss(), 2).doubleValue());
|
|
|
+ sav.setXnss(NumberUtil.round(tb.getXnss(), 2).doubleValue());
|
|
|
+ sav.setSlss(NumberUtil.round(tb.getSlss(), 2).doubleValue());
|
|
|
+ sav.setLlfdl(NumberUtil.round(tb.getLlfdl(), 2).doubleValue());
|
|
|
+ sav.setGzxs(NumberUtil.round(tb.getGzMin() / 60, 2).doubleValue());
|
|
|
+ sav.setJxxs(NumberUtil.round(tb.getJxMin() / 60, 2).doubleValue());
|
|
|
+ sav.setTjxs(NumberUtil.round(tb.getTjMin() / 60, 2).doubleValue());
|
|
|
+ sav.setYxxs(NumberUtil.round(tb.getYxMin() / 60, 2).doubleValue());
|
|
|
+ sav.setDjxs(NumberUtil.round(tb.getDjMin() / 60, 2).doubleValue());
|
|
|
+ sav.setLyxs(NumberUtil.round(tb.getLyxs(), 2).doubleValue());
|
|
|
+ sav.setSbklyl(NumberUtil.round(tb.getKlyl(), 2).doubleValue());
|
|
|
+ sav.setXfqr(NumberUtil.round(tb.getXfqrfs(), 2).doubleValue());
|
|
|
+ sav.setYxfss(NumberUtil.round(tb.getYxfss(), 2).doubleValue());
|
|
|
+ sav.setJfpl(NumberUtil.round(tb.getJfpl(), 2).doubleValue());
|
|
|
+ }
|
|
|
});
|
|
|
|
|
|
return R.data(ResultMsg.ok(map));
|