From eed6f839f6f3ec2c686ed9d97cdb8eeac9f57e58 Mon Sep 17 00:00:00 2001 From: mashili Date: Mon, 13 Oct 2025 11:37:03 +0800 Subject: [PATCH] =?UTF-8?q?0918=E7=94=B5=E4=BB=B7-=E7=AB=99=E7=82=B9?= =?UTF-8?q?=E7=9A=84=E5=AE=9E=E6=97=B6=E6=80=BB=E6=94=B6=E5=85=A5=E5=92=8C?= =?UTF-8?q?=E5=AE=9E=E6=97=B6=E5=BD=93=E6=97=A5=E6=94=B6=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/xzzn/common/utils/DateUtils.java | 15 +++++++++++++++ .../service/impl/DDSDataProcessServiceImpl.java | 11 ++++++----- .../service/impl/FXXDataProcessServiceImpl.java | 5 +++-- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/ems-common/src/main/java/com/xzzn/common/utils/DateUtils.java b/ems-common/src/main/java/com/xzzn/common/utils/DateUtils.java index cb03d6c..fb0ddc2 100644 --- a/ems-common/src/main/java/com/xzzn/common/utils/DateUtils.java +++ b/ems-common/src/main/java/com/xzzn/common/utils/DateUtils.java @@ -393,4 +393,19 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils // 3. 转换为Date return new Date(updateTime); } + + /** + * 获取昨天的日期,格式为yyyy-MM-dd + * @return 昨天的日期字符串 + */ + public static String getYesterdayDayString() { + // 获取今天的日期 + LocalDate today = LocalDate.now(); + // 减去一天得到昨天 + LocalDate yesterday = today.minusDays(1); + // 定义日期格式化器 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(YYYYMMDD); + // 格式化并返回 + return yesterday.format(formatter); + } } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java index bf2ac4c..06cf38e 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/DDSDataProcessServiceImpl.java @@ -954,13 +954,13 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl String yestDate = DateUtils.getYesterdayDate(); String yestDateRedisKey = RedisKeyConstants.AMMETER + SITE_ID + "_" + deviceId + "_" + yestDate; EmsAmmeterData yestData = redisCache.getCacheObject(yestDateRedisKey); - if (yestDate == null) { + if (yestData == null) { // redis没有这查电表总数据表取截止到昨日最新第一条数据 yestData = emsAmmeterDataMapper.getYestLatestDate(SITE_ID,deviceId,yestDate); // 数据存redis-有效期1天 - redisCache.setCacheObject(yestDateRedisKey, yestDate , Constants.DATE_VALID_TIME, TimeUnit.DAYS); + redisCache.setCacheObject(yestDateRedisKey, yestData , Constants.DATE_VALID_TIME, TimeUnit.DAYS); } - if (yestDate != null) { + if (yestData != null) { // 今日总数据-昨日总数据=今日充放电 BigDecimal yestTotalDisChargeDate = yestData.getCurrentReverseActiveTotal(); BigDecimal yestTotalChargeDate = yestData.getCurrentForwardActiveTotal(); @@ -1046,14 +1046,15 @@ public class DDSDataProcessServiceImpl extends AbstractBatteryDataProcessor impl private BigDecimal getYestLastData(String siteId) { // dds存的是累计到昨日总收益 - String redisKey = RedisKeyConstants.DDS_TOTAL_REVENUE + siteId; + String yestDate = DateUtils.getYesterdayDayString(); + String redisKey = RedisKeyConstants.DDS_TOTAL_REVENUE + siteId + "_" + yestDate; BigDecimal yestLastTotalRevenue = redisCache.getCacheObject(redisKey); if (yestLastTotalRevenue == null) { yestLastTotalRevenue = emsDailyEnergyDataMapper.getLastTotalRevenue(siteId); if (yestLastTotalRevenue == null) { yestLastTotalRevenue = BigDecimal.ZERO; } - redisCache.setCacheObject(redisKey, yestLastTotalRevenue); + redisCache.setCacheObject(redisKey, yestLastTotalRevenue, 1 , TimeUnit.DAYS); } return yestLastTotalRevenue; } diff --git a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java index a25939c..3b8491b 100644 --- a/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java +++ b/ems-system/src/main/java/com/xzzn/ems/service/impl/FXXDataProcessServiceImpl.java @@ -910,7 +910,8 @@ public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor impl private Map getLastData(String siteId) { // dds存的是累计到昨日总收益 - String redisKey = RedisKeyConstants.FXX_REALTIME_REVENUE + siteId; + String yestDate = DateUtils.getYesterdayDayString(); + String redisKey = RedisKeyConstants.FXX_REALTIME_REVENUE + siteId + "_" + yestDate; Map realTimeRevenue = redisCache.getCacheObject(redisKey); if (realTimeRevenue == null) { realTimeRevenue = emsDailyEnergyDataMapper.getRealTimeRevenue(siteId); @@ -919,7 +920,7 @@ public class FXXDataProcessServiceImpl extends AbstractBatteryDataProcessor impl realTimeRevenue.put("totalRevenue", BigDecimal.ZERO); realTimeRevenue.put("dayRevenue", BigDecimal.ZERO); } - redisCache.setCacheObject(redisKey, realTimeRevenue); + redisCache.setCacheObject(redisKey, realTimeRevenue, 1, TimeUnit.DAYS); } return realTimeRevenue; }