|  |  |  | 
|---|
|  |  |  | @GetMapping("month-sensor-average") | 
|---|
|  |  |  | public Map<String, Object> getMonthAverageBySensor(HttpServletRequest request) { | 
|---|
|  |  |  | Map<String, Object> parameters = getParametersStartingWith(request, null); | 
|---|
|  |  |  | return historyMinutelyService.getMonthAverageBySensor(parameters); | 
|---|
|  |  |  | return historyMinutelyService.getAverageBySensor(parameters); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @GetMapping("check-activate") | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Double> getSersionAvgByDevice(Map<String, Object> parameters); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Double> getAvgByDevice(Map<String, Object> parameters); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Map<String, Object>> getMonitorPointOrDeviceAvgData(Map<String, Object> parameters); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Map<String, Object>> getAreaAvgDataByAreaCode(Map<String, Object> parameters); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> getMonthAverageBySensor(Map<String, Object> parameters); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> getAverageBySensor(Map<String, Object> parameters); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<Map<String, Object>> getAreaAvgDataByAreaCode(Map<String, Object> parameters) throws Exception; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, List<List<Double>>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria); | 
|---|
|  |  |  | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Map<String, Object> getAverageBySensor(Map<String, Object> parameters) { | 
|---|
|  |  |  | //ValidateUtil.notNull(parameters.get("mac"), "param.is.null"); | 
|---|
|  |  |  | Object sensorKey = parameters.remove("macKey"); | 
|---|
|  |  |  | ValidateUtil.notNull(sensorKey, "param.is.null"); | 
|---|
|  |  |  | Map<String, Object> result = new HashMap<String, Object>(); | 
|---|
|  |  |  | LocalDate end = LocalDate.now(), start; | 
|---|
|  |  |  | // 每月一日的数据取上月的数据 | 
|---|
|  |  |  | if (1 == end.getDayOfMonth()) { | 
|---|
|  |  |  | // 上个月1日00:00:00 | 
|---|
|  |  |  | start = end.plusDays(-1).with(TemporalAdjusters.firstDayOfMonth()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | // 这个月1日00:00:00 | 
|---|
|  |  |  | start = end.with(TemporalAdjusters.firstDayOfMonth()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | parameters.put("start", start); | 
|---|
|  |  |  | parameters.put("end", end); | 
|---|
|  |  |  | parameters.put("sensorKeys", Arrays.asList(sensorKey)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Double> average = historyMinutelyMapper.getAvgByDevice(parameters); | 
|---|
|  |  |  | if (isEmpty(average)) { | 
|---|
|  |  |  | result.put("average", NULL_VALUE); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | result.put("average", String.format("%.2f", average.get(sensorKey))); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return result; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据线性表单的条件规则,获取多条线性表单数据 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | 
|---|
|  |  |  | AND time < #{end} | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="getAvgByDevice" resultType="java.util.Map"> | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | <foreach collection="sensorKeys" separator="," item="sensorKey"> | 
|---|
|  |  |  | AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}' | 
|---|
|  |  |  | </foreach> | 
|---|
|  |  |  | FROM | 
|---|
|  |  |  | history_daily | 
|---|
|  |  |  | WHERE | 
|---|
|  |  |  | mac IN | 
|---|
|  |  |  | (SELECT | 
|---|
|  |  |  | d.mac | 
|---|
|  |  |  | FROM | 
|---|
|  |  |  | device d | 
|---|
|  |  |  | WHERE | 
|---|
|  |  |  | d.is_delete = 0 | 
|---|
|  |  |  | <if test="monitorPointId != null"> | 
|---|
|  |  |  | AND d.monitor_point_id = #{monitorPointId} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="mac != null"> | 
|---|
|  |  |  | AND d.mac = #{mac} | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | AND time >= #{start} | 
|---|
|  |  |  | AND time < #{end} | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="getMonitorPointOrDeviceAvgData" resultType="java.util.Map"> | 
|---|
|  |  |  | SELECT | 
|---|
|  |  |  | DATE_FORMAT(time, #{typeFormat}) time | 
|---|