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