Commit 58050b64 authored by ZWT's avatar ZWT

feat(零碳): 长庆演示系统新增功能

1.新建油田配置表同时生成相关代码及mapper文件,修改部分第三方数据抽取定时任务,增加针对不同井场开关控制逻辑,同时修改首页页面展示逻辑,通过油田配置功能区分不同首页展示功能;
2.新建定时任务配置表同时生成相关代码及mapper文件,定时任务模块增加mybatis配置,用以操作数据库,修改部分第三方数据抽取定时任务,修改使用方式使其脱离框架方便动态控制;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 8859c948
......@@ -15,6 +15,7 @@ import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPl
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudOutput;
import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailInput;
import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput;
import pps.cloud.base.service.data.config_oil_field.GetConfigOilFieldOutput;
import pps.cloud.prediction.service.IThirdPowerCloudService;
import pps.cloud.prediction.service.data.third_active_power.GetThirdActivePowerInput;
import pps.cloud.prediction.service.data.third_active_power.GetThirdActivePowerOutput;
......@@ -101,6 +102,9 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
placeListResult.throwIfFail();
Map<String, String> plantStrategyMap = placeListResult.getResult().stream()
.collect(Collectors.toMap(GetBasePhotovoltaicPlantCloudOutput::getStationName, GetBasePhotovoltaicPlantCloudOutput::getStrategyId));
//获取当前配置
GetConfigOilFieldOutput currentConfig = ServiceUtil.getCurrentConfig(context);
String oilFieldCode = ObjectUtil.defaultIfNull(currentConfig.getOilFieldCode(), "--");
SpaceOptimizeShortDurationView wellInfo;
BigDecimal currentServiceRating;
String wellNumber;
......@@ -203,7 +207,7 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
photovoltaicPower = photovoltaicPower.add(dailyGreenConsumption);
//用电趋势结果计算
wellSaveList.add(this.getWellDailyElectricityTrendView(wellProductionMap.get(wellNumber), wellNumber,
wellInfo.getRunDuration(), dailyGreenOpenHour, dailyGreenConsumption, yesterday, valleyElectricOpenHour));
wellInfo.getRunDuration(), dailyGreenOpenHour, dailyGreenConsumption, yesterday, valleyElectricOpenHour, oilFieldCode));
//累加总运行时长
sumRunDuration = sumRunDuration.add(wellInfo.getRunDuration());
//累加谷电运行时长
......@@ -213,7 +217,7 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
dailyElectricityConsumption = Optional.ofNullable(dailyUpdatePowerMap.get(stationName)).orElse(BigDecimal.ZERO);
stationSaveList.add(
this.getLineDailyElectricityTrendView(lastElectricityTrendMap.get(stationName),
dailyElectricityConsumption, photovoltaicPower, stationName, yesterday, sumRunDuration, sumValleyElectricOpenHour)
dailyElectricityConsumption, photovoltaicPower, stationName, yesterday, sumRunDuration, sumValleyElectricOpenHour, oilFieldCode)
);
}
}
......@@ -436,11 +440,12 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
* @param dailyGreenConsumption 日常绿色消费
* @param yesterday 昨天
* @param valleyElectricOpenHour 山谷电力开放时间
* @param oilFieldCode 环境
* @return {@link WellDailyElectricityTrendView }
*/
private WellDailyElectricityTrendView getWellDailyElectricityTrendView(GetWellheadDailyProductionSituationOutput productionSituationOutput,
String wellNumber, BigDecimal runDuration, BigDecimal dailyGreenOpenHour,
BigDecimal dailyGreenConsumption, Date yesterday, BigDecimal valleyElectricOpenHour) {
BigDecimal dailyGreenConsumption, Date yesterday, BigDecimal valleyElectricOpenHour, String oilFieldCode) {
WellDailyElectricityTrendView view;
if (ObjectUtil.isNotNull(productionSituationOutput)) {
view = WellDailyElectricityTrendView.builder()
......@@ -459,7 +464,7 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
//谷电占比:所有井的谷电时间开井时长/所有井开井时长保留2位小数
.valleyElectricRate(BaseUtils.getRate(valleyElectricOpenHour, runDuration))
.createDate(yesterday)
.systemSource("长庆")
.systemSource(oilFieldCode)
.build();
} else {
view = WellDailyElectricityTrendView.builder()
......@@ -478,7 +483,7 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
//谷电占比:所有井的谷电时间开井时长/所有井开井时长保留2位小数
.valleyElectricRate(BaseUtils.getRate(valleyElectricOpenHour, runDuration))
.createDate(yesterday)
.systemSource("长庆")
.systemSource(oilFieldCode)
.build();
}
return view;
......@@ -494,10 +499,12 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
* @param yesterday 昨天
* @param sumRunDuration 总运行时间
* @param sumValleyElectricOpenHour sum valley电力开放时间
* @param oilFieldCode 环境
* @return {@link LineDailyElectricityTrendView }
*/
private LineDailyElectricityTrendView getLineDailyElectricityTrendView(LineDailyElectricityTrendEnt ent, BigDecimal dailyElectricityConsumption,
BigDecimal photovoltaicPower, String stationName, Date yesterday, BigDecimal sumRunDuration, BigDecimal sumValleyElectricOpenHour) {
BigDecimal photovoltaicPower, String stationName, Date yesterday, BigDecimal sumRunDuration,
BigDecimal sumValleyElectricOpenHour, String oilFieldCode) {
LineDailyElectricityTrendView view;
BigDecimal municipalPower = dailyElectricityConsumption.subtract(photovoltaicPower);
if (municipalPower.compareTo(BigDecimal.ZERO) < 0) {
......@@ -521,7 +528,7 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
//谷电占比:所有井的谷电时间开井时长/所有井开井时长保留2位小数
.valleyElectricRate(BaseUtils.getRate(sumValleyElectricOpenHour, sumRunDuration))
.createDate(yesterday)
.systemSource("长庆")
.systemSource(oilFieldCode)
.build();
} else {
view = LineDailyElectricityTrendView.builder()
......@@ -540,7 +547,7 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
//谷电占比:所有井的谷电时间开井时长/所有井开井时长保留2位小数
.valleyElectricRate(BaseUtils.getRate(sumValleyElectricOpenHour, sumRunDuration))
.createDate(yesterday)
.systemSource("长庆")
.systemSource(oilFieldCode)
.build();
}
return view;
......
......@@ -8,6 +8,7 @@ import cn.hutool.core.text.CharSequenceUtil;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.IBasePriceStrategyCloudService;
import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.IConfigOilFieldCloudService;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineOutput;
import pps.cloud.base.service.data.base_power_line.GetBasePowerLineInput;
......@@ -16,6 +17,7 @@ import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrate
import pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
import pps.cloud.base.service.data.config_oil_field.GetConfigOilFieldOutput;
import pps.cloud.system.service.SysOrganizationCloudService;
import pps.cloud.system.service.SystemDictionaryService;
import pps.cloud.system.service.data.sys_dictionary.QuerySysDictionaryViewInput;
......@@ -328,4 +330,17 @@ public class ServiceUtil {
}
return openFlag;
}
/**
* 获取当前配置
*
* @param context 上下文
* @return {@link GetConfigOilFieldOutput }
*/
public static GetConfigOilFieldOutput getCurrentConfig(XContext context) {
IConfigOilFieldCloudService bean = context.getBean(IConfigOilFieldCloudService.class);
XSingleResult<GetConfigOilFieldOutput> currentConfig = bean.getCurrentConfig(context);
currentConfig.throwIfFail();
return currentConfig.getResult();
}
}
\ 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