فهرست منبع

首页数据接口

xusl 8 ماه پیش
والد
کامیت
7d54dfd1cc

+ 204 - 19
cpp-admin/src/main/java/com/cpp/web/controller/largeScreen/LargeScreenController.java

@@ -1,18 +1,18 @@
 package com.cpp.web.controller.largeScreen;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.cpp.common.core.domain.R;
-import com.cpp.web.domain.station.PowerStationStatusData;
-import com.cpp.web.service.station.PowerStationStatusDataService;
+import com.cpp.system.service.ISysConfigService;
+import com.cpp.web.domain.station.*;
+import com.cpp.web.service.station.*;
 import com.cpp.web.utils.DateTimeUtil;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -27,26 +27,211 @@ import java.util.Map;
 public class LargeScreenController {
     @Autowired
     PowerStationStatusDataService powerStationStatusDataService;
+    @Autowired
+    ISysConfigService configService;
+    @Autowired
+    ForecastPowerUltraShortTermStationService forecastPowerUltraShortTermStationService;
+    @Autowired
+    ForecastPowerShortTermRegulationService forecastPowerShortTermRegulationService;
+    @Autowired
+    ElectricFieldService electricFieldService;
+    @Autowired
+    WindTowerStatusDataService windTowerStatusDataService;
+    @Autowired
+    WeatherStationStatusDataService weatherStationStatusDataService;
 
     @GetMapping("/getBizData")
     public R getBizData() {
+        Date dayStartTime = DateTimeUtil.getDayStartTime(System.currentTimeMillis());
+        Date dayEndTime = DateTimeUtil.getDayLastTime(System.currentTimeMillis());
+
         Map bizDataMap = new HashMap();
-        // 获取首页实际功率、可用、理论
-        Date powerStationTime = DateTimeUtil.getMomentTimeFor5Minute(System.currentTimeMillis());
-        List<PowerStationStatusData> powerStationStatusDataList = powerStationStatusDataService.findByTimeBetween(powerStationTime,powerStationTime);
+        // 定义首页实际功率、可用、理论总和
         BigDecimal realSum = BigDecimal.ZERO;
         BigDecimal ableSum = BigDecimal.ZERO;
         BigDecimal theorySum = BigDecimal.ZERO;
-        for (PowerStationStatusData powerStationStatusData: powerStationStatusDataList){
-            realSum = realSum.add(powerStationStatusData.getRealValue());
-            ableSum = ableSum.add(powerStationStatusData.getAbleValue());
-            theorySum = theorySum.add(powerStationStatusData.getTheoryValue());
-        }
-        Map powerStationSumMap = new HashMap();
-        powerStationSumMap.put("realSum",realSum);
-        powerStationSumMap.put("ableSum",ableSum);
-        powerStationSumMap.put("theorySum",theorySum);
-        bizDataMap.put("powerStationSumMap",powerStationSumMap);
+        BigDecimal cdqSum = BigDecimal.ZERO;
+        BigDecimal dqSum = BigDecimal.ZERO;
+        // 首页实际、可用、理论曲线图数组
+        List<Object> realList = new ArrayList<>();
+        List<Object> ableList = new ArrayList<>();
+        List<Object> theoryList = new ArrayList<>();
+        List<Object> cdqList = new ArrayList<>();
+        List<Object> dqList = new ArrayList<>();
+        // 限电场站数定义
+        int xdCount = 0;
+        // 查询实际功率、可用、理论
+        Date currentTime5 = DateTimeUtil.getMomentTimeFor5Minute(System.currentTimeMillis());
+        List<PowerStationStatusData> powerStationStatusDataList = powerStationStatusDataService.findByTimeBetween(dayStartTime,dayEndTime);
+        // 按场时间分组
+        Map<Long, List<PowerStationStatusData>> powerStationStatusDataGroup = powerStationStatusDataList.stream().collect(Collectors.groupingBy(s->s.getTime().getTime()));
+        // 统计当前时刻实际功率的总和
+        if (powerStationStatusDataGroup.get(currentTime5.getTime())!=null){
+            List<PowerStationStatusData> currentPowerStationDataList = powerStationStatusDataGroup.get(currentTime5.getTime());
+            for (PowerStationStatusData powerStationStatusData:currentPowerStationDataList){
+                realSum = realSum.add(powerStationStatusData.getRealValue());
+                ableSum = ableSum.add(powerStationStatusData.getAbleValue());
+                theorySum = theorySum.add(powerStationStatusData.getTheoryValue());
+                if (powerStationStatusData.getPowerRationing().intValue()==1){
+                    xdCount++;
+                }
+            }
+        }
+
+
+        // 获取超短期
+        String cdqHowLongAgo = configService.selectConfigByKey("cdqHowLongAgo");
+        QueryWrapper cdqysWrapper = new QueryWrapper<>();
+        cdqysWrapper.eq("forecast_how_long_ago", Integer.parseInt(cdqHowLongAgo));
+        cdqysWrapper.between("time", dayStartTime, dayEndTime);
+        List<ForecastPowerUltraShortTermStation> forecastPowerUltraShortTermStationList = forecastPowerUltraShortTermStationService.list(cdqysWrapper);
+        // 按场时间分组
+        Map<Long, List<ForecastPowerUltraShortTermStation>> utraShortTermStationDataGroup = forecastPowerUltraShortTermStationList.stream().collect(Collectors.groupingBy(s->s.getTime().getTime()));
+        Date currentTime15 = DateTimeUtil.getMomentTimeFor15Minute(System.currentTimeMillis());
+        // 统计当前时刻超短期的总和
+        if (utraShortTermStationDataGroup.get(currentTime15.getTime())!=null){
+            List<ForecastPowerUltraShortTermStation> ultraShortTermDataList = utraShortTermStationDataGroup.get(currentTime15.getTime());
+            for (ForecastPowerUltraShortTermStation forecastPowerUltraShortTermStation:ultraShortTermDataList){
+                cdqSum = cdqSum.add(forecastPowerUltraShortTermStation.getFpValue());
+            }
+        }
+
+        // 获取短期上报
+        String dqHowLongAgo = configService.selectConfigByKey("dqHowLongAgo");
+        QueryWrapper dqsbWrapper = new QueryWrapper<>();
+        dqsbWrapper.eq("forecast_how_long_ago", Integer.parseInt(dqHowLongAgo));
+        dqsbWrapper.between("time", dayStartTime, dayEndTime);
+        List<ForecastPowerShortTermRegulation> forecastPowerShortTermRegulationList = forecastPowerShortTermRegulationService.list(dqsbWrapper);
+        // 按场时间分组
+        Map<Long, List<ForecastPowerShortTermRegulation>> shortTermDataGroup = forecastPowerShortTermRegulationList.stream().collect(Collectors.groupingBy(s->s.getTime().getTime()));
+        // 统计当前时刻短期的总和
+        if (shortTermDataGroup.get(currentTime15.getTime())!=null){
+            List<ForecastPowerShortTermRegulation> shortTermDataList = shortTermDataGroup.get(currentTime15.getTime());
+            for (ForecastPowerShortTermRegulation forecastPowerShortTermRegulation:shortTermDataList){
+                dqSum = dqSum.add(forecastPowerShortTermRegulation.getFpValue());
+            }
+        }
+
+        Long momentTime = 15 * 60 * 1000L;
+        for (Long tempTime = dayStartTime.getTime(); tempTime <= dayEndTime.getTime(); tempTime = tempTime + momentTime) {
+            // 统计实际功率、可用、理论曲线
+            if (powerStationStatusDataGroup.get(tempTime)!=null){
+                // 对每个时间点的所有场站数据进行求和
+                List<PowerStationStatusData> everyDataList = powerStationStatusDataGroup.get(tempTime);
+                BigDecimal tempRealSum = BigDecimal.ZERO;
+                BigDecimal tempAbleSum = BigDecimal.ZERO;
+                BigDecimal tempTheorySum = BigDecimal.ZERO;
+                for (PowerStationStatusData powerStationStatusData:everyDataList){
+                    BigDecimal realValue = powerStationStatusData.getRealValue();
+                    tempRealSum = tempRealSum.add(realValue);
+                    BigDecimal ableValue = powerStationStatusData.getAbleValue();
+                    tempAbleSum = tempAbleSum.add(ableValue);
+                    BigDecimal theoryValue = powerStationStatusData.getTheoryValue();
+                    tempTheorySum = tempTheorySum.add(theoryValue);
+                }
+                realList.add(tempRealSum);
+                ableList.add(tempAbleSum);
+                theoryList.add(tempTheorySum);
+            }
+            else{
+                realList.add(null);
+                ableList.add(null);
+                theoryList.add(null);
+            }
+            // 统计超短期曲线
+            if (utraShortTermStationDataGroup.get(tempTime)!=null){
+                // 对每个时间点的所有场站数据进行求和
+                List<ForecastPowerUltraShortTermStation> everyDataList = utraShortTermStationDataGroup.get(tempTime);
+                BigDecimal tempCdqSum = BigDecimal.ZERO;
+                for (ForecastPowerUltraShortTermStation forecastPowerUltraShortTermStation:everyDataList){
+                    BigDecimal cdqValue = forecastPowerUltraShortTermStation.getFpValue();
+                    tempCdqSum = tempCdqSum.add(cdqValue);
+                }
+                cdqList.add(tempCdqSum);
+            }
+            else{
+                cdqList.add(null);
+            }
+            // 统计短期上报曲线
+            if (shortTermDataGroup.get(tempTime)!=null){
+                // 对每个时间点的所有场站数据进行求和
+                List<ForecastPowerShortTermRegulation> everyDataList = shortTermDataGroup.get(tempTime);
+                BigDecimal tempDqSum = BigDecimal.ZERO;
+                for (ForecastPowerShortTermRegulation forecastPowerShortTermRegulation:everyDataList){
+                    BigDecimal dqValue = forecastPowerShortTermRegulation.getFpValue();
+                    tempDqSum = tempDqSum.add(dqValue);
+                }
+                dqList.add(tempDqSum);
+            }
+            else{
+                dqList.add(null);
+            }
+        }
+
+
+        // 定义总和map
+        Map sumMap = new HashMap();
+        sumMap.put("realSum",realSum);
+        sumMap.put("ableSum",ableSum);
+        sumMap.put("theorySum",theorySum);
+        // 定义曲线map
+        Map curveMap = new HashMap();
+        curveMap.put("realList",realList);
+        curveMap.put("ableList",ableList);
+        curveMap.put("theoryList",theoryList);
+        sumMap.put("cdqSum",cdqSum);
+        curveMap.put("cdqList",cdqList);
+        sumMap.put("dqSum",dqSum);
+        curveMap.put("dqList",dqList);
+        // 获取所有场站
+        List<ElectricField> electricFieldList = electricFieldService.list();
+        // 定义限电图map
+        Map xdMap = new HashMap();
+        // 总场站数
+        xdMap.put("zczs",electricFieldList.size());
+        // 限电场站数
+        xdMap.put("xdzs",xdCount);
+        // 限电比
+        if (electricFieldList.size()==0){
+            xdMap.put("xdbl","0");
+        }
+        else{
+            xdMap.put("xdbl",new BigDecimal(xdCount).divide(new BigDecimal(electricFieldList.size()).multiply(new BigDecimal("100")),2, BigDecimal.ROUND_HALF_UP));
+        }
+        // 总场站容量
+        BigDecimal totalCapacity = BigDecimal.ZERO;
+        for (ElectricField electricField : electricFieldList) {
+            totalCapacity = totalCapacity.add(electricField.getCapacity());
+        }
+        xdMap.put("totalCapacity",totalCapacity);
+
+        // 首页风速、辐照度平均值统计
+        Map envDataMap = new HashMap();
+        BigDecimal wsAvg = BigDecimal.ZERO;
+        // 获取当前时刻的所有风塔数据
+        List<WindTowerStatusData> windTowerStatusDataList = windTowerStatusDataService.findByBetweenTimeAndStationCode(currentTime5, currentTime5, null);
+        for (WindTowerStatusData windTowerStatusData:windTowerStatusDataList){
+            wsAvg = wsAvg.add(windTowerStatusData.getWsHubHeight());
+        }
+        if (wsAvg.compareTo(BigDecimal.ZERO)==1){
+            wsAvg = wsAvg.divide(new BigDecimal(windTowerStatusDataList.size()),2, BigDecimal.ROUND_HALF_UP);
+        }
+        envDataMap.put("wsAvg",wsAvg);
+        BigDecimal fzdAvg = BigDecimal.ZERO;
+        // 获取当前时刻的所有气象站数据
+        List<WeatherStationStatusData> weatherStationStatusDataList = weatherStationStatusDataService.findByBetweenTimeAndStationCode(currentTime5, currentTime5, null);
+        for (WeatherStationStatusData weatherStationStatusData:weatherStationStatusDataList){
+            fzdAvg = fzdAvg.add(weatherStationStatusData.getGlobalR());
+        }
+        if (fzdAvg.compareTo(BigDecimal.ZERO)==1){
+            fzdAvg = fzdAvg.divide(new BigDecimal(weatherStationStatusDataList.size()),2, BigDecimal.ROUND_HALF_UP);
+        }
+        envDataMap.put("fzdAvg",fzdAvg);
+
+        bizDataMap.put("sumMap",sumMap);
+        bizDataMap.put("curveMap",curveMap);
+        bizDataMap.put("xdMap",xdMap);
+        bizDataMap.put("envDataMap",envDataMap);
         return R.ok(bizDataMap);
     }
 }

