From 988bbb6fe92380ba992a146ed94df2d8973a4edb Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期四, 10 七月 2025 16:48:47 +0800 Subject: [PATCH] 储能对接 --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java | 82 +++++++++++++++-------------------------- 1 files changed, 30 insertions(+), 52 deletions(-) diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java index 9a90ec5..d7aa1f6 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java @@ -1,72 +1,50 @@ package com.ruoyi.other.util; +import com.alibaba.fastjson2.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.other.api.domain.TSystemConfiguration; +import com.ruoyi.other.mapper.TSystemConfigurationMapper; +import com.ruoyi.other.vo.ScreenStorageConfigVO; +import lombok.Getter; +import lombok.Setter; import lombok.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.LocalDate; import java.time.LocalTime; +import java.util.List; import java.util.Random; + +/** + * 定时任务:储能放电情况 光伏发电情况 + */ @Service public class EnergyRefreshService { private final Random random = new Random(); - private BigDecimal currentValue; - + @Resource + private TSystemConfigurationMapper systemConfigurationMapper; - private final BigDecimal targetLow = new BigDecimal("85"); - private final BigDecimal targetHigh = new BigDecimal("87"); - - - private final int maxIncrement = 10; - - private boolean isRunning = true; // 控制任务是否继续执行 - - public EnergyRefreshService() { - this.currentValue = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); - } - - // 定时任务方法 - @Scheduled(cron = "${0 */15 * * * ?}")//15分钟执行一次 - public synchronized void refreshValue() { - // 检查是否已停止或达到目标范围 - if (!isRunning || isWithinTargetRange(currentValue)) { - isRunning = false; - return; - } - - // 检查当前时间是否在允许的时间段内 - LocalTime now = LocalTime.now(); - boolean isInMorning = now.isAfter(LocalTime.of(10, 0)) && now.isBefore(LocalTime.of(12, 0)); - boolean isInAfternoon = now.isAfter(LocalTime.of(15, 0)) && now.isBefore(LocalTime.of(21, 0)); - - if (!isInMorning && !isInAfternoon) { - return; - } - - // 生成随机增量并更新值 - int increment = random.nextInt(maxIncrement + 1); - currentValue = currentValue.add(BigDecimal.valueOf(increment)) - .setScale(2, RoundingMode.HALF_UP); - - System.out.printf("定时刷新:当前时间 %s,当前值:%.2f%n", now, currentValue); - } - - private boolean isWithinTargetRange(BigDecimal value) { - return value.compareTo(targetLow) >= 0 && value.compareTo(targetHigh) <= 0; - } - - // 提供获取当前值的方法 - public BigDecimal getCurrentValue() { - return currentValue; - } - - // 重置任务 + // 记录截至昨天的总量(每天凌晨0点) + @Scheduled(cron = "0 0 0 * * ?") public void reset() { - this.currentValue = BigDecimal.ZERO; - this.isRunning = true; + String electricity = KsolarUtils.getElectricity(); + + TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(new LambdaQueryWrapper<TSystemConfiguration>() + .eq(TSystemConfiguration::getType,5)); + sysConfig.setContent(electricity.split("_")[0]); + systemConfigurationMapper.updateById(sysConfig); + + TSystemConfiguration sysConfig1 = systemConfigurationMapper.selectOne(new LambdaQueryWrapper<TSystemConfiguration>() + .eq(TSystemConfiguration::getType,4)); + sysConfig1.setContent(electricity.split("_")[1]); + systemConfigurationMapper.updateById(sysConfig1); + } -- Gitblit v1.7.1