Commit 9ebda1ac authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.修改系统首页大屏总览接口,增加区分组织机构逻辑,完成接口冒烟测试;
2.修改系统首页获取井场列表接口,增加区分组织机构逻辑,完成接口冒烟测试;
3.修改系统首页井场功能下钻后提示报错问题,修改用电功率数据获取逻辑,修复报错问题;
4.修改输电线路分页列表查询接口,增加查询条件,在查询父线路列表时只查询10千伏线路,修改线上接口文档同时完成接口冒烟测试;
5.修改系统首页井场实时监控接口,增加区分组织机构逻辑,完成接口冒烟测试;
6.修改系统首页用能分析接口,增加区分组织机构逻辑,完成接口冒烟测试;
7.修改系统首页井场用能分析(双坐标轴)接口,增加区分组织机构逻辑,完成接口冒烟测试;
8.修改系统首页累积用电接口,增加区分组织机构逻辑,完成接口冒烟测试;
9.修改系统首页光伏实时监控接口,增加区分组织机构逻辑,完成接口冒烟测试;
10.修改系统首页井场效果评价接口,增加区分组织机构逻辑,完成接口冒烟测试;
11.修改系统首页先导实验井间开制度接口,增加区分组织机构逻辑,完成接口冒烟测试;
12.修改极短期间开优化模块井口生产情况油井状态接口,增加区分组织机构逻辑,完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent a4506ffb
......@@ -217,6 +217,8 @@ public class BaseUtils {
/**
* 计算率
* 示例:
* 消纳率:就地消纳量/累计用电*100%
*
* @param one 一
* @param two 二
......@@ -232,4 +234,24 @@ public class BaseUtils {
}
return rate;
}
/**
* 获取环比
* (本期-上期) /上期*100%
*
* @param currentPeriod 本期
* @param lastPeriod 上期
* @return {@link BigDecimal}
*/
public static BigDecimal getCycleRatio(BigDecimal currentPeriod, BigDecimal lastPeriod) {
BigDecimal cycleRatio;
if (lastPeriod.compareTo(BigDecimal.ZERO) > 0) {
cycleRatio = currentPeriod.subtract(lastPeriod)
.multiply(BusinessConstant.BIG_DECIMAL_100)
.divide(lastPeriod, 2, RoundingMode.HALF_UP);
} else {
cycleRatio = BigDecimal.ZERO;
}
return cycleRatio;
}
}
\ No newline at end of file
......@@ -10,10 +10,6 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.IBaseWellheadCloudService;
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_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
......@@ -88,7 +84,7 @@ public class EnergyConsumptionAnalysisService {
plantInput.setOuIds(ServiceUtil.getOrgIdsByPath(context, input.getOuId()));
}
List<PowerStatisticsOutput> outputs;
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, plantInput);
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, plantInput);
//电站名称列表有值再查
if (CollUtil.isNotEmpty(plantList)) {
DateTime today = DateUtil.beginOfDay(DateUtil.date());
......@@ -165,14 +161,14 @@ public class EnergyConsumptionAnalysisService {
String oilFieldCode = ServiceUtil.getOilFieldCode(context);
//用电功率
Map<Date, BigDecimal> avgMap = this.queryPowerConsumptionHour(context,
this.getPowerLineWellheadList(context, wellheadInput),
ServiceUtil.getPowerLineWellheadList(context, wellheadInput),
input.getStartTime(),
endTime,
oilFieldCode
);
//发电功率
Map<Date, BigDecimal> powerMap = this.queryGeneratedPowerHour(context,
this.getPowerLinePlantViewList(context, plantInput),
ServiceUtil.getPowerLinePlantList(context, plantInput),
input.getStartTime(),
endTime,
oilFieldCode
......@@ -198,7 +194,7 @@ public class EnergyConsumptionAnalysisService {
} else {
plantInput.setOuIds(ServiceUtil.getOrgIdsByPath(context, input.getOuId()));
}
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, plantInput);
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, plantInput);
Map<Date, BigDecimal> nowMap;
Map<Date, BigDecimal> lastMap;
input.getBetweenDate();
......@@ -236,7 +232,7 @@ public class EnergyConsumptionAnalysisService {
.dateFormat(dateTime.toString())
.powerGeneration(powerGeneration)
.lastPowerGeneration(lastPowerGeneration)
.ratio(this.getAbsorptionRate(powerGeneration, lastPowerGeneration))
.ratio(BaseUtils.getRate(powerGeneration, lastPowerGeneration))
.build());
}
return XListResult.success(outputs);
......@@ -259,7 +255,7 @@ public class EnergyConsumptionAnalysisService {
} else {
plantInput.setOuIds(ServiceUtil.getOrgIdsByPath(context, input.getOuId()));
}
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, plantInput);
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, plantInput);
Map<Date, BigDecimal> nowMap;
Map<Date, BigDecimal> lastMap;
input.getBetweenDate();
......@@ -296,7 +292,7 @@ public class EnergyConsumptionAnalysisService {
.dateFormat(dateTime.toString())
.photovoltaicConsumption(photovoltaicConsumption)
.lastPhotovoltaicConsumption(lastPhotovoltaicConsumption)
.ratio(this.getAbsorptionRate(photovoltaicConsumption, lastPhotovoltaicConsumption))
.ratio(BaseUtils.getRate(photovoltaicConsumption, lastPhotovoltaicConsumption))
.build());
}
return XListResult.success(outputs);
......@@ -321,7 +317,7 @@ public class EnergyConsumptionAnalysisService {
}
input.getBetweenDate();
Map<Date, GetLineDailyElectricityTrendOutput> collect;
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, plantInput);
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, plantInput);
if (CollUtil.isNotEmpty(plantList)) {
DateTime endTime = DateUtil.offsetDay(input.getEndTime(), 1);
collect = this.getDailyElectricityTrendMap(context, GetLineDailyElectricityTrendInput.builder()
......@@ -357,7 +353,7 @@ public class EnergyConsumptionAnalysisService {
.municipalConsumption(municipalConsumption)
.lastPhotovoltaicConsumption(lastPhotovoltaicConsumption)
.lastMunicipalConsumption(lastMunicipalConsumption)
.ratio(this.getAbsorptionRate(photovoltaicConsumption, lastPhotovoltaicConsumption))
.ratio(BaseUtils.getRate(photovoltaicConsumption, lastPhotovoltaicConsumption))
.build());
}
return XListResult.success(outputs);
......@@ -398,7 +394,7 @@ public class EnergyConsumptionAnalysisService {
//绿电占比
BigDecimal greenElectricityRate;
List<String> orgIds = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder()
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.ouIds(orgIds)
.build());
Set<String> plantSet = new HashSet<>(plantList.size());
......@@ -422,7 +418,7 @@ public class EnergyConsumptionAnalysisService {
inPlaceConsumption = analysisEnt.getInPlaceConsumption();
dailyLiquidProduction = analysisEnt.getDailyLiquidProduction();
dailyElectricityConsumption = analysisEnt.getDailyElectricityConsumption();
greenElectricityRate = this.getAbsorptionRate(analysisEnt.getInPlaceConsumption(), analysisEnt.getDailyElectricityConsumption());
greenElectricityRate = BaseUtils.getRate(analysisEnt.getInPlaceConsumption(), analysisEnt.getDailyElectricityConsumption());
avoidPeakRate = BaseUtils.divide(analysisEnt.getPhotovoltaicPower(), analysisEnt.getInPlaceConsumption());
//发电功率
ThirdActivePowerDailyUpdateMapper activeMapper = context.getBean(ThirdActivePowerDailyUpdateMapper.class);
......@@ -433,7 +429,7 @@ public class EnergyConsumptionAnalysisService {
.in(ThirdActivePowerDailyUpdateEnt::getStationName, plantSet)
);
powerGeneration = activeEnt.getPhotovoltaicPower();
List<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = this.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
List<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = ServiceUtil.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
.ouIds(orgIds)
.build());
Set<String> wellSet = new HashSet<>(wellheadList.size());
......@@ -575,7 +571,7 @@ public class EnergyConsumptionAnalysisService {
String oilFieldCode = ServiceUtil.getOilFieldCode(context);
//用电功率
Map<Date, BigDecimal> avgMap = this.queryPowerConsumptionHour(context,
this.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
ServiceUtil.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
.ouIds(orgIds)
.build()),
today,
......@@ -584,7 +580,7 @@ public class EnergyConsumptionAnalysisService {
);
//发电功率
Map<Date, BigDecimal> powerMap = this.queryGeneratedPowerHour(context,
this.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder()
ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.ouIds(orgIds)
.build()),
today,
......@@ -608,7 +604,7 @@ public class EnergyConsumptionAnalysisService {
Map<String, BigDecimal> shortMap;
Map<Integer, BigDecimal> powerMap;
DateTime today = DateUtil.beginOfDay(DateUtil.date());
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder()
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.ouIds(ServiceUtil.getOrgIdsByPath(context, input.getOuId()))
.build());
if (CollUtil.isNotEmpty(plantList)) {
......@@ -677,7 +673,7 @@ public class EnergyConsumptionAnalysisService {
BigDecimal economicBenefit = BigDecimal.ZERO;
BigDecimal carbonReduction = BigDecimal.ZERO;
DateTime end = DateUtil.beginOfDay(DateUtil.date());
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, plantInput);
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, plantInput);
if (CollUtil.isNotEmpty(plantList)) {
DateTime start = DateUtil.beginOfMonth(end);
//累计发电
......@@ -695,9 +691,9 @@ public class EnergyConsumptionAnalysisService {
);
accumulatePowerGeneration = analysisEnt.getPhotovoltaicPower();
dailyElectricityConsumption = analysisEnt.getDailyElectricityConsumption();
greenElectricityRate = this.getAbsorptionRate(analysisEnt.getInPlaceConsumption(), analysisEnt.getDailyElectricityConsumption());
greenElectricityRate = BaseUtils.getRate(analysisEnt.getInPlaceConsumption(), analysisEnt.getDailyElectricityConsumption());
economicBenefit = this.calculateEconomicBenefit(analysisEnt.getPhotovoltaicPower());
carbonReduction = this.calculateCarbonReduction(analysisEnt.getPhotovoltaicPower());
carbonReduction = ServiceUtil.calculateCarbonReduction(analysisEnt.getPhotovoltaicPower());
}
ISpaceOptimizeShortCloudService service = context.getBean(ISpaceOptimizeShortCloudService.class);
XSingleResult<GetMonthlyWellCountOutput> result = service.monthlyWellCount(context, GetMonthlyWellCountInput.builder()
......@@ -732,7 +728,7 @@ public class EnergyConsumptionAnalysisService {
} else {
plantInput.setOuIds(ServiceUtil.getOrgIdsByPath(context, input.getOuId()));
}
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, plantInput);
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, plantInput);
DateTime end = DateUtil.beginOfDay(DateUtil.yesterday());
DateTime start;
Map<Date, BigDecimal> map;
......@@ -767,7 +763,7 @@ public class EnergyConsumptionAnalysisService {
for (DateTime dateTime : rangeToList) {
if (map.containsKey(dateTime)) {
economicBenefit = this.calculateEconomicBenefit(map.get(dateTime));
carbonReduction = this.calculateCarbonReduction(map.get(dateTime));
carbonReduction = ServiceUtil.calculateCarbonReduction(map.get(dateTime));
} else {
economicBenefit = BigDecimal.ZERO;
carbonReduction = BigDecimal.ZERO;
......@@ -783,7 +779,7 @@ public class EnergyConsumptionAnalysisService {
for (DateTime dateTime : rangeToList) {
if (map.containsKey(dateTime)) {
saveElectricity = map.get(dateTime);
carbonReduction = this.calculateCarbonReduction(map.get(dateTime));
carbonReduction = ServiceUtil.calculateCarbonReduction(map.get(dateTime));
electricityFees = this.calculateElectricityFees(map.get(dateTime));
} else {
saveElectricity = BigDecimal.ZERO;
......@@ -821,7 +817,7 @@ public class EnergyConsumptionAnalysisService {
List<String> orgIds = ServiceUtil.getOrgIdsByPath(context, input.getOuId());
wellheadInput.setOuIds(orgIds);
}
List<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = this.getPowerLineWellheadList(context, wellheadInput);
List<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = ServiceUtil.getPowerLineWellheadList(context, wellheadInput);
if (CollUtil.isNotEmpty(wellheadList)) {
DateTime yesterday = DateUtil.beginOfDay(DateUtil.yesterday());
IDailyElectricityTrendCloudService service = context.getBean(IDailyElectricityTrendCloudService.class);
......@@ -856,7 +852,7 @@ public class EnergyConsumptionAnalysisService {
@XText("井组监控--光伏电站发电详情")
@XApiGet
public XListResult<GetPowerGenerationDetailsOutput> powerGenerationDetails(XContext context, GetEnergyConsumptionAnalysisInput input) {
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder()
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.ouIds(ServiceUtil.getOrgIdsByPath(context, input.getOuId()))
.build());
Map<Date, BigDecimal> nowMap;
......@@ -964,7 +960,7 @@ public class EnergyConsumptionAnalysisService {
electricityConsumption = result.getDailyElectricityConsumption();
}
//累计数据
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder()
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.ouIds(orgIdsByPath)
.build());
if (CollUtil.isNotEmpty(plantList)) {
......@@ -978,7 +974,7 @@ public class EnergyConsumptionAnalysisService {
.collect(Collectors.toList()))
);
economicBenefit = this.calculateEconomicBenefit(analysisEnt.getPhotovoltaicPower());
carbonReduction = this.calculateCarbonReduction(analysisEnt.getPhotovoltaicPower());
carbonReduction = ServiceUtil.calculateCarbonReduction(analysisEnt.getPhotovoltaicPower());
}
return XSingleResult.success(GetWellProductionStatusOutput.builder()
.sumWellNumber(sumWellNumber)
......@@ -1002,7 +998,10 @@ public class EnergyConsumptionAnalysisService {
@XApiGet
public XListResult<GetRealTimeInfoOutput> wellRealTimeInfo(XContext context, GetEnergyConsumptionAnalysisInput input) {
List<GetRealTimeInfoOutput> currentList = Collections.emptyList();
List<DynamicQueryBaseWellheadOutput> wellList = this.getWellListByOuId(context, ServiceUtil.getOrgIdsByPath(context, input.getOuId()), input.getRunTypeKey());
List<DynamicQueryBaseWellheadOutput> wellList = ServiceUtil.getBaseWellheadList(context, DynamicQueryBaseWellheadInput.builder()
.ouIds(ServiceUtil.getOrgIdsByPath(context, input.getOuId()))
.runTypeKey(input.getRunTypeKey())
.build());
if (CollUtil.isNotEmpty(wellList)) {
String wellStatus = input.getWellStatus();
Map<String, DynamicQueryBaseWellheadOutput> collect = new HashMap<>(wellList.size());
......@@ -1107,91 +1106,6 @@ public class EnergyConsumptionAnalysisService {
/*-----------------------------------private-----------------------------------*/
/**
* 分页功能封装查询条件
*
* @param lineNames 线路名称
* @param startTime 开始时间
* @param endTime 结束时间
* @return {@link LambdaQueryWrapper}<{@link EnergyConsumptionAnalysisEnt}>
*/
private LambdaQueryWrapper<ThirdDailyAccumulationUpdateEnt> getQueryWrapper4Page(Collection<String> lineNames, Date startTime, Date endTime) {
return new QueryWrapper<ThirdDailyAccumulationUpdateEnt>()
.select("IFNULL( SUM( photovoltaic_power ), 0 ) AS photovoltaic_power",
"IFNULL( SUM( daily_electricity_consumption ), 0 ) AS daily_electricity_consumption",
"IFNULL( SUM( daily_liquid_production ), 0 ) AS daily_liquid_production",
"IFNULL( SUM( in_place_consumption ), 0 ) AS in_place_consumption",
"station_name")
.lambda()
.in(ThirdDailyAccumulationUpdateEnt::getStationName, lineNames)
.between(ThirdDailyAccumulationUpdateEnt::getCreateDate, startTime, endTime)
.groupBy(ThirdDailyAccumulationUpdateEnt::getStationName)
.orderByAsc(ThirdDailyAccumulationUpdateEnt::getPhotovoltaicPower);
}
/**
* 获取消纳率
* 消纳率:就地消纳量/累计用电*100%
*
* @param powerGeneration 发电
* @param powerConsumption 功耗
* @return {@link BigDecimal}
*/
private BigDecimal getAbsorptionRate(BigDecimal powerGeneration, BigDecimal powerConsumption) {
BigDecimal absorptionRate;
if (powerConsumption.compareTo(BigDecimal.ZERO) > 0) {
absorptionRate = powerGeneration.divide(powerConsumption, 4, RoundingMode.HALF_UP)
.multiply(BusinessConstant.BIG_DECIMAL_100);
} else {
absorptionRate = BigDecimal.ZERO;
}
return absorptionRate;
}
/**
* 查询组织列表下所有线路
*
* @param context 上下文
* @param ouIdList ou-id列表
* @return {@link List}<{@link DynamicQueryBasePowerLineOutput}>
*/
private List<DynamicQueryBasePowerLineOutput> getBasePowerLineListByOuIdList(XContext context, List<String> ouIdList) {
IBasePowerLineCloudService basePowerLineCloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> lineList = basePowerLineCloudService.getBasePowerLineListByOuIdList(context, DynamicQueryBasePowerLineInput.builder()
.ouIdList(ouIdList)
.build());
lineList.throwIfFail();
return lineList.getResult();
}
/**
* 获取输电线井口列表
*
* @param context 上下文
* @param input 入参
* @return {@link List}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/
private List<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> result = service.getPowerLineWellheadList(context, input);
result.throwIfFail();
return result.getResult();
}
/**
* 获取输电线电站列表
*
* @param context 上下文
* @param input 入参
* @return {@link List}<{@link DynamicQueryBasePowerLinePlantViewOutput}>
*/
private List<DynamicQueryBasePowerLinePlantViewOutput> getPowerLinePlantViewList(XContext context, DynamicQueryBasePowerLinePlantInput input) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLinePlantViewOutput> result = service.getPowerLinePlantViewList(context, input);
result.throwIfFail();
return result.getResult();
}
/**
* 电量统计
*
......@@ -1236,30 +1150,9 @@ public class EnergyConsumptionAnalysisService {
* @return {@link List }<{@link DynamicQueryBaseWellheadOutput }>
*/
private List<DynamicQueryBaseWellheadOutput> getWellListByOuId(XContext context, List<String> ouIds) {
IBaseWellheadCloudService service = context.getBean(IBaseWellheadCloudService.class);
XListResult<DynamicQueryBaseWellheadOutput> result = service.queryBaseWellheadListByParam(context, DynamicQueryBaseWellheadInput.builder()
.ouIds(ouIds)
.build());
result.throwIfFail();
return result.getResult();
}
/**
* 获取井口列表
*
* @param context 上下文
* @param ouIds ou-ids
* @param runTypeKey 运行类型键
* @return {@link List }<{@link DynamicQueryBaseWellheadOutput }>
*/
private List<DynamicQueryBaseWellheadOutput> getWellListByOuId(XContext context, List<String> ouIds, String runTypeKey) {
IBaseWellheadCloudService service = context.getBean(IBaseWellheadCloudService.class);
XListResult<DynamicQueryBaseWellheadOutput> result = service.queryBaseWellheadListByParam(context, DynamicQueryBaseWellheadInput.builder()
return ServiceUtil.getBaseWellheadList(context, DynamicQueryBaseWellheadInput.builder()
.ouIds(ouIds)
.runTypeKey(runTypeKey)
.build());
result.throwIfFail();
return result.getResult();
}
/**
......@@ -1417,42 +1310,4 @@ public class EnergyConsumptionAnalysisService {
}
return economicBenefit;
}
/**
* 计算累计减碳量
*
* @param photovoltaicPower 光伏发电
* @return {@link BigDecimal }
*/
private BigDecimal calculateCarbonReduction(BigDecimal photovoltaicPower) {
BigDecimal carbonReduction;
if (photovoltaicPower.compareTo(BigDecimal.ZERO) > 0) {
carbonReduction = photovoltaicPower
.multiply(BusinessConstant.BIG_DECIMAL_6_67)
.divide(BusinessConstant.BIG_DECIMAL_10000, 2, RoundingMode.HALF_UP);
} else {
carbonReduction = BigDecimal.ZERO;
}
return carbonReduction;
}
/**
* 获取环比
* (本期-上期) /上期*100%
*
* @param currentPeriod 本期
* @param lastPeriod 上期
* @return {@link BigDecimal}
*/
private BigDecimal getCycleRatio(BigDecimal currentPeriod, BigDecimal lastPeriod) {
BigDecimal cycleRatio;
if (lastPeriod.compareTo(BigDecimal.ZERO) > 0) {
cycleRatio = currentPeriod.subtract(lastPeriod)
.divide(lastPeriod, 4, RoundingMode.HALF_UP)
.multiply(BusinessConstant.BIG_DECIMAL_100);
} else {
cycleRatio = BigDecimal.ZERO;
}
return cycleRatio;
}
}
\ No newline at end of file
......@@ -8,10 +8,7 @@ import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.cloud.base.service.BasePhotovoltaicPlantCloudService;
import pps.cloud.base.service.IBaseEnergyStorageCloudService;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.data.base_energy_storage_device.DynamicQueryBaseEnergyStorageDeviceInput;
import pps.cloud.base.service.data.base_energy_storage_device.DynamicQueryBaseEnergyStorageDeviceOutput;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudInput;
......@@ -93,7 +90,9 @@ public class HomePageService {
});
} else {
//查电站
List<GetBasePhotovoltaicPlantCloudOutput> plantList = this.getPlantList(context, stationId, null);
List<GetBasePhotovoltaicPlantCloudOutput> plantList = ServiceUtil.getBasePhotovoltaicPlantList(context, GetBasePhotovoltaicPlantCloudInput.builder()
.ouId(stationId)
.build());
outputs = new ArrayList<>(plantList.size());
plantList.forEach(item -> {
outputs.add(GetStationViewOutput.builder()
......@@ -446,7 +445,7 @@ public class HomePageService {
.ouLevel(BusinessConstant.PLANT_FLAG)
.build()).stream()
.collect(Collectors.toMap(GetSysOrganizationViewOutput::getId, GetSysOrganizationViewOutput::getOuName));
Map<String, List<DynamicQueryBasePowerLineOutput>> listMap = this.getBasePowerLineListByOuIdList(context, collect.keySet()).stream()
Map<String, List<DynamicQueryBasePowerLineOutput>> listMap = ServiceUtil.getBasePowerLineListByOuIdList(context, collect.keySet()).stream()
.collect(Collectors.groupingBy(DynamicQueryBasePowerLineOutput::getOuId));
stationList = new ArrayList<>(4);
for (Map.Entry<String, List<DynamicQueryBasePowerLineOutput>> entry : listMap.entrySet()) {
......@@ -467,7 +466,7 @@ public class HomePageService {
powerConsumption = powerConsumption.add(ent.getPowerConsumption());
}
} else {
List<String> lineNameList = this.getBasePowerLineListByOuIdList(context, CollUtil.list(false, stationId)).stream()
List<String> lineNameList = ServiceUtil.getBasePowerLineListByOuIdList(context, CollUtil.list(false, stationId)).stream()
.map(DynamicQueryBasePowerLineOutput::getLineName)
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(lineNameList)) {
......@@ -512,10 +511,11 @@ public class HomePageService {
List<String> plantIds;
if (CharSequenceUtil.isNotBlank(plantId)) {
input.setStationId(null);
plantList = this.getPlantList(context, null, plantId);
plantList = ServiceUtil.getBasePhotovoltaicPlantList(context, GetBasePhotovoltaicPlantCloudInput.builder()
.id(plantId)
.build());
} else {
List<String> ouIds = ServiceUtil.getOrgIdsByPath(context, context.getSession(PpsUserSession.class).getOuId());
plantList = this.getPlantList(context, ouIds);
plantList = this.getPlantList(context, ServiceUtil.getOrgIdsByPath(context, context.getSession(PpsUserSession.class).getOuId()));
}
plantIds = plantList.stream()
.map(GetBasePhotovoltaicPlantCloudOutput::getId)
......@@ -594,7 +594,7 @@ public class HomePageService {
stationId = context.getSession(PpsUserSession.class).getOuId();
}
List<String> ouIds = ServiceUtil.getOrgIdsByPath(context, stationId);
List<DynamicQueryBasePowerLineOutput> lineList = this.getLineList(context, DynamicQueryBasePowerLineInput.builder()
List<DynamicQueryBasePowerLineOutput> lineList = ServiceUtil.getPowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.ouIdList(ouIds)
.build());
if (CollUtil.isNotEmpty(lineList)) {
......@@ -624,9 +624,7 @@ public class HomePageService {
dailyElectricityConsumption = analysisEnt.getDailyElectricityConsumption()
.divide(BusinessConstant.BIG_DECIMAL_10000, 2, RoundingMode.HALF_UP);
//累计减碳量
carbonReduction = analysisEnt.getPhotovoltaicPower()
.multiply(BusinessConstant.BIG_DECIMAL_6_67)
.divide(BusinessConstant.BIG_DECIMAL_10000, 2, RoundingMode.HALF_UP);
carbonReduction = ServiceUtil.calculateCarbonReduction(analysisEnt.getPhotovoltaicPower());
//经济效益(万元):光伏累计发电*0.65-光伏累计发电*0.28
economicBenefit = analysisEnt.getPhotovoltaicPower()
.multiply(BigDecimal.valueOf(0.65))
......@@ -706,7 +704,9 @@ public class HomePageService {
Integer continuousWellNumber = 0;
BigDecimal operatingLoad = BigDecimal.ZERO;
//井口统计
List<DynamicQueryBaseWellheadOutput> wellList = this.getWellList(context, stationId);
List<DynamicQueryBaseWellheadOutput> wellList = ServiceUtil.getBaseWellheadList(context, DynamicQueryBaseWellheadInput.builder()
.ouId(stationId)
.build());
for (DynamicQueryBaseWellheadOutput well : wellList) {
if (CharSequenceUtil.equals(BusinessConstant.CONTINUOUS_PUMPING_WELL, well.getRunTypeKey())) {
continuousWellNumber++;
......@@ -716,11 +716,15 @@ public class HomePageService {
operatingLoad = operatingLoad.add(Optional.ofNullable(well.getRatedPower()).orElse(BigDecimal.ZERO));
}
//线路统计
List<DynamicQueryBasePowerLineOutput> lineList = this.getLineList(context, stationId, "10", null);
List<DynamicQueryBasePowerLineOutput> lineList = this.getLineList(context, stationId, "10");
//光伏电站
List<GetBasePhotovoltaicPlantCloudOutput> plantList = this.getPlantList(context, stationId, null);
List<GetBasePhotovoltaicPlantCloudOutput> plantList = ServiceUtil.getBasePhotovoltaicPlantList(context, GetBasePhotovoltaicPlantCloudInput.builder()
.ouId(stationId)
.build());
//储能电站
List<DynamicQueryBaseEnergyStorageDeviceOutput> storageList = this.getStorageList(context, stationId);
List<DynamicQueryBaseEnergyStorageDeviceOutput> storageList = this.getStorageList(context, DynamicQueryBaseEnergyStorageDeviceInput.builder()
.ouId(stationId)
.build());
return XSingleResult.success(GetOilExtractionPlantOutput.builder()
.wellNumber(wellList.size())
.intervalWellNumber(intervalWellNumber)
......@@ -753,14 +757,17 @@ public class HomePageService {
return XListResult.error(context, BusinessError.MissingoilExtractionPlantID);
}
//十千伏线路
List<DynamicQueryBasePowerLineOutput> lineList = this.getLineList(context, stationId, "10", null);
List<DynamicQueryBasePowerLineOutput> lineList = this.getLineList(context, stationId, "10");
List<GetBranchingProgramOutput> outputs = new ArrayList<>(lineList.size());
for (DynamicQueryBasePowerLineOutput line : lineList) {
outputs.add(GetBranchingProgramOutput.builder()
.mainLineId(line.getId())
.mainLineName(line.getLineName())
.subLineList(this.getSubLineList(context, line.getId()))
.subLineList(ServiceUtil.getPowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.upperLineId(line.getId())
.build()))
.build());
}
return XListResult.success(outputs);
}
......@@ -777,14 +784,18 @@ public class HomePageService {
public XSingleResult<GetLineViewOutput> getLineView(XContext context, GetLineViewInput input) {
//查线路关联的井口
BigDecimal operatingLoad = BigDecimal.ZERO;
List<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = this.getPowerLineWellheadList(context, input.getLineId());
List<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = ServiceUtil.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
.lineId(input.getLineId())
.build());
if (CollUtil.isNotEmpty(wellheadList)) {
for (DynamicQueryBasePowerLineWellheadViewOutput well : wellheadList) {
operatingLoad = operatingLoad.add(Optional.ofNullable(well.getRatedPower()).orElse(BigDecimal.ZERO));
}
}
//查线路关联的电站
List<DynamicQueryBasePowerLinePlantViewOutput> plantViewList = this.getPowerLinePlantViewList(context, input.getLineId());
List<DynamicQueryBasePowerLinePlantViewOutput> plantViewList = ServiceUtil.getPowerLinePlantList(context, DynamicQueryBasePowerLinePlantInput.builder()
.lineId(input.getLineId())
.build());
String areaName;
if (CollUtil.isNotEmpty(plantViewList)) {
areaName = this.getSysAreaPath(context, plantViewList.get(0).getAreaCode());
......@@ -842,22 +853,6 @@ public class HomePageService {
/*------------------------------------------------- private ---------------------------------------------------------*/
/**
* 通过电站ID查井口
*
* @param context 上下文
* @param plantIds 植物id
* @return {@link List}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/
private List<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadListByPlant(XContext context, List<String> plantIds) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> result = service.getPowerLineWellheadListByPlant(context, DynamicQueryBasePowerLineWellheadInput.builder()
.plantIds(plantIds)
.build());
result.throwIfFail();
return result.getResult();
}
/**
* 获取区域路径
*
......@@ -874,105 +869,6 @@ public class HomePageService {
return result.getResult().getName();
}
/**
* 获取输电线电站列表
*
* @param context 上下文
* @param lineId 线路id
* @return {@link List}<{@link DynamicQueryBasePowerLinePlantViewOutput}>
*/
private List<DynamicQueryBasePowerLinePlantViewOutput> getPowerLinePlantViewList(XContext context, String lineId) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLinePlantViewOutput> result = service.getPowerLinePlantViewList(context, DynamicQueryBasePowerLinePlantInput.builder()
.lineId(lineId)
.build());
result.throwIfFail();
return result.getResult();
}
/**
* 获取输电线井口列表
*
* @param context 上下文
* @param lineId 线路id
* @return {@link List}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/
private List<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, String lineId) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> result = service.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
.lineId(lineId)
.build());
result.throwIfFail();
return result.getResult();
}
/**
* 获取输电线井口列表
*
* @param context 上下文
* @param lineIds 线路ID
* @return {@link List }<{@link DynamicQueryBasePowerLineWellheadViewOutput }>
*/
private List<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, List<String> lineIds) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> result = service.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
.lineIds(lineIds)
.build());
result.throwIfFail();
return result.getResult();
}
/**
* 查询组织列表下所有线路
*
* @param context 上下文
* @param ouIdList ou-id列表
* @return {@link List}<{@link DynamicQueryBasePowerLineOutput}>
*/
private List<DynamicQueryBasePowerLineOutput> getBasePowerLineListByOuIdList(XContext context, Collection<String> ouIdList) {
IBasePowerLineCloudService basePowerLineCloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> lineList = basePowerLineCloudService.getBasePowerLineListByOuIdList(context, DynamicQueryBasePowerLineInput.builder()
.ouIdList(ouIdList)
.build());
lineList.throwIfFail();
return lineList.getResult();
}
/**
* 获取井口列表
*
* @param context 上下文
* @param stationId 工作站id
* @return {@link List}<{@link DynamicQueryBaseWellheadOutput}>
*/
private List<DynamicQueryBaseWellheadOutput> getWellList(XContext context, String stationId) {
IBaseWellheadCloudService service = context.getBean(IBaseWellheadCloudService.class);
XListResult<DynamicQueryBaseWellheadOutput> result = service.queryBaseWellheadListByParam(context, DynamicQueryBaseWellheadInput.builder()
.ouId(stationId)
.build());
result.throwIfFail();
return result.getResult();
}
/**
* 光伏电站列表
*
* @param context 上下文
* @param stationId 工作站id
* @param plantId 电站id
* @return {@link List}<{@link GetBasePhotovoltaicPlantCloudOutput}>
*/
private List<GetBasePhotovoltaicPlantCloudOutput> getPlantList(XContext context, String stationId, String plantId) {
BasePhotovoltaicPlantCloudService service = context.getBean(BasePhotovoltaicPlantCloudService.class);
XListResult<GetBasePhotovoltaicPlantCloudOutput> result = service.getBasePhotovoltaicPlantList(context, GetBasePhotovoltaicPlantCloudInput.builder()
.ouId(stationId)
.id(plantId)
.build());
result.throwIfFail();
return result.getResult();
}
/**
* 获取井口列表
*
......@@ -981,12 +877,9 @@ public class HomePageService {
* @return {@link List }<{@link DynamicQueryBaseWellheadOutput }>
*/
private List<DynamicQueryBaseWellheadOutput> getWellList(XContext context, List<String> ouIds) {
IBaseWellheadCloudService service = context.getBean(IBaseWellheadCloudService.class);
XListResult<DynamicQueryBaseWellheadOutput> result = service.queryBaseWellheadListByParam(context, DynamicQueryBaseWellheadInput.builder()
return ServiceUtil.getBaseWellheadList(context, DynamicQueryBaseWellheadInput.builder()
.ouIds(ouIds)
.build());
result.throwIfFail();
return result.getResult();
}
/**
......@@ -997,12 +890,9 @@ public class HomePageService {
* @return {@link List }<{@link GetBasePhotovoltaicPlantCloudOutput }>
*/
private List<GetBasePhotovoltaicPlantCloudOutput> getPlantList(XContext context, List<String> ouIds) {
BasePhotovoltaicPlantCloudService service = context.getBean(BasePhotovoltaicPlantCloudService.class);
XListResult<GetBasePhotovoltaicPlantCloudOutput> result = service.getBasePhotovoltaicPlantList(context, GetBasePhotovoltaicPlantCloudInput.builder()
return ServiceUtil.getBasePhotovoltaicPlantList(context, GetBasePhotovoltaicPlantCloudInput.builder()
.ouIds(ouIds)
.build());
result.throwIfFail();
return result.getResult();
}
/**
......@@ -1027,60 +917,10 @@ public class HomePageService {
* @param lineTypeKey 线型键
* @return {@link List}<{@link DynamicQueryBasePowerLineOutput}>
*/
private List<DynamicQueryBasePowerLineOutput> getLineList(XContext context, String stationId, String lineTypeKey, String lineId) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> result = service.getBasePowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.lineId(lineId)
private List<DynamicQueryBasePowerLineOutput> getLineList(XContext context, String stationId, String lineTypeKey) {
return ServiceUtil.getPowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.ouId(stationId)
.lineTypeKey(lineTypeKey)
.build());
result.throwIfFail();
return result.getResult();
}
/**
* 输电线路列表
*
* @param context 上下文
* @param input 输入
* @return {@link List }<{@link DynamicQueryBasePowerLineOutput }>
*/
private List<DynamicQueryBasePowerLineOutput> getLineList(XContext context, DynamicQueryBasePowerLineInput input) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> result = service.getBasePowerLineList(context, input);
result.throwIfFail();
return result.getResult();
}
/**
* 获取子线路列表
*
* @param context 上下文
* @param upperLineId 上级线路ID
* @return {@link List}<{@link DynamicQueryBasePowerLineOutput}>
*/
private List<DynamicQueryBasePowerLineOutput> getSubLineList(XContext context, String upperLineId) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> result = service.getBasePowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.upperLineId(upperLineId)
.build());
result.throwIfFail();
return result.getResult();
}
/**
* 获取储能列表
*
* @param context 上下文
* @param stationId 工作站id
* @return {@link List}<{@link DynamicQueryBaseEnergyStorageDeviceOutput}>
*/
private List<DynamicQueryBaseEnergyStorageDeviceOutput> getStorageList(XContext context, String stationId) {
IBaseEnergyStorageCloudService service = context.getBean(IBaseEnergyStorageCloudService.class);
XListResult<DynamicQueryBaseEnergyStorageDeviceOutput> result = service.queryBaseStorageListByParam(context, DynamicQueryBaseEnergyStorageDeviceInput.builder()
.ouId(stationId)
.build());
result.throwIfFail();
return result.getResult();
}
}
\ No newline at end of file
......@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
import pps.cloud.prediction.service.IPlantPredictedPowerCloudService;
......@@ -197,12 +196,9 @@ public class PlantPredictedPowerCloudServiceImpl implements IPlantPredictedPower
List<String> collect = list.stream()
.map(WellheadDailyProductionSituationJob::getWellNumber)
.collect(Collectors.toList());
IBaseWellheadCloudService bean = context.getBean(IBaseWellheadCloudService.class);
XListResult<DynamicQueryBaseWellheadOutput> result = bean.queryBaseWellheadListByParam(context, DynamicQueryBaseWellheadInput.builder()
Map<String, String> map = ServiceUtil.getBaseWellheadList(context, DynamicQueryBaseWellheadInput.builder()
.wellNumbers(collect)
.build());
result.throwIfFail();
Map<String, String> map = result.getResult().stream()
.build()).stream()
.collect(Collectors.toMap(DynamicQueryBaseWellheadOutput::getWellNumber, DynamicQueryBaseWellheadOutput::getId));
List<WellheadDailyProductionSituationView> dtoList = new ArrayList<>(list.size());
for (WellheadDailyProductionSituationJob wellhead : list) {
......
......@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.cloud.base.service.BasePhotovoltaicPlantCloudService;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudInput;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudOutput;
import pps.cloud.prediction.service.PlantPredictedPowerLongTermDataCloudService;
......@@ -13,11 +12,11 @@ import pps.core.prediction.entity.PlantPredictedPowerLongTermDataEnt;
import pps.core.prediction.mapper.PlantPowerDataMapper;
import pps.core.prediction.mapper.PlantPredictedPowerLongTermDataMapper;
import pps.core.prediction.mapper.PlantPredictedPowerLongTermDataViewMapper;
import pps.core.prediction.utils.ServiceUtil;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XServiceResult;
import xstartup.feature.api.annotation.XApiGet;
......@@ -42,12 +41,7 @@ public class PlantPredictedPowerLongTermDataCloudServiceImpl implements PlantPre
@XText("定时运行预测长期数据")
public XServiceResult runPlantPredictedPowerLongTermData(XContext context) {
//获取所有的电站
BasePhotovoltaicPlantCloudService cloudService = context.getBean(BasePhotovoltaicPlantCloudService.class);
XListResult<GetBasePhotovoltaicPlantCloudOutput> result = cloudService.getBasePhotovoltaicPlantList(context, new GetBasePhotovoltaicPlantCloudInput());
if (!result.isSuccess()) {
return XServiceResult.error(500, "未查询到电站数据");
}
List<GetBasePhotovoltaicPlantCloudOutput> list = result.getResult();
List<GetBasePhotovoltaicPlantCloudOutput> list = ServiceUtil.getBasePhotovoltaicPlantList(context, new GetBasePhotovoltaicPlantCloudInput());
PlantPowerDataMapper powerDataMapper = context.getBean(PlantPowerDataMapper.class);
Date currentDate = new Date();
for (GetBasePhotovoltaicPlantCloudOutput output : list) {
......
......@@ -5,7 +5,6 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.base.service.BasePhotovoltaicPlantCloudService;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudInput;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudOutput;
import pps.core.prediction.entity.PlantPredictedPowerMidTermEnt;
......@@ -15,6 +14,7 @@ import pps.core.prediction.mapper.PlantPredictedPowerShortTermMapper;
import pps.core.prediction.service.data.predicted_api.PredictedApiInput;
import pps.core.prediction.service.data.predicted_api.PredictedApiOutput;
import pps.core.prediction.service.data.predicted_api.PredictedApiPredictOutput;
import pps.core.prediction.utils.ServiceUtil;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
......@@ -171,11 +171,8 @@ public class PredictedApiService {
* @return {@link List}<{@link GetBasePhotovoltaicPlantCloudOutput}>
*/
private List<GetBasePhotovoltaicPlantCloudOutput> getPhotovoltaicPlant(XContext context, String stationName) {
BasePhotovoltaicPlantCloudService bean = context.getBean(BasePhotovoltaicPlantCloudService.class);
XListResult<GetBasePhotovoltaicPlantCloudOutput> result = bean.getBasePhotovoltaicPlantList(context, GetBasePhotovoltaicPlantCloudInput.builder()
return ServiceUtil.getBasePhotovoltaicPlantList(context, GetBasePhotovoltaicPlantCloudInput.builder()
.stationName(stationName)
.build());
result.throwIfFail();
return result.getResult();
}
}
......@@ -3,7 +3,6 @@ package pps.core.prediction.service;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.text.CharSequenceUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
import pps.core.common.constant.BusinessConstant;
......@@ -46,13 +45,9 @@ public class ThirdCurrentWellConditionService {
@XText("井口生产情况--油井状态")
@XApiPost
public XListResult<QueryThirdCurrentWellConditionOutput> queryWellRealPvData(XContext context, QueryThirdCurrentWellConditionInput input) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> result = service.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
List<DynamicQueryBasePowerLineWellheadViewOutput> list = ServiceUtil.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
.lineId(input.getLineId())
.build()
);
result.throwIfFail();
List<DynamicQueryBasePowerLineWellheadViewOutput> list = result.getResult();
.build());
if (CollUtil.isEmpty(list)) {
return XListResult.success(Collections.emptyList());
}
......
......@@ -5,7 +5,6 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson2.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.base.service.BasePhotovoltaicPlantCloudService;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudInput;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudOutput;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
......@@ -24,7 +23,6 @@ import pps.core.prediction.utils.ServiceUtil;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XListResult;
import xstartup.data.XServiceResult;
import xstartup.helper.XTransactionHelper;
......@@ -226,9 +224,11 @@ public class ThirdDataAccessCloudServiceImpl implements IThirdDataAccessCloudSer
return XServiceResult.OK;
}
//通过场站名查线路ID
Map<String, String> lineMap = this.getBasePowerLineListByNames(context, powerList.stream()
Map<String, String> lineMap = ServiceUtil.getPowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.lineNames(powerList.stream()
.map(ThirdPhotovoltaicPowerEnt::getStationName)
.collect(Collectors.toList())).stream()
.collect(Collectors.toList()))
.build()).stream()
.collect(Collectors.toMap(DynamicQueryBasePowerLineOutput::getLineName, DynamicQueryBasePowerLineOutput::getId));
//查昨日井口耗电量
WellheadDailyProductionSituationViewMapper mapper = context.getBean(WellheadDailyProductionSituationViewMapper.class);
......@@ -503,22 +503,7 @@ public class ThirdDataAccessCloudServiceImpl implements IThirdDataAccessCloudSer
* @return {@link Map}<{@link String}, {@link String}>
*/
private Map<String, String> getPhotovoltaicPlantMap(XContext context) {
XListResult<GetBasePhotovoltaicPlantCloudOutput> result = context.getBean(BasePhotovoltaicPlantCloudService.class)
.getBasePhotovoltaicPlantList(context, new GetBasePhotovoltaicPlantCloudInput());
return result.getResult().stream()
return ServiceUtil.getBasePhotovoltaicPlantList(context, new GetBasePhotovoltaicPlantCloudInput()).stream()
.collect(Collectors.toMap(GetBasePhotovoltaicPlantCloudOutput::getStationName, GetBasePhotovoltaicPlantCloudOutput::getId));
}
/**
* 查询线路列表通过线路名称
*
* @param context 上下文
* @param lineNames ou-id列表
* @return {@link List}<{@link DynamicQueryBasePowerLineOutput}>
*/
private List<DynamicQueryBasePowerLineOutput> getBasePowerLineListByNames(XContext context, List<String> lineNames) {
return ServiceUtil.getPowerLineList(context, DynamicQueryBasePowerLineInput.builder()
.lineNames(lineNames)
.build());
}
}
\ No newline at end of file
......@@ -2,8 +2,6 @@ package pps.core.prediction.service;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.cloud.base.service.IBasePowerLineCloudService;
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_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
......@@ -18,7 +16,6 @@ import pps.core.prediction.utils.ServiceUtil;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import xstartup.feature.api.annotation.XApiPost;
......@@ -48,7 +45,7 @@ public class ThirdPhotovoltaicPowerService {
@XApiPost
public XSingleResult<GetThirdPhotovoltaicPowerOutput> getPhotovoltaicPowerOverview(XContext context, GetThirdPhotovoltaicPowerInput input) {
GetThirdPhotovoltaicPowerOutput output = new GetThirdPhotovoltaicPowerOutput();
List<DynamicQueryBasePowerLineOutput> lineList = this.getBasePowerLineListByOuIdList(context, ServiceUtil.getOrgIdsByPath(context, input.getOuId()));
List<DynamicQueryBasePowerLineOutput> lineList = ServiceUtil.getBasePowerLineListByOuIdList(context, ServiceUtil.getOrgIdsByPath(context, input.getOuId()));
if (CollUtil.isEmpty(lineList)) {
output.setPowerGeneration(BigDecimal.ZERO);
output.setPowerConsumption(BigDecimal.ZERO);
......@@ -63,7 +60,9 @@ public class ThirdPhotovoltaicPowerService {
input.getBetweenDate();
BigDecimal powerConsumption;
//查井口
List<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = this.getBaseWellheadListByLineIdList(context, lineIdList);
List<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = ServiceUtil.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
.lineIds(lineIdList)
.build());
if (CollUtil.isEmpty(lineList)) {
powerConsumption = BigDecimal.ONE;
} else {
......@@ -93,38 +92,4 @@ public class ThirdPhotovoltaicPowerService {
}
return XSingleResult.success(output);
}
/*-----------------------------------private-----------------------------------*/
/**
* 查询组织列表下所有线路
*
* @param context 上下文
* @param ouIdList ou-id列表
* @return {@link List}<{@link DynamicQueryBasePowerLineOutput}>
*/
private List<DynamicQueryBasePowerLineOutput> getBasePowerLineListByOuIdList(XContext context, List<String> ouIdList) {
IBasePowerLineCloudService basePowerLineCloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> lineList = basePowerLineCloudService.getBasePowerLineListByOuIdList(context, DynamicQueryBasePowerLineInput.builder()
.ouIdList(ouIdList)
.build());
lineList.throwIfFail();
return lineList.getResult();
}
/**
* 查询线路列表下所有井口
*
* @param context 上下文
* @param lineIdList 行id列表
* @return {@link List}<{@link DynamicQueryBasePowerLineWellheadViewOutput}>
*/
private List<DynamicQueryBasePowerLineWellheadViewOutput> getBaseWellheadListByLineIdList(XContext context, List<String> lineIdList) {
IBasePowerLineCloudService basePowerLineCloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> wellheadList = basePowerLineCloudService.getPowerLineWellheadList(context, DynamicQueryBasePowerLineWellheadInput.builder()
.lineIds(lineIdList)
.build());
wellheadList.throwIfFail();
return wellheadList.getResult();
}
}
......@@ -9,7 +9,6 @@ import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageInfo;
import com.github.pagehelper.page.PageMethod;
import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput;
import pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput;
import pps.core.auth.HttpRequestClient;
......@@ -645,15 +644,13 @@ public class WellheadDailyProductionSituationService {
"\t}\n" +
"]";
List<GetThirdCurrentWellConditionViewOutput> wellList = JSON.parseArray(wellResult, GetThirdCurrentWellConditionViewOutput.class);
IBaseWellheadCloudService service = context.getBean(IBaseWellheadCloudService.class);
XListResult<DynamicQueryBaseWellheadOutput> result = service.queryBaseWellheadListByParam(context, DynamicQueryBaseWellheadInput.builder()
.build());
result.throwIfFail();
Set<String> collect = result.getResult().stream().map(DynamicQueryBaseWellheadOutput::getWellNumber).collect(Collectors.toSet());
Set<String> collect = ServiceUtil.getBaseWellheadList(context, DynamicQueryBaseWellheadInput.builder()
.build()).stream()
.map(DynamicQueryBaseWellheadOutput::getWellNumber).collect(Collectors.toSet());
Set<String> apiCollect = wellList.stream().map(GetThirdCurrentWellConditionViewOutput::getWellNumber).collect(Collectors.toSet());
System.out.println("-------------------系统里的井口:");
for (DynamicQueryBaseWellheadOutput output : result.getResult()) {
System.out.println(output.getWellNumber());
for (String output : collect) {
System.out.println(output);
}
System.out.println("-------------------长庆接口里的井口:");
for (GetThirdCurrentWellConditionViewOutput output : wellList) {
......
......@@ -10,10 +10,20 @@ import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.cloud.base.service.BasePhotovoltaicPlantCloudService;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.IConfigOilFieldCloudService;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudInput;
import pps.cloud.base.service.data.base_photovoltaic_plant.GetBasePhotovoltaicPlantCloudOutput;
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_plant.DynamicQueryBasePowerLinePlantInput;
import pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantViewOutput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadInput;
import pps.cloud.base.service.data.base_power_line_wellhead.DynamicQueryBasePowerLineWellheadViewOutput;
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.data.sys_organization.GetAllOuListByOuIdInput;
......@@ -39,6 +49,7 @@ import xstartup.data.XListResult;
import xstartup.data.XSingleResult;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
......@@ -342,6 +353,95 @@ public class ServiceUtil {
return result.getResult();
}
/**
* 查询组织列表下所有线路
*
* @param context 上下文
* @param ouIdList ou id列表
* @return {@link List }<{@link DynamicQueryBasePowerLineOutput }>
*/
public static List<DynamicQueryBasePowerLineOutput> getBasePowerLineListByOuIdList(XContext context, Collection<String> ouIdList) {
IBasePowerLineCloudService basePowerLineCloudService = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineOutput> lineList = basePowerLineCloudService.getBasePowerLineListByOuIdList(context, DynamicQueryBasePowerLineInput.builder()
.ouIdList(ouIdList)
.build());
lineList.throwIfFail();
return lineList.getResult();
}
/**
* 查询线路列表下所有井口
*
* @param context 上下文
* @param input 输入
* @return {@link List }<{@link DynamicQueryBasePowerLineWellheadViewOutput }>
*/
public static List<DynamicQueryBasePowerLineWellheadViewOutput> getPowerLineWellheadList(XContext context, DynamicQueryBasePowerLineWellheadInput input) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLineWellheadViewOutput> result = service.getPowerLineWellheadList(context, input);
result.throwIfFail();
return result.getResult();
}
/**
* 获取光伏电站列表
*
* @param context 上下文
* @param input 输入
* @return {@link List }<{@link GetBasePhotovoltaicPlantCloudOutput }>
*/
public static List<GetBasePhotovoltaicPlantCloudOutput> getBasePhotovoltaicPlantList(XContext context, GetBasePhotovoltaicPlantCloudInput input) {
BasePhotovoltaicPlantCloudService service = context.getBean(BasePhotovoltaicPlantCloudService.class);
XListResult<GetBasePhotovoltaicPlantCloudOutput> result = service.getBasePhotovoltaicPlantList(context, input);
result.throwIfFail();
return result.getResult();
}
/**
* 获取井口列表
*
* @param context 上下文
* @return {@link List }<{@link DynamicQueryBaseWellheadOutput }>
*/
public static List<DynamicQueryBaseWellheadOutput> getBaseWellheadList(XContext context, DynamicQueryBaseWellheadInput input) {
IBaseWellheadCloudService service = context.getBean(IBaseWellheadCloudService.class);
XListResult<DynamicQueryBaseWellheadOutput> result = service.queryBaseWellheadListByParam(context, input);
result.throwIfFail();
return result.getResult();
}
/**
* 获取输电线电站列表
*
* @param context 上下文
* @param input 入参
* @return {@link List}<{@link DynamicQueryBasePowerLinePlantViewOutput}>
*/
public static List<DynamicQueryBasePowerLinePlantViewOutput> getPowerLinePlantList(XContext context, DynamicQueryBasePowerLinePlantInput input) {
IBasePowerLineCloudService service = context.getBean(IBasePowerLineCloudService.class);
XListResult<DynamicQueryBasePowerLinePlantViewOutput> result = service.getPowerLinePlantViewList(context, input);
result.throwIfFail();
return result.getResult();
}
/**
* 计算累计减碳量
*
* @param photovoltaicPower 光伏发电
* @return {@link BigDecimal }
*/
public static BigDecimal calculateCarbonReduction(BigDecimal photovoltaicPower) {
BigDecimal carbonReduction;
if (photovoltaicPower.compareTo(BigDecimal.ZERO) > 0) {
carbonReduction = photovoltaicPower
.multiply(BusinessConstant.BIG_DECIMAL_6_67)
.divide(BusinessConstant.BIG_DECIMAL_10000, 2, RoundingMode.HALF_UP);
} else {
carbonReduction = BigDecimal.ZERO;
}
return carbonReduction;
}
/*----------------------------------- 私有方法 -----------------------------------*/
/**
......
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