| | |
| | | import java.time.temporal.TemporalAdjusters;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Arrays;
|
| | | import java.util.Collection;
|
| | | import java.util.Collections;
|
| | | import java.util.Comparator;
|
| | | import java.util.Date;
|
| | |
| | | private SensorMapper sensorMapper;
|
| | |
|
| | | // volatile
|
| | | private Set<String> sensorKeys = new HashSet<String>();
|
| | |
|
| | | @Override
|
| | | public Map<String, Object> getDayAQIByDevice(Map<String, Object> parameters) {
|
| | |
| | | dataList.add(cs.take().get());
|
| | | }
|
| | | Map[] maps = new HashMap[list.size()];
|
| | | 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", "")));
|
| | | }
|
| | | });
|
| | | for (Object object : dataList) {
|
| | | Map<String, Object> map = (Map<String, Object>)object;
|
| | | for (String key : map.keySet()) {
|
| | | if (key.startsWith("data")) {
|
| | | int index = Integer.valueOf(key.replace("data", ""));
|
| | | maps[index] = map;
|
| | | }
|
| | | if (key.startsWith("sensors")) {
|
| | | sensors.addAll((List<String>) map.get(key));
|
| | | }
|
| | | resultMap.put("time", timeList);
|
| | | resultMap.put("data", Arrays.asList(maps));
|
| | | }
|
| | | }
|
| | | resultMap.put("times", timeList);
|
| | | resultMap.put("datas", Arrays.asList(maps));
|
| | | resultMap.put("sensors", new ArrayList<Object>(sensors));
|
| | | return resultMap;
|
| | | }
|
| | |
|
| | |
| | | dataList.add(doubleMap);
|
| | | String part = parameters.get("part").toString();
|
| | | resultMap.put("data" + part, dataList);
|
| | | resultMap.put("sensors" + part, new ArrayList<Object>(sensors));
|
| | | return resultMap;
|
| | | }
|
| | |
|
| | |
| | | parameters.put("sensorKeyColumn", sensorKeyColumn);
|
| | | }
|
| | |
|
| | | sensorKeys.clear();
|
| | | //sensorKeys.clear();
|
| | | // 监控点平均值
|
| | | if (!parameters.containsKey("mac")) {
|
| | | resul = new ArrayList<Map<String,Object>>();
|
| | |
| | | Integer deviceVersionId = (Integer) map.get("deviceVersionId");
|
| | | if (!parameter.containsKey("sensorKeyColumn")) {
|
| | | List<Map<String, Object>> sensors = sensorMapper.getSensorsByDeviceVersionId(deviceVersionId);
|
| | | String sensorKeyColumn = getSensorKeyColumnBySensors(sensors);
|
| | | String sensorKeyColumn = getSensorKeyColumnBySensors(sensors, parameters);
|
| | | parameter.put("sensorKeyColumn", sensorKeyColumn);
|
| | | parameters.put("sensors", sensorKeys);
|
| | | }
|
| | | List<String> macs = deviceMapper.getDeviceMacByMonitorPointAndDeviceVersion(monitorPointId, deviceVersionId);
|
| | | if (ObjectUtils.isEmpty(macs) || macs.contains("null") ) {
|
| | |
| | | device.setMac(mac);
|
| | | device = deviceMapper.selectOne(device);
|
| | | List<Map<String, Object>> sensors = sensorMapper.getSensorsByDeviceVersionId(device.getDeviceVersionId());
|
| | | String sensorKeyColumn = getSensorKeyColumnBySensors(sensors);
|
| | | String sensorKeyColumn = getSensorKeyColumnBySensors(sensors,parameters);
|
| | | parameters.put("sensorKeyColumn", sensorKeyColumn);
|
| | | parameters.put("sensors", sensorKeys);
|
| | |
|
| | | }
|
| | | resul = historyMinutelyMapper.getMonitorPointOrDeviceAvgData(parameters);
|
| | |
| | | return resul;
|
| | | }
|
| | |
|
| | | private String getSensorKeyColumnBySensors(List<Map<String, Object>> sensors) {
|
| | | private String getSensorKeyColumnBySensors(List<Map<String, Object>> sensors,Map<String, Object> parameters) {
|
| | | String sensorKeyColumn = "";
|
| | | |
| | | Set<String> sensorKeys = new HashSet<String>();
|
| | | if (parameters.containsKey("sensors")) {
|
| | | sensorKeys = (Set<String>) parameters.get("sensors");
|
| | | }
|
| | | for (int i = 0; i < sensors.size(); i++) {
|
| | | String sensorKey = (String) sensors.get(i).get("sensor_key");
|
| | | String name = (String) sensors.get(i).get("name");
|
| | |
| | | sensorKeyColumn += " ,";
|
| | | }
|
| | | sensorKeys.add(sensorKey + "-" + name + "-" + unit );
|
| | | parameters.put("sensors", sensorKeys);
|
| | | }
|
| | | return sensorKeyColumn;
|
| | | }
|