From 2bfc4ed9012c5cae2a01bc67bdce68eeb59dc0b8 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Tue, 03 Sep 2019 13:38:19 +0800
Subject: [PATCH] 完善排名

---
 src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java |   72 +++++++++++++++++++++++++++++++++--
 1 files changed, 67 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
index 10078a1..0f8c004 100644
--- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
@@ -2,6 +2,7 @@
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -72,10 +73,10 @@
             List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
             params.put("orgIds",orgIds);
             monitorPointList = monitorPointMapper.selectByMap(params);
-            for(MonitorPoint monitorPoint:monitorPointList){
-                Integer state = getStateFromRedis(monitorPoint.getId());
-                monitorPoint.setState(state);
-            }
+//            for(MonitorPoint monitorPoint:monitorPointList){
+//                Integer state = getStateFromRedis(monitorPoint.getId());
+//                monitorPoint.setState(state);
+//            }
         }
         return monitorPointList == null ? new ArrayList<>() : monitorPointList;
     }
@@ -243,7 +244,10 @@
 		
 		criteria.andEqualTo("isDelete", Constants.IS_DELETE_FALSE);
 		if (Constants.isNotSpecialOrgId(orgId)) {
-			criteria.andEqualTo("organizationId", orgId);
+			//criteria.andEqualTo("organizationId", orgId);
+			Set<Integer> organizationIds = organizationService.getChildOrganizationIds(orgId);
+			criteria.andIn("organizationId", organizationIds);
+
 		}
 		example.orderBy("name").asc();
 		return monitorPointMapper.selectByExample(example);
@@ -302,4 +306,62 @@
 		}
 		return monitorPoints;
 	}
+
+    @SuppressWarnings("unchecked")
+	@Override
+	public Collection<Object> getDevicesStateByRegion(Map<String, Object> parameters) {
+    	//������������
+		Object organizationId = parameters.remove("organizationId");
+		ValidateUtil.notNull(organizationId, "param.is.null");
+		ValidateUtil.notNull(parameters.get("regionCode"), "param.is.null");
+
+		//������������������
+		ParameterUtils.getRegionType4RegionCode(parameters);
+		
+		if (Constants.isNotSpecialOrgId(Integer.valueOf(organizationId.toString()))) {
+			Set<Integer> organizationIds = organizationService.getChildOrganizationIds(Integer.valueOf(organizationId.toString()));
+			parameters.put("orgIds", organizationIds);
+		}
+		List<Map<String, Object>> monitorPoints  = deviceMapper.getDevicesStateByRegion(parameters);
+		Map<String, Object> result = new HashMap<String, Object>();
+		Map<String,Object> device;
+		List<Map<String, Object>> devices;
+		for (Map<String, Object> map : monitorPoints) {
+			String id = map.get("id").toString();
+
+			device = new HashMap<String,Object>();
+			device.put("id", map.remove("deviceId"));
+			device.put("name", map.remove("deviceName"));
+			device.put("state", map.remove("state"));
+			device.put("mac", map.remove("mac"));
+
+			if (result.containsKey(id)) {
+				Map<String, Object> monitorPoint = (Map<String, Object>) result.get(id);
+				devices = (List<Map<String, Object>>) monitorPoint.get("devices");
+			} else {
+				devices = new ArrayList<Map<String, Object>>();
+				result.put(id, map);
+			}
+			devices.add(device);
+			map.put("devices", devices);
+			result.put(id, map);
+		}
+		
+		return result.values();
+	}
+    
+    @Override
+    public void isCompensateCalculation(Map<String, Object> parameters) {
+		MonitorPoint monitorPoint = monitorPointMapper.selectByPrimaryKey(Integer.valueOf(parameters.get("monitorPointId").toString()));
+		if (Integer.valueOf(320581).equals(monitorPoint.getAreaCode())) {
+			parameters.put("compensate", true);
+		}
+    	
+	}
+	@Override
+	public Map<String, Object> selectAllById(String id) {
+		int id2 = Integer.parseInt(id);
+		Map<String, Object> map = monitorPointMapper.selectAllById(id2);
+		return map;
+	}
 }

--
Gitblit v1.8.0