Commit f50935e6 authored by ZWT's avatar ZWT

feat(零碳): 长庆演示系统新增功能

1.修改第三方日累计数据推送表表结构,增加日累计储能放电量字段,同时修改代码对应实体及mapper文件,修改相关接口增加储能日累计放电量接收逻辑;
2.修改首页井场收益分析模块接口,修改获取储能累计放电量逻辑;
3.设计并创建井口日用电趋势表,生成对应实体类及mapper文件;
4.统计分析模块,新增本月累计节电经济效益查询接口,添加线上接口文档并完成接口冒烟测试;
5.统计分析模块,新增本月累计减碳量查询接口,添加线上接口文档并完成接口冒烟测试;
6.统计分析模块,新增光伏发电趋势查询接口,添加线上接口文档并完成接口冒烟测试;
7.统计分析模块,新增月度总览查询接口,添加线上接口文档并完成接口冒烟测试;

BREAKING CHANGE: 无

Closes 无

[skip ci]
parent 5fce52fa
...@@ -20,11 +20,13 @@ public interface IBaseWeatherCloudService { ...@@ -20,11 +20,13 @@ public interface IBaseWeatherCloudService {
/** /**
* 天气数据接收Cloud模块--天气数据处理 * 天气数据接收Cloud模块--天气数据处理
* *
* @param context 上下文 * @param context 上下文
* @return {@link XServiceResult} * @param oilFieldName 油田名称
* @return {@link XServiceResult }
* @throws ParseException 解析异常
*/ */
@XText("天气数据接收Cloud模块--天气数据处理") @XText("天气数据接收Cloud模块--天气数据处理")
XServiceResult weatherDataProcess(XContext context) throws ParseException; XServiceResult weatherDataProcess(XContext context, String oilFieldName) throws ParseException;
/** /**
* 天气数据接收Cloud模块--天气Api数据处理 * 天气数据接收Cloud模块--天气Api数据处理
......
...@@ -31,7 +31,7 @@ public class BaseLineService { ...@@ -31,7 +31,7 @@ public class BaseLineService {
@XApiGet(anonymous = true) @XApiGet(anonymous = true)
public XServiceResult test(XContext context) { public XServiceResult test(XContext context) {
BaseWeatherCloudServiceImpl bean = context.getBean(BaseWeatherCloudServiceImpl.class); BaseWeatherCloudServiceImpl bean = context.getBean(BaseWeatherCloudServiceImpl.class);
bean.weatherDataProcess(context); bean.weatherDataProcess(context, "长庆");
return XServiceResult.OK; return XServiceResult.OK;
} }
......
...@@ -65,11 +65,13 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -65,11 +65,13 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
/** /**
* 天气数据接收Cloud模块--天气数据处理 * 天气数据接收Cloud模块--天气数据处理
* *
* @param context 上下文 * @param context 上下文
* @return {@link XServiceResult} * @param oilFieldName 油田名称
* @return {@link XServiceResult }
* @throws ParseException 解析异常
*/ */
@Override @Override
public XServiceResult weatherDataProcess(XContext context) { public XServiceResult weatherDataProcess(XContext context, String oilFieldName) {
XLoggerTool logger = context.getLogger(); XLoggerTool logger = context.getLogger();
//取未读邮件 //取未读邮件
Store store = null; Store store = null;
...@@ -105,7 +107,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService { ...@@ -105,7 +107,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
for (Message message : messageList) { for (Message message : messageList) {
re = new ReceivedIMAPMail((MimeMessage) message); re = new ReceivedIMAPMail((MimeMessage) message);
String subject = re.getSubject(); String subject = re.getSubject();
if (!CharSequenceUtil.endWith(subject, "天气预测数据")) { if (!CharSequenceUtil.endWith(subject, oilFieldName + "天气预测数据")) {
continue; continue;
} }
logger.info("------ weatherDataProcess subject: {}", subject); logger.info("------ weatherDataProcess subject: {}", subject);
......
package pps.core.task.job;
import cn.hutool.core.util.ObjectUtil;
import pps.cloud.base.service.IConfigOilFieldCloudService;
import pps.cloud.base.service.data.config_oil_field.GetConfigOilFieldOutput;
import pps.core.common.constant.BusinessConstant;
import xstartup.base.XContext;
import xstartup.data.XSingleResult;
/**
* 任务公用服务
*
* @author ZWT
* @date 2024/06/25 15:26
*/
public class JobCommonService {
/**
* 获取当前配置
*
* @param context 上下文
* @return {@link GetConfigOilFieldOutput }
*/
public GetConfigOilFieldOutput getCurrentConfig(XContext context) {
IConfigOilFieldCloudService bean = context.getBean(IConfigOilFieldCloudService.class);
XSingleResult<GetConfigOilFieldOutput> currentConfig = bean.getCurrentConfig(context);
currentConfig.throwIfFail();
return currentConfig.getResult();
}
/**
* 已关闭
*
* @param config 配置
* @return boolean
*/
public boolean isClosed(GetConfigOilFieldOutput config) {
return ObjectUtil.hasNull(config, config.getApiTaskIsEnable()) || config.getApiTaskIsEnable().equals(BusinessConstant.ONE);
}
}
\ No newline at end of file
package pps.core.task.job; package pps.core.task.job;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import pps.cloud.base.service.IBaseWeatherCloudService; import pps.cloud.base.service.IBaseWeatherCloudService;
import pps.core.common.cache.TaskLockCache; import pps.core.common.cache.TaskLockCache;
...@@ -19,7 +20,7 @@ import xstartup.service.job.annotation.XCronTrigger; ...@@ -19,7 +20,7 @@ import xstartup.service.job.annotation.XCronTrigger;
*/ */
@XText("天气数据邮件接收定时任务") @XText("天气数据邮件接收定时任务")
@XService @XService
public class WeatherReceiveJob implements XJob { public class WeatherReceiveJob extends JobCommonService implements XJob {
/** /**
* 半小时隔5分钟执行一次 * 半小时隔5分钟执行一次
...@@ -34,13 +35,18 @@ public class WeatherReceiveJob implements XJob { ...@@ -34,13 +35,18 @@ public class WeatherReceiveJob implements XJob {
String key = TaskConstant.TASK_LOCK_KEY + "WeatherReceiveJob"; String key = TaskConstant.TASK_LOCK_KEY + "WeatherReceiveJob";
TaskLockCache exist = TaskLockCache.exist(xContext, key); TaskLockCache exist = TaskLockCache.exist(xContext, key);
if (ObjectUtil.isNull(exist)) { if (ObjectUtil.isNull(exist)) {
String oilFieldName = this.getCurrentConfig(xContext).getOilFieldName();
if (CharSequenceUtil.isBlank(oilFieldName)) {
xContext.getLogger().info("------ WeatherReceiveJob oilFieldName is blank");
return XServiceResult.OK;
}
TaskLockCache cache = new TaskLockCache(); TaskLockCache cache = new TaskLockCache();
cache.setRedisKey(key); cache.setRedisKey(key);
cache.setRedisValue(key); cache.setRedisValue(key);
TaskLockCache.set(xContext, cache); TaskLockCache.set(xContext, cache);
try { try {
IBaseWeatherCloudService service = xContext.getBean(IBaseWeatherCloudService.class); IBaseWeatherCloudService service = xContext.getBean(IBaseWeatherCloudService.class);
XServiceResult result = service.weatherDataProcess(xContext); XServiceResult result = service.weatherDataProcess(xContext, oilFieldName);
result.throwIfFail(); result.throwIfFail();
} catch (Exception e) { } catch (Exception e) {
xContext.getLogger().error("------ WeatherReceiveJob Exception: ", e); xContext.getLogger().error("------ WeatherReceiveJob Exception: ", e);
......
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