From 9a4a17d71e5a624c9ec1eb478281c5bac1571be3 Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Fri, 04 May 2018 11:13:15 +0800
Subject: [PATCH] 三级警报数据

---
 src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java      |  122 +++++++++++++++
 src/main/resources/mapper/AlarmMapper.xml                            |   74 ---------
 src/main/java/com/moral/mapper/AlarmMapper.java                      |    1 
 src/main/java/com/moral/service/impl/AlarmServiceImpl.java           |   67 -------
 src/main/java/com/moral/controller/ReportController.java             |   14 +
 src/main/resources/mapper/AlarmDailyMapper.xml                       |   97 ++++++++++++
 src/main/java/com/moral/mapper/AlarmDailyMapper.java                 |   15 +
 src/main/java/com/moral/service/AlarmService.java                    |    6 
 src/main/java/com/moral/service/AlarmDailyService.java               |   13 +
 src/main/java/com/moral/controller/ScreenController.java             |    9 
 src/main/java/com/moral/entity/AlarmDaily.java                       |   35 ++++
 src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java |    5 
 12 files changed, 306 insertions(+), 152 deletions(-)

diff --git a/src/main/java/com/moral/controller/ReportController.java b/src/main/java/com/moral/controller/ReportController.java
index cd4165a..39b6a6a 100644
--- a/src/main/java/com/moral/controller/ReportController.java
+++ b/src/main/java/com/moral/controller/ReportController.java
@@ -21,7 +21,7 @@
 
 import com.moral.common.bean.ResultBean;
 import com.moral.entity.charts.LineChartCriteria;
-import com.moral.service.AlarmService;
+import com.moral.service.AlarmDailyService;
 import com.moral.service.HistoryMinutelyService;
 
 @SuppressWarnings({ "unchecked", "rawtypes" })
@@ -34,7 +34,7 @@
 	private HistoryMinutelyService historyMinutelyService;
 
 	@Resource
-	private AlarmService alarmService;
+	private AlarmDailyService alarmDailyService;
 	
 	@GetMapping("compare")
 	public ResultBean<Map<String, List>> getCompareReport(HttpServletRequest request) throws Exception {
@@ -74,9 +74,17 @@
 	@GetMapping("pie")
 	public ResultBean<Map<String, Object>> getPieData(HttpServletRequest request) throws Exception {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
-		Map pieData = alarmService.getPieData(parameters);
+		Map pieData = alarmDailyService.getPieData(parameters);
 		
 		return new ResultBean<Map<String, Object>>(pieData);
 	}
 
+	@GetMapping("alarm-year")
+	public ResultBean<List<Integer>> getAlarmDataByYear(HttpServletRequest request) throws Exception {
+		Map<String, Object> parameters = getParametersStartingWith(request, null);
+		List<Integer> alarmDataByYear = alarmDailyService.getAlarmDataByYear(parameters);
+		
+		return new ResultBean<List<Integer>>(alarmDataByYear);
+	}
+
 }
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 5957588..4da099f 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -7,9 +7,6 @@
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.net.InetAddress;
-import java.net.URL;
-import java.net.URLConnection;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
@@ -58,7 +55,7 @@
 import com.moral.entity.alarm.AlarmSensorLevel;
 import com.moral.service.AccountService;
 import com.moral.service.AlarmConfigService;
-import com.moral.service.AlarmService;
+import com.moral.service.AlarmDailyService;
 import com.moral.service.AreaService;
 import com.moral.service.DeviceService;
 import com.moral.service.HistoryMinutelyService;
@@ -116,7 +113,7 @@
 	private String levelKey = "alarm_";
 
 	@Resource
