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