From 8b0cf2731d2b61999fdd1aeee91567dc47d67e14 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 11 七月 2025 14:26:08 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java | 99 ++++++++++--------------------------------------- 1 files changed, 20 insertions(+), 79 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 fa1937a..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 @@ -14,96 +14,37 @@ 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(); @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; // 控制任务是否继续执行 - - // 定时任务方法 - @Scheduled(cron = "0 */15 * * * ?")//15分钟执行一次 - public synchronized void refreshValue() { - // 检查当前时间是否在允许的时间段内 - 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; - } - - - //获取当前值 - BigDecimal currentValue = getCurrentValue(); - // 检查是否已停止或达到目标范围 - if (!isRunning || isWithinTargetRange(currentValue)) { - isRunning = false; - return; - } - - - // 生成随机增量并更新值 - int increment = random.nextInt(maxIncrement + 1); - currentValue = currentValue.add(BigDecimal.valueOf(increment)) - .setScale(2, RoundingMode.HALF_UP); - //更新值 - updateCurrentValue(currentValue); - 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() { - //获取系统建设日期和累计储能放电量 - TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(new LambdaQueryWrapper<TSystemConfiguration>() - .eq(TSystemConfiguration::getType,3)); - //解析 - ScreenStorageConfigVO configVO = JSON.parseObject(sysConfig.getContent(), ScreenStorageConfigVO.class); - return configVO.getCurrentValue(); - } - - /** - * 更新当前值 - */ - private void updateCurrentValue(BigDecimal currentValue) { - //获取系统建设日期和累计储能放电量 - TSystemConfiguration sysConfig = systemConfigurationMapper.selectOne(new LambdaQueryWrapper<TSystemConfiguration>() - .eq(TSystemConfiguration::getType,3)); - //解析 - ScreenStorageConfigVO configVO = JSON.parseObject(sysConfig.getContent(), ScreenStorageConfigVO.class); - //更新 - configVO.setCurrentValue(currentValue); - String json = JSON.toJSONString(configVO); - sysConfig.setContent(json); - systemConfigurationMapper.updateById(sysConfig); - } - - - - // 重置任务 - @Scheduled(cron = "0 0 0 * * ?") // 每天凌晨0点执行 + // 记录截至昨天的总量(每天凌晨0点) + @Scheduled(cron = "0 0 0 * * ?") public void reset() { - BigDecimal currentValue = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); - updateCurrentValue(currentValue); - //更新 - 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