-	private AlarmService alarmService;
+	private AlarmDailyService alarmDailyService;
 	/**
 	 * Screen login. ������������
 	 * 
@@ -493,7 +490,7 @@
 				parameters.remove("organizationId");
 			}
 		}
-		Map pieData = alarmService.getPieData(parameters);
+		Map pieData = alarmDailyService.getPieData(parameters);
 		List<Map<String, Object>> list = (List<Map<String, Object>>) pieData.get(sensorKey);
 		return new ResultBean<List<Map<String, Object>>>(list);
 	}
diff --git a/src/main/java/com/moral/entity/AlarmDaily.java b/src/main/java/com/moral/entity/AlarmDaily.java
new file mode 100644
index 0000000..0c493fb
--- /dev/null
+++ b/src/main/java/com/moral/entity/AlarmDaily.java
@@ -0,0 +1,35 @@
+package com.moral.entity;
+
+import java.util.Date;
+
+import lombok.Data;
+
+@Data
+public class AlarmDaily {
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column alarm.mac
+     *
+     * @mbg.generated Mon Apr 16 09:27:36 CST 2018
+     */
+    private String mac;
+    private Integer state;
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column alarm.json
+     *
+     * @mbg.generated Mon Apr 16 09:27:36 CST 2018
+     */
+    private String json;
+
+    /**
+     *
+     * This field was generated by MyBatis Generator.
+     * This field corresponds to the database column alarm.time
+     *
+     * @mbg.generated Mon Apr 16 09:27:36 CST 2018
+     */
+    private Date time;
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/AlarmDailyMapper.java b/src/main/java/com/moral/mapper/AlarmDailyMapper.java
new file mode 100644
index 0000000..1fc7606
--- /dev/null
+++ b/src/main/java/com/moral/mapper/AlarmDailyMapper.java
@@ -0,0 +1,15 @@
+package com.moral.mapper;
+
+import java.util.List;
+import java.util.Map;
+
+import com.moral.common.mapper.BaseMapper;
+import com.moral.entity.AlarmDaily;
+
+public interface AlarmDailyMapper extends BaseMapper<AlarmDaily> {
+	
+	List<Map<String, Object>> getAlarmData(Map<String, Object> parameters);
+
+	List<Map<String, Object>> getAlarmDataByYear(Map<String, Object> parameters);
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/mapper/AlarmMapper.java b/src/main/java/com/moral/mapper/AlarmMapper.java
index 1783b24..aac5662 100644
--- a/src/main/java/com/moral/mapper/AlarmMapper.java
+++ b/src/main/java/com/moral/mapper/AlarmMapper.java
@@ -10,6 +10,5 @@
 
 public interface AlarmMapper extends BaseMapper<Alarm> {
 	
-	List<Map<String, Object>> getAlarmData(Map<String, Object> parameters);
 	List<Map> countByTimes(@Param("start")Date start, @Param("end")Date end, @Param("format")String format);
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/AlarmDailyService.java b/src/main/java/com/moral/service/AlarmDailyService.java
new file mode 100644
index 0000000..1108fd6
--- /dev/null
+++ b/src/main/java/com/moral/service/AlarmDailyService.java
@@ -0,0 +1,13 @@
+package com.moral.service;
+
+import java.util.List;
+import java.util.Map;
+
+@SuppressWarnings("rawtypes")
+public interface AlarmDailyService {
+
+	Map getPieData(Map<String, Object> parameters);
+
+	List<Integer> getAlarmDataByYear(Map<String, Object> parameters);
+
+}
diff --git a/src/main/java/com/moral/service/AlarmService.java b/src/main/java/com/moral/service/AlarmService.java
index 4433a59..dcad103 100644
--- a/src/main/java/com/moral/service/AlarmService.java
+++ b/src/main/java/com/moral/service/AlarmService.java
@@ -1,16 +1,14 @@
 package com.moral.service;
 
-import com.moral.entity.charts.TimeUnits;
-
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+
+import com.moral.entity.charts.TimeUnits;
 
 @SuppressWarnings("rawtypes")
 public interface AlarmService {
 
     List<Map> countByTimes(Date start, Date end, TimeUnits timeUnits);
-
-    Map getPieData(Map<String, Object> parameters);
 
 }
diff --git a/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java
new file mode 100644
index 0000000..de4d232
--- /dev/null
+++ b/src/main/java/com/moral/service/impl/AlarmDailyServiceImpl.java
@@ -0,0 +1,122 @@
+package com.moral.service.impl;
+
+import java.text.ParseException;
+import java.time.LocalDate;
+import java.time.temporal.TemporalAdjusters;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import com.moral.mapper.AlarmDailyMapper;
+import com.moral.mapper.SensorMapper;
+import com.moral.service.AlarmDailyService;
+import com.moral.service.HistoryMinutelyService;
+
+@Service
+@SuppressWarnings({ "rawtypes", "unchecked" })
+public class AlarmDailyServiceImpl implements AlarmDailyService {
+
+	@Resource
+	private AlarmDailyMapper alarmDailyMapper;
+
+	@Resource
+	private SensorMapper sensorMapper;
+
+	@Resource
+	private HistoryMinutelyService historyMinutelyService;
+
+	@Override
+	public Map getPieData(Map<String, Object> parameters) {
+		Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
+		try {
+			historyMinutelyService.convertQueryParam(parameters);
+		} catch (ParseException e) {
+			e.printStackTrace();
+		}
+		List<Map<String, Object>> alarmDatas = alarmDailyMapper.getAlarmData(parameters);
+		Object dimension = parameters.get("dimension");
+		if ("monitorPoint".equals(dimension)) {
+			for (Map<String, Object> alarmData : alarmDatas) {
+				String name = alarmData.remove("name").toString();
+				alarmData.remove("sum");
+				for (Map.Entry<String, Object> entry : alarmData.entrySet()) {
+					String key = entry.getKey();
+					Object value = entry.getValue().toString();
+					if (!"0".equals(value)) {
+						List list;
+						Map<String, Object> map = new HashMap<String, Object>();
+						if (ObjectUtils.isEmpty(resultMap.get(key))) {
+							list = new ArrayList();
+						} else {
+							list = (List) resultMap.get(key);
+						}
+						map.put("name", name);
+						map.put("value", value);
+						list.add(map);
+						resultMap.put(key, list);
+					}
+				}
+			}
+		} else {
+			Map<String, Object> alarmData = alarmDatas.get(0);
+			List<String> sensors = (List<String>) parameters.get("sensors");
+			List list = new ArrayList();
+			if (!ObjectUtils.isEmpty(alarmData)) {
+				for (String key : alarmData.keySet()) {
+					for (String sensor : sensors) {
+						String[] split = sensor.split("-");
+						if (key.equals(split[0]) && !"0".equals(alarmData.get(key).toString())) {
+							Map<String, Object> map = new HashMap<String, Object>();
+							if (parameters.containsKey("description")) {
+								map.put("name", split[3]);
+							} else {
+								map.put("name", split[1]);
+							}
+							map.put("value", alarmData.get(key));
+							list.add(map);
+						}
+					}
+				}
+			}
+			resultMap.put("list", list);
+		}
+		return resultMap;
+	}
+
+	@Override
+	public List<Integer> getAlarmDataByYear(Map<String, Object> parameters) {
+		LocalDate localDate = LocalDate.now();
+		parameters.put("start", localDate.with(TemporalAdjusters.firstDayOfYear()));
+		parameters.put("end", localDate.with(TemporalAdjusters.firstDayOfNextYear()));
+		parameters.put("sensorKeys",
+				sensorMapper.selectAll().stream().map(sensor -> sensor.getSensorKey()).collect(Collectors.toList()));
+		List<Map<String, Object>> list = alarmDailyMapper.getAlarmDataByYear(parameters);
+		Integer[] result = new Integer[12];
+		for (int i = 0; i < result.length; i++) {
+			if (ObjectUtils.isEmpty(list)) {
+				break;
+			}
+			for (Map<String, Object> map : list) {
+				Integer month = Integer.valueOf(map.get("time").toString().substring(5));
+				if (i + 1 < month) {
+					break;
+				} else if (i + 1 == month) {
+					result[i] = Integer.valueOf(map.get("sum").toString());
+					list.remove(map);
+					break;
+				}
+			}
+		}
+		return Arrays.asList(result);
+	}
+
+}
diff --git a/src/main/java/com/moral/service/impl/AlarmServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmServiceImpl.java
index 8b97ca5..3386740 100644
--- a/src/main/java/com/moral/service/impl/AlarmServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AlarmServiceImpl.java
@@ -1,20 +1,20 @@
 package com.moral.service.impl;
 
-import java.text.ParseException;
-import java.util.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
-import com.moral.entity.charts.TimeUnits;
 import org.springframework.stereotype.Service;
-import org.springframework.util.ObjectUtils;
 
+import com.moral.entity.charts.TimeUnits;
 import com.moral.mapper.AlarmMapper;
 import com.moral.service.AlarmService;
 import com.moral.service.HistoryMinutelyService;
 
 @Service
-@SuppressWarnings({ "rawtypes", "unchecked" })
+@SuppressWarnings({ "rawtypes" })
 public class AlarmServiceImpl implements AlarmService {
 
 	@Resource
@@ -33,63 +33,6 @@
 		}
 
     	return alarmMapper.countByTimes(start, end, format);
-	}
-	@Override
-	public Map getPieData(Map<String, Object> parameters) {
-		Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
-		try {
-			historyMinutelyService.convertQueryParam(parameters);
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		List<Map<String, Object>> alarmDatas = alarmMapper.getAlarmData(parameters);
-		Object dimension = parameters.get("dimension");
-		if ("monitorPoint".equals(dimension)) {
-			for (Map<String, Object> alarmData : alarmDatas) {
-				String name = alarmData.remove("name").toString();
-				alarmData.remove("sum");
-				for (Map.Entry<String, Object> entry : alarmData.entrySet()) {
-					String key = entry.getKey();
-					Object value = entry.getValue().toString();
-					if (!"0".equals(value)) {
-						List list;
-						Map<String, Object> map = new HashMap<String, Object>();
-						if (ObjectUtils.isEmpty(resultMap.get(key))) {
-							list = new ArrayList();
-						} else {
-							list = (List) resultMap.get(key);
-						}
-						map.put("name", name);
-						map.put("value", value);
-						list.add(map);
-						resultMap.put(key, list);
-					}
-				}
-			}
-		} else {
-			Map<String, Object> alarmData = alarmDatas.get(0);
-			List<String> sensors = (List<String>) parameters.get("sensors");
-			List list = new ArrayList();
-			if (!ObjectUtils.isEmpty(alarmData)) {
-				for (String key : alarmData.keySet()) {
-					for (String sensor : sensors) {
-						String[] split = sensor.split("-");
-						if (key.equals(split[0]) && !"0".equals(alarmData.get(key).toString())) {
-							Map<String, Object> map = new HashMap<String, Object>();
-							if (parameters.containsKey("description")) {
-								map.put("name", split[3]);
-							} else {
-								map.put("name", split[1]);
-							}
-							map.put("value", alarmData.get(key));
-							list.add(map);
-						}
-					}
-				}
-			}
-			resultMap.put("list", list);
-		}
-		return resultMap;
 	}
 
 }
diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
index 4058715..efacd53 100644
--- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
@@ -44,6 +44,7 @@
 import com.moral.entity.charts.DataCondition;
 import com.moral.entity.charts.LineChartCriteria;
 import com.moral.entity.charts.TimePeriod;
+import com.moral.mapper.AlarmDailyMapper;
 import com.moral.mapper.AlarmMapper;
 import com.moral.mapper.DeviceMapper;
 import com.moral.mapper.HistoryMinutelyMapper;
@@ -64,7 +65,7 @@
 	private SensorMapper sensorMapper;
 
 	@Resource
-	private AlarmMapper alarmMapper;
+	private AlarmDailyMapper alarmDailyMapper;
 
 	@Override
 	public Map<String, Object> getDayAQIByDevice(Map<String, Object> parameters) {
@@ -287,7 +288,7 @@
 		Object type = parameters.get("type");
 		if ("year".equals(type) || "month".equals(type)) {
 			parameters.put("sensorKeys", Arrays.asList("e1", "e2", "e10", "e11", "e15", "e16"));
-			resultMap.put("alarmData" + part, alarmMapper.getAlarmData(parameters).get(0));
+			resultMap.put("alarmData" + part, alarmDailyMapper.getAlarmData(parameters).get(0));
 		}
 		return resultMap;
 	}
diff --git a/src/main/resources/mapper/AlarmDailyMapper.xml b/src/main/resources/mapper/AlarmDailyMapper.xml
new file mode 100644
index 0000000..db13fc0
--- /dev/null
+++ b/src/main/resources/mapper/AlarmDailyMapper.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.moral.mapper.AlarmDailyMapper">
+	<select id="getAlarmData" resultType="java.util.LinkedHashMap">
+		SELECT
+			<if test="dimension=='monitorPoint'">
+				`name`,
+			</if>
+			<choose>
+				<when test="sensorKeys.size > 0">
+					<foreach collection="sensorKeys" separator="," item="sensorKey">
+						SUM( ${sensorKey} ) AS '${sensorKey}'
+					</foreach>
+					<foreach collection="sensorKeys" open="," separator="+" close=" AS 'sum' " item="sensorKey">
+						SUM( ${sensorKey} )
+					</foreach>
+				</when>
+				<otherwise>
+					time
+				</otherwise>
+			</choose>
+		FROM
+			(
+				SELECT 
+					<if test="dimension=='monitorPoint'">
+						mp.`name`,
+					</if>
+					<choose>
+						<when test="sensorKeys.size > 0">
+							<foreach collection="sensorKeys" separator="," item="sensorKey">
+								CASE COUNT( json -> '$.${sensorKey}' ) WHEN 0 THEN 0 ELSE 1 END AS '${sensorKey}'
+							</foreach>
+						</when>
+						<otherwise>
+							 h.time
+						</otherwise>
+					</choose>
+				FROM
+					alarm_daily h, 
+					device d,
+					monitor_point mp 
+				WHERE d.monitor_point_id = mp.id 
+					AND h.mac = d.mac 
+					AND h.time >= #{start}
+					AND h.time <![CDATA[<]]> #{end}
+					<if test="provinceCode != null">
+					AND mp.province_code = #{provinceCode}
+					</if>
+					<if test="cityCode != null">
+					AND mp.city_code = #{cityCode}
+					</if>
+					<if test="areaCode != null">
+					AND mp.area_code = #{areaCode}
+					</if>
+					<if test="monitorPointId != null">
+					AND mp.id =	#{monitorPointId}
+					</if>
+					<if test="organizationId != null">
+					AND mp.organization_id = #{organizationId}
+					</if>
+					<if test="mac != null">
+					AND d.mac =	#{mac}
+					</if>
+					<if test="level != null">
+					AND h.state = #{level}
+					</if>
+				GROUP BY
+					<if test="dimension=='monitorPoint'">
+						mp.id,
+					</if>
+					h.time
+			) a
+		<if test="dimension=='monitorPoint'">
+			GROUP BY name
+		</if>
+			
+	</select>
+
+	<select id="getAlarmDataByYear" resultType="java.util.Map">
+		SELECT
+			DATE_FORMAT(h.time, '%Y-%m') AS 'time'
+			<foreach collection="sensorKeys" open="," separator="+" close=" AS 'sum' " item="sensorKey">
+				COUNT(json -> '$.${sensorKey}')
+			</foreach>
+		FROM
+		    alarm_daily h
+		WHERE
+			h.time >= #{start}
+		    AND h.time <![CDATA[<]]> #{end}
+			<if test="state != null">
+			AND h.state = #{state}
+			</if>
+		GROUP BY
+		    DATE_FORMAT(h.time, '%Y-%m')			
+	</select>
+	
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/AlarmMapper.xml b/src/main/resources/mapper/AlarmMapper.xml
index b3baecf..e2a7007 100644
--- a/src/main/resources/mapper/AlarmMapper.xml
+++ b/src/main/resources/mapper/AlarmMapper.xml
@@ -1,80 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.moral.mapper.AlarmMapper">
-	<select id="getAlarmData" resultType="java.util.LinkedHashMap">
-		SELECT
-			<if test="dimension=='monitorPoint'">
-				`name`,
-			</if>
-			<choose>
-				<when test="sensorKeys.size > 0">
-					<foreach collection="sensorKeys" separator="," item="sensorKey">
-						SUM( ${sensorKey} ) AS '${sensorKey}'
-					</foreach>
-					<foreach collection="sensorKeys" open="," separator="+" close=" AS 'sum' " item="sensorKey">
-						SUM( ${sensorKey} )
-					</foreach>
-				</when>
-				<otherwise>
-					time
-				</otherwise>
-			</choose>
-		FROM
-			(
-				SELECT 
-					<if test="dimension=='monitorPoint'">
-						mp.`name`,
-					</if>
-					<choose>
-						<when test="sensorKeys.size > 0">
-							<foreach collection="sensorKeys" separator="," item="sensorKey">
-								CASE COUNT( json -> '$.${sensorKey}' ) WHEN 0 THEN 0 ELSE 1 END AS '${sensorKey}'
-							</foreach>
-						</when>
-						<otherwise>
-							 h.time
-						</otherwise>
-					</choose>
-				FROM
-					alarm_daily h, 
-					device d,
-					monitor_point mp 
-				WHERE d.monitor_point_id = mp.id 
-					AND h.mac = d.mac 
-					AND h.time >= #{start}
-					AND h.time <![CDATA[<]]> #{end}
-					<if test="provinceCode != null">
-					AND mp.province_code = #{provinceCode}
-					</if>
-					<if test="cityCode != null">
-					AND mp.city_code = #{cityCode}
-					</if>
-					<if test="areaCode != null">
-					AND mp.area_code = #{areaCode}
-					</if>
-					<if test="monitorPointId != null">
-					AND mp.id =	#{monitorPointId}
-					</if>
-					<if test="organizationId != null">
-					AND mp.organization_id = #{organizationId}
-					</if>
-					<if test="mac != null">
-					AND d.mac =	#{mac}
-					</if>
-					<if test="level != null">
-					AND h.state = #{level}
-					</if>
-				GROUP BY
-					<if test="dimension=='monitorPoint'">
-						mp.id,
-					</if>
-					h.time
-			) a
-		<if test="dimension=='monitorPoint'">
-			GROUP BY name
-		</if>
-			
-	</select>
 	<select id="countByTimes"   resultType="java.util.Map">
 		select
 		<if test="format !=null">

--
Gitblit v1.8.0