lizijie
2019-06-28 ccfdd4a9a8e97544a287bb669f6e088afc8d1fff
更改因换算单位后的数值
3 files modified
33 ■■■■■ changed files
pom.xml 6 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/ScreenController.java 23 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/SensorUnitServiceImpl.java 4 ●●●● patch | view | raw | blame | history
pom.xml
@@ -197,6 +197,12 @@
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.googlecode.aviator/aviator -->
        <dependency>
            <groupId>com.googlecode.aviator</groupId>
            <artifactId>aviator</artifactId>
            <version>4.2.0</version>
        </dependency>
    </dependencies>
    <build>
src/main/java/com/moral/controller/ScreenController.java
@@ -7,6 +7,7 @@
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -46,6 +47,8 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.googlecode.aviator.AviatorEvaluator;
import com.googlecode.aviator.Expression;
import com.moral.common.bean.Constants;
import com.moral.common.bean.JsonData;
import com.moral.common.bean.PageResult;
@@ -1007,15 +1010,33 @@
                if(sensorUnitMap!=null && !sensorUnitMap.isEmpty()) {
                    if(sensorUnitMap.get(string)!=null) {
                        units.add(sensorUnitMap.get(string).get("name").toString());
                        System.out.println("ScreenController-----AIForecast-----map2:"+string+":"+map.get(string));
                        String rules = sensorUnitMap.get(string).get("rules").toString();
                        rules = rules.replace("{0}", "a");
                        rules = rules.replace("d", "");
                        System.out.println(rules);
                        Expression expression = AviatorEvaluator.compile(rules);
                        Double value;
                        Map<String, Object> ev = new HashMap<>();
                        ev.put("a", map.get(string));
                        value = (Double) expression.execute(ev);
                        //保留两位小数
                        DecimalFormat df = new DecimalFormat("#.00");
                        value = Double.parseDouble(df.format(value));
                        System.out.println(map.get(string));
                        System.out.println(value);
                        values.add(value);
                    }else {
                        Map<String, Object> sensorMap = sensorService.getSensorBySensorKey(string);
                        units.add(sensorMap.get("unit").toString());
                        values.add((Number) map.remove(string));
                    }
                }else {
                    Map<String, Object> sensorMap = sensorService.getSensorBySensorKey(string);
                    units.add(sensorMap.get("unit").toString());
                    values.add((Number) map.remove(string));
                }
                values.add((Number) map.remove(string));
                //values.add((Number) map.remove(string));
            }
            map.put("values", values);
            map.put("units", units);
src/main/java/com/moral/service/impl/SensorUnitServiceImpl.java
@@ -110,15 +110,15 @@
    @Override
    public Map<String, Map<String, Object>> getSensorsByMonitPointId(String id) {
        List<Map<String, Object>> list = sensorUnitMapper.getSensorsByMonitPointId(id);
        System.out.println(list);
        if (list!=null && !list.isEmpty()) {
            Map<String, Object> innerMap = new HashMap<>();
            Map<String, Map<String, Object>> sensorUnitMap = new HashMap<>();
            for(Map<String, Object> sensorMap : list) {
                Map<String, Object> innerMap = new HashMap<>();
                innerMap.put("unit", sensorMap.get("unit"));
                innerMap.put("name", sensorMap.get("name"));
                innerMap.put("rules", sensorMap.get("rules"));
                String sensor_key = (String) sensorMap.get("sensor_key");
                String name = (String) sensorMap.get("name");
                sensorUnitMap.put(sensor_key, innerMap);
            }
            //System.out.println(sensorUnitMap);