src/main/java/com/moral/mapper/HistoryMapper.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/impl/HistoryServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/HistoryMapper.xml | ●●●●● patch | view | raw | blame | history |
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); 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); } 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