From 62520477e6ac5fc8ccce28fdb69ec26246a4a37b Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Mon, 02 Jul 2018 11:27:14 +0800
Subject: [PATCH] 优化 大屏数据排名接口
---
src/main/java/com/moral/service/impl/HistoryServiceImpl.java | 28 +++++++++++++---------------
src/main/java/com/moral/mapper/HistoryMapper.java | 2 +-
src/main/resources/mapper/HistoryMapper.xml | 13 +++++++++----
3 files changed, 23 insertions(+), 20 deletions(-)
diff --git a/src/main/java/com/moral/mapper/HistoryMapper.java b/src/main/java/com/moral/mapper/HistoryMapper.java
index 66ff879..5f81619 100644
--- a/src/main/java/com/moral/mapper/HistoryMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryMapper.java
@@ -12,7 +12,7 @@
List<Map<String, Object>> getRegionRankingData(Map<String, Object> parameters);
- List<Map<String, Object>> selectNextLevelRegion(Map<String, Object> parameters);
+ List<String> selectNextLevelRegion(Map<String, Object> parameters);
List<Map<String, Object>> getDischargeByRegion(Map<String, Object> parameters);
diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
index c75e317..fa11e80 100644
--- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -16,6 +16,7 @@
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
import com.moral.common.util.ValidateUtil;
import com.moral.entity.Profession;
@@ -161,6 +162,9 @@
for (Profession profession : professions) {
if (map.get("name").equals(profession.getName())) {
professions.remove(profession);
+ if (ObjectUtils.isEmpty(map.get("avg"))) {
+ map.put("avg", 0);
+ }
break;
}
}
@@ -172,25 +176,19 @@
result.add(map);
}
} else if ("region".equals(parameters.get("dimension"))) {
- List<Map<String, Object>> regions = historyMapper.selectNextLevelRegion(parameters);
- for (int i = result.size() - 1; i >= 0; i--) {
- Map<String, Object> map = result.get(i);
- for (Map<String, Object> region : regions) {
- if ((map.get("code") == null)) {
- result.remove(map);
- break;
- }
- if (map.get("code").equals(region.get("code"))) {
- map.put("name", region.get("name"));
- regions.remove(region);
- map.remove("code");
- break;
+ List<String> regions = historyMapper.selectNextLevelRegion(parameters);
+ for (Map<String, Object> map : result) {
+ if (regions.contains(map.get("name"))) {
+ regions.remove(map.get("name"));
+ if (ObjectUtils.isEmpty(map.get("avg"))) {
+ map.put("avg", 0);
}
}
+
}
- for (Map<String, Object> region : regions) {
+ for (String region : regions) {
Map<String, Object> map = new HashMap<String, Object>();
- map.put("name", region.get("name"));
+ map.put("name", region);
map.put("avg", 0);
result.add(map);
}
diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index 3c0576f..e19db1a 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -46,11 +46,14 @@
mp.`name`
</if>
<if test="dimension == 'region'">
- mp.${nextLevel}_code AS 'code'
+ r.${nextLevel}_name AS 'name'
</if>
FROM
<if test="dimension == 'profession'">
profession p ,
+ </if>
+ <if test="dimension == 'region'">
+ ${nextLevel} r,
</if>
device d,
${table} h,
@@ -64,6 +67,9 @@
AND mp.${regionType}_code = #{regionCode}
<if test="dimension == 'profession'">
AND d.profession_id = p.id
+ </if>
+ <if test="dimension == 'region'">
+ AND r.${nextLevel}_code = mp.${nextLevel}_code
</if>
<if test="orgIds != null and orgIds.size > 0">
AND mp.organization_id IN
@@ -88,9 +94,8 @@
</if>
</select>
- <select id="selectNextLevelRegion" resultType="java.util.Map">
+ <select id="selectNextLevelRegion" resultType="string">
SELECT
- ${nextLevel}_code AS 'code',
${nextLevel}_name AS 'name'
FROM
${nextLevel}
@@ -101,7 +106,7 @@
<select id="getDischargeByRegion" resultType="java.util.Map">
SELECT
mp.`name`,
- dis.`value` -> '$.e1' 'value'
+ dis.`value` -> '$.${sensorKey}' 'value'
FROM
monitor_point mp,
discharge dis
--
Gitblit v1.8.0