Commit 652678fa authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.开发间开优化结果统计功能,创建间开优化效果统计表,生成对应代码;
2.修改15天,10天,3天,1天间开优化功能,修改代码结构;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 87a2126d
......@@ -21,10 +21,7 @@ import xstartup.data.XListResult;
import xstartup.data.XServiceResult;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -52,11 +49,11 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe
.optimizeDate(beginOfYesterday)
.build());
Map<String, Map<Integer, Map<Integer, List<SpaceOptimizeShortDurationView>>>> durationCollect;
Map<String, List<GetThirdActivePowerOutput>> activePowerMap;
Map<String, List<GetPredictedPowerViewOutput>> predictionMap;
Map<String, Map<Date, BigDecimal>> activeMap;
Map<String, Map<Date, BigDecimal>> predictionMap;
if (CollUtil.isEmpty(durationViewList)) {
durationCollect = Collections.emptyMap();
activePowerMap = Collections.emptyMap();
activeMap = Collections.emptyMap();
predictionMap = Collections.emptyMap();
} else {
//间开区间Map
......@@ -75,10 +72,11 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe
result.throwIfFail();
List<GetThirdActivePowerOutput> powerList = result.getResult();
if (CollUtil.isEmpty(powerList)) {
activePowerMap = Collections.emptyMap();
activeMap = Collections.emptyMap();
} else {
activePowerMap = powerList.stream()
.collect(Collectors.groupingBy(GetThirdActivePowerOutput::getStationName));
activeMap = powerList.stream()
.collect(Collectors.groupingBy(GetThirdActivePowerOutput::getStationName,
Collectors.toMap(GetThirdActivePowerOutput::getCreateDate, GetThirdActivePowerOutput::getPhotovoltaicPower)));
}
//昨日预测发电功率
IPlantPredictedPowerCloudService service = context.getBean(IPlantPredictedPowerCloudService.class);
......@@ -92,24 +90,29 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe
predictionMap = Collections.emptyMap();
} else {
predictionMap = predictionList.stream()
.collect(Collectors.groupingBy(GetPredictedPowerViewOutput::getStationName));
.collect(Collectors.groupingBy(GetPredictedPowerViewOutput::getStationName,
Collectors.toMap(GetPredictedPowerViewOutput::getCreateTime, GetPredictedPowerViewOutput::getPredictPower)));
}
}
//初始化时间轴
List<DateTime> rangeToList = DateUtil.rangeToList(DateUtil.offsetDay(BusinessConstant.DATE_FLAG, -1), BusinessConstant.DATE_FLAG, DateField.MINUTE, 30);
String lineName;
List<GetThirdActivePowerOutput> activePowerList;
List<GetPredictedPowerViewOutput> predictionList;
Map<Date, BigDecimal> activePowerMap;
Map<Date, BigDecimal> predictionPowerMap;
List<SpaceOptimizeShortDurationView> unOptimizeList;
List<SpaceOptimizeShortDurationView> optimizeList;
TreeMap<Integer, Map<Integer, List<SpaceOptimizeShortDurationView>>> wellSortMap;
for (Map.Entry<String, Map<Integer, Map<Integer, List<SpaceOptimizeShortDurationView>>>> lineEntry : durationCollect.entrySet()) {
lineName = lineEntry.getKey();
if (activePowerMap.containsKey(lineName)) {
activePowerList = activePowerMap.get(lineName);
if (activeMap.containsKey(lineName)) {
activePowerMap = activeMap.get(lineName);
} else {
activePowerMap = Collections.emptyMap();
}
if (predictionMap.containsKey(lineName)) {
predictionList = predictionMap.get(lineName);
predictionPowerMap = predictionMap.get(lineName);
} else {
predictionPowerMap = Collections.emptyMap();
}
//按顺序排
wellSortMap = new TreeMap<>(lineEntry.getValue());
......@@ -120,14 +123,21 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe
if (CollUtil.isEmpty(unOptimizeList)) {
continue;
}
//累加运行功率
serviceRating = serviceRating.add(ObjectUtil.defaultIfNull(unOptimizeList.get(0).getServiceRating(), BigDecimal.ZERO));
//优化后间开
optimizeList = sortEntry.getValue().get(0);
//累加运行功率
serviceRating = serviceRating.add(ObjectUtil.defaultIfNull(unOptimizeList.get(0).getServiceRating(), BigDecimal.ZERO));
//计算优化前后功率
for (DateTime dateTime : rangeToList) {
BigDecimal activePower;
if (activePowerMap.containsKey(dateTime)) {
activePower = activePowerMap.get(dateTime);
}
BigDecimal predictionPower;
if (predictionPowerMap.containsKey(dateTime)) {
predictionPower = predictionPowerMap.get(dateTime);
}
}
}
}
return XServiceResult.OK;
......
......@@ -5,6 +5,7 @@ import xstartup.annotation.XText;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 电站预测功率短期72小时数据
......@@ -18,7 +19,7 @@ public class GetPredictedPowerViewOutput implements Serializable {
private static final long serialVersionUID = -1183112288004968421L;
@XText("日期")
private String dataDate;
private Date createTime;
@XText("预测发电量")
private BigDecimal predictPower;
......
......@@ -6,7 +6,7 @@
<result column="plant_id" property="plantId" jdbcType="VARCHAR"/>
<result column="data_date" property="dataDate" jdbcType="VARCHAR"/>
<result column="power" property="power" jdbcType="DECIMAL"/>
<result column="create_time" property="createTime" jdbcType="DATE"/>
<result column="create_time" property="createTime" jdbcType="VARCHAR"/>
<result column="predict_power" property="predictPower" jdbcType="DECIMAL"/>
</resultMap>
<sql id="Base_Column_List">
......@@ -44,7 +44,7 @@
resultMap="BaseResultMap">
SELECT
z.station_name,
z.data_date,
z.data_date AS create_time,
MAX( z.predict_power ) AS predict_power
FROM
(
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment