From 2d0b1b3da347f201cfe608e426fb2b7fdb9629a7 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Fri, 17 Aug 2018 17:13:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/main/java/com/moral/service/impl/HistoryServiceImpl.java | 77 ++++++++++++++++++++++++++++++--------
1 files changed, 60 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
index c75e317..f6dbae7 100644
--- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -16,8 +16,12 @@
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.moral.common.util.ValidateUtil;
+import com.moral.entity.Device;
import com.moral.entity.Profession;
import com.moral.entity.Sensor;
import com.moral.mapper.DeviceMapper;
@@ -154,13 +158,20 @@
accountService.setOrgIdsByAccount(parameters);
List<Map<String, Object>> result = historyMapper.getRegionRankingData(parameters);
-
+ for (Map<String, Object> map : result) {
+ if (ObjectUtils.isEmpty(map.get("avg"))) {
+ map.put("avg", 0);
+ }
+ }
if ("profession".equals(parameters.get("dimension"))) {
List<Profession> professions = professionMapper.selectAll();
for (Map<String, Object> map : result) {
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 +183,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);
}
@@ -217,4 +222,42 @@
}
return result;
}
+
+ @Override
+ public List<Map<String, Object>> getSensorsDataByDevice(Map<String, Object> parameters) {
+ ValidateUtil.notNull(parameters.get("deviceVersionId"), "param.is.null");
+ ValidateUtil.notNull(parameters.get("mac"), "param.is.null");
+ ValidateUtil.notNull(parameters.get("deviceId"), "param.is.null");
+ List<Map<String, Object>> sensors = sensorMapper.getSensorsByDeviceVersionId(parameters);
+ parameters.put("size", 1);
+ List<Map<String, Object>> values = historyMapper.getValueByMacAndSize(parameters);
+ JSONObject map = null;
+ if (!ObjectUtils.isEmpty(values)) {
+ map = JSON.parseObject(values.get(0).get("value").toString());
+ }
+ Device device = deviceMapper.selectByPrimaryKey(Integer.valueOf((String) parameters.get("deviceId")));
+ for (Map<String, Object> sensor : sensors) {
+ if (!ObjectUtils.isEmpty(map)) {
+ sensor.put("value", map.remove(sensor.get("sensor_key")));
+ }
+ sensor.put("state", device.getState());
+ sensor.put("name", sensor.get("description"));
+ }
+ return sensors;
+ }
+
+ @Override
+ public List<Map<String, Object>> getSensorDataBySensorKey(Map<String, Object> parameters) {
+ ValidateUtil.notNull(parameters.get("sensorKey"), "param.is.null");
+ ValidateUtil.notNull(parameters.get("mac"), "param.is.null");
+ ValidateUtil.notNull(parameters.get("size"), "param.is.null");
+ parameters.put("size", Integer.valueOf(parameters.remove("size").toString()));
+ List<Map<String, Object>> values = historyMapper.getValueByMacAndSize(parameters);
+ for (Map<String, Object> value : values) {
+ JSONObject json = JSON.parseObject(value.remove("value").toString());
+ value.put("value", json.get(parameters.get("sensorKey")));
+ }
+ return values;
+ }
+
}
--
Gitblit v1.8.0