Commit a73bdad1 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

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

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent c6012b00
...@@ -215,6 +215,11 @@ public class BusinessConstant { ...@@ -215,6 +215,11 @@ public class BusinessConstant {
*/ */
public static final BigDecimal BIG_DECIMAL_0_6 = BigDecimal.valueOf(0.6); public static final BigDecimal BIG_DECIMAL_0_6 = BigDecimal.valueOf(0.6);
/**
* 0.5
*/
public static final BigDecimal BIG_DECIMAL_0_5 = BigDecimal.valueOf(0.5);
/** /**
* 0.4 * 0.4
*/ */
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField; import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import pps.cloud.prediction.service.IPlantPredictedPowerCloudService; import pps.cloud.prediction.service.IPlantPredictedPowerCloudService;
import pps.cloud.prediction.service.IThirdPowerCloudService; import pps.cloud.prediction.service.IThirdPowerCloudService;
...@@ -101,12 +102,22 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe ...@@ -101,12 +102,22 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe
String lineName; String lineName;
Map<Date, BigDecimal> activePowerMap; Map<Date, BigDecimal> activePowerMap;
Map<Date, BigDecimal> predictionPowerMap; Map<Date, BigDecimal> predictionPowerMap;
BigDecimal wellGreenPowerActual;
BigDecimal wellGreenPowerOptimize;
BigDecimal runHourActual;
BigDecimal runHourOptimize;
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;
SpaceOptimizeShortDurationView durationTemp; SpaceOptimizeShortDurationView durationTemp;
BigDecimal serviceRating; BigDecimal serviceRating;
BigDecimal sumServiceRating;
List<SpaceYesterdayGreenRateView> batchList = new ArrayList<>(durationCollect.size() * 2); List<SpaceYesterdayGreenRateView> batchList = new ArrayList<>(durationCollect.size() * 2);
SpaceOptimizeShortDurationView unOptimizeDuration;
DateTime openWellTime;
DateTime closeWellTime;
BigDecimal wellTotalPowerActual;
BigDecimal wellTotalPowerOptimize;
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 (activeMap.containsKey(lineName)) { if (activeMap.containsKey(lineName)) {
...@@ -121,7 +132,7 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe ...@@ -121,7 +132,7 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe
} }
//按顺序排 //按顺序排
wellSortMap = new TreeMap<>(lineEntry.getValue()); wellSortMap = new TreeMap<>(lineEntry.getValue());
serviceRating = BigDecimal.ZERO; sumServiceRating = BigDecimal.ZERO;
//计算结果 //计算结果
for (Map.Entry<Integer, Map<Integer, List<SpaceOptimizeShortDurationView>>> sortEntry : wellSortMap.entrySet()) { for (Map.Entry<Integer, Map<Integer, List<SpaceOptimizeShortDurationView>>> sortEntry : wellSortMap.entrySet()) {
//未优化间开 //未优化间开
...@@ -129,21 +140,45 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe ...@@ -129,21 +140,45 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe
if (CollUtil.isEmpty(unOptimizeList)) { if (CollUtil.isEmpty(unOptimizeList)) {
continue; continue;
} }
BigDecimal wellTotalPowerActual = BigDecimal.ZERO; wellGreenPowerActual = BigDecimal.ZERO;
BigDecimal wellTotalPowerOptimize = BigDecimal.ZERO; wellGreenPowerOptimize = BigDecimal.ZERO;
BigDecimal wellGreenPowerActual = BigDecimal.ZERO; runHourActual = BigDecimal.ZERO;
BigDecimal wellGreenPowerOptimize = BigDecimal.ZERO; runHourOptimize = BigDecimal.ZERO;
durationTemp = unOptimizeList.get(0); durationTemp = unOptimizeList.get(0);
//累加运行功率 //累加运行功率
serviceRating = serviceRating.add(ObjectUtil.defaultIfNull(durationTemp.getServiceRating(), BigDecimal.ZERO)); serviceRating = ObjectUtil.defaultIfNull(durationTemp.getServiceRating(), BigDecimal.ZERO);
sumServiceRating = sumServiceRating.add(serviceRating);
//优化后间开 //优化后间开
optimizeList = sortEntry.getValue().get(0); optimizeList = sortEntry.getValue().get(0);
int unOptimizeIndex = 0;
//计算优化前后功率 //计算优化前后功率
for (DateTime dateTime : rangeToList) { for (DateTime dateTime : rangeToList) {
BigDecimal activePower; //计算实际
if (activePowerMap.containsKey(dateTime)) { BigDecimal activePower = activePowerMap.getOrDefault(dateTime, BigDecimal.ZERO);
activePower = activePowerMap.get(dateTime); unOptimizeDuration = unOptimizeList.get(unOptimizeIndex);
//时间转换
openWellTime = this.parseDateTime(unOptimizeDuration.getOpenWellTime());
closeWellTime = this.parseDateTime(unOptimizeDuration.getCloseWellTime());
if (DateUtil.compare(dateTime, openWellTime) >= 0 && DateUtil.compare(dateTime, closeWellTime) < 0) {
//计算发电功率
if (activePower.compareTo(BigDecimal.ZERO) == 0) {
//不管
} else if (activePower.compareTo(sumServiceRating) >= 0) {
//光伏发电功率大于运行负荷: 该时段光伏用电量量=运行负荷*0.5
wellGreenPowerActual = wellGreenPowerActual.add(serviceRating.multiply(BusinessConstant.BIG_DECIMAL_0_5));
} else {
//光伏发电功率小于井的运行负荷: 该时段光伏用电量=光伏发电功率*0.5
wellGreenPowerActual = wellGreenPowerActual.add(activePower.multiply(BusinessConstant.BIG_DECIMAL_0_5));
}
//累加开井时长
runHourActual = runHourActual.add(BusinessConstant.BIG_DECIMAL_0_5);
} else if (DateUtil.compare(dateTime, closeWellTime) >= 0) {
unOptimizeIndex++;
}
if (unOptimizeIndex == unOptimizeList.size()) {
unOptimizeIndex = unOptimizeList.size() - 1;
} }
/*--------------------------------------------------*/
BigDecimal predictionPower; BigDecimal predictionPower;
if (predictionPowerMap.containsKey(dateTime)) { if (predictionPowerMap.containsKey(dateTime)) {
predictionPower = predictionPowerMap.get(dateTime); predictionPower = predictionPowerMap.get(dateTime);
...@@ -152,6 +187,8 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe ...@@ -152,6 +187,8 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe
} }
//添加计算结果 //添加计算结果
wellTotalPowerActual = runHourActual.multiply(serviceRating);
wellTotalPowerOptimize = BigDecimal.ZERO;
SpaceYesterdayGreenRateView yesterdayGreenRateView = new SpaceYesterdayGreenRateView(); SpaceYesterdayGreenRateView yesterdayGreenRateView = new SpaceYesterdayGreenRateView();
BaseUtils.setBaseModelDefaultForJob(yesterdayGreenRateView); BaseUtils.setBaseModelDefaultForJob(yesterdayGreenRateView);
yesterdayGreenRateView.setRecordDate(beginOfYesterday); yesterdayGreenRateView.setRecordDate(beginOfYesterday);
...@@ -167,7 +204,22 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe ...@@ -167,7 +204,22 @@ public class SpaceYesterdayGreenRateCloudServiceImpl extends SpaceOptimizeBaseSe
batchList.add(yesterdayGreenRateView); batchList.add(yesterdayGreenRateView);
} }
} }
System.out.println();
return XServiceResult.OK; return XServiceResult.OK;
} }
/**
* 转换时间
*
* @param timeString 时间字符串
* @return {@link DateTime }
*/
private DateTime parseDateTime(String timeString) {
DateTime wellTime;
if (CharSequenceUtil.equals(timeString, BusinessConstant.END_OF_DAY_TIME)) {
wellTime = BusinessConstant.DATE_FLAG;
} else {
wellTime = DateUtil.parse(timeString + BusinessConstant.INITIALIZATION_SECOND, BusinessConstant.TIME_FORMAT);
}
return wellTime;
}
} }
\ No newline at end of file
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