Commit 1384c362 authored by ZWT's avatar ZWT

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

[
1.统计分析-井组监控页功能开发,开发井组生产详情接口,完成接口冒烟测试并编写线上接口文档生成接口用例;
2.统计分析-井组监控页功能开发,开发井口实时信息接口,完成接口冒烟测试并编写线上接口文档生成接口用例;
3.统计分析-井组监控页功能开发,开发光伏电站发电详情接口,完成接口冒烟测试并编写线上接口文档生成接口用例;
4.统计分析-能耗分析页功能开发,开发今日/昨日/同期电量统计接口,完成接口冒烟测试并编写线上接口文档生成接口用例;
]
parent 71924d70
...@@ -2,6 +2,7 @@ package pps.cloud.space.service; ...@@ -2,6 +2,7 @@ package pps.cloud.space.service;
import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendInput; import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendInput;
import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendOutput; import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendOutput;
import pps.cloud.space.service.data.line_daily_electricity_trend.GetValleyElectricRateOutput;
import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyAverageInput; import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyAverageInput;
import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendInput; import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendInput;
import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendOutput; import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendOutput;
...@@ -52,6 +53,16 @@ public interface IDailyElectricityTrendCloudService { ...@@ -52,6 +53,16 @@ public interface IDailyElectricityTrendCloudService {
@XText("日用电趋势计算Cloud模块--累积用电") @XText("日用电趋势计算Cloud模块--累积用电")
XSingleResult<GetLineDailyElectricityTrendOutput> querySumDailyElectricity(XContext context, GetLineDailyElectricityTrendInput input); XSingleResult<GetLineDailyElectricityTrendOutput> querySumDailyElectricity(XContext context, GetLineDailyElectricityTrendInput input);
/**
* 查询谷电占比
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult }<{@link GetValleyElectricRateOutput }>
*/
@XText("日用电趋势计算Cloud模块--谷电占比")
XListResult<GetValleyElectricRateOutput> queryValleyElectricRate(XContext context, GetLineDailyElectricityTrendInput input);
/** /**
* 井口分析分页 * 井口分析分页
* *
......
package pps.cloud.space.service.data.line_daily_electricity_trend;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 谷电占比
*
* @author ZWT
* @date 2024/07/26
*/
@Data
public class GetValleyElectricRateOutput {
/**
* 日期标识(1_今日,2_昨日,3_同期)
*/
@XText("日期标识(1_今日,2_昨日,3_同期)")
private Integer dayFlag;
/**
* 谷电占比(%)
*/
@XText("谷电占比(%)")
private BigDecimal valleyElectricRate;
}
...@@ -89,6 +89,12 @@ public class LineDailyElectricityTrendView implements Serializable { ...@@ -89,6 +89,12 @@ public class LineDailyElectricityTrendView implements Serializable {
/*------------------------------ other ------------------------------*/ /*------------------------------ other ------------------------------*/
/**
* 日期标识(1_今日,2_昨日,3_同期)
*/
@TableField(exist = false)
private Integer dayFlag;
/** /**
* 开始时间 * 开始时间
*/ */
......
...@@ -45,4 +45,12 @@ public interface LineDailyElectricityTrendViewMapper { ...@@ -45,4 +45,12 @@ public interface LineDailyElectricityTrendViewMapper {
* @return {@link List }<{@link LineDailyElectricityTrendView }> * @return {@link List }<{@link LineDailyElectricityTrendView }>
*/ */
List<LineDailyElectricityTrendView> selectDailyElectricityTrend(LineDailyElectricityTrendView record); List<LineDailyElectricityTrendView> selectDailyElectricityTrend(LineDailyElectricityTrendView record);
/**
* 查询谷电占比
*
* @param record 记录
* @return {@link List }<{@link LineDailyElectricityTrendView }>
*/
List<LineDailyElectricityTrendView> selectValleyElectricRate(LineDailyElectricityTrendView record);
} }
...@@ -27,6 +27,7 @@ import pps.cloud.prediction.service.data.wellhead_daily_production_situation.Get ...@@ -27,6 +27,7 @@ import pps.cloud.prediction.service.data.wellhead_daily_production_situation.Get
import pps.cloud.space.service.IDailyElectricityTrendCloudService; import pps.cloud.space.service.IDailyElectricityTrendCloudService;
import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendInput; import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendInput;
import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendOutput; import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendOutput;
import pps.cloud.space.service.data.line_daily_electricity_trend.GetValleyElectricRateOutput;
import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyAverageInput; import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyAverageInput;
import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendInput; import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendInput;
import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendOutput; import pps.cloud.space.service.data.well_daily_electricity_trend.GetWellDailyElectricityTrendOutput;
...@@ -285,6 +286,27 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT ...@@ -285,6 +286,27 @@ public class DailyElectricityTrendCloudServiceImpl implements IDailyElectricityT
return XSingleResult.success(XCopyUtils.copyNewObject(ent, GetLineDailyElectricityTrendOutput.class)); return XSingleResult.success(XCopyUtils.copyNewObject(ent, GetLineDailyElectricityTrendOutput.class));
} }
/**
* 查询谷电占比
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult }<{@link GetValleyElectricRateOutput }>
*/
@Override
public XListResult<GetValleyElectricRateOutput> queryValleyElectricRate(XContext context, GetLineDailyElectricityTrendInput input) {
Date today = input.getStartTime();
LineDailyElectricityTrendViewMapper mapper = context.getBean(LineDailyElectricityTrendViewMapper.class);
List<LineDailyElectricityTrendView> list = mapper.selectValleyElectricRate(LineDailyElectricityTrendView.builder()
.createDate(today)
.startTime(DateUtil.offsetDay(today, -1))
.endTime(DateUtil.offset(today, DateField.YEAR, -1))
.stationNameList(input.getStationNameList())
.systemSource(input.getSystemSource())
.build());
return XListResult.success(XCopyUtils.copyNewList(list, GetValleyElectricRateOutput.class));
}
/** /**
* 井口分析分页 * 井口分析分页
* *
......
...@@ -103,4 +103,59 @@ ...@@ -103,4 +103,59 @@
ORDER BY ORDER BY
create_date create_date
</select> </select>
<resultMap id="ExtResultMap" type="pps.core.space.entity.LineDailyElectricityTrendView" extends="BaseResultMap">
<result column="day_flag" property="dayFlag" jdbcType="INTEGER"/>
</resultMap>
<select id="selectValleyElectricRate" parameterType="pps.core.space.entity.LineDailyElectricityTrendView"
resultMap="ExtResultMap">
SELECT
z.day_flag,
IFNULL( ROUND( z.valley_electric_open_hour / z.sum_run_duration * 100, 2 ), 0 ) AS valley_electric_rate
FROM
(
SELECT
IFNULL( SUM( valley_electric_open_hour ), 0 ) AS valley_electric_open_hour,
IFNULL( SUM( sum_run_duration ), 0 ) AS sum_run_duration,
1 AS day_flag
FROM
line_daily_electricity_trend
WHERE
DATE ( create_date ) = #{createDate}
AND system_source = #{systemSource}
AND station_name IN
<foreach collection="stationNameList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
UNION ALL
SELECT
IFNULL( SUM( valley_electric_open_hour ), 0 ) AS valley_electric_open_hour,
IFNULL( SUM( sum_run_duration ), 0 ) AS sum_run_duration,
2 AS day_flag
FROM
line_daily_electricity_trend
WHERE
DATE ( create_date ) = #{startTime}
AND system_source = #{systemSource}
AND station_name IN
<foreach collection="stationNameList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
UNION ALL
SELECT
IFNULL( SUM( valley_electric_open_hour ), 0 ) AS valley_electric_open_hour,
IFNULL( SUM( sum_run_duration ), 0 ) AS sum_run_duration,
3 AS day_flag
FROM
line_daily_electricity_trend
WHERE
DATE ( create_date ) = #{endTime}
AND system_source = #{systemSource}
AND station_name IN
<foreach collection="stationNameList" open="(" close=")" separator="," item="item">
#{item}
</foreach>
) z
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -24,6 +24,7 @@ import pps.cloud.space.service.ISpaceInstitutionDetailCloudService; ...@@ -24,6 +24,7 @@ import pps.cloud.space.service.ISpaceInstitutionDetailCloudService;
import pps.cloud.space.service.ISpaceOptimizeShortCloudService; import pps.cloud.space.service.ISpaceOptimizeShortCloudService;
import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendInput; import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendInput;
import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendOutput; import pps.cloud.space.service.data.line_daily_electricity_trend.GetLineDailyElectricityTrendOutput;
import pps.cloud.space.service.data.line_daily_electricity_trend.GetValleyElectricRateOutput;
import pps.cloud.space.service.data.space_institution_wellhead.GetSpaceInstitutionWellheadInput; import pps.cloud.space.service.data.space_institution_wellhead.GetSpaceInstitutionWellheadInput;
import pps.cloud.space.service.data.space_institution_wellhead.GetSpaceInstitutionWellheadOutput; import pps.cloud.space.service.data.space_institution_wellhead.GetSpaceInstitutionWellheadOutput;
import pps.cloud.space.service.data.space_optimize_short_wellhead.*; import pps.cloud.space.service.data.space_optimize_short_wellhead.*;
...@@ -92,18 +93,36 @@ public class EnergyConsumptionAnalysisService { ...@@ -92,18 +93,36 @@ public class EnergyConsumptionAnalysisService {
List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, plantInput); List<DynamicQueryBasePowerLinePlantViewOutput> plantList = this.getPowerLinePlantViewList(context, plantInput);
//电站名称列表有值再查 //电站名称列表有值再查
if (CollUtil.isNotEmpty(plantList)) { if (CollUtil.isNotEmpty(plantList)) {
DateTime today = DateUtil.date(); DateTime today = DateUtil.beginOfDay(DateUtil.date());
String oilFieldCode = ServiceUtil.getOilFieldCode(context);
List<String> collect = plantList.stream()
.map(DynamicQueryBasePowerLinePlantViewOutput::getStationName)
.collect(Collectors.toList());
ThirdDailyAccumulationUpdateViewMapper mapper = context.getBean(ThirdDailyAccumulationUpdateViewMapper.class); ThirdDailyAccumulationUpdateViewMapper mapper = context.getBean(ThirdDailyAccumulationUpdateViewMapper.class);
List<ThirdDailyAccumulationUpdateView> viewList = mapper.selectPowerStatisticsByDate(ThirdDailyAccumulationUpdateView.builder() List<ThirdDailyAccumulationUpdateView> viewList = mapper.selectPowerStatisticsByDate(ThirdDailyAccumulationUpdateView.builder()
.today(DateUtil.beginOfDay(today)) .today(today)
.yesterday(DateUtil.beginOfDay(DateUtil.yesterday())) .yesterday(DateUtil.beginOfDay(DateUtil.yesterday()))
.lastYear(DateUtil.beginOfDay(DateUtil.offset(today, DateField.YEAR, -1))) .lastYear(DateUtil.offset(today, DateField.YEAR, -1))
.stationNameList(plantList.stream() .stationNameList(collect)
.map(DynamicQueryBasePowerLinePlantViewOutput::getStationName) .systemSource(oilFieldCode)
.collect(Collectors.toList()))
.systemSource(ServiceUtil.getOilFieldCode(context))
.build()); .build());
outputs = XCopyUtils.copyNewList(viewList, PowerStatisticsOutput.class); outputs = XCopyUtils.copyNewList(viewList, PowerStatisticsOutput.class);
//谷电占比
if (BusinessConstant.ENV_SY.equals(oilFieldCode)) {
IDailyElectricityTrendCloudService service = context.getBean(IDailyElectricityTrendCloudService.class);
XListResult<GetValleyElectricRateOutput> result = service.queryValleyElectricRate(context, GetLineDailyElectricityTrendInput.builder()
.systemSource(oilFieldCode)
.stationNameList(collect)
.startTime(today)
.build());
result.throwIfFail();
List<GetValleyElectricRateOutput> valleyElectricRateList = result.getResult();
Map<Integer, BigDecimal> decimalMap = valleyElectricRateList.stream()
.collect(Collectors.toMap(GetValleyElectricRateOutput::getDayFlag, GetValleyElectricRateOutput::getValleyElectricRate));
for (PowerStatisticsOutput output : outputs) {
output.setValleyElectricRate(decimalMap.getOrDefault(output.getDayFlag(), BigDecimal.ZERO));
}
}
} else { } else {
outputs = Collections.emptyList(); outputs = Collections.emptyList();
} }
......
...@@ -43,4 +43,10 @@ public class PowerStatisticsOutput { ...@@ -43,4 +43,10 @@ public class PowerStatisticsOutput {
*/ */
@XText("绿电占比(%)") @XText("绿电占比(%)")
private BigDecimal greenElectricityRate; private BigDecimal greenElectricityRate;
/**
* 谷电占比(%)
*/
@XText("谷电占比(%)")
private BigDecimal valleyElectricRate;
} }
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