From 9a8498f1dbe3b7362a1a90682edfe062517e42c2 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Thu, 25 Jul 2019 14:29:27 +0800
Subject: [PATCH] 新增无人机在时间段查询sensor值的sql语句
---
src/main/java/com/moral/controller/DemoConreoller.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 107 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/moral/controller/DemoConreoller.java b/src/main/java/com/moral/controller/DemoConreoller.java
index bb68cb2..1e069ce 100644
--- a/src/main/java/com/moral/controller/DemoConreoller.java
+++ b/src/main/java/com/moral/controller/DemoConreoller.java
@@ -1,18 +1,36 @@
package com.moral.controller;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.time.temporal.TemporalAdjusters;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.moral.common.util.WebUtils;
+import com.moral.mapper.AlarmDailyMapper;
import com.moral.mapper.DemoMapper;
+import com.moral.mapper.HistoryMapper;
+
@RestController
@RequestMapping("demo")
@@ -20,10 +38,18 @@
@Resource
private DemoMapper demoMapper;
-
+
+ @Resource
+ private AlarmDailyMapper alarmDailyMapper;
+
+ @Resource
+ private HistoryMapper historyMapper;
+
@GetMapping("list")
- public List<Map<String, Object>> getDatas(){
- List<Map<String, Object>> list = demoMapper.getDatas();
+ public List<Map<String, Object>> getDatas(HttpServletRequest request){
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ parameters.put("size", Integer.valueOf(parameters.get("size").toString()));
+ List<Map<String, Object>> list = demoMapper.getDatas(parameters);
Collections.sort(list, new Comparator<Map<String, Object>>() {
@Override
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
@@ -32,4 +58,82 @@
});
return list;
}
+
+ @GetMapping("pollution")
+ public List<Map<String, Object>> getPollutionDatas(HttpServletRequest request){
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ Object sensorKey = parameters.get("sensorKey");
+ parameters.put("sensorKeys", Arrays.asList(sensorKey));
+ parameters.put("start", LocalDate.now().with(TemporalAdjusters.firstDayOfMonth()));
+ parameters.put("end", LocalDate.now().with(TemporalAdjusters.firstDayOfNextMonth()));
+ List<Map<String, Object>> alarmData = alarmDailyMapper.getAlarmData(parameters);
+ Collections.sort(alarmData, new Comparator<Map<String, Object>>() {
+ @Override
+ public int compare(Map<String, Object> o1, Map<String, Object> o2) {
+ return ((BigDecimal) o2.get(sensorKey)).compareTo((BigDecimal) o1.get(sensorKey));
+ }
+ });
+ return alarmData;
+ }
+
+ @GetMapping("compare")
+ public List<Map<String, Object>> getCompareDatas(HttpServletRequest request){
+ List<Map<String, Object>> thisMonth = getDatas(request);
+ List<Date> timeList = new ArrayList<Date>();
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd���HH���");
+ for (Map<String, Object> map : thisMonth) {
+ timeList.add(DateUtils.addMonths((Date)map.get("time"), -1));
+ JSONObject json = JSON.parseObject(map.remove("aqi_json").toString());
+ map.put("this_month_PM2_5",json.get("PM2_5"));
+ map.put("this_month_PM10",json.get("PM10"));
+ map.put("format_time", simpleDateFormat.format((Date)map.get("time")));
+ }
+ Map<String, Object> parameters = new HashMap<String, Object>();
+ parameters.put("timeList", timeList);
+ List<Map<String, Object>> lastMonth = demoMapper.getDatas(parameters);
+ for (Map<String, Object> map : thisMonth) {
+ String formatTime = map.get("format_time").toString();
+ for (Map<String, Object> last : lastMonth) {
+ if (formatTime.equals(simpleDateFormat.format((Date)last.get("time")))) {
+ JSONObject json = JSON.parseObject(last.remove("aqi_json").toString());
+ map.put("last_month_PM2_5",json.get("PM2_5"));
+ map.put("last_month_PM10",json.get("PM10"));
+ lastMonth.remove(last);
+ break;
+ }
+ }
+ }
+ return thisMonth;
+ }
+
+ /**
+ *
+ * ������������:
+ *
+ * @param: startTime ������������
+ * @param: endTime ������������
+ * @return:
+ * @author: fengxiang
+ * @date: 2018/7/30 11:27
+ */
+ @GetMapping("get-dayaqis")
+ public List<Map<String, Object>> getDayAqis(Date startTime,Date endTime) {
+ return demoMapper.selectByTimeZones(startTime,endTime);
+ }
+
+ @GetMapping("avg")
+ public Map<String, Object> getAvgDatas(HttpServletRequest request){
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ parameters.put("sensorKeys", Arrays.asList("e1", "e2", "e3", "e13"));
+ LocalDateTime now = LocalDateTime.now();
+ parameters.put("start", now.minusHours(1).truncatedTo(ChronoUnit.HOURS));
+ parameters.put("end", now.truncatedTo(ChronoUnit.HOURS));
+ List<Map<String, Object>> avgs = historyMapper.getAreaAllDataByAccount(parameters);
+ if (ObjectUtils.isEmpty(avgs)) {
+ return new HashMap<String, Object>();
+ } else {
+ return avgs.get(0);
+ }
+ }
+
}
--
Gitblit v1.8.0