Commit 05b7d202 authored by ZWT's avatar ZWT

Merge remote-tracking branch 'origin/master'

parents 45be9b6d d48500b6
......@@ -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;
......@@ -68,4 +69,41 @@ public class PlantPredictedPowerDataService {
});
return XListResult.success(outputs);
}
@XApiGet
@XText("根据电站预测30天的预测数据")
public XListResult<GetPlantPredictedPowerDataOutput> getThirtyPlantPredictedPowerData(XContext context, GetPlantPredictedPowerDataInput input){
//今年(7天总值)/去年(7天的总值) 同比值
PlantPredictedPowerDataMapper mapper = context.getBean(PlantPredictedPowerDataMapper.class);
Date date = new Date();
QueryWrapper<PlantPredictedPowerDataEnt> queryWrapper = new QueryWrapper<>();
queryWrapper.select(" IFNULL(avg(power ) , 0 ) power");
queryWrapper.lambda().eq(PlantPredictedPowerDataEnt::getPlantId ,input.getPlantId());
queryWrapper.lambda().ge(PlantPredictedPowerDataEnt::getDataDate , date);
queryWrapper.lambda().le(PlantPredictedPowerDataEnt::getDataDate , XDateUtils.addDays(date , 7));
PlantPredictedPowerDataEnt currentData = mapper.selectOne(queryWrapper);
queryWrapper.clear();
queryWrapper.select(" IFNULL(avg(power ) , 0 ) power");
queryWrapper.lambda().eq(PlantPredictedPowerDataEnt::getPlantId ,input.getPlantId());
queryWrapper.lambda().ge(PlantPredictedPowerDataEnt::getDataDate , XDateUtils.addDays(date , -365));
queryWrapper.lambda().le(PlantPredictedPowerDataEnt::getDataDate , XDateUtils.addDays(date , -358));
PlantPredictedPowerDataEnt lastData = mapper.selectOne(queryWrapper);
BigDecimal compare = new BigDecimal(1);
if(lastData.getPower().compareTo(BigDecimal.ZERO) > 0)
compare = currentData.getPower().divide(lastData.getPower() , 6 , BigDecimal.ROUND_HALF_UP );
queryWrapper.clear();
queryWrapper.select(" data_date , power ");
queryWrapper.lambda().eq(PlantPredictedPowerDataEnt::getPlantId ,input.getPlantId());
queryWrapper.lambda().ge(PlantPredictedPowerDataEnt::getDataDate , XDateUtils.addDays(date , -365));
queryWrapper.lambda().le(PlantPredictedPowerDataEnt::getDataDate , XDateUtils.addDays(date , -335));
List<PlantPredictedPowerDataEnt> lastList = mapper.selectList(queryWrapper);
//获取去年30天的数据,预测今年30天的数据
List<GetPlantPredictedPowerDataOutput> outputs = XCopyUtils.copyNewList(lastList , GetPlantPredictedPowerDataOutput.class);
for(GetPlantPredictedPowerDataOutput item : outputs){
item.setPredictedPower(item.getPower().multiply(compare));
item.setDataDate(XDateUtils.getString(XDateUtils.addDays(XDateUtils.parse(item.getDataDate()) , 365)));
}
return XListResult.success(outputs);
}
}
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