xufenglei
2018-03-21 093a58b2b7df015c371daa1c1634ff8bfd8f003b
报表 优化
1 files modified
43 ■■■■■ changed files
src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
@@ -225,23 +225,13 @@
        List<Object> timeList = (List<Object>) parameters.get("timeList");
        List<Object> dataList = new ArrayList<Object>();
        Set<String> sensors ;
        if (parameters.containsKey("sensorKey")) {
            String sensorKey = (String) parameters.get("sensorKey");
            Sensor sensor = new Sensor();
            sensor.setSensorKey(sensorKey);
            sensor = sensorMapper.selectOne(sensor );
            sensors = new HashSet<String>();
            sensors.add(sensorKey + "-" + sensor.getName() + "-" + sensor.getUnit());
        } else {
            sensors = new TreeSet<String>(new Comparator<String>() {
                @Override
                public int compare(String o1, String o2) {
                    return Integer.compare(Integer.valueOf(o1.split("-")[0].replace("e", "")), Integer.valueOf(o2.split("-")[0].replace("e", "")));
                }
            });
            sensors.addAll((Set<String>)parameters.get("sensors"));
        }
        Set<String> sensors = new TreeSet<String>(new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return Integer.compare(Integer.valueOf(o1.split("-")[0].replace("e", "")), Integer.valueOf(o2.split("-")[0].replace("e", "")));
            }
        });
        sensors.addAll((Set<String>)parameters.get("sensors"));
        Map<String, Double[]> doubleMap = new LinkedHashMap<String, Double[]>();
        for (Map<String, Object> map : resultList) {
            String time = map.get("time").toString();
@@ -301,8 +291,23 @@
        parameters.put("end", end);
        if (parameters.containsKey("sensorKey")) {
            String sensorKey = (String) parameters.get("sensorKey");
            String sensorKeyColumn = "AVG(json -> '$." + sensorKey + "[0]') " + sensorKey;
            List<String> sensors;
            try {
                sensors = JSON.parseObject((String)parameters.get("sensors"), new TypeReference<List<String>>() {});
                parameters.put("sensors", new HashSet<String>(sensors));
            } catch (Exception e) {
                sensors = new ArrayList<String>();
                sensors.add((String)parameters.get("sensorKey"));
            }
            String sensorKeyColumn = "";
            for (int i = 0; i < sensors.size(); i++) {
                String sensorKey = sensors.get(i).split("-")[0];
                sensorKeyColumn += "AVG(json -> '$." + sensorKey + "[0]') " + sensorKey;
                if (i != sensors.size() - 1) {
                    sensorKeyColumn += " ,";
                }
            }
            parameters.put("sensorKeyColumn", sensorKeyColumn);
        }