Ver Fonte

66666666

xusl há 5 meses atrás
pai
commit
69759affc5

+ 63 - 58
cpp-admin/src/main/java/com/cpp/web/controller/largeScreen/LargeScreenController.java

@@ -15,6 +15,7 @@ import com.cpp.web.domain.enums.DataSourcesEnum;
 import com.cpp.web.domain.powerGeneration.DayPowerGeneration;
 import com.cpp.web.domain.regulation.TempShortUsual;
 import com.cpp.web.domain.station.*;
+import com.cpp.web.domain.station.enums.DashboardElectricStatusEnum;
 import com.cpp.web.domain.station.enums.ElectricFieldTypeEnum;
 import com.cpp.web.dto.largeScreen.*;
 import com.cpp.web.service.accuracy.AccuracyPassRateService;
@@ -72,8 +73,8 @@ public class LargeScreenController {
     @Autowired
     AccuracyPassRateService accuracyPassRateService;
 
-    @GetMapping("/getBizData")
-    public R getBizData(String forecastDay, String forecastType, String accuracyType) {
+    @GetMapping("/electricFieldDataTotal")
+    public R electricFieldDataTotal() {
         // 获取所有场站
         List<ElectricField> electricFieldList = electricFieldService.list();
 
@@ -88,9 +89,6 @@ public class LargeScreenController {
         int fzdSumCount = 0;
 
         for (ElectricField electricField : electricFieldList) {
-
-
-            Boolean b = LatestDataUtil.getCommunicationStatus(electricField.getStationCode());
             PowerStationStatusData powerStationStatusData = LatestDataUtil.getData(electricField.getStationCode(), PowerStationStatusData.class);
             if (ElectricFieldTypeEnum.E1.name().equals(electricField.getElectricFieldTypeEnum())) {
                 // 获取气象站辐照度
@@ -131,37 +129,37 @@ public class LargeScreenController {
         }
         electricFieldDataTotalDto.setWsAvg(wsAvg);
 
-        Map bizDataMap = new HashMap();
-        bizDataMap.put("electricFieldDataTotalDto", electricFieldDataTotalDto);
         // 计算生成数据
-        ProductionDataTotalDto productionDataTotalDto = calGenerating();
-        bizDataMap.put("productionDataTotalDto", productionDataTotalDto);
+//        ProductionDataTotalDto productionDataTotalDto = calGenerating();
+//        bizDataMap.put("productionDataTotalDto", productionDataTotalDto);
         // 获取预测发电量
-        Map forecastGeneratingMap = calForecastGenerating();
-        bizDataMap.put("forecastGeneratingMap", forecastGeneratingMap);
+//        Map forecastGeneratingMap = calForecastGenerating();
+//        bizDataMap.put("forecastGeneratingMap", forecastGeneratingMap);
         // 获取首页中心侧nwp气象
-        Map<String, List> forecastNwpMap = centerForecastNwpAvgTotal(electricFieldList);
-        bizDataMap.put("forecastNwpMap", forecastNwpMap);
+//        Map<String, List> forecastNwpMap = centerForecastNwpAvgTotal(electricFieldList);
+//        bizDataMap.put("forecastNwpMap", forecastNwpMap);
         //////////////// 获取首页预测对比数据 ///////////////
-        Map<String, List> curveMap = getForecastContrast(forecastDay, forecastType);
-        bizDataMap.put("curveMap", curveMap);
+//        Map<String, List> curveMap = getForecastContrast(forecastDay, forecastType);
+//        bizDataMap.put("curveMap", curveMap);
         /////////////// 获取首页准确率排名 ///////////////
-        Map<String, List<AccuracyRankingDto>> accuracyRankingMap = accuracyRanking(electricFieldList);
-        bizDataMap.put("accuracyRankingMap", accuracyRankingMap);
+//        Map<String, List<AccuracyRankingDto>> accuracyRankingMap = accuracyRanking(electricFieldList);
+//        bizDataMap.put("accuracyRankingMap", accuracyRankingMap);
         //////////////  获取首页地图数据 //////////////
-        Map mapDataMap = mapData(electricFieldList);
-        bizDataMap.put("mapDataMap", mapDataMap);
-
+//        Map mapDataMap = mapData(electricFieldList);
+//        bizDataMap.put("mapDataMap", mapDataMap);
 
-        return R.ok(bizDataMap);
+        Map returnMap = new HashMap();
+        returnMap.put("electricFieldDataTotalDto", electricFieldDataTotalDto);
+        return R.ok(returnMap);
     }
 
     /**
-     * 统计首页生数据
+     * 统计首页生数据
      *
      * @return
      */
-    private ProductionDataTotalDto calGenerating() {
+    @GetMapping("/calGenerating")
+    public R calGenerating() {
         // 当日零点
         Date dayStartTime = new Date(DateTimeUtil.getMillisecondsSubDay());
         // 获取当前时刻5分钟
@@ -226,7 +224,10 @@ public class LargeScreenController {
         productionDataTotalDto.setForecastGeneratingSum(forecastGeneratingSum);
         productionDataTotalDto.setRealPowerSum(realPowerSum);
         productionDataTotalDto.setTheoryPowerSum(theoryPowerSum);
-        return productionDataTotalDto;
+
+        Map returnMap = new HashMap();
+        returnMap.put("productionDataTotalDto", productionDataTotalDto);
+        return R.ok(returnMap);
     }
 
     /**
@@ -234,7 +235,8 @@ public class LargeScreenController {
      *
      * @return
      */
-    private Map calForecastGenerating() {
+    @GetMapping("/calForecastGenerating")
+    private R calForecastGenerating() {
         // 获取未来10天的中心侧模型预测发电量
         int counts = -3;
         // 定义日期格式
@@ -289,7 +291,10 @@ public class LargeScreenController {
             forecastGeneratingMap.put("xData", xDataList);
             forecastGeneratingMap.put("pData", pDataList);
         }
-        return forecastGeneratingMap;
+
+        Map returnMap = new HashMap();
+        returnMap.put("forecastGeneratingMap", forecastGeneratingMap);
+        return R.ok(returnMap);
     }
 
     /**
@@ -297,8 +302,10 @@ public class LargeScreenController {
      *
      * @return
      */
-    private Map<String, List> centerForecastNwpAvgTotal(List<ElectricField> list) {
-        // 根据类型获取所有场站
+    @GetMapping("/centerForecastNwpAvgTotal")
+    public R centerForecastNwpAvgTotal() {
+        // 获取所有场站
+        List<ElectricField> list = electricFieldService.list();
         Map<String, List> stationMap = new HashMap();
         List<String> windStationCodeList = new ArrayList<>();
         List<String> gfStationCodeList = new ArrayList<>();
@@ -389,7 +396,9 @@ public class LargeScreenController {
             }
             forecastWeatherAvgDataMap.put(entry.getKey(), forecastNwpDtoList);
         }
-        return forecastWeatherAvgDataMap;
+        Map returnMap = new HashMap();
+        returnMap.put("forecastNwpMap", forecastWeatherAvgDataMap);
+        return R.ok(returnMap);
     }
 
     /**
@@ -490,21 +499,9 @@ public class LargeScreenController {
      *
      * @param forecastDay
      * @param forecastType
-     * @return
      */
     @GetMapping("/forecastContrast")
-    public R forecastContrast(String forecastDay, String forecastType) {
-        Map<String, List> map = getForecastContrast(forecastDay, forecastType);
-        return R.ok(map);
-    }
-
-    /**
-     * 获取预测对比数据公共方法
-     *
-     * @param forecastDay
-     * @param forecastType
-     */
-    private Map<String, List> getForecastContrast(String forecastDay, String forecastType) {
+    public R getForecastContrast(String forecastDay, String forecastType) {
         Date dayStartTime = DateTimeUtil.getDayStartTime(System.currentTimeMillis());
         Date dayEndTime = null;
         if ("day".equals(forecastDay)) {
@@ -634,8 +631,9 @@ public class LargeScreenController {
         curveMap.put("theoryList", theoryList);
         curveMap.put("cdqList", cdqList);
         curveMap.put("dqList", dqList);
-
-        return curveMap;
+        Map returnMap = new HashMap();
+        returnMap.put("curveMap", curveMap);
+        return R.ok(returnMap);
     }
 
     /**
@@ -643,7 +641,10 @@ public class LargeScreenController {
      *
      * @return
      */
-    private Map<String, List<AccuracyRankingDto>> accuracyRanking(List<ElectricField> list) {
+    @GetMapping("/accuracyRanking")
+    public R accuracyRanking() {
+        // 获取所有场站
+        List<ElectricField> list = electricFieldService.list();
         Map<String, List<AccuracyRankingDto>> accuracyMap = new HashMap();
         // 昨日时间段
         Date startTime = DateTimeUtil.getDayStartTime(DateUtil.yesterday().getTime());
@@ -733,7 +734,9 @@ public class LargeScreenController {
         accuracyMap.put("dayRankingList", dayRankingList);
         accuracyMap.put("lastMonthRankingList", lastMonthRankingList);
 
-        return accuracyMap;
+        Map returnMap = new HashMap();
+        returnMap.put("accuracyRankingMap", accuracyMap);
+        return R.ok(returnMap);
     }
 
     /**
@@ -741,7 +744,10 @@ public class LargeScreenController {
      *
      * @return
      */
-    private Map mapData(List<ElectricField> list) {
+    @GetMapping("/mapData")
+    public R mapData() {
+        // 获取所有场站
+        List<ElectricField> list = electricFieldService.list();
         List<String> stationCodeList = list.stream().map(ElectricField::getStationCode).collect(Collectors.toList());
         // 获取当前时刻所有场站短期数据
         Date dqMomentDate = DateTimeUtil.getMomentTimeFor15Minute(System.currentTimeMillis());
@@ -829,11 +835,11 @@ public class LargeScreenController {
                 }
             }
 
-            // 判断场站状态,先获取是否通讯
-            boolean isCommunication = false;
+            // 判断场站状态,先获取是否通讯(返回true就是正常false异常)
+            boolean isCommunication = LatestDataUtil.getCommunicationStatus(electricField.getStationCode());
             if (!isCommunication){
                 // 无通讯
-                mapDtaDto.setStatus("无通讯");
+                mapDtaDto.setStatus(DashboardElectricStatusEnum.E4.getCode());
                 txcoutns++;
             }
             else{
@@ -843,25 +849,25 @@ public class LargeScreenController {
                     BigDecimal blockedCapacity = powerStationStatusData.getBlockedCapacity();
                     if (blockedCapacity.compareTo(electricField.getCapacity().multiply(new BigDecimal(0.5)))>0){
                         // 超出装机50%容量,认为检修
-                        mapDtaDto.setStatus("检修");
+                        mapDtaDto.setStatus(DashboardElectricStatusEnum.E3.getCode());
                         jxcoutns++;
                     }
                     else{
                         // 未超过50%,判断是否限电
                         if (powerStationStatusData.getPowerRationing().intValue()==1){
                             // 限电
-                            mapDtaDto.setStatus("限电");
+                            mapDtaDto.setStatus(DashboardElectricStatusEnum.E2.getCode());
                             xdcoutns++;
                         }
                         else{
-                            mapDtaDto.setStatus("运行");
+                            mapDtaDto.setStatus(DashboardElectricStatusEnum.E1.getCode());
                             yxcoutns++;
                         }
                     }
                 }
                 else{
                     // 没找到实际功率记录,认为场站正常状态
-                    mapDtaDto.setStatus("运行");
+                    mapDtaDto.setStatus(DashboardElectricStatusEnum.E1.getCode());
                     yxcoutns++;
                 }
             }
@@ -888,10 +894,9 @@ public class LargeScreenController {
         }
         mapDataMap.put("runDays",runDays);
 
+        Map returnMap = new HashMap();
+        returnMap.put("mapDataMap", mapDataMap);
 
-
-
-
-        return mapDataMap;
+        return R.ok(returnMap);
     }
 }

+ 20 - 0
cpp-admin/src/main/java/com/cpp/web/domain/station/enums/DashboardElectricStatusEnum.java

@@ -0,0 +1,20 @@
+package com.cpp.web.domain.station.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 首页场站状态枚举
+ * @author jy
+ * @since 2024/11/20
+ */
+@Getter
+@AllArgsConstructor
+public enum DashboardElectricStatusEnum {
+    E1(1, "运行"),
+    E2(2, "限电"),
+    E3(3, "检修"),
+    E4(4, "无通讯");
+    private Integer code;
+    private String message;
+}

+ 1 - 1
cpp-admin/src/main/java/com/cpp/web/dto/largeScreen/MapDtaDto.java

@@ -17,7 +17,7 @@ public class MapDtaDto {
     // 场站类型
     private String stationType;
     // 当前状态
-    private String status;
+    private Integer status;
     // 装机容量
     private String capacity;
     // 当前环境值(风:风速,光:辐照度)

+ 1 - 1
cpp-admin/src/main/java/com/cpp/web/job/ScheduledJob.java

@@ -51,7 +51,7 @@ public class ScheduledJob implements ApplicationRunner {
     /**
      * 解析站端文件定时任务
      */
-//    @Scheduled(fixedRate = 60000L)
+    @Scheduled(fixedRate = 60000L)
     public void parsingFile() {
         sftpFileParsing.parsingFile();
     }