Commit 1e0ac44b authored by ZWT's avatar ZWT

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

[1.修改井口日用电趋势统计表,增加谷电时段发电时长及谷电占比字段,同时在代码中添加对应字段并修改数据库mapper文件相关业务处理逻辑sql语句;
2.修改线路日用电趋势统计表,增加谷电时段发电时长及谷电占比字段,同时在代码中添加对应字段并修改数据库mapper文件相关业务处理逻辑sql语句;
3.修改井口/线路日用电趋势统计定时任务,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理,同时增加获取每日井口及线路谷电运行时长统计逻辑,完成功能冒烟测试;
4.修改首页总览接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
5.修改首页井场实时监控接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
6.修改首页光伏实时监控接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
7.修改首页井场效果评价接口逻辑,增加环境区分,通过读取配置表来获取当前部署环境,针对不同环境进行不同业务处理;
]
parent b475f770
......@@ -277,36 +277,42 @@ public class HomePageService {
String stationId = input.getStationId();
//查组织下所有井
List<DynamicQueryBaseWellheadOutput> wellList = this.getWellList(context, stationId);
//查组织下所有电站
List<GetBasePhotovoltaicPlantCloudOutput> plantList = this.getPlantList(context, stationId, null);
//查前七日用能分析
DateTime endTime = DateUtil.beginOfDay(DateUtil.date());
DateTime startTime = DateUtil.offsetDay(endTime, -7);
//用电功率
ThirdWellAvgActivePowerViewMapper mapper = context.getBean(ThirdWellAvgActivePowerViewMapper.class);
List<ThirdWellAvgActivePowerView> avgList = mapper.selectPowerConsumptionHour(ThirdWellAvgActivePowerView.builder()
ThirdActivePowerViewMapper dailyUpdateMapper = context.getBean(ThirdActivePowerViewMapper.class);
//当前配置
List<ThirdWellAvgActivePowerView> avgList;
List<ThirdActivePowerView> powerList;
String oilFieldCode = this.getOilFieldCode(context);
//用电功率
avgList = mapper.selectPowerConsumptionHour(ThirdWellAvgActivePowerView.builder()
.wellNumbers(wellList.stream()
.map(DynamicQueryBaseWellheadOutput::getWellNumber)
.collect(Collectors.toList()))
.startTime(startTime)
.endTime(endTime)
.systemSource(oilFieldCode)
.build());
Map<Date, BigDecimal> avgMap;
if (CollUtil.isNotEmpty(avgList)) {
avgMap = avgList.stream()
.collect(Collectors.toMap(ThirdWellAvgActivePowerView::getInputTime, ThirdWellAvgActivePowerView::getAvgActivePower));
} else {
avgMap = Collections.emptyMap();
}
//查组织下所有电站
List<GetBasePhotovoltaicPlantCloudOutput> plantList = this.getPlantList(context, stationId, null);
//发电功率
ThirdActivePowerViewMapper dailyUpdateMapper = context.getBean(ThirdActivePowerViewMapper.class);
List<ThirdActivePowerView> powerList = dailyUpdateMapper.selectGeneratedPowerHour(ThirdActivePowerView.builder()
powerList = dailyUpdateMapper.selectGeneratedPowerHour(ThirdActivePowerView.builder()
.stationNames(plantList.stream()
.map(GetBasePhotovoltaicPlantCloudOutput::getStationName)
.collect(Collectors.toList()))
.startTime(startTime)
.endTime(endTime)
.systemSource(oilFieldCode)
.build());
Map<Date, BigDecimal> avgMap;
if (CollUtil.isNotEmpty(avgList)) {
avgMap = avgList.stream()
.collect(Collectors.toMap(ThirdWellAvgActivePowerView::getInputTime, ThirdWellAvgActivePowerView::getAvgActivePower));
} else {
avgMap = Collections.emptyMap();
}
Map<Date, BigDecimal> powerMap;
if (CollUtil.isNotEmpty(powerList)) {
powerMap = powerList.stream()
......@@ -320,7 +326,7 @@ public class HomePageService {
BigDecimal powerGeneration;
BigDecimal powerConsumption;
for (DateTime dateTime : rangeToList) {
powerConsumption = avgMap.getOrDefault(dateTime, BigDecimal.ZERO);
powerConsumption = avgMap.getOrDefault(dateTime, null);
powerGeneration = powerMap.getOrDefault(dateTime, BigDecimal.ZERO);
outputs.add(GetPowerAnalyseOutput.builder()
.dateFormat(dateTime.toString(BusinessConstant.DATE_FORMAT_ALL))
......
......@@ -88,6 +88,9 @@
</if>
AND create_date BETWEEN #{startTime}
AND #{endTime}
<if test="systemSource != null">
AND system_source = #{systemSource}
</if>
)
GROUP BY station_name,
DATE_FORMAT(create_date, '%Y-%m-%d %H:00:00')) z
......
......@@ -95,7 +95,25 @@
(
SELECT
avg_active_power,
DATE_FORMAT( input_time, '%Y-%m-%d %H:00:00' ) AS input_time,
<choose>
<when test="systemSource = 'SY'">
CASE
WHEN HOUR ( input_time ) / 4 &lt; 1 THEN
DATE_FORMAT( input_time, '%Y-%m-%d 04:00:00' )
WHEN HOUR ( input_time ) / 4 &lt; 2 THEN
DATE_FORMAT( input_time, '%Y-%m-%d 08:00:00' )
WHEN HOUR ( input_time ) / 4 &lt; 3 THEN
DATE_FORMAT( input_time, '%Y-%m-%d 12:00:00' )
WHEN HOUR ( input_time ) / 4 &lt; 4 THEN
DATE_FORMAT( input_time, '%Y-%m-%d 16:00:00' )
WHEN HOUR ( input_time ) / 4 &lt; 5 THEN
DATE_FORMAT( input_time, '%Y-%m-%d 20:00:00' ) ELSE DATE_FORMAT( input_time, '%Y-%m-%d 00:00:00' )
END input_time,
</when>
<otherwise>
DATE_FORMAT( input_time, '%Y-%m-%d %H:00:00' ) AS input_time,
</otherwise>
</choose>
well_number
FROM
third_well_avg_active_power
......@@ -109,6 +127,9 @@
</if>
AND input_time BETWEEN #{startTime}
AND #{endTime}
<if test="systemSource != null">
AND system_source = #{systemSource}
</if>
)) z
GROUP BY
z.well_number,
......
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