Commit 4078e99b authored by ZWT's avatar ZWT

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

1.修改第三方日累计数据推送表表结构,增加日累计储能放电量字段,同时修改代码对应实体及mapper文件,修改相关接口增加储能日累计放电量接收逻辑;
2.修改首页井场收益分析模块接口,修改获取储能累计放电量逻辑;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent f46282b1
......@@ -4,9 +4,11 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateField;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import pps.cloud.prediction.service.IThirdActivePowerCloudService;
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;
import pps.cloud.prediction.service.data.third_daily_accumulation_update.GetThirdDailyAccumulationUpdateInput;
import pps.cloud.prediction.service.data.third_daily_accumulation_update.GetThirdDailyAccumulationUpdateOutput;
import pps.cloud.space.service.IDailyElectricityTrendCloudService;
import pps.core.common.constant.BusinessConstant;
import pps.core.space.entity.SpaceOptimizeShortDurationView;
......@@ -16,6 +18,7 @@ import xstartup.base.XContext;
import xstartup.data.XListResult;
import xstartup.data.XServiceResult;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
......@@ -50,7 +53,7 @@ public class DailyElectricityTrendCloudServiceImpl extends SpaceOptimizeBaseServ
//查昨日间开优化结果
Map<String, List<SpaceOptimizeShortDurationView>> lineMap = this.getOptimizationResult(context, yesterday);
//查昨日日累计发电
Map<String, BigDecimal> dailyUpdatePowerMap = this.getDailyUpdatePowerMap(context, yesterday);
//遍历大的
for (String stationName : powerMap.keySet()) {
......@@ -62,27 +65,28 @@ public class DailyElectricityTrendCloudServiceImpl extends SpaceOptimizeBaseServ
/*------------------------------------- private -------------------------------------*/
/**
* 获取优化结果
* 查询每日井场日累计数据
*
* @param context 上下文
* @param optimizeDate 优化日期
* @return {@link Map }<{@link String }, {@link List }<{@link SpaceOptimizeShortDurationView }>>
* @param context 上下文
* @param createDate 创建日期
* @return {@link Map }<{@link String }, {@link BigDecimal }>
*/
private Map<String, List<SpaceOptimizeShortDurationView>> getOptimizationResult(XContext context, Date optimizeDate) {
SpaceOptimizeShortDurationViewMapper shortMapper = context.getBean(SpaceOptimizeShortDurationViewMapper.class);
List<SpaceOptimizeShortDurationView> durationList = shortMapper.selectOptimizationResultList(SpaceOptimizeShortDurationView.builder()
.optimizeDate(optimizeDate)
private Map<String, BigDecimal> getDailyUpdatePowerMap(XContext context, Date createDate) {
IThirdPowerCloudService service = context.getBean(IThirdPowerCloudService.class);
XListResult<GetThirdDailyAccumulationUpdateOutput> result = service.queryDailyUpdatePower(context, GetThirdDailyAccumulationUpdateInput.builder()
.createDate(createDate)
.build());
Map<String, List<SpaceOptimizeShortDurationView>> lineMap;
if (CollUtil.isEmpty(durationList)) {
lineMap = Collections.emptyMap();
result.throwIfFail();
Map<String, BigDecimal> powerMap;
List<GetThirdDailyAccumulationUpdateOutput> powerList = result.getResult();
if (CollUtil.isEmpty(powerList)) {
powerMap = Collections.emptyMap();
} else {
lineMap = durationList.stream()
.collect(Collectors.groupingBy(SpaceOptimizeShortDurationView::getLineName));
powerMap = powerList.stream()
.collect(Collectors.toMap(GetThirdDailyAccumulationUpdateOutput::getStationName, GetThirdDailyAccumulationUpdateOutput::getPhotovoltaicPower));
}
return lineMap;
return powerMap;
}
/**
......@@ -93,7 +97,7 @@ public class DailyElectricityTrendCloudServiceImpl extends SpaceOptimizeBaseServ
* @return {@link Map }<{@link String }, {@link List }<{@link GetThirdActivePowerOutput }>>
*/
private Map<String, List<GetThirdActivePowerOutput>> getAvgPhotovoltaicPower(XContext context, Date createDate) {
IThirdActivePowerCloudService service = context.getBean(IThirdActivePowerCloudService.class);
IThirdPowerCloudService service = context.getBean(IThirdPowerCloudService.class);
XListResult<GetThirdActivePowerOutput> result = service.queryAvgPhotovoltaicPower(context, GetThirdActivePowerInput.builder()
.createDate(createDate)
.build());
......@@ -108,4 +112,26 @@ public class DailyElectricityTrendCloudServiceImpl extends SpaceOptimizeBaseServ
}
return powerMap;
}
/**
* 获取优化结果
*
* @param context 上下文
* @param optimizeDate 优化日期
* @return {@link Map }<{@link String }, {@link List }<{@link SpaceOptimizeShortDurationView }>>
*/
private Map<String, List<SpaceOptimizeShortDurationView>> getOptimizationResult(XContext context, Date optimizeDate) {
SpaceOptimizeShortDurationViewMapper shortMapper = context.getBean(SpaceOptimizeShortDurationViewMapper.class);
List<SpaceOptimizeShortDurationView> durationList = shortMapper.selectOptimizationResultList(SpaceOptimizeShortDurationView.builder()
.optimizeDate(optimizeDate)
.build());
Map<String, List<SpaceOptimizeShortDurationView>> lineMap;
if (CollUtil.isEmpty(durationList)) {
lineMap = Collections.emptyMap();
} else {
lineMap = durationList.stream()
.collect(Collectors.groupingBy(SpaceOptimizeShortDurationView::getLineName));
}
return lineMap;
}
}
......@@ -2,6 +2,8 @@ package pps.cloud.prediction.service;
import pps.cloud.prediction.service.data.third_active_power.GetThirdActivePowerInput;
import pps.cloud.prediction.service.data.third_active_power.GetThirdActivePowerOutput;
import pps.cloud.prediction.service.data.third_daily_accumulation_update.GetThirdDailyAccumulationUpdateInput;
import pps.cloud.prediction.service.data.third_daily_accumulation_update.GetThirdDailyAccumulationUpdateOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
......@@ -15,7 +17,7 @@ import xstartup.data.XListResult;
*/
@XService
@XText("第三方有功功率Cloud模块")
public interface IThirdActivePowerCloudService {
public interface IThirdPowerCloudService {
/**
* 获得15分钟平均功率
......@@ -26,4 +28,13 @@ public interface IThirdActivePowerCloudService {
*/
@XText("第三方有功功率Cloud模块--获得15分钟平均功率")
XListResult<GetThirdActivePowerOutput> queryAvgPhotovoltaicPower(XContext context, GetThirdActivePowerInput input);
/**
* 查询每日井场日累计数据
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult }<{@link GetThirdDailyAccumulationUpdateOutput }>
*/
XListResult<GetThirdDailyAccumulationUpdateOutput> queryDailyUpdatePower(XContext context, GetThirdDailyAccumulationUpdateInput input);
}
package pps.cloud.prediction.service.data.third_daily_accumulation_update;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText;
import java.util.Date;
/**
* 第三方井场日累计数据
*
* @author ZWT
* @date 2024/05/23 16:25
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetThirdDailyAccumulationUpdateInput {
@XText("创建时间")
private Date createDate;
}
package pps.cloud.prediction.service.data.third_daily_accumulation_update;
import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
/**
* 第三方井场日累计数据
*
* @author ZWT
* @date 2024/05/23 16:25
*/
@Data
public class GetThirdDailyAccumulationUpdateOutput {
@XText("井组名称(线路/光伏电站)")
private String stationName;
@XText("光伏日累计发电(KWh)")
private BigDecimal photovoltaicPower;
}
package pps.core.prediction.service;
import pps.cloud.prediction.service.IThirdActivePowerCloudService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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;
import pps.cloud.prediction.service.data.third_daily_accumulation_update.GetThirdDailyAccumulationUpdateInput;
import pps.cloud.prediction.service.data.third_daily_accumulation_update.GetThirdDailyAccumulationUpdateOutput;
import pps.core.prediction.entity.ThirdActivePowerView;
import pps.core.prediction.entity.ThirdDailyAccumulationUpdateEnt;
import pps.core.prediction.mapper.ThirdActivePowerViewMapper;
import pps.core.prediction.mapper.ThirdDailyAccumulationUpdateMapper;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
......@@ -21,7 +26,7 @@ import java.util.List;
*/
@XText("第三方有功功率Cloud模块")
@XService
public class ThirdActivePowerCloudServiceImpl implements IThirdActivePowerCloudService {
public class ThirdPowerCloudServiceImpl implements IThirdPowerCloudService {
/**
* 获得15分钟平均功率
......@@ -38,4 +43,24 @@ public class ThirdActivePowerCloudServiceImpl implements IThirdActivePowerCloudS
.build());
return XListResult.success(XCopyUtils.copyNewList(list, GetThirdActivePowerOutput.class));
}
}
/**
* 查询每日井场日累计数据
*
* @param context 上下文
* @param input 输入
* @return {@link XListResult }<{@link GetThirdDailyAccumulationUpdateOutput }>
*/
@Override
public XListResult<GetThirdDailyAccumulationUpdateOutput> queryDailyUpdatePower(XContext context, GetThirdDailyAccumulationUpdateInput input) {
ThirdDailyAccumulationUpdateMapper mapper = context.getBean(ThirdDailyAccumulationUpdateMapper.class);
List<ThirdDailyAccumulationUpdateEnt> list = mapper.selectList(new QueryWrapper<ThirdDailyAccumulationUpdateEnt>()
.select("station_name", "IFNULL( AVG( photovoltaic_power ), 0 ) AS photovoltaic_power")
.lambda()
.gt(ThirdDailyAccumulationUpdateEnt::getPhotovoltaicPower, 0)
.apply("DATE( create_date ) = {0}", input.getCreateDate())
.groupBy(ThirdDailyAccumulationUpdateEnt::getStationName)
);
return XListResult.success(XCopyUtils.copyNewList(list, GetThirdDailyAccumulationUpdateOutput.class));
}
}
\ 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