From 120f64b6b26164fe9445c472d827c55bd4f02cfc Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Fri, 24 Oct 2025 16:33:16 +0800 Subject: [PATCH] =?UTF-8?q?feat(ems=E3=80=81api=E3=80=81job):=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增三个SnailJob任务执行器:设备告警、电阈值超限、小时耗量告警 - 实现RemoteEmsTaskService远程服务接口及其实现类 - 创建hwmom-api-ems模块并配置相关依赖 - 启用Spring定时任务支持并注释原有调度逻辑 - 移除旧模块依赖,引入新api模块依赖 - 完成采集设备告警、电阈值对比、小时耗量检查等核心业务逻辑 - 添加全局事务管理确保数据一致性 - 注释掉原有的Scheduled定时任务方法以便后续迁移 --- ruoyi-api/hwmom-api-ems/pom.xml | 42 +++ .../dromara/ems/api/RemoteEmsTaskService.java | 13 + ruoyi-api/pom.xml | 1 + ruoyi-modules/hwmom-ems/pom.xml | 8 +- .../ems/Dubbo/RemoteEmsTaskServiceImpl.java | 252 ++++++++++++++++++ .../org/dromara/ems/HwMomEmsApplication.java | 2 + .../service/IEmsRecordAlarmDataService.java | 14 +- .../impl/EmsRecordAlarmDataServiceImpl.java | 33 ++- ruoyi-modules/ruoyi-job/pom.xml | 19 +- .../snailjob/EmsCollectDeviceAlarmsTask.java | 38 +++ .../EmsExceedDnbThresholdAlarmsTask.java | 38 +++ .../EmsHourlyConsumptionAlarmsTask.java | 38 +++ 12 files changed, 472 insertions(+), 26 deletions(-) create mode 100644 ruoyi-api/hwmom-api-ems/pom.xml create mode 100644 ruoyi-api/hwmom-api-ems/src/main/java/org/dromara/ems/api/RemoteEmsTaskService.java create mode 100644 ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/Dubbo/RemoteEmsTaskServiceImpl.java create mode 100644 ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsCollectDeviceAlarmsTask.java create mode 100644 ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsExceedDnbThresholdAlarmsTask.java create mode 100644 ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsHourlyConsumptionAlarmsTask.java diff --git a/ruoyi-api/hwmom-api-ems/pom.xml b/ruoyi-api/hwmom-api-ems/pom.xml new file mode 100644 index 00000000..d3be6a17 --- /dev/null +++ b/ruoyi-api/hwmom-api-ems/pom.xml @@ -0,0 +1,42 @@ + + + + org.dromara + ruoyi-api + ${revision} + + 4.0.0 + + hwmom-api-ems + + + hwmom-api-ems ems接口模块 + + + + + + + org.dromara + ruoyi-common-core + + + + org.dromara + ruoyi-common-excel + + + org.projectlombok + lombok + provided + + + com.aizuda + snail-job-client-job-core + + + + + diff --git a/ruoyi-api/hwmom-api-ems/src/main/java/org/dromara/ems/api/RemoteEmsTaskService.java b/ruoyi-api/hwmom-api-ems/src/main/java/org/dromara/ems/api/RemoteEmsTaskService.java new file mode 100644 index 00000000..4dd76473 --- /dev/null +++ b/ruoyi-api/hwmom-api-ems/src/main/java/org/dromara/ems/api/RemoteEmsTaskService.java @@ -0,0 +1,13 @@ +package org.dromara.ems.api; + +import org.dromara.common.core.domain.R; + +public interface RemoteEmsTaskService { + + public R collectDeviceAlarmsTask(); + + public R exceedDnbThresholdAlarmsTask(); + + public R hourlyConsumptionAlarmsTask(); + +} diff --git a/ruoyi-api/pom.xml b/ruoyi-api/pom.xml index d403512e..2e6458b2 100644 --- a/ruoyi-api/pom.xml +++ b/ruoyi-api/pom.xml @@ -20,6 +20,7 @@ hwmom-api-dms ruoyi-api-job hwmom-api-wms + hwmom-api-ems ruoyi-api diff --git a/ruoyi-modules/hwmom-ems/pom.xml b/ruoyi-modules/hwmom-ems/pom.xml index 4322110b..eef12fc1 100644 --- a/ruoyi-modules/hwmom-ems/pom.xml +++ b/ruoyi-modules/hwmom-ems/pom.xml @@ -181,15 +181,13 @@ compile + org.dromara - ruoyi-system - ${revision} - compile + hwmom-api-ems + 2.2.2 - - diff --git a/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/Dubbo/RemoteEmsTaskServiceImpl.java b/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/Dubbo/RemoteEmsTaskServiceImpl.java new file mode 100644 index 00000000..18cc4d5f --- /dev/null +++ b/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/Dubbo/RemoteEmsTaskServiceImpl.java @@ -0,0 +1,252 @@ +package org.dromara.ems.Dubbo; + +import io.seata.spring.annotation.GlobalTransactional; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.ems.api.RemoteEmsTaskService; +import org.dromara.ems.base.domain.EmsBaseCollectDeviceInfo; +import org.dromara.ems.base.domain.EmsBaseMonitorThreshold; +import org.dromara.ems.base.mapper.EmsBaseCollectDeviceInfoMapper; +import org.dromara.ems.base.mapper.EmsBaseMonitorThresholdMapper; +import org.dromara.ems.record.domain.EmsRecordAlarmData; +import org.dromara.ems.record.domain.EmsRecordAlarmRule; +import org.dromara.ems.record.domain.EmsRecordDnbInstant; +import org.dromara.ems.record.mapper.EmsRecordAlarmDataMapper; +import org.dromara.ems.record.mapper.EmsRecordAlarmRuleMapper; +import org.dromara.ems.record.mapper.EmsRecordDnbInstantMapper; +import org.dromara.ems.report.domain.EmsReportPointDnb; +import org.dromara.ems.report.mapper.EmsReportPointDnbMapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@RequiredArgsConstructor +@Service +@DubboService +@Slf4j +public class RemoteEmsTaskServiceImpl implements RemoteEmsTaskService { + + private final EmsRecordAlarmDataMapper emsRecordAlarmDataMapper; + + + private final EmsRecordAlarmRuleMapper emsRecordAlarmRuleMapper; + + + private final EmsBaseCollectDeviceInfoMapper emsBaseCollectDeviceInfoMapper; + + + private final EmsRecordDnbInstantMapper emsRecordDnbInstantMapper; + + + private final EmsBaseMonitorThresholdMapper emsBaseMonitorThresholdMapper; + + + private final EmsReportPointDnbMapper emsReportPointDnbMapper; + +/* public RemoteEmsTaskServiceImpl(EmsRecordAlarmDataMapper emsRecordAlarmDataMapper, EmsRecordAlarmRuleMapper emsRecordAlarmRuleMapper, EmsBaseCollectDeviceInfoMapper emsBaseCollectDeviceInfoMapper, EmsRecordDnbInstantMapper emsRecordDnbInstantMapper, EmsBaseMonitorThresholdMapper emsBaseMonitorThresholdMapper, EmsReportPointDnbMapper emsReportPointDnbMapper) { + this.emsRecordAlarmDataMapper = emsRecordAlarmDataMapper; + this.emsRecordAlarmRuleMapper = emsRecordAlarmRuleMapper; + this.emsBaseCollectDeviceInfoMapper = emsBaseCollectDeviceInfoMapper; + this.emsRecordDnbInstantMapper = emsRecordDnbInstantMapper; + this.emsBaseMonitorThresholdMapper = emsBaseMonitorThresholdMapper; + this.emsReportPointDnbMapper = emsReportPointDnbMapper; + }*/ + + + /** + * 采集设备告警定时任务 + */ + @GlobalTransactional(rollbackFor = Exception.class) + public R collectDeviceAlarmsTask() { + long minuteValue = 1000 * 60; + Date date = new Date(); + EmsRecordAlarmRule alarmRule = new EmsRecordAlarmRule(); + alarmRule.setTriggerRule(1L); + List alarmRules = emsRecordAlarmRuleMapper.selectEmsRecordAlarmRuleList(alarmRule); + if (alarmRules.size() > 0) { + minuteValue = alarmRules.get(0).getDeviceOfflineTime() * minuteValue; + } else { + System.out.println("未配置设备离线时间"); + return R.fail(); + } + + System.out.println("开始执行设备告警定时任务"); + EmsBaseCollectDeviceInfo collectDeviceInfo = new EmsBaseCollectDeviceInfo(); + collectDeviceInfo.setIsFlag("1"); + List deviceInfoList = emsBaseCollectDeviceInfoMapper.selectEmsBaseCollectDeviceInfoList(collectDeviceInfo); + + if (deviceInfoList.size() > 0) { + EmsRecordAlarmData recordAlarmData = new EmsRecordAlarmData(); + recordAlarmData.setAlarmType(1L); + recordAlarmData.setAlarmStatus(1L); + List alarmDataList = emsRecordAlarmDataMapper.selectEmsRecordAlarmDataList(recordAlarmData); + List collectDeviceIdList = alarmDataList.stream().map(EmsRecordAlarmData::getCollectDeviceId).collect(Collectors.toList()); + for (EmsBaseCollectDeviceInfo deviceInfo : deviceInfoList) { + if (collectDeviceIdList.contains(deviceInfo.getCollectDeviceId())) { + continue; + } + if ((deviceInfo.getUpdateTime().getTime() + minuteValue) < date.getTime()) { + EmsRecordAlarmData alarmData = new EmsRecordAlarmData(); + alarmData.setCollectDeviceId(deviceInfo.getCollectDeviceId()); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(1L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData("设备离线已超过" + alarmRules.get(0).getDeviceOfflineTime() + "分钟"); + System.out.println("存入数据:" + alarmData); + emsRecordAlarmDataMapper.insertEmsRecordAlarmData(alarmData); + + } + } + } + + System.out.println("设备告警定时任务执行完毕"); + return R.ok(); + } + + /** + * 超过电阈值定时任务 + */ + @GlobalTransactional(rollbackFor = Exception.class) + public R exceedDnbThresholdAlarmsTask() { + System.out.println("开始执行超过电阈值定时任务"); + EmsBaseMonitorThreshold monitorThreshold = new EmsBaseMonitorThreshold(); + monitorThreshold.setMonitorType(2L); + List thresholdList = emsBaseMonitorThresholdMapper.selectEmsBaseMonitorThresholdList(monitorThreshold); + + EmsRecordDnbInstant dnbInstant = new EmsRecordDnbInstant(); + List dnbInstantList = emsRecordDnbInstantMapper.selectEmsRecordDnbInstantList(dnbInstant); + Map thresholdMap = compareThresholdAndRecord(thresholdList, dnbInstantList); + //防止多次存入异常数据 + EmsRecordAlarmData recordAlarmData = new EmsRecordAlarmData(); + recordAlarmData.setAlarmType(0L); + recordAlarmData.setAlarmStatus(1L); + List alarmDataList = emsRecordAlarmDataMapper.selectEmsRecordAlarmDataList(recordAlarmData); + List monitorIdList = alarmDataList.stream().map(EmsRecordAlarmData::getMonitorId).collect(Collectors.toList()); + for (String monitorId : thresholdMap.keySet()) { + if (monitorIdList.contains(monitorId)) { + continue; + } + EmsRecordAlarmData alarmData = new EmsRecordAlarmData(); + alarmData.setMonitorId(monitorId); + alarmData.setCollectTime(new Date()); + alarmData.setAlarmType(0L); + alarmData.setAlarmStatus(1L); + alarmData.setAlarmData(thresholdMap.get(monitorId)); + System.out.println("存入数据:" + alarmData); + emsRecordAlarmDataMapper.insertEmsRecordAlarmData(alarmData); + + } + + System.out.println("完成超过阈值定时任务"); + return R.ok(); + } + + /** + * 超过电阈值 对比记录 + * + * @param baseDnbThresholds + * @param recordDnbInstants + * @return + */ + public Map compareThresholdAndRecord(List baseDnbThresholds, List recordDnbInstants) { + Map resultMap = new HashMap<>(); + for (EmsRecordDnbInstant recordDnbInstant : recordDnbInstants) { + String monitorCode = recordDnbInstant.getMonitorCode(); + EmsBaseMonitorThreshold baseDnbThreshold = null; + for (EmsBaseMonitorThreshold threshold : baseDnbThresholds) { + if (threshold.getMonitorCode().equals(monitorCode)) { + baseDnbThreshold = threshold; + break; + } + } + if (baseDnbThreshold != null) { + String reason = compare(recordDnbInstant, baseDnbThreshold); + if (reason != null) { + resultMap.put(monitorCode, reason); + } + } + } + return resultMap; + } + + private String compare(EmsRecordDnbInstant recordDnbInstant, EmsBaseMonitorThreshold baseDnbThreshold) { + if (StringUtils.isNull(recordDnbInstant.getIA())) { + return null; + } + BigDecimal zero = new BigDecimal("0.00"); + if (recordDnbInstant.getVA().compareTo(zero) == 0 || recordDnbInstant.getVB().compareTo(zero) == 0 + || recordDnbInstant.getVC().compareTo(zero) == 0) { + return "缺项报警"; + } + if (recordDnbInstant.getIA().compareTo(baseDnbThreshold.getIBMin()) > 0) { + return "超过A相电流最大值"; + } + if (recordDnbInstant.getIB().compareTo(baseDnbThreshold.getIBMax()) > 0) { + return "超过B相电流最大值"; + } + if (recordDnbInstant.getIC().compareTo(baseDnbThreshold.getICMax()) > 0) { + return "超过C相电流最大值"; + } + if (recordDnbInstant.getVA().compareTo(baseDnbThreshold.getVAMax()) > 0) { + return "超过A相电压最大值"; + } + if (recordDnbInstant.getVB().compareTo(baseDnbThreshold.getVBMax()) > 0) { + return "超过B相电压最大值"; + } + if (recordDnbInstant.getVC().compareTo(baseDnbThreshold.getVCMax()) > 0) { + return "超过C相电压最大值"; + } + if (recordDnbInstant.getIA().compareTo(baseDnbThreshold.getIAMin()) < 0) { + return "小于A相电流最小值"; + } + if (recordDnbInstant.getIB().compareTo(baseDnbThreshold.getIBMin()) < 0) { + return "小于B相电流最小值"; + } + if (recordDnbInstant.getIC().compareTo(baseDnbThreshold.getICMin()) < 0) { + return "小于C相电流最小值"; + } + if (recordDnbInstant.getVA().compareTo(baseDnbThreshold.getVAMin()) < 0) { + return "小于A相电压最小值"; + } + if (recordDnbInstant.getVB().compareTo(baseDnbThreshold.getVBMin()) < 0) { + return "小于B相电压最小值"; + } + if (recordDnbInstant.getVC().compareTo(baseDnbThreshold.getVCMin()) < 0) { + return "小于C相电压最小值"; + } + return null; + } + + /** + * 小时耗量告警定时任务 + */ + @GlobalTransactional(rollbackFor = Exception.class) + public R hourlyConsumptionAlarmsTask() { + System.out.println("开始执行小时耗量告警定时任务"); + EmsBaseMonitorThreshold monitorThreshold = new EmsBaseMonitorThreshold(); + monitorThreshold.setMonitorType(2L); + List thresholdList = emsBaseMonitorThresholdMapper.selectEmsBaseMonitorThresholdList(monitorThreshold); + for (EmsBaseMonitorThreshold threshold : thresholdList) { + BigDecimal consumption = threshold.getHourConsumption(); + if (consumption.equals(new BigDecimal(0))){ + continue; + } + EmsReportPointDnb reportPointDnb = new EmsReportPointDnb(); + reportPointDnb.setMonitorCode(threshold.getMonitorCode()); + System.out.println("查询数据:" + reportPointDnb); + List dnbList = emsReportPointDnbMapper.selectEmsReportPointDnbList(reportPointDnb); + } + System.out.println("完成小时耗量告警定时任务"); + return R.ok(); + } + +} diff --git a/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/HwMomEmsApplication.java b/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/HwMomEmsApplication.java index 0d3b99ca..38c718c8 100644 --- a/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/HwMomEmsApplication.java +++ b/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/HwMomEmsApplication.java @@ -6,6 +6,7 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup; import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.scheduling.annotation.EnableScheduling; /** * 系统模块 @@ -15,6 +16,7 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties @EnableDubbo @SpringBootApplication @EnableConfigurationProperties(MesProperties.class) +@EnableScheduling public class HwMomEmsApplication { public static void main(String[] args) { SpringApplication application = new SpringApplication(HwMomEmsApplication.class); diff --git a/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/record/service/IEmsRecordAlarmDataService.java b/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/record/service/IEmsRecordAlarmDataService.java index 7ff4ad47..63976211 100644 --- a/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/record/service/IEmsRecordAlarmDataService.java +++ b/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/record/service/IEmsRecordAlarmDataService.java @@ -79,19 +79,19 @@ public interface IEmsRecordAlarmDataService */ public int handleExceptionsAlarmData(Long[] objIds); - /** +/* *//** * 采集设备告警定时任务 - */ + *//* public void collectDeviceAlarmsTask(); - /** + *//** * 超过电阈值定时任务 - */ + *//* public void exceedDnbThresholdAlarmsTask(); - /** + *//** * 小时耗量告警定时任务 - */ - public void hourlyConsumptionAlarmsTask(); + *//* + public void hourlyConsumptionAlarmsTask();*/ } diff --git a/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/record/service/impl/EmsRecordAlarmDataServiceImpl.java b/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/record/service/impl/EmsRecordAlarmDataServiceImpl.java index c02470d5..2f2b3406 100644 --- a/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/record/service/impl/EmsRecordAlarmDataServiceImpl.java +++ b/ruoyi-modules/hwmom-ems/src/main/java/org/dromara/ems/record/service/impl/EmsRecordAlarmDataServiceImpl.java @@ -24,6 +24,7 @@ import org.dromara.ems.record.mapper.EmsRecordDnbInstantMapper; import org.dromara.ems.record.service.IEmsRecordAlarmDataService; import org.dromara.ems.report.domain.EmsReportPointDnb; import org.dromara.ems.report.mapper.EmsReportPointDnbMapper; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -192,10 +193,15 @@ public class EmsRecordAlarmDataServiceImpl implements IEmsRecordAlarmDataService } return 1; } +/* - /** + */ +/** * 采集设备告警定时任务 - */ + *//* + +// @Scheduled(cron = "0 0/9 * * * ?") + @Transactional(rollbackFor = Exception.class) public void collectDeviceAlarmsTask() { long minuteValue = 1000 * 60; Date date = new Date(); @@ -235,9 +241,13 @@ public class EmsRecordAlarmDataServiceImpl implements IEmsRecordAlarmDataService } } - /** + */ +/** * 超过电阈值定时任务 - */ + *//* + +// @Scheduled(cron = "0 0/8 * * * ?") + @Transactional(rollbackFor = Exception.class) public void exceedDnbThresholdAlarmsTask() { EmsBaseMonitorThreshold monitorThreshold = new EmsBaseMonitorThreshold(); monitorThreshold.setMonitorType(2L); @@ -267,13 +277,15 @@ public class EmsRecordAlarmDataServiceImpl implements IEmsRecordAlarmDataService } - /** + */ +/** * 超过电阈值 对比记录 * * @param baseDnbThresholds * @param recordDnbInstants * @return - */ + *//* + public Map compareThresholdAndRecord(List baseDnbThresholds, List recordDnbInstants) { Map resultMap = new HashMap<>(); for (EmsRecordDnbInstant recordDnbInstant : recordDnbInstants) { @@ -343,9 +355,13 @@ public class EmsRecordAlarmDataServiceImpl implements IEmsRecordAlarmDataService return null; } - /** + */ +/** * 小时耗量告警定时任务 - */ + *//* + +// @Scheduled(cron = "0 0 0/1 * * ?") + @Transactional(rollbackFor = Exception.class) public void hourlyConsumptionAlarmsTask() { EmsBaseMonitorThreshold monitorThreshold = new EmsBaseMonitorThreshold(); monitorThreshold.setMonitorType(2L); @@ -361,5 +377,6 @@ public class EmsRecordAlarmDataServiceImpl implements IEmsRecordAlarmDataService } } +*/ } diff --git a/ruoyi-modules/ruoyi-job/pom.xml b/ruoyi-modules/ruoyi-job/pom.xml index 478d2706..28ac6d44 100644 --- a/ruoyi-modules/ruoyi-job/pom.xml +++ b/ruoyi-modules/ruoyi-job/pom.xml @@ -115,14 +115,21 @@ 2.2.2 - + + + diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsCollectDeviceAlarmsTask.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsCollectDeviceAlarmsTask.java new file mode 100644 index 00000000..0ad22f95 --- /dev/null +++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsCollectDeviceAlarmsTask.java @@ -0,0 +1,38 @@ +package org.dromara.job.snailjob; + +import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; +import com.aizuda.snailjob.client.job.core.dto.JobArgs; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.common.core.domain.R; +import org.dromara.ems.api.RemoteEmsTaskService; +import org.springframework.stereotype.Component; + +@Component +@JobExecutor(name = "collectDeviceAlarmsTask") +public class EmsCollectDeviceAlarmsTask { + + private static final ObjectMapper objectMapper = new ObjectMapper(); + + + @DubboReference(timeout = 60000) + private RemoteEmsTaskService remoteEmsTaskService; + + + public EmsCollectDeviceAlarmsTask(RemoteEmsTaskService remoteEmsTaskService) { + this.remoteEmsTaskService = remoteEmsTaskService; + } + + + public ExecuteResult jobExecute(JobArgs jobArgs) { + try { + + R instance = remoteEmsTaskService.collectDeviceAlarmsTask(); + return ExecuteResult.success(instance); + } catch (Exception e) { + return ExecuteResult.failure(e.getMessage()); + } + } + +} diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsExceedDnbThresholdAlarmsTask.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsExceedDnbThresholdAlarmsTask.java new file mode 100644 index 00000000..b0a6c10a --- /dev/null +++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsExceedDnbThresholdAlarmsTask.java @@ -0,0 +1,38 @@ +package org.dromara.job.snailjob; + +import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; +import com.aizuda.snailjob.client.job.core.dto.JobArgs; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.common.core.domain.R; +import org.dromara.ems.api.RemoteEmsTaskService; +import org.springframework.stereotype.Component; + +@Component +@JobExecutor(name = "exceedDnbThresholdAlarmsTask") +public class EmsExceedDnbThresholdAlarmsTask { + + private static final ObjectMapper objectMapper = new ObjectMapper(); + + + @DubboReference(timeout = 60000) + private RemoteEmsTaskService remoteEmsTaskService; + + + public EmsExceedDnbThresholdAlarmsTask(RemoteEmsTaskService remoteEmsTaskService) { + this.remoteEmsTaskService = remoteEmsTaskService; + } + + + public ExecuteResult jobExecute(JobArgs jobArgs) { + try { + + R instance = remoteEmsTaskService.exceedDnbThresholdAlarmsTask(); + return ExecuteResult.success(instance); + } catch (Exception e) { + return ExecuteResult.failure(e.getMessage()); + } + } + +} diff --git a/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsHourlyConsumptionAlarmsTask.java b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsHourlyConsumptionAlarmsTask.java new file mode 100644 index 00000000..075e182e --- /dev/null +++ b/ruoyi-modules/ruoyi-job/src/main/java/org/dromara/job/snailjob/EmsHourlyConsumptionAlarmsTask.java @@ -0,0 +1,38 @@ +package org.dromara.job.snailjob; + +import com.aizuda.snailjob.client.job.core.annotation.JobExecutor; +import com.aizuda.snailjob.client.job.core.dto.JobArgs; +import com.aizuda.snailjob.client.model.ExecuteResult; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.common.core.domain.R; +import org.dromara.ems.api.RemoteEmsTaskService; +import org.springframework.stereotype.Component; + +@Component +@JobExecutor(name = "hourlyConsumptionAlarmsTask") +public class EmsHourlyConsumptionAlarmsTask { + + private static final ObjectMapper objectMapper = new ObjectMapper(); + + + @DubboReference(timeout = 60000) + private RemoteEmsTaskService remoteEmsTaskService; + + + public EmsHourlyConsumptionAlarmsTask(RemoteEmsTaskService remoteEmsTaskService) { + this.remoteEmsTaskService = remoteEmsTaskService; + } + + + public ExecuteResult jobExecute(JobArgs jobArgs) { + try { + + R instance = remoteEmsTaskService.hourlyConsumptionAlarmsTask(); + return ExecuteResult.success(instance); + } catch (Exception e) { + return ExecuteResult.failure(e.getMessage()); + } + } + +}