Browse Source

在redis里存状态设备上一天最后一条状态

master
review512jwy@163.com 13 hours ago
parent
commit
1c78a01246
  1. 2
      src/main/java/com/techsor/datacenter/sender/constants/Constants.java
  2. 9
      src/main/java/com/techsor/datacenter/sender/entitiy/bastatus/LatestValueBO.java
  3. 9
      src/main/java/com/techsor/datacenter/sender/service/impl/DataProcessServiceImpl.java
  4. 12
      src/main/java/com/techsor/datacenter/sender/utils/DateUtils.java

2
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=";

9
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;
}

9
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

12
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<String, String> getComplexDate() {
ZoneId zoneId = ZoneId.of("Asia/Tokyo");
LocalDateTime now = LocalDateTime.now(zoneId);

Loading…
Cancel
Save