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