diff --git a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java index 1547679..eeeb799 100644 --- a/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java +++ b/dongjian-dashboard-back-service/src/main/java/com/dongjian/dashboard/back/service/impl/DeviceDataBaStatusServiceImpl.java @@ -196,11 +196,20 @@ public class DeviceDataBaStatusServiceImpl implements DeviceDataBaStatusService List yCommon = new ArrayList<>(); //** 获取昨日最新数据 **// + String redisKey = Constants.REDIS_BA_STATUS_LATEST_VALUE + DateUtil.getYesterdayInJapan(); + + boolean cacheExist = redisUtil.existsKey(redisKey); + Object cacheLastValue = redisUtil.HGet(redisKey, lineDataSearchParams.getDeviceId().toLowerCase()); if (null != cacheLastValue) { try { - LatestValueBO latestValueBO = objectMapper.readValue(JSONObject.toJSONString(cacheLastValue), LatestValueBO.class); + String value = cacheLastValue.toString(); + // 如果是被双引号包住的 JSON(双层 JSON) + if (value.startsWith("\"")) { + value = objectMapper.readValue(value, String.class); + } + LatestValueBO latestValueBO = objectMapper.readValue(value, LatestValueBO.class); String dateFormatted = Instant.ofEpochMilli(latestValueBO.getUpdateTs()) .atZone(Constants.ZONE_TOKYO) .format(Constants.FORMATTER_YMDHMS);