瀏覽代碼

单机月度分析优化

wangb 6 天之前
父節點
當前提交
26103fbbd7
共有 1 個文件被更改,包括 22 次插入19 次删除
  1. 22 19
      runeconomy-xk/src/main/java/com/gyee/runeconomy/controller/SingleAnalysisController.java

+ 22 - 19
runeconomy-xk/src/main/java/com/gyee/runeconomy/controller/SingleAnalysisController.java

@@ -30,8 +30,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Controller
@@ -81,32 +82,34 @@ public class SingleAnalysisController {
         QueryWrapper<TurbineInfoDay> qw = new QueryWrapper<>();
         qw.lambda().eq(TurbineInfoDay::getStationId, wpId)
                 .between(TurbineInfoDay::getRecordDate, DateUtil.beginOfMonth(recordDate), recordDate)
-                .in(TurbineInfoDay::getTurbineId,subList2.stream().map(SingleAnalysisVo::getWindturbineid).collect(Collectors.toList()))
+                .in(TurbineInfoDay::getTurbineId, subList2.stream().map(SingleAnalysisVo::getWindturbineid).collect(Collectors.toList()))
                 .orderByAsc(TurbineInfoDay::getTurbineId);
         IPage<TurbineInfoDay> page = new Page<>(pageNum, pageSize);
         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());
+        LocalDate localDate = recordDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        int d = localDate.getDayOfMonth();
         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 / 1000, 2).doubleValue());
             double fs = list.stream().mapToDouble(TurbineInfoDay::getPjfs).average().orElse(0.0);
             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 / 1000, 2).doubleValue());
             double jxss = list.stream().mapToDouble(TurbineInfoDay::getJhjxss).sum();
-            sav.setJxss(NumberUtil.round(jxss, 2).doubleValue());
+            sav.setJxss(NumberUtil.round(jxss / 1000, 2).doubleValue());
             double xdss = list.stream().mapToDouble(TurbineInfoDay::getXdss).sum();
-            sav.setXdss(NumberUtil.round(xdss, 2).doubleValue());
+            sav.setXdss(NumberUtil.round(xdss / 1000, 2).doubleValue());
             double xnss = list.stream().mapToDouble(TurbineInfoDay::getXnss).sum();
-            sav.setXnss(NumberUtil.round(xnss, 2).doubleValue());
+            sav.setXnss(NumberUtil.round(xnss / 1000, 2).doubleValue());
             double slss = list.stream().mapToDouble(TurbineInfoDay::getSlss).sum();
-            sav.setSlss(NumberUtil.round(slss, 2).doubleValue());
+            sav.setSlss(NumberUtil.round(slss / 1000, 2).doubleValue());
             double llfdl = list.stream().mapToDouble(TurbineInfoDay::getLlfdl).sum();
-            sav.setLlfdl(NumberUtil.round(llfdl, 2).doubleValue());
+            sav.setLlfdl(NumberUtil.round(llfdl / 1000, 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();
@@ -130,7 +133,7 @@ public class SingleAnalysisController {
         }
         subList2.forEach(sav -> {
             List<TurbineInfoDay> days = dayMap.get(sav.getWindturbineid());
-            Optional<TurbineInfoDay> tbo=  days.stream().reduce((sum, day) -> {
+            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());
@@ -152,16 +155,16 @@ public class SingleAnalysisController {
                 return sum;
             });
             TurbineInfoDay tb;
-            if(tbo.isPresent()) {
+            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.setFdl(NumberUtil.round(tb.getRfdl() / 1000, 2).doubleValue());
+                sav.setFs(NumberUtil.round(tb.getPjfs() / d, 2).doubleValue());
+                sav.setGzss(NumberUtil.round(tb.getGzss() / 1000, 2).doubleValue());
+                sav.setJxss(NumberUtil.round(tb.getJhjxss() / 1000, 2).doubleValue());
+                sav.setXdss(NumberUtil.round(tb.getXdss() / 1000, 2).doubleValue());
+                sav.setXnss(NumberUtil.round(tb.getXnss() / 1000, 2).doubleValue());
+                sav.setSlss(NumberUtil.round(tb.getSlss() / 1000, 2).doubleValue());
+                sav.setLlfdl(NumberUtil.round(tb.getLlfdl() / 1000, 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());