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