+ 4 - 4
cpp-admin/src/main/java/com/cpp/web/service/station/impl/PowerStationStatusDataServiceImpl.java

@@ -201,10 +201,10 @@ public class PowerStationStatusDataServiceImpl extends ServiceImpl<PowerStationS
         Map<Long, ForecastPowerUltraShortTermStation> cdqysMap = new HashMap<>();
         String cdqHowLongAgo = configService.selectConfigByKey("cdqHowLongAgo");
         QueryWrapper cdqysWrapper = new QueryWrapper<>();
-        cdqysWrapper.eq("forecast_how_long_ago", Integer.parseInt(dqHowLongAgo));
+        cdqysWrapper.eq("forecast_how_long_ago", Integer.parseInt(cdqHowLongAgo));
         cdqysWrapper.eq("station_code", stationCode);
         cdqysWrapper.between("time", new Date(startTime), new Date(endTime));
-        List<ForecastPowerUltraShortTermStation> forecastPowerUltraShortTermStationList = forecastPowerUltraShortTermStationService.list(dqysWrapper);
+        List<ForecastPowerUltraShortTermStation> forecastPowerUltraShortTermStationList = forecastPowerUltraShortTermStationService.list(cdqysWrapper);
         for (ForecastPowerUltraShortTermStation forecastPowerUltraShortTermStation : forecastPowerUltraShortTermStationList) {
             cdqysMap.put(forecastPowerUltraShortTermStation.getTime().getTime(), forecastPowerUltraShortTermStation);
         }
@@ -214,7 +214,7 @@ public class PowerStationStatusDataServiceImpl extends ServiceImpl<PowerStationS
         dqsbWrapper.eq("forecast_how_long_ago", Integer.parseInt(dqHowLongAgo));
         dqsbWrapper.eq("station_code", stationCode);
         dqsbWrapper.between("time", new Date(startTime), new Date(endTime));
-        List<ForecastPowerShortTermRegulation> forecastPowerShortTermRegulationList = forecastPowerShortTermRegulationService.list(dqysWrapper);
+        List<ForecastPowerShortTermRegulation> forecastPowerShortTermRegulationList = forecastPowerShortTermRegulationService.list(dqsbWrapper);
         for (ForecastPowerShortTermRegulation forecastPowerShortTermRegulation : forecastPowerShortTermRegulationList) {
             dqsbMap.put(forecastPowerShortTermRegulation.getTime().getTime(), forecastPowerShortTermRegulation);
         }
@@ -224,7 +224,7 @@ public class PowerStationStatusDataServiceImpl extends ServiceImpl<PowerStationS
         dqzxWrapper.eq("forecast_how_long_ago", Integer.parseInt(dqHowLongAgo));
         dqzxWrapper.eq("station_code", stationCode);
         dqzxWrapper.between("time", new Date(startTime), new Date(endTime));
