From f22a631422f3045a06aad627e6e83c802be2760d Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Tue, 01 Dec 2020 11:07:29 +0800
Subject: [PATCH] 站点平均值数据导出

---
 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