|
@@ -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);
|
|
|
}
|
|
|
}
|