-        List<ForecastPowerShortTermSend> forecastPowerShortTermSendList = forecastPowerShortTermSendService.list(dqysWrapper);
+        List<ForecastPowerShortTermSend> forecastPowerShortTermSendList = forecastPowerShortTermSendService.list(dqzxWrapper);
         for (ForecastPowerShortTermSend forecastPowerShortTermSend : forecastPowerShortTermSendList) {
             dqzxMap.put(forecastPowerShortTermSend.getTime().getTime(), forecastPowerShortTermSend);
         }

+ 49 - 33
cpp-ui/src/views/largeScreen/echarts-data.js

@@ -130,7 +130,7 @@ export let lineOption = {
     bottom: 30
   },
   legend: {
-    data: ['实时功率','短期','超短期', '辐照度'],
+    data: ['实际功率', '可用功率','理论功率','短期','超短期'],
     itemStyle:{
       opacity:0
     },
@@ -142,7 +142,7 @@ export let lineOption = {
       boundaryGap: false,
       axisLine: { onZero: false },
       // prettier-ignore
-      data: [
+      data: ['00:00',
         '00:15', '00:30', '00:45', '01:00',
         '01:15', '01:30', '01:45', '02:00',
         '02:15', '02:30', '02:45', '03:00',
@@ -166,7 +166,7 @@ export let lineOption = {
         '20:15', '20:30', '20:45', '21:00',
         '21:15', '21:30', '21:45', '22:00',
         '22:15', '22:30', '22:45', '23:00',
-        '23:15', '23:30', '23:45', '24:00'
+        '23:15', '23:30', '23:45'
       ]
     }
   ],
@@ -174,16 +174,11 @@ export let lineOption = {
     {
       name: '万KW',
       type: 'value'
-    },
-    {
-      name: 'W/㎡',
-      alignTicks: true,
-      type: 'value',
     }
   ],
   series: [
     {
-      name: '实功率',
+      name: '实际功率',
       type: 'line',
       itemStyle: {
         color: 'rgb(2,207,253)'
@@ -207,23 +202,22 @@ export let lineOption = {
         focus: 'series'
       },
       // prettier-ignore
-      data: [
-        0.12,1.31, 1.26, 1.21, 1.14, 1.06, 0.97, 0.89, 0.81, 0.74, 0.69, 0.65, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.63, 0.63, 0.62, 0.62, 0.61, 0.6, 0.59, 0.59, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.59, 0.61, 0.63, 0.65, 0.68, 0.71, 0.73, 0.75, 0.77, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.78, 0.77, 0.75, 0.73, 0.71, 0.68, 0.65, 0.63, 0.61, 0.59, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.58, 0.59, 0.59, 0.6, 0.61, 0.62, 0.62, 0.63, 0.63, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.64, 0.65, 0.66]
+      data: []
     },{
-      name: '短期',
+      name: '可用功率',
       type: 'line',
       itemStyle: {
-        color: 'rgb(175,129,251)'
+        color: 'rgb(253,128,2)'
       },
       areaStyle: {
         color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
           {
             offset: 0,
-            color: 'rgb(174,128,249)'
+            color: 'rgb(253,128,2)'
           },
           {
             offset: 1,
-            color: 'rgba(173,127,247,0)'
+            color: 'rgba(2,205,251,0)'
           }
         ])
       },
@@ -234,23 +228,22 @@ export let lineOption = {
         focus: 'series'
       },
       // prettier-ignore
-      data: [
-        0.63, 0.64,  0.97, 0.89, 0.81, 0.74, 0.64, 0.64, 0.64, 0.64,0.78, 0.59, 0.6, 0.61, 0.64, 0.65, 0.66,]
+      data: []
     },{
-      name: '超短期',
+      name: '理论功率',
       type: 'line',
       itemStyle: {
-        color: 'rgb(135,247,207)'
+        color: 'rgb(253,10,2)'
       },
       areaStyle: {
         color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
           {
             offset: 0,
-            color: 'rgb(134,245,205)'
+            color: 'rgb(253,10,2)'
           },
           {
             offset: 1,
-            color: 'rgba(134,245,205,0)'
+            color: 'rgba(2,205,251,0)'
           }
         ])
       },
@@ -261,25 +254,22 @@ export let lineOption = {
         focus: 'series'
       },
       // prettier-ignore
-      data: [
-        0.58, 0.58, 0.58, 0.59, 0.61, 0.63, 0.65, 0.68, 0.71, 0.73, 0.75, 0.77, 0.78, 0.78, 0.78, 0.78, 0.78, 0.59, 0.6, 0.61, 0.62, 0.62, 0.63, 0.63, 0.66]
-    },
-    {
-      name: '辐照度',
+      data: []
+    },{
+      name: '短期',
       type: 'line',
-      yAxisIndex: 1,
       itemStyle: {
-        color: 'rgb(242,250,1)'
+        color: 'rgb(175,129,251)'
       },
       areaStyle: {
         color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
           {
             offset: 0,
-            color: 'rgb(240,248,1)'
+            color: 'rgb(174,128,249)'
           },
           {
             offset: 1,
-            color: 'rgba(238,246,1,0)'
+            color: 'rgba(173,127,247,0)'
           }
         ])
       },
