Commit 7e15e07e authored by ZWT's avatar ZWT

feat[零碳项目]: 松原演示

[
1.统计分析-井组监控页功能开发,开发井组生产详情接口,完成接口冒烟测试并编写线上接口文档生成接口用例;
2.统计分析-井组监控页功能开发,开发井口实时信息接口,完成接口冒烟测试并编写线上接口文档生成接口用例;
3.统计分析-井组监控页功能开发,开发光伏电站发电详情接口,完成接口冒烟测试并编写线上接口文档生成接口用例;
]
parent 2c9df8b4
......@@ -9,8 +9,6 @@ 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 com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import pps.cloud.base.service.IBasePowerLineCloudService;
import pps.cloud.base.service.IBaseWellheadCloudService;
import pps.cloud.base.service.data.base_power_line.DynamicQueryBasePowerLineInput;
......@@ -39,7 +37,6 @@ import pps.core.common.constant.BusinessConstant;
import pps.core.common.utils.BaseUtils;
import pps.core.prediction.constant.ThirdPartyApiConstant;
import pps.core.prediction.entity.*;
import pps.core.prediction.enums.BusinessError;
import pps.core.prediction.mapper.*;
import pps.core.prediction.service.data.energy_consumption_analysis.*;
import pps.core.prediction.service.data.home_page.GetPowerAnalyseOutput;
......@@ -49,7 +46,6 @@ import pps.core.prediction.utils.ServiceUtil;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.base.exception.XServiceException;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XListResult;
import xstartup.data.XPageData;
......@@ -73,7 +69,7 @@ import java.util.stream.Collectors;
@XService
public class EnergyConsumptionAnalysisService {
/*------------------------------ 能耗分析 ------------------------------*/
/*------------------------------ 能耗分析(长庆) ------------------------------*/
/**
* 今日/昨日/同期电量统计
......@@ -1025,181 +1021,10 @@ public class EnergyConsumptionAnalysisService {
return XListResult.success(currentList);
}
/*------------------------------ 能耗分析(废弃) ------------------------------*/
/*------------------------------ 能耗分析(松原) ------------------------------*/
/**
* 能耗分析--能耗概览
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult}<{@link GetEnergyConsumptionAnalysisViewOutput}>
*/
@Deprecated
@XText("能耗分析--能耗概览")
@XApiGet
public XSingleResult<GetEnergyConsumptionAnalysisViewOutput> getEnergyConsumptionAnalysisView(XContext context, QueryEnergyConsumptionAnalysisInput input) {
GetEnergyConsumptionAnalysisViewOutput output = new GetEnergyConsumptionAnalysisViewOutput();
List<DynamicQueryBasePowerLineOutput> lineList = this.getBasePowerLineListByOuIdList(context, this.getOrgIdsByPath(context, input.getOuId()));
if (CollUtil.isEmpty(lineList)) {
output.setPowerGeneration(BigDecimal.ZERO);
output.setPowerConsumption(BigDecimal.ZERO);
output.setAbsorptionRate(BigDecimal.ZERO);
} else {
List<String> lineNameList = lineList.stream()
.map(DynamicQueryBasePowerLineOutput::getLineName)
.collect(Collectors.toList());
input.getBetweenDate();
ThirdDailyAccumulationUpdateMapper analysisMapper = context.getBean(ThirdDailyAccumulationUpdateMapper.class);
ThirdDailyAccumulationUpdateEnt analysisEnt = analysisMapper.selectOne(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")
.lambda()
.in(ThirdDailyAccumulationUpdateEnt::getStationName, lineNameList)
.between(ThirdDailyAccumulationUpdateEnt::getCreateDate, input.getStartTime(), input.getEndTime())
);
output.setPowerGeneration(analysisEnt.getPhotovoltaicPower().setScale(2, RoundingMode.HALF_UP));
output.setPowerConsumption(analysisEnt.getDailyElectricityConsumption().setScale(2, RoundingMode.HALF_UP));
output.setAbsorptionRate(this.getAbsorptionRate(analysisEnt.getInPlaceConsumption(), analysisEnt.getDailyElectricityConsumption()));
}
return XSingleResult.success(output);
}
/**
* 能耗分析--绿电消纳/用电趋势
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult}<{@link DynamicQueryEnergyConsumptionAnalysisViewOutput}>
*/
@Deprecated
@XText("能耗分析--绿电消纳/用电趋势")
@XApiGet
public XListResult<DynamicQueryEnergyConsumptionAnalysisViewOutput> queryEnergyConsumptionAnalysisList(XContext context, QueryEnergyConsumptionAnalysisInput input) {
List<DynamicQueryEnergyConsumptionAnalysisViewOutput> list = new ArrayList<>(16);
List<DynamicQueryBasePowerLineOutput> lineList = this.getBasePowerLineListByOuIdList(context, this.getOrgIdsByPath(context, input.getOuId()));
if (CollUtil.isNotEmpty(lineList)) {
List<String> lineNameList = lineList.stream()
.map(DynamicQueryBasePowerLineOutput::getLineName)
.collect(Collectors.toList());
input.getBetweenDate();
ThirdDailyAccumulationUpdateMapper analysisMapper = context.getBean(ThirdDailyAccumulationUpdateMapper.class);
List<ThirdDailyAccumulationUpdateEnt> analysisEntList = analysisMapper.selectList(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",
"DATE( create_date ) AS create_date")
.lambda()
.in(ThirdDailyAccumulationUpdateEnt::getStationName, lineNameList)
.between(ThirdDailyAccumulationUpdateEnt::getCreateDate, input.getStartTime(), input.getEndTime())
.last("GROUP BY DATE( create_date ) ")
);
if (CollUtil.isNotEmpty(analysisEntList)) {
for (ThirdDailyAccumulationUpdateEnt ent : analysisEntList) {
list.add(DynamicQueryEnergyConsumptionAnalysisViewOutput.builder()
.powerConsumption(ent.getDailyElectricityConsumption())
.powerGeneration(ent.getPhotovoltaicPower())
.dataDate(ent.getCreateDate())
.dateFormat(DateUtil.format(ent.getCreateDate(), "MM-dd"))
.absorptionRate(this.getAbsorptionRate(ent.getInPlaceConsumption(), ent.getDailyElectricityConsumption()))
.build());
}
}
}
return XListResult.success(list);
}
/**
* 能耗分析--用电详情
*
* @param context 上下文
* @param input 输入
* @return {@link XPageResult}<{@link QueryEnergyConsumptionAnalysisViewOutput}>
*/
@Deprecated
@XText("能耗分析--用电详情")
@XApiGet
public XPageResult<QueryEnergyConsumptionAnalysisViewOutput> queryEnergyConsumptionAnalysisView(XContext context, QueryEnergyConsumptionAnalysisPageInput input) {
List<QueryEnergyConsumptionAnalysisViewOutput> outputs = new ArrayList<>(input.getLimit());
List<ThirdDailyAccumulationUpdateEnt> list;
List<DynamicQueryBasePowerLineOutput> lineList = this.getBasePowerLineListByOuIdList(context, this.getOrgIdsByPath(context, input.getOuId()));
if (CollUtil.isNotEmpty(lineList)) {
List<String> lineNameList = lineList.stream()
.map(DynamicQueryBasePowerLineOutput::getLineName)
.collect(Collectors.toList());
PageHelper.startPage(input.getPage(), input.getLimit());
input.getBetweenDate();
ThirdDailyAccumulationUpdateMapper mapper = context.getBean(ThirdDailyAccumulationUpdateMapper.class);
Date startTime = input.getStartTime();
Date endTime = input.getEndTime();
//查本期数据
list = mapper.selectList(this.getQueryWrapper4Page(lineNameList, startTime, endTime));
if (CollUtil.isNotEmpty(list)) {
PageHelper.clearPage();
//查上期数据
switch (input.getDateType()) {
case 1:
endTime = DateUtil.offsetDay(startTime, -1);
startTime = DateUtil.offsetDay(startTime, -7);
break;
case 2:
endTime = DateUtil.offsetDay(startTime, -1);
startTime = DateUtil.offsetDay(startTime, -30);
break;
case 3:
int betweenDay = (int) DateUtil.betweenDay(startTime, endTime, true) + 1;
endTime = DateUtil.offsetDay(startTime, -1);
startTime = DateUtil.offsetDay(startTime, -betweenDay);
break;
default:
throw new XServiceException(BusinessError.DateTypeError);
}
List<ThirdDailyAccumulationUpdateEnt> periodList = mapper.selectList(this.getQueryWrapper4Page(lineNameList, startTime, endTime));
if (CollUtil.isNotEmpty(periodList)) {
for (ThirdDailyAccumulationUpdateEnt ent : list) {
EnergyConsumptionAnalysisEnt period;
ThirdDailyAccumulationUpdateEnt one = CollUtil.findOne(periodList, x -> CharSequenceUtil.equals(ent.getStationName(), x.getStationName()));
if (Objects.isNull(one)) {
period = EnergyConsumptionAnalysisEnt.builder()
.powerConsumption(BigDecimal.ZERO)
.powerGeneration(BigDecimal.ZERO)
.build();
} else {
period = EnergyConsumptionAnalysisEnt.builder()
.powerConsumption(one.getDailyElectricityConsumption())
.powerGeneration(one.getPhotovoltaicPower())
.build();
}
outputs.add(QueryEnergyConsumptionAnalysisViewOutput.builder()
.lineName(ent.getStationName())
.powerGeneration(ent.getPhotovoltaicPower())
.generationCycleRatio(this.getCycleRatio(ent.getPhotovoltaicPower(), period.getPowerGeneration()))
.powerConsumption(ent.getDailyElectricityConsumption())
.consumptionCycleRatio(this.getCycleRatio(ent.getDailyElectricityConsumption(), period.getPowerConsumption()))
.absorptionRate(this.getAbsorptionRate(ent.getInPlaceConsumption(), ent.getDailyElectricityConsumption()))
.build());
}
} else {
for (ThirdDailyAccumulationUpdateEnt ent : list) {
outputs.add(QueryEnergyConsumptionAnalysisViewOutput.builder()
.lineName(ent.getStationName())
.powerGeneration(ent.getPhotovoltaicPower())
.generationCycleRatio(BigDecimal.ZERO)
.powerConsumption(ent.getDailyElectricityConsumption())
.consumptionCycleRatio(BigDecimal.ZERO)
.absorptionRate(this.getAbsorptionRate(ent.getInPlaceConsumption(), ent.getDailyElectricityConsumption()))
.build());
}
}
}
} else {
list = Collections.emptyList();
}
PageInfo<ThirdDailyAccumulationUpdateEnt> pageInfo = new PageInfo<>(list);
return XPageResult.success(outputs, input, pageInfo.getTotal());
}
/*-----------------------------------private-----------------------------------*/
......
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