Commit eb61f144 authored by ZWT's avatar ZWT

feat(吉林演示): 松原

1.修改实际功率数据获取定时任务功能,修改定时配置,增加接入吉林实际功率数据逻辑,完成功能验证;
2.修改实际井口状态数据获取定时任务功能,修改定时配置,增加接入吉林实际井口状态数据逻辑,完成功能验证;
3.修改天气数据接收处理定时任务功能,在光伏数据处理完成插入后,添加预测功能远程调用逻辑,完成功能验证;
4.开发光伏预测结果集训练定时任务,完成定时任务配置及功能验证;
5.修改井场日累计数据数据获取定时任务功能,修改定时配置,增加接入吉林实际发电量数据逻辑,完成功能验证;
6.修改光伏电站日累计发电量数据数据获取定时任务功能,修改定时配置,增加接入吉林实际发电量数据逻辑,完成功能验证;
7.修改单井平均发电量数据数据获取定时任务功能,修改定时配置,增加接入吉林实际发电量数据逻辑,完成功能验证;
8.修改井口日累计生产数据数据获取定时任务功能,修改定时配置,增加接入吉林实际井口日累计数据逻辑,完成功能验证;
9.修改天气数据获取定时任务功能,修改定时配置,增加接入中间库获取吉林入库天气地址数据逻辑,完成功能验证;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 5bd95615
...@@ -39,7 +39,11 @@ ...@@ -39,7 +39,11 @@
<artifactId>pps-core-system</artifactId> <artifactId>pps-core-system</artifactId>
<version>${pps.version}</version> <version>${pps.version}</version>
</dependency> </dependency>
<dependency>
<groupId>gf</groupId>
<artifactId>pps-cloud-middle</artifactId>
<version>${pps.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail --> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -14,6 +14,9 @@ import com.alibaba.fastjson2.JSONObject; ...@@ -14,6 +14,9 @@ import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import pps.cloud.base.service.IBaseWeatherCloudService; import pps.cloud.base.service.IBaseWeatherCloudService;
import pps.cloud.middle.service.IWeatherAttachmentCloudService;
import pps.cloud.middle.service.data.weather_attachment_record.GetWeatherAttachmentRecordInput;
import pps.cloud.middle.service.data.weather_attachment_record.GetWeatherAttachmentRecordOutput;
import pps.core.base.entity.*; import pps.core.base.entity.*;
import pps.core.base.enums.WeatherIconEnum; import pps.core.base.enums.WeatherIconEnum;
import pps.core.base.enums.WindDirection; import pps.core.base.enums.WindDirection;
...@@ -32,6 +35,7 @@ import xstartup.base.tool.XLoggerTool; ...@@ -32,6 +35,7 @@ import xstartup.base.tool.XLoggerTool;
import xstartup.base.util.XCopyUtils; import xstartup.base.util.XCopyUtils;
import xstartup.core.base.helper.XThreadHelper; import xstartup.core.base.helper.XThreadHelper;
import xstartup.data.XServiceResult; import xstartup.data.XServiceResult;
import xstartup.data.XSingleResult;
import javax.mail.*; import javax.mail.*;
import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage;
...@@ -71,44 +75,65 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -71,44 +75,65 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
@Override @Override
public XServiceResult weatherDataProcess(XContext context, String oilFieldCode) { public XServiceResult weatherDataProcess(XContext context, String oilFieldCode) {
XLoggerTool logger = context.getLogger(); XLoggerTool logger = context.getLogger();
//取未读邮件
Store store = null;
Folder folder = null;
List<JSONObject> jsonObjectList = new ArrayList<>(48); List<JSONObject> jsonObjectList = new ArrayList<>(48);
try { //区分环境
Properties props = new Properties(); switch (oilFieldCode) {
Session session = Session.getDefaultInstance(props, null); case BusinessConstant.ENV_SY:
store = session.getStore(protocol); IWeatherAttachmentCloudService service = context.getBean(IWeatherAttachmentCloudService.class);
store.connect(host, username, password); XSingleResult<GetWeatherAttachmentRecordOutput> result = service.getLatestEmail(context, GetWeatherAttachmentRecordInput.builder()
folder = store.getFolder("INBOX"); .oilFieldCode(oilFieldCode)
folder.open(Folder.READ_WRITE); .build());
logger.info("------ weatherDataProcess connect mail ------"); result.throwIfFail();
List<Message> messageList = ReceivedIMAPMail.filterMessage(folder.getMessages(), null, null); GetWeatherAttachmentRecordOutput output = result.getResult();
if (CollUtil.isNotEmpty(messageList)) { if (ObjectUtil.isNotNull(output) && CharSequenceUtil.isAllNotBlank(output.getEmailName(), output.getEmailAttachmentUrl())) {
for (Message message : messageList) { String filePath = this.createFilePath(output.getEmailName());
ReceivedIMAPMail re = new ReceivedIMAPMail((MimeMessage) message); HttpUtil.downloadFile(output.getEmailAttachmentUrl(), filePath);
String subject = re.getSubject(); JSONObject jsonObject = JSON.parseObject(FileUtil.readUtf8String(filePath));
if (!CharSequenceUtil.endWith(subject, "天气预测数据" + oilFieldCode)) {
continue;
}
logger.info("------ weatherDataProcess subject: {}", subject);
//读取附件
re.getMailContent(message);
String tempFilePath = this.saveAttachment(message);
logger.info("------ weatherDataProcess load file: {}", tempFilePath);
JSONObject jsonObject = JSON.parseObject(FileUtil.readUtf8String(tempFilePath));
jsonObjectList.add(jsonObject); jsonObjectList.add(jsonObject);
logger.info("------ weatherDataProcess del temp file path: {}", tempFilePath);
FileUtil.del(tempFilePath);
message.setFlag(Flags.Flag.DELETED, true);
} }
} break;
} catch (MessagingException | IOException | ParseException e) { case BusinessConstant.ENV_CQ:
logger.error("------ weatherDataProcess Exception", e); //取未读邮件
} finally { Store store = null;
logger.info("------ weatherDataProcess mail finally close"); Folder folder = null;
NioUtil.close(folder); try {
NioUtil.close(store); Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
store = session.getStore(protocol);
store.connect(host, username, password);
folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
logger.info("------ weatherDataProcess connect mail ------");
List<Message> messageList = ReceivedIMAPMail.filterMessage(folder.getMessages(), null, null);
if (CollUtil.isNotEmpty(messageList)) {
for (Message message : messageList) {
ReceivedIMAPMail re = new ReceivedIMAPMail((MimeMessage) message);
String subject = re.getSubject();
if (!CharSequenceUtil.endWith(subject, "天气预测数据" + oilFieldCode)) {
continue;
}
logger.info("------ weatherDataProcess subject: {}", subject);
//读取附件
re.getMailContent(message);
String tempFilePath = this.saveAttachment(message);
logger.info("------ weatherDataProcess load file: {}", tempFilePath);
JSONObject jsonObject = JSON.parseObject(FileUtil.readUtf8String(tempFilePath));
jsonObjectList.add(jsonObject);
logger.info("------ weatherDataProcess del temp file path: {}", tempFilePath);
FileUtil.del(tempFilePath);
message.setFlag(Flags.Flag.DELETED, true);
}
}
} catch (MessagingException | IOException | ParseException e) {
logger.error("------ weatherDataProcess Exception", e);
} finally {
logger.info("------ weatherDataProcess mail finally close");
NioUtil.close(folder);
NioUtil.close(store);
}
break;
default:
return XServiceResult.OK;
} }
logger.info("------ weatherDataProcess jsonObjectList size: {}", jsonObjectList.size()); logger.info("------ weatherDataProcess jsonObjectList size: {}", jsonObjectList.size());
this.batchProcess(context, jsonObjectList); this.batchProcess(context, jsonObjectList);
...@@ -381,10 +406,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -381,10 +406,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
private String saveTempFile(BodyPart mPart, String fileName) { private String saveTempFile(BodyPart mPart, String fileName) {
String filePath; String filePath;
try (InputStream inputStream = mPart.getInputStream()) { try (InputStream inputStream = mPart.getInputStream()) {
StringBuilder stringBuilder = new StringBuilder(storeDir) filePath = this.createFilePath(fileName);
.append(File.separator)
.append(DateTime.now().toString("yyyyMMdd"));
filePath = stringBuilder.append(File.separator).append(fileName).toString();
FileUtil.touch(filePath); FileUtil.touch(filePath);
FileUtil.writeFromStream(inputStream, filePath); FileUtil.writeFromStream(inputStream, filePath);
} catch (IOException | MessagingException e) { } catch (IOException | MessagingException e) {
...@@ -393,6 +415,19 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -393,6 +415,19 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
return filePath; return filePath;
} }
/**
* 创建文件路径
*
* @param fileName 文件名
* @return {@link String }
*/
private String createFilePath(String fileName) {
StringBuilder stringBuilder = new StringBuilder(storeDir)
.append(File.separator)
.append(DateTime.now().toString("yyyyMMdd"));
return stringBuilder.append(File.separator).append(fileName).toString();
}
/** /**
* 零填充 * 零填充
* *
......
package pps.cloud.middle.service;
import pps.cloud.middle.service.data.weather_attachment_record.GetWeatherAttachmentRecordInput;
import pps.cloud.middle.service.data.weather_attachment_record.GetWeatherAttachmentRecordOutput;
import xstartup.annotation.XService;
import xstartup.annotation.XText;
import xstartup.base.XContext;
import xstartup.data.XSingleResult;
/**
* 天气附件记录
*
* @author ZWT
* @date 2024/10/19 21:46
*/
@XText("天气附件记录Cloud模块")
@XService
public interface IWeatherAttachmentCloudService {
/**
* 获取最新邮件
*
* @param context 上下文
* @param input 输入
* @return {@link XSingleResult }<{@link GetWeatherAttachmentRecordOutput }>
*/
@XText("获取最新邮件")
XSingleResult<GetWeatherAttachmentRecordOutput> getLatestEmail(XContext context, GetWeatherAttachmentRecordInput input);
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class CreateWeatherAttachmentRecordInput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class CreateWeatherAttachmentRecordOutput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class DeleteWeatherAttachmentRecordInput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class DeleteWeatherAttachmentRecordOutput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class DynamicQueryWeatherAttachmentRecordInput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class DynamicQueryWeatherAttachmentRecordOutput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class DynamicQueryWeatherAttachmentRecordViewOutput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record; package pps.cloud.middle.service.data.weather_attachment_record;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.util.Date; import java.util.Date;
/**
* 天气附件记录
*
* @author ZWT
* @date 2024/10/19
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class GetWeatherAttachmentRecordInput { public class GetWeatherAttachmentRecordInput {
@XText("ID")
private Long id;
@XText("邮件时间") @XText("邮件时间")
private Date emailDataTime; private Date emailDataTime;
...@@ -17,36 +28,6 @@ public class GetWeatherAttachmentRecordInput { ...@@ -17,36 +28,6 @@ public class GetWeatherAttachmentRecordInput {
@XText("邮件名称") @XText("邮件名称")
private String emailName; private String emailName;
public Long getID() { @XText("环境")
return this.id; private String oilFieldCode;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
} }
package pps.cloud.middle.service.data.weather_attachment_record; package pps.cloud.middle.service.data.weather_attachment_record;
import lombok.Data;
import xstartup.annotation.XText; import xstartup.annotation.XText;
import java.util.Date; import java.util.Date;
/**
* 天气附件记录
*
* @author ZWT
* @date 2024/10/19
*/
@Data
public class GetWeatherAttachmentRecordOutput { public class GetWeatherAttachmentRecordOutput {
@XText("ID")
private Long id;
@XText("邮件时间") @XText("邮件时间")
private Date emailDataTime; private Date emailDataTime;
...@@ -16,37 +21,4 @@ public class GetWeatherAttachmentRecordOutput { ...@@ -16,37 +21,4 @@ public class GetWeatherAttachmentRecordOutput {
@XText("邮件名称") @XText("邮件名称")
private String emailName; private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
} }
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class GetWeatherAttachmentRecordViewInput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class GetWeatherAttachmentRecordViewOutput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.util.Date;
public class QueryWeatherAttachmentRecordInput extends XPageInput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.util.Date;
public class QueryWeatherAttachmentRecordOutput extends XPageInput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.util.Date;
public class QueryWeatherAttachmentRecordViewInput extends XPageInput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import xstartup.base.data.XPageInput;
import java.util.Date;
public class QueryWeatherAttachmentRecordViewOutput extends XPageInput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class UpdateWeatherAttachmentRecordInput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
package pps.cloud.middle.service.data.weather_attachment_record;
import xstartup.annotation.XText;
import java.util.Date;
public class UpdateWeatherAttachmentRecordOutput {
@XText("ID")
private Long id;
@XText("邮件时间")
private Date emailDataTime;
@XText("邮件附件下载地址")
private String emailAttachmentUrl;
@XText("邮件名称")
private String emailName;
public Long getID() {
return this.id;
}
public void setID(Long value) {
this.id = value;
}
public Date getEmailDataTime() {
return this.emailDataTime;
}
public void setEmailDataTime(Date value) {
this.emailDataTime = value;
}
public String getEmailAttachmentUrl() {
return this.emailAttachmentUrl;
}
public void setEmailAttachmentUrl(String value) {
this.emailAttachmentUrl = value;
}
public String getEmailName() {
return this.emailName;
}
public void setEmailName(String value) {
this.emailName = value;
}
}
...@@ -4,6 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,6 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import pps.core.middle.entity.StationMappingEnt; import pps.core.middle.entity.StationMappingEnt;
/**
* 电站逆变器映射关系表
*
* @author ZWT
* @date 2024/10/19
*/
@Repository(value = "pps.core.middle.mapper.StationMappingMapper") @Repository(value = "pps.core.middle.mapper.StationMappingMapper")
public interface StationMappingMapper extends BaseMapper<StationMappingEnt> { public interface StationMappingMapper extends BaseMapper<StationMappingEnt> {
} }
...@@ -5,6 +5,12 @@ import pps.core.middle.entity.StationMappingView; ...@@ -5,6 +5,12 @@ import pps.core.middle.entity.StationMappingView;
import java.util.List; import java.util.List;
/**
* 电站逆变器映射关系表
*
* @author ZWT
* @date 2024/10/19
*/
@Repository(value = "pps.core.middle.mapper.StationMappingViewMapper") @Repository(value = "pps.core.middle.mapper.StationMappingViewMapper")
public interface StationMappingViewMapper { public interface StationMappingViewMapper {
StationMappingView selectOne(StationMappingView record); StationMappingView selectOne(StationMappingView record);
......
...@@ -4,6 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -4,6 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import pps.core.middle.entity.WeatherAttachmentRecordEnt; import pps.core.middle.entity.WeatherAttachmentRecordEnt;
/**
* 天气附件记录表
*
* @author ZWT
* @date 2024/10/19
*/
@Repository(value = "pps.core.middle.mapper.WeatherAttachmentRecordMapper") @Repository(value = "pps.core.middle.mapper.WeatherAttachmentRecordMapper")
public interface WeatherAttachmentRecordMapper extends BaseMapper<WeatherAttachmentRecordEnt> { public interface WeatherAttachmentRecordMapper extends BaseMapper<WeatherAttachmentRecordEnt> {
} }
...@@ -5,6 +5,12 @@ import pps.core.middle.entity.WeatherAttachmentRecordView; ...@@ -5,6 +5,12 @@ import pps.core.middle.entity.WeatherAttachmentRecordView;
import java.util.List; import java.util.List;
/**
* 天气附件记录表
*
* @author ZWT
* @date 2024/10/19
*/
@Repository(value = "pps.core.middle.mapper.WeatherAttachmentRecordViewMapper") @Repository(value = "pps.core.middle.mapper.WeatherAttachmentRecordViewMapper")
public interface WeatherAttachmentRecordViewMapper { public interface WeatherAttachmentRecordViewMapper {
WeatherAttachmentRecordView selectOne(WeatherAttachmentRecordView record); WeatherAttachmentRecordView selectOne(WeatherAttachmentRecordView record);
......
package pps.core.middle.service;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import pps.cloud.middle.service.IWeatherAttachmentCloudService;
import pps.cloud.middle.service.data.weather_attachment_record.GetWeatherAttachmentRecordInput;
import pps.cloud.middle.service.data.weather_attachment_record.GetWeatherAttachmentRecordOutput;
import pps.core.middle.entity.WeatherAttachmentRecordEnt;
import pps.core.middle.mapper.WeatherAttachmentRecordMapper;
import xstartup.annotation.XService;
import xstartup.base.XContext;
import xstartup.base.util.XCopyUtils;
import xstartup.data.XSingleResult;
/**
* 天气附件记录
*
* @author ZWT
* @date 2024/10/19 21:47
*/
@XService
public class WeatherAttachmentCloudServiceImpl implements IWeatherAttachmentCloudService {
@Override
public XSingleResult<GetWeatherAttachmentRecordOutput> getLatestEmail(XContext context, GetWeatherAttachmentRecordInput input) {
WeatherAttachmentRecordMapper mapper = context.getBean(WeatherAttachmentRecordMapper.class);
String emailName = DateUtil.date().toString("yyyyMMddHH00") + "天气预测数据" + input.getOilFieldCode();
WeatherAttachmentRecordEnt ent = mapper.selectOne(new QueryWrapper<WeatherAttachmentRecordEnt>()
.select("EMAIL_DATA_TIME", "EMAIL_ATTACHMENT_URL", "EMAIL_NAME")
.eq("EMAIL_NAME", emailName)
.apply("ROWNUM = 1")
);
return XSingleResult.success(XCopyUtils.copyNewObject(ent, GetWeatherAttachmentRecordOutput.class));
}
}
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