@@ -289,8 +279,34 @@ export let lineOption = {
       emphasis: {
         focus: 'series'
       },
-      data: [
-       0.005, 0.017, 0.017, 0.017, 0.017, 0.011, 0.021, 0.026, 0.03, 0.036, 0.036, 0.195, 0.221, 0.019, 0.013, 0.017, 0.03, 0.03, 0.03, 0.046, 0.045, 0.038, 0.084, 0.045, 0.045, 0.037, 0.034, 0.035, 0.036, 0.044, 0.052, 0.048, 0.109, 0.033, 0.029, 0.04, 0.042, 0.042, 0.042, 0.073, 0.076, 0.062, 0.066, 0.066, 0.075, 0.096, 0.128, 0.121, 0.128, 0.14, 0.226, 0.143, 0.097, 0.018, 0, 0, 0, 0, 0, 0.018, 0.047, 0.054, 0.054, 0.054, 0.036, 0.185, 0.009, 0.038, 0.061, 0.077, 0.091, 0.126, 0.69, 0.182, 0.349, 0.231, 0.146, 0.128, 0.167, 0.1, 0.075, 0.071, 0.071, 0.117, 0.01, 0.002, 0.002,  0.005, 0.026, 0.038, 0.038, 0.038, 0.076, 0.086, 0.109, 0.213, 0.276, 0.288, 0.297, 0.642, 1.799, 1.236, 2.138, 0.921, 0.497, 0.685, 0.828, 0.41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.018, 0.024, 0.024, 0.024, 0.024, 0.006, 0.003, 0.046, 0.046, 0.046, 0.046, 0.043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.204, 0.303, 1.028, 1.328, 1.524, 1.41, 1.362, 1.292, 1.191, 0.529, 0.501, 0.944, 1.81, 2.899, 0.859, 0.126, 0.087, 0.047, 0, 0, 0, 0, 0.011, 0.028, 0.028, 0.028, 0.028, 0.017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.099, 0.159, 0.297, 0.309, 0.309, 0.614, 0.818, 1.436, 1.195, 0.553, 0.542, 0.955, 0.898, 0.466, 0.386, 0.556, 0.388, 0.221, 0.192, 0.192, 0.187, 0.166, 0.18, 0.302, 0.158, 0.009, 0.009, 0.009, 0.009, 0.009, 0.007]
-    }
+      // prettier-ignore
+      data: []
+    },{
+      name: '超短期',
+      type: 'line',
+      itemStyle: {
+        color: 'rgb(135,247,207)'
+      },
+      areaStyle: {
+        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+          {
+            offset: 0,
+            color: 'rgb(134,245,205)'
+          },
+          {
+            offset: 1,
+            color: 'rgba(134,245,205,0)'
+          }
+        ])
+      },
+      lineStyle: {
+        width: 1
+      },
+      emphasis: {
+        focus: 'series'
+      },
+      // prettier-ignore
+      data: []
+    },
   ]
 }

