Commit 2df0668f authored by ZWT's avatar ZWT

feat(能源管理系统): 邮件接收

1.添加天气数据邮件方式接收定时任务;
2.修改配置文件,增加新建定时任务,同时增加自定义参数;
3.创建天气邮件数据接收处理实现类,同时验证获取自定义参数方法;
4.添加收件工具类,验证是否能正常接收邮件;
5.天气邮件数据接收定时任务增加获取未读天气数据逻辑,增加附件文件临时存储方法并验证是否能正常读取文件数据同时转换为json数据;
6.增加查询运行中电站列表方法;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 1e4ab757
...@@ -20,6 +20,7 @@ import pps.core.base.enums.WindDirection; ...@@ -20,6 +20,7 @@ import pps.core.base.enums.WindDirection;
import pps.core.base.mapper.BasePhotovoltaicPlantViewMapper; import pps.core.base.mapper.BasePhotovoltaicPlantViewMapper;
import pps.core.base.mapper.PlantPredictedPowerDataMapper; import pps.core.base.mapper.PlantPredictedPowerDataMapper;
import pps.core.base.service.data.DailyData; import pps.core.base.service.data.DailyData;
import pps.core.common.constant.BusinessConstant;
import xstartup.annotation.XService; import xstartup.annotation.XService;
import xstartup.base.XContext; import xstartup.base.XContext;
import xstartup.base.XStartup; import xstartup.base.XStartup;
...@@ -170,7 +171,8 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -170,7 +171,8 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
new BigDecimal(StrUtil.replace(dailyData.getHumidityArray().get(i), "%", "")), new BigDecimal(StrUtil.replace(dailyData.getHumidityArray().get(i), "%", "")),
String.valueOf(dateTime.year()), String.valueOf(dateTime.year()),
this.int2Str(dateTime.month() + 1), this.int2Str(dateTime.month() + 1),
this.int2Str(dateTime.dayOfMonth()) this.int2Str(dateTime.dayOfMonth()),
BusinessConstant.START_OF_DAY_TIME
); );
// 5.执行SQL // 5.执行SQL
mapper.delete(new LambdaQueryWrapper<PlantPredictedPowerDataEnt>() mapper.delete(new LambdaQueryWrapper<PlantPredictedPowerDataEnt>()
...@@ -220,7 +222,8 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -220,7 +222,8 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
this.compute(objList.get(i).getHumidity(), objList.get(nextIndex).getHumidity(), y), this.compute(objList.get(i).getHumidity(), objList.get(nextIndex).getHumidity(), y),
String.valueOf(date.year()), String.valueOf(date.year()),
this.int2Str(date.month() + 1), this.int2Str(date.month() + 1),
this.int2Str(date.dayOfMonth()) this.int2Str(date.dayOfMonth()),
BusinessConstant.START_OF_DAY_TIME
); );
// 5.执行SQL // 5.执行SQL
mapper.delete(new LambdaQueryWrapper<PlantPredictedPowerDataEnt>() mapper.delete(new LambdaQueryWrapper<PlantPredictedPowerDataEnt>()
...@@ -246,27 +249,27 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -246,27 +249,27 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
PlantPredictedPowerDataEnt dao = XCopyUtils.copyNewObject(item); PlantPredictedPowerDataEnt dao = XCopyUtils.copyNewObject(item);
dao.setMinTime(timeList.get(y)); dao.setMinTime(timeList.get(y));
dao.setDataDate(dao.getYearTime() + "-" + dao.getMonthTime() + "-" + dao.getDayTime() + " " + dao.getHourTime() + ":" + dao.getMinTime()); dao.setDataDate(dao.getYearTime() + "-" + dao.getMonthTime() + "-" + dao.getDayTime() + " " + dao.getHourTime() + ":" + dao.getMinTime());
int I_i = i + 1; int nextIndex = i + 1;
BigDecimal temperature_1 = sortList.get(i).getTemperature() == null ? new BigDecimal(0) : sortList.get(i).getTemperature(); BigDecimal temperature_1 = sortList.get(i).getTemperature() == null ? new BigDecimal(0) : sortList.get(i).getTemperature();
BigDecimal temperature_2 = sortList.get(I_i).getTemperature() == null ? new BigDecimal(0) : sortList.get(I_i).getTemperature(); BigDecimal temperature_2 = sortList.get(nextIndex).getTemperature() == null ? new BigDecimal(0) : sortList.get(nextIndex).getTemperature();
dao.setTemperature(temperature_1.add(temperature_2.subtract(temperature_1).multiply(new BigDecimal(0.3 * (y + 1))))); dao.setTemperature(temperature_1.add(temperature_2.subtract(temperature_1).multiply(new BigDecimal(0.3 * (y + 1)))));
BigDecimal humidity_1 = sortList.get(i).getHumidity() == null ? new BigDecimal(0) : sortList.get(i).getHumidity(); BigDecimal humidity_1 = sortList.get(i).getHumidity() == null ? new BigDecimal(0) : sortList.get(i).getHumidity();
BigDecimal humidity_2 = sortList.get(I_i).getHumidity() == null ? new BigDecimal(0) : sortList.get(I_i).getHumidity(); BigDecimal humidity_2 = sortList.get(nextIndex).getHumidity() == null ? new BigDecimal(0) : sortList.get(nextIndex).getHumidity();
dao.setHumidity(humidity_1.add(humidity_2.subtract(humidity_1).multiply(new BigDecimal(0.3 * (y + 1))))); dao.setHumidity(humidity_1.add(humidity_2.subtract(humidity_1).multiply(new BigDecimal(0.3 * (y + 1)))));
BigDecimal windSpeed_1 = sortList.get(i).getWindSpeed() == null ? new BigDecimal(0) : sortList.get(i).getWindSpeed(); BigDecimal windSpeed_1 = sortList.get(i).getWindSpeed() == null ? new BigDecimal(0) : sortList.get(i).getWindSpeed();
BigDecimal windSpeed_2 = sortList.get(I_i).getWindSpeed() == null ? new BigDecimal(0) : sortList.get(I_i).getWindSpeed(); BigDecimal windSpeed_2 = sortList.get(nextIndex).getWindSpeed() == null ? new BigDecimal(0) : sortList.get(nextIndex).getWindSpeed();
dao.setWindSpeed(windSpeed_1.add(windSpeed_2.subtract(windSpeed_1).multiply(new BigDecimal(0.3 * (y + 1))))); dao.setWindSpeed(windSpeed_1.add(windSpeed_2.subtract(windSpeed_1).multiply(new BigDecimal(0.3 * (y + 1)))));
BigDecimal pressure_1 = sortList.get(i).getPressure() == null ? new BigDecimal(0) : sortList.get(i).getPressure(); BigDecimal pressure_1 = sortList.get(i).getPressure() == null ? new BigDecimal(0) : sortList.get(i).getPressure();
BigDecimal pressure_2 = sortList.get(I_i).getPressure() == null ? new BigDecimal(0) : sortList.get(I_i).getPressure(); BigDecimal pressure_2 = sortList.get(nextIndex).getPressure() == null ? new BigDecimal(0) : sortList.get(nextIndex).getPressure();
dao.setPressure(pressure_1.add(pressure_2.subtract(pressure_1).multiply(new BigDecimal(0.3 * (y + 1))))); dao.setPressure(pressure_1.add(pressure_2.subtract(pressure_1).multiply(new BigDecimal(0.3 * (y + 1)))));
BigDecimal planeIrradiance_1 = sortList.get(i).getPlaneIrradiance() == null ? new BigDecimal(0) : sortList.get(i).getPlaneIrradiance(); BigDecimal planeIrradiance_1 = sortList.get(i).getPlaneIrradiance() == null ? new BigDecimal(0) : sortList.get(i).getPlaneIrradiance();
BigDecimal planeIrradiance_2 = sortList.get(I_i).getPlaneIrradiance() == null ? new BigDecimal(0) : sortList.get(I_i).getPlaneIrradiance(); BigDecimal planeIrradiance_2 = sortList.get(nextIndex).getPlaneIrradiance() == null ? new BigDecimal(0) : sortList.get(nextIndex).getPlaneIrradiance();
dao.setPlaneIrradiance(planeIrradiance_1.add(planeIrradiance_2.subtract(planeIrradiance_1).multiply(new BigDecimal(0.3 * (y + 1))))); dao.setPlaneIrradiance(planeIrradiance_1.add(planeIrradiance_2.subtract(planeIrradiance_1).multiply(new BigDecimal(0.3 * (y + 1)))));
BigDecimal horizontalIrradiance_1 = sortList.get(i).getHorizontalIrradiance() == null ? new BigDecimal(0) : sortList.get(i).getHorizontalIrradiance(); BigDecimal horizontalIrradiance_1 = sortList.get(i).getHorizontalIrradiance() == null ? new BigDecimal(0) : sortList.get(i).getHorizontalIrradiance();
BigDecimal horizontalIrradiance_2 = sortList.get(I_i).getHorizontalIrradiance() == null ? new BigDecimal(0) : sortList.get(I_i).getHorizontalIrradiance(); BigDecimal horizontalIrradiance_2 = sortList.get(nextIndex).getHorizontalIrradiance() == null ? new BigDecimal(0) : sortList.get(nextIndex).getHorizontalIrradiance();
dao.setHorizontalIrradiance(horizontalIrradiance_1.add(horizontalIrradiance_2.subtract(horizontalIrradiance_1).multiply(new BigDecimal(0.3 * (y + 1))))); dao.setHorizontalIrradiance(horizontalIrradiance_1.add(horizontalIrradiance_2.subtract(horizontalIrradiance_1).multiply(new BigDecimal(0.3 * (y + 1)))));
BigDecimal power_1 = sortList.get(i).getPower() == null ? new BigDecimal(0) : sortList.get(i).getPower(); BigDecimal power_1 = sortList.get(i).getPower() == null ? new BigDecimal(0) : sortList.get(i).getPower();
BigDecimal power_2 = sortList.get(I_i).getPower() == null ? new BigDecimal(0) : sortList.get(I_i).getPower(); BigDecimal power_2 = sortList.get(nextIndex).getPower() == null ? new BigDecimal(0) : sortList.get(nextIndex).getPower();
dao.setPower(power_1.add(power_2.subtract(power_1).multiply(new BigDecimal(0.3 * (y + 1))))); dao.setPower(power_1.add(power_2.subtract(power_1).multiply(new BigDecimal(0.3 * (y + 1)))));
batchList.add(dao); batchList.add(dao);
} }
...@@ -303,10 +306,11 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -303,10 +306,11 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
* @param yearTime 年时间 * @param yearTime 年时间
* @param monthTime 月份时间 * @param monthTime 月份时间
* @param dayTime 白天 * @param dayTime 白天
* @param minTime 分钟
* @return {@link PlantPredictedPowerDataEnt} * @return {@link PlantPredictedPowerDataEnt}
*/ */
private PlantPredictedPowerDataEnt getPlantPredictedPowerEnt(String plantId, String hourTime, BigDecimal temperature, BigDecimal windSpeed, BigDecimal windDirection, private PlantPredictedPowerDataEnt getPlantPredictedPowerEnt(String plantId, String hourTime, BigDecimal temperature, BigDecimal windSpeed, BigDecimal windDirection,
BigDecimal pressure, BigDecimal humidity, String yearTime, String monthTime, String dayTime) { BigDecimal pressure, BigDecimal humidity, String yearTime, String monthTime, String dayTime, String minTime) {
PlantPredictedPowerDataEnt dao = new PlantPredictedPowerDataEnt(); PlantPredictedPowerDataEnt dao = new PlantPredictedPowerDataEnt();
dao.setCreateTime(new Date()); dao.setCreateTime(new Date());
dao.setPlantId(plantId); dao.setPlantId(plantId);
...@@ -319,7 +323,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -319,7 +323,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
dao.setYearTime(yearTime); dao.setYearTime(yearTime);
dao.setMonthTime(monthTime); dao.setMonthTime(monthTime);
dao.setDayTime(dayTime); dao.setDayTime(dayTime);
dao.setMinTime("00:00"); dao.setMinTime(minTime);
dao.setDataDate(new StringBuilder(dao.getYearTime()) dao.setDataDate(new StringBuilder(dao.getYearTime())
.append('-') .append('-')
.append(dao.getMonthTime()) .append(dao.getMonthTime())
......
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