From 90f46db2793f5b242f13bf6959ab6c7f5a596c43 Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Tue, 31 Mar 2020 13:50:04 +0800 Subject: [PATCH] 无人机和当天AQI分钟表改表 --- src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java | 38 ++++++++++++++++++++++++++++---------- 1 files changed, 28 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java index 20f9137..466b45e 100644 --- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java +++ b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java @@ -49,6 +49,7 @@ import com.moral.mapper.HistoryMinutelyMapper; import com.moral.mapper.SensorMapper; import com.moral.service.HistoryMinutelyService; + import javax.annotation.Resource; import static com.moral.common.bean.Constants.NULL_VALUE; @@ -76,12 +77,26 @@ @Override public Map<String, Object> getDayAQIByDevice(Map<String, Object> parameters) { //ValidateUtil.notNull(parameters.get("mac"), "param.is.null"); - LocalDate localDate = LocalDate.now(); + LocalDate time = LocalDate.now(); + int year = time.getYear(); + int month = time.getMonthValue(); + int day = time.getDayOfMonth(); + if (day == 1) { + if (month == 1) { + month = 12; + year = year - 1; + } else { + month = month - 1; + } + } + String monthStr = month < 10 ? ("0" + month) : month + ""; + String yearAndMonth = year + monthStr; // ������00:00:00 - parameters.put("start", localDate.minusDays(1)); + parameters.put("start", time.minusDays(1)); // ������00:00:00 - parameters.put("end", localDate); + parameters.put("end", time); + parameters.put("yearAndMonth", yearAndMonth); parameters.put("sensorKeys", Arrays.asList("e1", "e2", "e10", "e11", "e15", "e16")); Map<String, Double> average = historyMinutelyMapper.getSersionAvgByDevice(parameters); return getAQIByDataMap(average); @@ -540,9 +555,11 @@ String startTime = parameters.get("startTime").toString(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime startTimeLocalDateTime = LocalDateTime.parse(startTime, dateTimeFormatter); - LocalDate today = LocalDate.now(); - LocalDate startTimeLocalDate=startTimeLocalDateTime.toLocalDate(); - Boolean flag=today.isEqual(startTimeLocalDate); + LocalDate time = LocalDate.now(); + int year = startTimeLocalDateTime.getYear(); + int month = startTimeLocalDateTime.getMonthValue(); + String monthStr = month < 10 ? ("0" + month) : month + ""; + String yearAndMonth = year + monthStr; List<Sensor> sensors = sensorMapper.getSensorsByMac(parameters); List<String> sensorKeys = new ArrayList<>(); for (Sensor sensor : sensors) { @@ -550,10 +567,11 @@ } parameters.put("sensorKeys", sensorKeys); List<Map<String, Object>> listMap = null; - if (flag) { - listMap = historyMapper.getSensorDataToday(parameters); - } else { + if (year <= 2019) { listMap = historyMinutelyMapper.getSensorData(parameters); + } else { + parameters.put("yearAndMonth", yearAndMonth); + listMap = historyMinutelyMapper.getSensorData2020(parameters); } List<List<Map<String, Object>>> listMaps = new ArrayList<>(); List<Map<String, Object>> listMapAvg = new ArrayList<>(); @@ -567,7 +585,7 @@ mapAvg.put("time", map.get("time")); mapMin.put("time", map.get("time")); mapMax.put("time", map.get("time")); - for (Entry<String,Object> entry : map.entrySet()) { + for (Entry<String, Object> entry : map.entrySet()) { for (Sensor sensor : sensors) { if (sensor.getSensorKey().equals(entry.getKey())) { mapAvg.put(entry.getKey(), new BigDecimal(entry.getValue().toString()).stripTrailingZeros().toPlainString() + sensor.getUnit()); -- Gitblit v1.8.0