+ 57 - 23
cpp-ui/src/views/largeScreen/index.vue

@@ -69,7 +69,7 @@
           <img src="../../assets/images/dashboard/num2.png"/>
           <div class="flex-column justify-center items-center">
             <span>限电比(%)</span>
-            <span>{{ envData.rate }}</span>
+            <span>{{ xdbl }}</span>
           </div>
         </div>
       </div>
@@ -306,6 +306,16 @@ export default {
   components: {echartsMap},
   data() {
     return {
+      xdbl:0,
+      // 限电场站数
+      xdczs:0,
+      // 总场站数
+      zczs:0,
+      realList: [],
+      ableList: [],
+      theoryList: [],
+      cdqList: [],
+      dqList: [],
       sysBizDataTimer: "",
       sysTime: '',
       sysInterval: null,
@@ -333,13 +343,12 @@ export default {
         num: '0'
       }],
       totality: {
-        number: 39,
-        capacity: 200
+        number: 0,
+        capacity: 0
       },
       envData: {
-        ws: 10,
-        radiance: 20,
-        rate: 999
+        ws: 0,
+        radiance: 0,
       },
       // 告警统计值
       badgeValue: {
@@ -418,13 +427,35 @@ export default {
     clearInterval(this.sysBizDataTimer);
   },
   methods: {
-    getBizData() {
-      this.$axios({url: '/largeScreenController/getBizData', method: 'get'}).then(response => {
-        let powerStationSumMap = response.data.powerStationSumMap
-        this.digitalDisk[0].num = powerStationSumMap.realSum + ''
-        this.digitalDisk[1].num = powerStationSumMap.theorySum + ''
-        this.digitalDisk[2].num = powerStationSumMap.ableSum + ''
-
+    async getBizData() {
+      await this.$axios({url: '/largeScreenController/getBizData', method: 'get'}).then(response => {
+        // 顶部统计值
+        let sumMap = response.data.sumMap
+        this.digitalDisk[0].num = sumMap.realSum + ''
+        this.digitalDisk[1].num = sumMap.theorySum + ''
+        this.digitalDisk[2].num = sumMap.ableSum + ''
+        this.digitalDisk[3].num = sumMap.cdqSum + ''
+        this.digitalDisk[4].num = sumMap.dqSum + ''
+        // 曲线图
+        let curveMap = response.data.curveMap
+        this.realList = curveMap.realList
+        this.theoryList = curveMap.theoryList
+        this.cdqList = curveMap.cdqList
+        this.dqList = curveMap.dqList
+        this.cdqList = curveMap.cdqList
+        // 限电信息
+        let xdMap = response.data.xdMap
+        this.totality.number = xdMap.zczs
+        this.totality.capacity = xdMap.totalCapacity
+        this.xdczs = xdMap.xdczs
+        this.zczs = xdMap.zczs
+        this.xdbl = xdMap.xdbl
+        // 风速、辐照度平均值
+        let envDataMap = response.data.envDataMap
+        this.envData.ws = envDataMap.wsAvg
+        this.envData.radiance = envDataMap.fzdAvg
+
+        this.drawChart()
       })
     },
     jumpRout() {
@@ -440,9 +471,10 @@ export default {
       this.outerVisible = true
     },
     init() {
+      this.getBizData()
       this.getStationCode()
       this.drawTable()
-      this.drawChart()
+      // this.drawChart()
     },
     async getStationCode() {
       await this.$axios({url: '/electricfield/all', method: 'get'}).then(response => {
@@ -533,17 +565,19 @@ export default {
       return data
     },
     drawChart() {
-      gaugeOption.series[0].data[0].value = 10
-      gaugeOption.series[1].data[0].value = 10
-      gaugeOption.series[0].max = 39
-      gaugeOption.series[1].max = 39
+      console.log(this.xdczs)
+      gaugeOption.series[0].data[0].value = this.xdczs
+      gaugeOption.series[1].data[0].value = this.xdczs
+      gaugeOption.series[0].max = this.zczs
+      gaugeOption.series[1].max = this.zczs
       var myChart = this.$echarts.init(document.getElementById('gauge'));
       myChart.setOption(gaugeOption, true)
-      lineOption.series[0].data = this.mockData(10)
-      lineOption.series[1].data = this.mockData(5)
-      lineOption.series[2].data = this.mockData(5)
-      lineOption.series[3].data = this.mockData(50)
-      console.log(lineOption)
+      lineOption.series[0].data = this.realList
+      lineOption.series[1].data = this.ableList
+      lineOption.series[2].data = this.theoryList
+      lineOption.series[3].data = this.dqList
+      lineOption.series[4].data = this.cdqList
+
       var myChart1 = this.$echarts.init(document.getElementById('line'), 'dark');
       myChart1.setOption(lineOption, true)
       window.addEventListener("resize", function () {

+ 1 - 1
cpp-ui/src/views/stationDataQuery/historyforecastdata/index.vue

@@ -32,7 +32,7 @@
     <div style="padding-top: 10px">
       <el-tabs type="card" v-model="activeName" @tab-click="tabClick">
         <el-tab-pane label="列表" name="first">
-          <div>差值颜色说明:<span style="color: #FF0000">红色</span>代表调控与上报不相符,<span style="color: #FFFF00">黄色</span>代表未接收到上报数据</div>
+          <div>差值颜色说明:<span style="color: #FF0000">红色</span>代表短期调控与上报不相符,<span style="color: #FFFF00">黄色</span>代表未接收到短期上报数据</div>
           <vxe-table
             align="center"
             :loading="loading"