Commit efff6f32 authored by tianchao's avatar tianchao

1光伏预测调整一天内的实际功率,从第三方表中获取

parent def77ba8
......@@ -14,6 +14,7 @@ import xstartup.base.util.XStringUtils;
import xstartup.data.XListResult;
import xstartup.feature.api.annotation.XApiGet;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
......@@ -29,6 +30,7 @@ public class PlantPredictedPowerMidTermService {
QueryWrapper<PlantPredictedPowerMidTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 15);
List<PlantPredictedPowerMidTermEnt> list = mapper.selectList(queryWrapper);
List<GetPlantPredictedPowerMidTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerMidTermOutput.class);
ThirdActivePowerServiceHelper.getActivePower(context, outputs ,input.getPlantId());
return XListResult.success(outputs);
}
......@@ -40,6 +42,7 @@ public class PlantPredictedPowerMidTermService {
QueryWrapper<PlantPredictedPowerMidTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 10);
List<PlantPredictedPowerMidTermEnt> list = mapper.selectList(queryWrapper);
List<GetPlantPredictedPowerMidTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerMidTermOutput.class);
ThirdActivePowerServiceHelper.getActivePower(context, outputs ,input.getPlantId());
return XListResult.success(outputs);
}
......
......@@ -3,6 +3,7 @@ package pps.core.prediction.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.core.prediction.entity.PlantPredictedPowerShortTermEnt;
import pps.core.prediction.mapper.PlantPredictedPowerShortTermMapper;
import pps.core.prediction.service.data.plant_predicted_power_mid_term.GetPlantPredictedPowerMidTermOutput;
import pps.core.prediction.service.data.plant_predicted_power_short_term.GetPlantPredictedPowerShortTermInput;
import pps.core.prediction.service.data.plant_predicted_power_short_term.GetPlantPredictedPowerShortTermOutput;
import xstartup.annotation.XService;
......@@ -24,22 +25,24 @@ public class PlantPredictedPowerShortTermService {
@XApiGet
@XText("根据电站预测3天的预测数据")
public XListResult<GetPlantPredictedPowerShortTermOutput> getThreePlantPredictedPowerShortTermList(XContext context, GetPlantPredictedPowerShortTermInput input) {
public XListResult<GetPlantPredictedPowerMidTermOutput> getThreePlantPredictedPowerShortTermList(XContext context, GetPlantPredictedPowerShortTermInput input) {
PlantPredictedPowerShortTermMapper mapper = context.getBean(PlantPredictedPowerShortTermMapper.class);
QueryWrapper<PlantPredictedPowerShortTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 3);
List<PlantPredictedPowerShortTermEnt> list = mapper.selectList(queryWrapper);
List<GetPlantPredictedPowerShortTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerShortTermOutput.class);
List<GetPlantPredictedPowerMidTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerMidTermOutput.class);
ThirdActivePowerServiceHelper.getActivePower(context, outputs ,input.getPlantId());
return XListResult.success(outputs);
}
@XApiGet
@XText("根据电站预测1天的预测数据")
public XListResult<GetPlantPredictedPowerShortTermOutput> getOnePlantPredictedPowerShortTermList(XContext context, GetPlantPredictedPowerShortTermInput input) {
public XListResult<GetPlantPredictedPowerMidTermOutput> getOnePlantPredictedPowerShortTermList(XContext context, GetPlantPredictedPowerShortTermInput input) {
PlantPredictedPowerShortTermMapper mapper = context.getBean(PlantPredictedPowerShortTermMapper.class);
QueryWrapper<PlantPredictedPowerShortTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 1);
List<PlantPredictedPowerShortTermEnt> list = mapper.selectList(queryWrapper);
List<GetPlantPredictedPowerShortTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerShortTermOutput.class);
List<GetPlantPredictedPowerMidTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerMidTermOutput.class);
ThirdActivePowerServiceHelper.getActivePower(context, outputs ,input.getPlantId());
return XListResult.success(outputs);
}
......
......@@ -3,6 +3,7 @@ package pps.core.prediction.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.core.prediction.entity.PlantPredictedPowerUltraTermEnt;
import pps.core.prediction.mapper.PlantPredictedPowerUltraTermMapper;
import pps.core.prediction.service.data.plant_predicted_power_mid_term.GetPlantPredictedPowerMidTermOutput;
import pps.core.prediction.service.data.plant_predicted_power_ultra_term.GetPlantPredictedPowerUltraTermInput;
import pps.core.prediction.service.data.plant_predicted_power_ultra_term.GetPlantPredictedPowerUltraTermOutput;
import xstartup.annotation.XService;
......@@ -24,7 +25,7 @@ public class PlantPredictedPowerUltraTermService {
@XApiGet
@XText("根据电站预测功率4小时数据")
public XListResult<GetPlantPredictedPowerUltraTermOutput> getPlantPredictedPowerUltraTermList(XContext context, GetPlantPredictedPowerUltraTermInput input) {
public XListResult<GetPlantPredictedPowerMidTermOutput> getPlantPredictedPowerUltraTermList(XContext context, GetPlantPredictedPowerUltraTermInput input) {
//4小时数据,往前推1天,往后推4小时
PlantPredictedPowerUltraTermMapper mapper = context.getBean(PlantPredictedPowerUltraTermMapper.class);
String startTime = "";
......@@ -39,7 +40,8 @@ public class PlantPredictedPowerUltraTermService {
}
QueryWrapper<PlantPredictedPowerUltraTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), startTime, endTime);
List<PlantPredictedPowerUltraTermEnt> list = mapper.selectList(queryWrapper);
List<GetPlantPredictedPowerUltraTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerUltraTermOutput.class);
List<GetPlantPredictedPowerMidTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerMidTermOutput.class);
ThirdActivePowerServiceHelper.getActivePower(context, outputs ,input.getPlantId());
return XListResult.success(outputs);
}
......
package pps.core.prediction.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import pps.core.prediction.entity.ThirdActivePowerEnt;
import pps.core.prediction.mapper.ThirdActivePowerMapper;
import pps.core.prediction.service.data.plant_predicted_power_mid_term.GetPlantPredictedPowerMidTermOutput;
import xstartup.base.XContext;
import xstartup.base.util.XDateUtils;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
public class ThirdActivePowerServiceHelper {
public static void getActivePower(XContext context, List<GetPlantPredictedPowerMidTermOutput> outputs , String plantId){
ThirdActivePowerMapper mapper = context.getBean(ThirdActivePowerMapper.class);
List<ThirdActivePowerEnt> powerList = mapper.selectList(new LambdaQueryWrapper<ThirdActivePowerEnt>()
.eq(ThirdActivePowerEnt::getStationId , plantId)
.ge(ThirdActivePowerEnt::getCreateDate , XDateUtils.addDays(new Date() , -2)));
if(powerList.size() > 0){
outputs.forEach(item->{
if(item.getPower() == null && XDateUtils.compare(XDateUtils.parse(item.getDataDate()) , new Date()) < 0){
if(item.getDataDate().equals("2024-03-28 14:30:00"))
System.out.println(item.getDataDate());
Date targetDate = XDateUtils.parse(item.getDataDate());
Date closeDate = powerList.get(0).getCreateDate();
BigDecimal photovoltaicPower = powerList.get(0).getPhotovoltaicPower();
for(ThirdActivePowerEnt power : powerList){
if(Math.abs(power.getCreateDate().getTime() -targetDate.getTime())
< Math.abs(closeDate.getTime() -targetDate.getTime())){
closeDate = power.getCreateDate();
photovoltaicPower = power.getPhotovoltaicPower();
}
}
item.setPower(photovoltaicPower);
}
});
}
}
}
......@@ -4,6 +4,7 @@ import lombok.Data;
import xstartup.annotation.XText;
import java.math.BigDecimal;
import java.util.Date;
/**
* 第三方有功功率
......@@ -17,6 +18,9 @@ public class GetThirdActivePowerOutput {
@XText("井组名称(线路/光伏电站)")
private String stationName;
@XText("创建时间")
private Date createDate;
@XText("光伏有功功率(KW)")
private BigDecimal photovoltaicPower;
......
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