From 0f4459e4201fdc19185b7dd03215871f036acd70 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期三, 28 五月 2025 16:45:01 +0800 Subject: [PATCH] Merge branch 'dev' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile into dev --- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TScreenContentMapper.java | 1 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ScreenStorageConfigVO.java | 5 ++ ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java | 4 +- ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EnergyRefreshService.java | 83 ++++++++++++++++++++++++++++++----------- ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/governmentCloud/UploadDataTaskUtil.java | 4 +- 5 files changed, 69 insertions(+), 28 deletions(-) diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/governmentCloud/UploadDataTaskUtil.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/governmentCloud/UploadDataTaskUtil.java index 7b39d9a..a5f9da3 100644 --- a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/governmentCloud/UploadDataTaskUtil.java +++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/governmentCloud/UploadDataTaskUtil.java @@ -38,8 +38,8 @@ /** * 每天的9点执行的任务 */ -// @Scheduled(cron = "0 0 9 * * *") - @Scheduled(fixedRate = 60000) + @Scheduled(cron = "0 0 9 * * *") +// @Scheduled(fixedRate = 60000) public void taskDay(){ try { // 传输mongodb的硬件数据 diff --git a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java index 92f360b..6a485d5 100644 --- a/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java +++ b/ruoyi-service/ruoyi-jianguan/src/main/java/com/ruoyi/jianguan/mqtt/util/MqttPushUtil.java @@ -18,10 +18,10 @@ // private final static String CLIENT_ID = "mqttx_3267186711111fdsasdsa"; // private final static String USER_NAME = "admin"; // private final static String PASS_WORD = "mingxingdianli123"; - private final static String HOST = "tcp://183.220.129.95:1883"; + private final static String HOST = "tcp://182.129.202.2:1883"; private final static String CLIENT_ID = "mqttx_3267186711111mxcdszyun"; private final static String USER_NAME = "mxEmqx"; - private final static String PASS_WORD = "admin"; + private final static String PASS_WORD = "csDN_wlwpt"; private final static Integer TIME_OUT = 30000; private final static Integer KEEP_ALIVE = 60000; private MqttClient mqttClient; diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TScreenContentMapper.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TScreenContentMapper.java index 8bec3aa..c353eab 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TScreenContentMapper.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/mapper/TScreenContentMapper.java @@ -1,7 +1,6 @@ package com.ruoyi.other.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.ruoyi.other.api.domain.TNotice; import com.ruoyi.other.api.domain.TScreenContent; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; 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 e5cd892..fa1937a 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,9 +1,17 @@ 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.LocalTime; @@ -12,60 +20,89 @@ @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); - } + 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; } - // 检查当前时间是否在允许的时间段内 - 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); - + //更新值 + 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() { - return currentValue; + //获取系统建设日期和累计储能放电量 + 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点执行 public void reset() { - this.currentValue = BigDecimal.ZERO; + BigDecimal currentValue = BigDecimal.ZERO.setScale(2, RoundingMode.HALF_UP); + updateCurrentValue(currentValue); + //更新 this.isRunning = true; } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ScreenStorageConfigVO.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ScreenStorageConfigVO.java index efee467..5d3c27f 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ScreenStorageConfigVO.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ScreenStorageConfigVO.java @@ -25,4 +25,9 @@ */ @JsonFormat(pattern = "yyyy-MM-dd") private LocalDate lastUpdated; + + /** + * 储能放电情况 今日放能 规定时间内 随机增长 凌晨数值重置 + */ + private BigDecimal currentValue; } -- Gitblit v1.7.1