From e97c393e23f4c015a44b5fef5fd26ae288bc6c0f Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Wed, 10 Jul 2019 11:31:35 +0800 Subject: [PATCH] 天气预报 --- src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 36 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java index efacd53..9b932f8 100644 --- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java +++ b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java @@ -37,6 +37,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.TypeReference; import com.moral.common.util.CalculateUtils; +import com.moral.common.util.ParameterUtils; import com.moral.common.util.ReportTimeFormat; import com.moral.common.util.ResourceUtil; import com.moral.common.util.ValidateUtil; @@ -69,7 +70,7 @@ @Override public Map<String, Object> getDayAQIByDevice(Map<String, Object> parameters) { - ValidateUtil.notNull(parameters.get("mac"), "param.is.null"); + //ValidateUtil.notNull(parameters.get("mac"), "param.is.null"); LocalDate localDate = LocalDate.now(); // ������00:00:00 parameters.put("start", localDate.minusDays(1)); @@ -139,7 +140,8 @@ List<Map<String, Object>> list = JSON.parseObject((String)parameters.remove("items"), new TypeReference<List<Map<String, Object>>>() {}); String type = (String) parameters.get("type"); - parameters.putAll(getElementByType(type)); + // parameters.putAll(getElementByType(type)); + ParameterUtils.getElementByType(parameters); Integer timeLength = Integer.valueOf(parameters.remove("timeLength").toString()); if ("month".equals(type)) { for (Map<String, Object> map : list) { @@ -186,7 +188,8 @@ 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", ""))); + return o1.split("-")[0].compareTo(o2.split("-")[0]); + //return Integer.compare(Integer.valueOf(o1.split("-")[0].replace("e", "")), Integer.valueOf(o2.split("-")[0].replace("e", ""))); } }); Map<String, Double> sortMap = new HashMap<String, Double>(); @@ -209,8 +212,11 @@ Map<String, BigDecimal> mapData = (Map<String, BigDecimal>) obj; BigDecimal sum = mapData.remove("sum"); for (Entry<String, BigDecimal> entry : mapData.entrySet()) { - sortMap.put(entry.getKey() + "-" + index, new BigDecimal(100).multiply(entry.getValue()) - .divide(sum, 2, BigDecimal.ROUND_HALF_UP).doubleValue()); + if (!"name".equals(entry.getKey())) { + sortMap.put(entry.getKey() + "-" + index, new BigDecimal(100).multiply(entry.getValue()) + .divide(sum, 2, BigDecimal.ROUND_HALF_UP).doubleValue()); + + } } } break; @@ -227,14 +233,20 @@ if (o2.getValue().compareTo(o1.getValue()) == 0) { String[] key1 = o1.getKey().split("-"); String[] key2 = o2.getKey().split("-"); - String sensor1 = key1[0].replace("e", ""); - String sensor2 = key2[0].replace("e", ""); - if (Integer.valueOf(sensor1).compareTo(Integer.valueOf(sensor2)) == 0) { +// String sensor1 = key1[0].replace("e", ""); +// String sensor2 = key2[0].replace("e", ""); +// if (Integer.valueOf(sensor1).compareTo(Integer.valueOf(sensor2)) == 0) { +// return Integer.compare(Integer.valueOf(key1[1]), Integer.valueOf(key2[1])); +// } +// return Integer.valueOf(sensor1).compareTo(Integer.valueOf(sensor2)); + if (key1[0].compareTo(key2[0]) == 0) { return Integer.compare(Integer.valueOf(key1[1]), Integer.valueOf(key2[1])); + } else { + return key1[0].compareTo(key2[0]); } - return Integer.valueOf(sensor1).compareTo(Integer.valueOf(sensor2)); + } else { + return o2.getValue().compareTo(o1.getValue()); } - return o2.getValue().compareTo(o1.getValue()); } }); @@ -288,7 +300,10 @@ Object type = parameters.get("type"); if ("year".equals(type) || "month".equals(type)) { parameters.put("sensorKeys", Arrays.asList("e1", "e2", "e10", "e11", "e15", "e16")); - resultMap.put("alarmData" + part, alarmDailyMapper.getAlarmData(parameters).get(0)); + List<Map<String, Object>> alarmData = alarmDailyMapper.getAlarmData(parameters); + if (!ObjectUtils.isEmpty(alarmData)) { + resultMap.put("alarmData" + part, alarmDailyMapper.getAlarmData(parameters).get(0)); + } } return resultMap; } @@ -296,15 +311,18 @@ @Override public List<Map<String, Object>> getMonitorPointOrDeviceAvgData(Map<String, Object> parameters) throws Exception { convertQueryParam(parameters); - + if (!ObjectUtils.isEmpty(parameters.get("compensate"))) { + parameters.put("timeUnits", "10min"); + } return historyMinutelyMapper.getMonitorPointOrDeviceAvgData(parameters); } @Override public void convertQueryParam(Map<String, Object> parameters) throws ParseException { - String type = (String) parameters.get("type"); if (!parameters.containsKey("field")) { - parameters.putAll(getElementByType(type)); + // String type = (String) parameters.get("type"); + // parameters.putAll(getElementByType(type)); + ParameterUtils.getElementByType(parameters); } String time = (String) parameters.get("time"); String format = (String) parameters.get("format"); @@ -349,8 +367,9 @@ @Override public Map<String, Object> getMonthAverageBySensor(Map<String, Object> parameters) { - ValidateUtil.notNull(parameters.get("mac"), "param.is.null"); - ValidateUtil.notNull(parameters.get("macKey"), "param.is.null"); + //ValidateUtil.notNull(parameters.get("mac"), "param.is.null"); + Object sensorKey = parameters.remove("macKey"); + ValidateUtil.notNull(sensorKey, "param.is.null"); Map<String, Object> result = new HashMap<String, Object>(); LocalDate end = LocalDate.now(),start; // ��������������������������������������� @@ -363,10 +382,7 @@ } parameters.put("start", start); parameters.put("end", end); - String sensorKey = (String) parameters.remove("macKey"); - List<String> sensorKeys = new ArrayList<String>(); - sensorKeys.add(sensorKey); - parameters.put("sensorKeys", sensorKeys); + parameters.put("sensorKeys", Arrays.asList(sensorKey)); Map<String, Double> average = historyMinutelyMapper.getSersionAvgByDevice(parameters); if (isEmpty(average)) { -- Gitblit v1.8.0