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
......@@ -21,10 +21,12 @@ public interface IBaseWeatherCloudService {
* 天气数据接收Cloud模块--天气数据处理
*
* @param context 上下文
* @return {@link XServiceResult}
* @param oilFieldName 油田名称
* @return {@link XServiceResult }
* @throws ParseException 解析异常
*/
@XText("天气数据接收Cloud模块--天气数据处理")
XServiceResult weatherDataProcess(XContext context) throws ParseException;
XServiceResult weatherDataProcess(XContext context, String oilFieldName) throws ParseException;
/**
* 天气数据接收Cloud模块--天气Api数据处理
......
......@@ -31,7 +31,7 @@ public class BaseLineService {
@XApiGet(anonymous = true)
public XServiceResult test(XContext context) {
BaseWeatherCloudServiceImpl bean = context.getBean(BaseWeatherCloudServiceImpl.class);
bean.weatherDataProcess(context);
bean.weatherDataProcess(context, "长庆");
return XServiceResult.OK;
}
......
......@@ -66,10 +66,12 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
* 天气数据接收Cloud模块--天气数据处理
*
* @param context 上下文
* @return {@link XServiceResult}
* @param oilFieldName 油田名称
* @return {@link XServiceResult }
* @throws ParseException 解析异常
*/
@Override
public XServiceResult weatherDataProcess(XContext context) {
public XServiceResult weatherDataProcess(XContext context, String oilFieldName) {
XLoggerTool logger = context.getLogger();
//取未读邮件
Store store = null;
......@@ -105,7 +107,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
for (Message message : messageList) {
re = new ReceivedIMAPMail((MimeMessage) message);
String subject = re.getSubject();
if (!CharSequenceUtil.endWith(subject, "天气预测数据")) {
if (!CharSequenceUtil.endWith(subject, oilFieldName + "天气预测数据")) {
continue;
}
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;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.ObjectUtil;
import pps.cloud.base.service.IBaseWeatherCloudService;
import pps.core.common.cache.TaskLockCache;
......@@ -19,7 +20,7 @@ import xstartup.service.job.annotation.XCronTrigger;
*/
@XText("天气数据邮件接收定时任务")
@XService
public class WeatherReceiveJob implements XJob {
public class WeatherReceiveJob extends JobCommonService implements XJob {
/**
* 半小时隔5分钟执行一次
......@@ -34,13 +35,18 @@ public class WeatherReceiveJob implements XJob {
String key = TaskConstant.TASK_LOCK_KEY + "WeatherReceiveJob";
TaskLockCache exist = TaskLockCache.exist(xContext, key);
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();
cache.setRedisKey(key);
cache.setRedisValue(key);
TaskLockCache.set(xContext, cache);
try {
IBaseWeatherCloudService service = xContext.getBean(IBaseWeatherCloudService.class);
XServiceResult result = service.weatherDataProcess(xContext);
XServiceResult result = service.weatherDataProcess(xContext, oilFieldName);
result.throwIfFail();
} catch (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