From 25576c047e39101a4784d8acffc92af3f35aa215 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Tue, 29 Nov 2022 16:34:32 +0800 Subject: [PATCH] 解决国控站数据补偿问题 --- screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java | 20 ++++++++++++++++---- 1 files changed, 16 insertions(+), 4 deletions(-) diff --git a/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java b/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java index c17d2c5..3071566 100644 --- a/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java +++ b/screen-manage/src/main/java/com/moral/api/util/AdjustDataUtils.java @@ -5,11 +5,13 @@ import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; +import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import com.alibaba.fastjson.JSON; import com.googlecode.aviator.AviatorEvaluator; @@ -23,7 +25,7 @@ public class AdjustDataUtils { /** * @param deviceData ������������ - * @param adjustFormula ������������ + * @param adjustFormula ������������������������������������������������key���������code,value������������������������������������������List��� * @param aqiMap ������������������������������aqi������ * @return Map<String, Object> ��������������� */ @@ -35,6 +37,14 @@ //������������������������������������������������������ if (deviceData.get(Constants.SENSOR_CODE_CURRENT_SPEED) != null) { deviceData = adjustFlueSpeedAndFlow(deviceData, adjustFormula); + } + + //������������������������������������������������ + Set<String> dateKey = deviceData.keySet(); + for (String adjustKey : adjustFormula.keySet()) { + if (!dateKey.contains(adjustKey)) { + deviceData.put(adjustKey, "0"); + } } for (String key : deviceData.keySet()) { @@ -68,14 +78,15 @@ if (aqiMap != null) { aqiValue = aqiMap.get(key); } - env.put("aqi", ObjectUtils.isEmpty(aqiValue) ? 0F : Float.parseFloat((String) aqiValue)); + env.put("aqi", ObjectUtils.isEmpty(aqiValue) ? 0F : new BigDecimal(String.valueOf(aqiValue)).floatValue()); } if (formula.contains("vocs")) { Object vocsValue = ObjectUtils.isEmpty(deviceData.get(Constants.SENSOR_CODE_VOCS)) ? 0F : deviceData.get(Constants.SENSOR_CODE_VOCS); env.put("vocs", vocsValue); } if (formula.contains("cel")) { - env.put("cel", Float.parseFloat((String) measuredValue)); + //env.put("cel", Float.parseFloat((String) measuredValue)); + env.put("cel", new BigDecimal(String.valueOf(measuredValue)).floatValue()); } //������ measuredValue = expression.execute(env); @@ -94,7 +105,8 @@ /** * ��������������������������������� - * @param deviceData ��������������������������������������������������������������������������������������������������������� + * + * @param deviceData ��������������������������������������������������������������������������������������������������������� * @param adjustFormula ���������������������������������������������������key���������code */ public Map<String, Object> adjustFlueSpeedAndFlow(Map<String, Object> deviceData, Map<String, Object> adjustFormula) { -- Gitblit v1.8.0