| | |
| | |
|
| | | @GetMapping("hour-aqi")
|
| | | @ApiOperation(value = "获取一小时AQI", notes = "获取一小时AQI")
|
| | | @ApiImplicitParams(value = {
|
| | | @ApiImplicitParam(name = "mac", value = "设备mac地址", required = true, paramType = "query", dataType = "String")
|
| | | })
|
| | | public Map<String, Object> getHourAQIByDevice(HttpServletRequest request) {
|
| | | Map<String, Object> parameters = getParametersStartingWith(request, null);
|
| | | return historyMinutelyService.getHourAQIByDevice(parameters);
|
| | | return historyService.gitHourlyAQIByMacAndTimeslot(parameters);
|
| | | }
|
| | |
|
| | | /**
|
| | |
| | | List<Map<String, Object>> getValueByMacAndSize(Map<String, Object> parameters);
|
| | |
|
| | | Map<String, Object> getActualDataByRegion(Map<String, Object> parameters);
|
| | | |
| | | Map<String, Object> getAVGValueByMacAndTimeslot(@Param("mac")String mac, @Param("starttime")String starttime, @Param("endtime")String endtime);
|
| | |
|
| | | } |
| | |
| | | Map<String, Object> getActualDataByRegion(Map<String, Object> parameters);
|
| | |
|
| | | Map<String, Object> getSensorUnitByDeviceMac(Map<String, Object> parameters);
|
| | | |
| | | Map<String, Object> gitHourlyAQIByMacAndTimeslot(Map<String, Object> parameters);
|
| | |
|
| | | }
|
| | |
| | | import java.time.temporal.TemporalAdjusters;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Arrays;
|
| | | import java.util.Calendar;
|
| | | import java.util.Collections;
|
| | | import java.util.Comparator;
|
| | | import java.util.Date;
|
| | |
| | | return resultMap;
|
| | |
|
| | | }
|
| | |
|
| | | @Override
|
| | | public Map<String, Object> gitHourlyAQIByMacAndTimeslot(Map<String, Object> parameters) {
|
| | | String mac = parameters.get("mac").toString();
|
| | | //获取日期
|
| | | LocalDate localDate = LocalDate.now();
|
| | | Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
|
| | | int endHour = c.get(Calendar.HOUR_OF_DAY);
|
| | | String endTime = localDate+" "+endHour+":00:00";
|
| | | |
| | | String startTime;
|
| | | if(endHour == 0) {
|
| | | LocalDate startDate = localDate.minusDays(1);
|
| | | startTime = startDate+" "+"23:00:00";
|
| | | }else {
|
| | | int startHour = endHour-1;
|
| | | startTime = localDate+" "+startHour+":00:00";
|
| | | }
|
| | | Map<String, Object> map = historyMapper.getAVGValueByMacAndTimeslot(mac, startTime, endTime);
|
| | | return map;
|
| | | }
|
| | | }
|
| | |
| | | AND h.time < #{end}
|
| | | </where>
|
| | | </select>
|
| | | |
| | | <select id="getAVGValueByMacAndTimeslot" resultType="java.util.Map">
|
| | | SELECT AVG(JSON_EXTRACT(value,'$.e1[0]')) e1,AVG(JSON_EXTRACT(value,'$.e2[0]')) e2,AVG(JSON_EXTRACT(value,'$.e10[0]')) e10,AVG(JSON_EXTRACT(value,'$.e11[0]')) e11,AVG(JSON_EXTRACT(value,'$.e16[0]')) e16,AVG(JSON_EXTRACT(value,'$.e15[0]')) e15
|
| | | FROM history
|
| | | WHERE mac = #{mac}
|
| | | AND time BETWEEN #{starttime} AND #{endtime}
|
| | | </select>
|
| | | </mapper> |