Commit efff6f32 authored by tianchao's avatar tianchao

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

parent def77ba8
...@@ -14,6 +14,7 @@ import xstartup.base.util.XStringUtils; ...@@ -14,6 +14,7 @@ import xstartup.base.util.XStringUtils;
import xstartup.data.XListResult; import xstartup.data.XListResult;
import xstartup.feature.api.annotation.XApiGet; import xstartup.feature.api.annotation.XApiGet;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
...@@ -29,6 +30,7 @@ public class PlantPredictedPowerMidTermService { ...@@ -29,6 +30,7 @@ public class PlantPredictedPowerMidTermService {
QueryWrapper<PlantPredictedPowerMidTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 15); QueryWrapper<PlantPredictedPowerMidTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 15);
List<PlantPredictedPowerMidTermEnt> list = mapper.selectList(queryWrapper); List<PlantPredictedPowerMidTermEnt> list = mapper.selectList(queryWrapper);
List<GetPlantPredictedPowerMidTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerMidTermOutput.class); List<GetPlantPredictedPowerMidTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerMidTermOutput.class);
ThirdActivePowerServiceHelper.getActivePower(context, outputs ,input.getPlantId());
return XListResult.success(outputs); return XListResult.success(outputs);
} }
...@@ -40,6 +42,7 @@ public class PlantPredictedPowerMidTermService { ...@@ -40,6 +42,7 @@ public class PlantPredictedPowerMidTermService {
QueryWrapper<PlantPredictedPowerMidTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 10); QueryWrapper<PlantPredictedPowerMidTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 10);
List<PlantPredictedPowerMidTermEnt> list = mapper.selectList(queryWrapper); List<PlantPredictedPowerMidTermEnt> list = mapper.selectList(queryWrapper);
List<GetPlantPredictedPowerMidTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerMidTermOutput.class); List<GetPlantPredictedPowerMidTermOutput> outputs = XCopyUtils.copyNewList(list, GetPlantPredictedPowerMidTermOutput.class);
ThirdActivePowerServiceHelper.getActivePower(context, outputs ,input.getPlantId());
return XListResult.success(outputs); return XListResult.success(outputs);
} }
......
...@@ -3,6 +3,7 @@ package pps.core.prediction.service; ...@@ -3,6 +3,7 @@ package pps.core.prediction.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.core.prediction.entity.PlantPredictedPowerShortTermEnt; import pps.core.prediction.entity.PlantPredictedPowerShortTermEnt;
import pps.core.prediction.mapper.PlantPredictedPowerShortTermMapper; 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.GetPlantPredictedPowerShortTermInput;
import pps.core.prediction.service.data.plant_predicted_power_short_term.GetPlantPredictedPowerShortTermOutput; import pps.core.prediction.service.data.plant_predicted_power_short_term.GetPlantPredictedPowerShortTermOutput;
import xstartup.annotation.XService; import xstartup.annotation.XService;
...@@ -24,22 +25,24 @@ public class PlantPredictedPowerShortTermService { ...@@ -24,22 +25,24 @@ public class PlantPredictedPowerShortTermService {
@XApiGet @XApiGet
@XText("根据电站预测3天的预测数据") @XText("根据电站预测3天的预测数据")
public XListResult<GetPlantPredictedPowerShortTermOutput> getThreePlantPredictedPowerShortTermList(XContext context, GetPlantPredictedPowerShortTermInput input) { public XListResult<GetPlantPredictedPowerMidTermOutput> getThreePlantPredictedPowerShortTermList(XContext context, GetPlantPredictedPowerShortTermInput input) {
PlantPredictedPowerShortTermMapper mapper = context.getBean(PlantPredictedPowerShortTermMapper.class); PlantPredictedPowerShortTermMapper mapper = context.getBean(PlantPredictedPowerShortTermMapper.class);
QueryWrapper<PlantPredictedPowerShortTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 3); QueryWrapper<PlantPredictedPowerShortTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 3);
List<PlantPredictedPowerShortTermEnt> list = mapper.selectList(queryWrapper); 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); return XListResult.success(outputs);
} }
@XApiGet @XApiGet
@XText("根据电站预测1天的预测数据") @XText("根据电站预测1天的预测数据")
public XListResult<GetPlantPredictedPowerShortTermOutput> getOnePlantPredictedPowerShortTermList(XContext context, GetPlantPredictedPowerShortTermInput input) { public XListResult<GetPlantPredictedPowerMidTermOutput> getOnePlantPredictedPowerShortTermList(XContext context, GetPlantPredictedPowerShortTermInput input) {
PlantPredictedPowerShortTermMapper mapper = context.getBean(PlantPredictedPowerShortTermMapper.class); PlantPredictedPowerShortTermMapper mapper = context.getBean(PlantPredictedPowerShortTermMapper.class);
QueryWrapper<PlantPredictedPowerShortTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 1); QueryWrapper<PlantPredictedPowerShortTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), input.getStartTime(), 1);
List<PlantPredictedPowerShortTermEnt> list = mapper.selectList(queryWrapper); 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); return XListResult.success(outputs);
} }
......
...@@ -3,6 +3,7 @@ package pps.core.prediction.service; ...@@ -3,6 +3,7 @@ package pps.core.prediction.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.core.prediction.entity.PlantPredictedPowerUltraTermEnt; import pps.core.prediction.entity.PlantPredictedPowerUltraTermEnt;
import pps.core.prediction.mapper.PlantPredictedPowerUltraTermMapper; 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.GetPlantPredictedPowerUltraTermInput;
import pps.core.prediction.service.data.plant_predicted_power_ultra_term.GetPlantPredictedPowerUltraTermOutput; import pps.core.prediction.service.data.plant_predicted_power_ultra_term.GetPlantPredictedPowerUltraTermOutput;
import xstartup.annotation.XService; import xstartup.annotation.XService;
...@@ -24,7 +25,7 @@ public class PlantPredictedPowerUltraTermService { ...@@ -24,7 +25,7 @@ public class PlantPredictedPowerUltraTermService {
@XApiGet @XApiGet
@XText("根据电站预测功率4小时数据") @XText("根据电站预测功率4小时数据")
public XListResult<GetPlantPredictedPowerUltraTermOutput> getPlantPredictedPowerUltraTermList(XContext context, GetPlantPredictedPowerUltraTermInput input) { public XListResult<GetPlantPredictedPowerMidTermOutput> getPlantPredictedPowerUltraTermList(XContext context, GetPlantPredictedPowerUltraTermInput input) {
//4小时数据,往前推1天,往后推4小时 //4小时数据,往前推1天,往后推4小时
PlantPredictedPowerUltraTermMapper mapper = context.getBean(PlantPredictedPowerUltraTermMapper.class); PlantPredictedPowerUltraTermMapper mapper = context.getBean(PlantPredictedPowerUltraTermMapper.class);
String startTime = ""; String startTime = "";
...@@ -39,7 +40,8 @@ public class PlantPredictedPowerUltraTermService { ...@@ -39,7 +40,8 @@ public class PlantPredictedPowerUltraTermService {
} }
QueryWrapper<PlantPredictedPowerUltraTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), startTime, endTime); QueryWrapper<PlantPredictedPowerUltraTermEnt> queryWrapper = setQueryWrapper(input.getPlantId(), startTime, endTime);
List<PlantPredictedPowerUltraTermEnt> list = mapper.selectList(queryWrapper); 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); 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; ...@@ -4,6 +4,7 @@ import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* 第三方有功功率 * 第三方有功功率
...@@ -17,6 +18,9 @@ public class GetThirdActivePowerOutput { ...@@ -17,6 +18,9 @@ public class GetThirdActivePowerOutput {
@XText("井组名称(线路/光伏电站)") @XText("井组名称(线路/光伏电站)")
private String stationName; private String stationName;
@XText("创建时间")
private Date createDate;
@XText("光伏有功功率(KW)") @XText("光伏有功功率(KW)")
private BigDecimal photovoltaicPower; 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