Commit 5824f859 authored by ZWT's avatar ZWT

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

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

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent b389e222
...@@ -5,10 +5,12 @@ import cn.hutool.core.date.DateTime; ...@@ -5,10 +5,12 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil; import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.NioUtil;
import cn.hutool.core.io.file.FileReader; import cn.hutool.core.io.file.FileReader;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...@@ -133,7 +135,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -133,7 +135,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
List<PlantPredictedPowerDataEnt> batchList = new ArrayList<>(); List<PlantPredictedPowerDataEnt> batchList = new ArrayList<>();
FileReader fileReader = new FileReader("D:\\home\\weather\\temp\\receive\\20231114\\1699943400000.json"); FileReader fileReader = new FileReader("D:\\home\\weather\\temp\\receive\\20231114\\1699943400000.json");
String jsonString = fileReader.readString(); String jsonString = fileReader.readString();
JSONObject jsonObject = JSONObject.parseObject(jsonString); JSONObject jsonObject = JSON.parseObject(jsonString);
Map<String, List<DailyData>> cityDataMap = new HashMap<>(16); Map<String, List<DailyData>> cityDataMap = new HashMap<>(16);
for (Map.Entry<String, Object> entry : jsonObject.entrySet()) { for (Map.Entry<String, Object> entry : jsonObject.entrySet()) {
String key = entry.getKey(); String key = entry.getKey();
...@@ -168,7 +170,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -168,7 +170,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
this.int2Str(hours), this.int2Str(hours),
new BigDecimal(CharSequenceUtil.replace(dailyData.getTemperatureArray().get(i), "℃", "")), new BigDecimal(CharSequenceUtil.replace(dailyData.getTemperatureArray().get(i), "℃", "")),
new BigDecimal(CharSequenceUtil.replace(dailyData.getWindSpeedArray().get(i), "m/s", "")), new BigDecimal(CharSequenceUtil.replace(dailyData.getWindSpeedArray().get(i), "m/s", "")),
new BigDecimal(WindDirection.findByValue(dailyData.getWindDirectionArray().get(i)).getValue()), new BigDecimal(Objects.requireNonNull(WindDirection.findByValue(dailyData.getWindDirectionArray().get(i))).getValue()),
new BigDecimal(CharSequenceUtil.replace(dailyData.getPressureArray().get(i), "hPa", "")), new BigDecimal(CharSequenceUtil.replace(dailyData.getPressureArray().get(i), "hPa", "")),
new BigDecimal(CharSequenceUtil.replace(dailyData.getHumidityArray().get(i), "%", "")), new BigDecimal(CharSequenceUtil.replace(dailyData.getHumidityArray().get(i), "%", "")),
String.valueOf(dateTime.year()), String.valueOf(dateTime.year()),
...@@ -303,8 +305,8 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -303,8 +305,8 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
} catch (MessagingException e) { } catch (MessagingException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} finally { } finally {
IoUtil.close(folder); NioUtil.close(folder);
IoUtil.close(store); NioUtil.close(store);
} }
return XServiceResult.OK; return XServiceResult.OK;
} }
...@@ -340,15 +342,15 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -340,15 +342,15 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
dao.setMonthTime(monthTime); dao.setMonthTime(monthTime);
dao.setDayTime(dayTime); dao.setDayTime(dayTime);
dao.setMinTime(minTime); dao.setMinTime(minTime);
dao.setDataDate(new StringBuilder(dao.getYearTime()) dao.setDataDate(dao.getYearTime() +
.append('-') '-' +
.append(dao.getMonthTime()) dao.getMonthTime() +
.append('-') '-' +
.append(dao.getDayTime()) dao.getDayTime() +
.append(' ') ' ' +
.append(dao.getHourTime()) dao.getHourTime() +
.append(':') ':' +
.append(dao.getMinTime()).toString()); dao.getMinTime());
return dao; return dao;
} }
...@@ -395,16 +397,16 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -395,16 +397,16 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
String disposition = mPart.getDisposition(); String disposition = mPart.getDisposition();
if (Part.ATTACHMENT.equals(disposition) || Part.INLINE.equals(disposition)) { if (Part.ATTACHMENT.equals(disposition) || Part.INLINE.equals(disposition)) {
fileName = mPart.getFileName(); fileName = mPart.getFileName();
if (StrUtil.isNotEmpty(fileName) && StringUtils.lowerCase(fileName).indexOf("GB2312") != -1) { if (CharSequenceUtil.isNotEmpty(fileName) && StringUtils.lowerCase(fileName).indexOf("GB2312") != -1) {
fileName = MimeUtility.decodeText(fileName); fileName = MimeUtility.decodeText(fileName);
} }
fileName = StrUtil.replace(fileName, "\\?|=", ""); fileName = CharSequenceUtil.replace(fileName, "\\?|=", "");
filePath = this.saveTempFile(fileName, mPart.getInputStream()); filePath = this.saveTempFile(fileName, mPart.getInputStream());
} else if (mPart.isMimeType("multipart/*")) { } else if (mPart.isMimeType("multipart/*")) {
this.saveAttachment(mPart); this.saveAttachment(mPart);
} else { } else {
fileName = mPart.getFileName(); fileName = mPart.getFileName();
if (StrUtil.isNotEmpty(fileName) && (StringUtils.lowerCase(fileName).indexOf("GB2312") != -1)) { if (CharSequenceUtil.isNotEmpty(fileName) && (StringUtils.lowerCase(fileName).indexOf("GB2312") != -1)) {
fileName = MimeUtility.decodeText(fileName); fileName = MimeUtility.decodeText(fileName);
filePath = this.saveTempFile(fileName, mPart.getInputStream()); filePath = this.saveTempFile(fileName, mPart.getInputStream());
} }
......
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