|  |  |  | 
|---|
|  |  |  | if (StringUtils.isEmpty(alarmLevel)) { | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Double> list = JSONObject.parseObject(alarmLevel, List.class); | 
|---|
|  |  |  | List<Object> list = JSONObject.parseObject(alarmLevel, List.class); | 
|---|
|  |  |  | String sensorCode = sensor.getCode(); | 
|---|
|  |  |  | //转换公式 | 
|---|
|  |  |  | String formula = sensor.getFormula(); | 
|---|
|  |  |  | //转换单位前因子值 | 
|---|
|  |  |  | String sensorValue = (String) deviceData.get(sensorCode); | 
|---|
|  |  |  | double value = Double.parseDouble(String.format("%.4f", sensorValue)); | 
|---|
|  |  |  | double value = Double.parseDouble(sensorValue); | 
|---|
|  |  |  | //单位转换 | 
|---|
|  |  |  | if (formula != null) { | 
|---|
|  |  |  | //转换后因子值 | 
|---|
|  |  |  | sensorValue = formula.replace("{0}", sensorValue); | 
|---|
|  |  |  | expression = AviatorEvaluator.compile(sensorValue); | 
|---|
|  |  |  | value = Double.parseDouble(String.format("%.4f", expression.execute())); | 
|---|
|  |  |  | value = Double.parseDouble(expression.execute().toString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | int sensorState = judgeState(list, value); | 
|---|
|  |  |  | if (sensorState > state) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //根据因子值判断状态 | 
|---|
|  |  |  | private int judgeState(List<Double> levels, Double data) { | 
|---|
|  |  |  | private int judgeState(List<Object> levels, Double data) { | 
|---|
|  |  |  | int state = 1; | 
|---|
|  |  |  | for (int i = levels.size() - 1; i >= 0; i--) { | 
|---|
|  |  |  | Double level = levels.get(i); | 
|---|
|  |  |  | Double level = Double.parseDouble(levels.get(i).toString()); | 
|---|
|  |  |  | if (data >= level) { | 
|---|
|  |  |  | state = i + 2; | 
|---|
|  |  |  | break; | 
|---|