From 1c78a01246355e8549fa5387fd006333648ba7be Mon Sep 17 00:00:00 2001 From: "review512jwy@163.com" <“review512jwy@163.com”> Date: Thu, 26 Feb 2026 10:11:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9C=A8redis=E9=87=8C=E5=AD=98=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E8=AE=BE=E5=A4=87=E4=B8=8A=E4=B8=80=E5=A4=A9=E6=9C=80?= =?UTF-8?q?=E5=90=8E=E4=B8=80=E6=9D=A1=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datacenter/sender/constants/Constants.java | 2 ++ .../sender/entitiy/bastatus/LatestValueBO.java | 9 +++++++++ .../sender/service/impl/DataProcessServiceImpl.java | 9 +++++++++ .../techsor/datacenter/sender/utils/DateUtils.java | 12 ++++++++++++ 4 files changed, 32 insertions(+) create mode 100644 src/main/java/com/techsor/datacenter/sender/entitiy/bastatus/LatestValueBO.java diff --git a/src/main/java/com/techsor/datacenter/sender/constants/Constants.java b/src/main/java/com/techsor/datacenter/sender/constants/Constants.java index bf6d16c..0227e8b 100644 --- a/src/main/java/com/techsor/datacenter/sender/constants/Constants.java +++ b/src/main/java/com/techsor/datacenter/sender/constants/Constants.java @@ -15,6 +15,8 @@ public class Constants { public static final String ALERT_CANCEL_INFO = "【%s アラートメール】%s %s の%s解除を検知しました"; public static final String ALERT_INFO = "【%s アラートメール】%s %s で%sしました"; + public static final String REDIS_BA_STATUS_LATEST_VALUE = "ba_status_latest_value_"; + // public static Logger logger = LoggerFactory.getLogger(AlarmDataPush.class); // //"http://tokyo-build-web-alb-481573367.ap-northeast-1.elb.amazonaws.com:20008/api/targetConfig/config/queryByDeviceId?deviceId="; diff --git a/src/main/java/com/techsor/datacenter/sender/entitiy/bastatus/LatestValueBO.java b/src/main/java/com/techsor/datacenter/sender/entitiy/bastatus/LatestValueBO.java new file mode 100644 index 0000000..fb6f897 --- /dev/null +++ b/src/main/java/com/techsor/datacenter/sender/entitiy/bastatus/LatestValueBO.java @@ -0,0 +1,9 @@ +package com.techsor.datacenter.sender.entitiy.bastatus; + +import lombok.Data; + +@Data +public class LatestValueBO { + private Long updateTs; + private Integer value; +} diff --git a/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java b/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java index 9bd7fe6..f3507e9 100644 --- a/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java +++ b/src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java @@ -31,6 +31,7 @@ import com.techsor.datacenter.sender.entitiy.*; import com.techsor.datacenter.sender.entitiy.bastatus.BaStatusEntity; import com.techsor.datacenter.sender.entitiy.bastatus.BaStatusHistoryEntity; import com.techsor.datacenter.sender.entitiy.bastatus.BaStatusThirdReqEntity; +import com.techsor.datacenter.sender.entitiy.bastatus.LatestValueBO; import com.techsor.datacenter.sender.entitiy.company.CompanyEntity; import com.techsor.datacenter.sender.entitiy.delta.DeltaNumEntity; import com.techsor.datacenter.sender.entitiy.kingio.KingIODataItemEntity; @@ -1479,6 +1480,14 @@ public class DataProcessServiceImpl implements IDataProcessService { }catch (Exception e){ log.error("Insert ba_status_history Error:",e.getMessage(),e.fillInStackTrace()); } + // 缓存redis + LatestValueBO latestValueBO = new LatestValueBO(); + latestValueBO.setUpdateTs(update_ts); + latestValueBO.setValue(value); + String redisKey = Constants.REDIS_BA_STATUS_LATEST_VALUE + DateUtils.getCurrentDate(update_ts); + this.redisTemplate.opsForHash().put(redisKey, deviceId.toLowerCase(), JSONObject.toJSONString(latestValueBO)); + this.redisTemplate.expire(redisKey, 2, TimeUnit.DAYS); + //Update Or insert to mysql [ba_status_statistics] if (historyData==null){ //insert diff --git a/src/main/java/com/techsor/datacenter/sender/utils/DateUtils.java b/src/main/java/com/techsor/datacenter/sender/utils/DateUtils.java index 1c13d8d..2e82096 100644 --- a/src/main/java/com/techsor/datacenter/sender/utils/DateUtils.java +++ b/src/main/java/com/techsor/datacenter/sender/utils/DateUtils.java @@ -68,6 +68,18 @@ public class DateUtils { return formatDateTime; } + public static String getCurrentDate(long timestampMillis) { + // 创建一个 Instant 对象,表示毫秒级时间戳 + Instant instant = Instant.ofEpochMilli(timestampMillis); + + // 设置时区为日本时区(Asia/Tokyo) + ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("Asia/Tokyo")); + + // 格式化输出,只保留年月日 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy_MM_dd"); + return zonedDateTime.format(formatter); + } + public static Map getComplexDate() { ZoneId zoneId = ZoneId.of("Asia/Tokyo"); LocalDateTime now = LocalDateTime.now(zoneId);