From 0723049b7785749898fede88452055a66c49770e Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Wed, 07 Feb 2018 11:50:51 +0800
Subject: [PATCH] 地图相关资源

---
 src/main/resources/mapper/DeviceMapper.xml                  |    7 ++-
 src/main/webapp/js/moralmap.js                              |   40 ++++++++++---------
 src/main/webapp/view/map.jsp                                |    2 
 src/main/java/com/moral/service/impl/DeviceServiceImpl.java |   41 ++++++++++++--------
 4 files changed, 51 insertions(+), 39 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index bf3ad03..bb9406d 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -165,9 +165,13 @@
 	private void loadDeviceState(List<Device> list){
 		//���redis������������
 		list.stream().map( device -> {
-			String mac = Optional.of(device.getMac()).get();
-			String state = getSateFromRedis(device.getMonitorPointId(),mac.toLowerCase());
-			device.setState(state);
+			String mac = device.getMac();
+			if(!StringUtils.isBlank(mac)){
+				String state = getSateFromRedis(device.getMonitorPointId(),mac.toLowerCase());
+				device.setState(state);
+			}else{
+				device.setState(Constants.DEVICE_STATE_OFFLINE);
+			}
 			return device;
 		}).count();
 	}
@@ -269,21 +273,24 @@
 	@Override
 	public List<Map<String,String>> queryDevicesState(List<String> macList,Boolean withData) {
 		List<Map<String,String>> list = macList.stream().map(mac->{
-			mac = mac.toLowerCase();
-			Device device = getDeviceWithOrgIdsByMac(mac);
 			Map<String,String> resultMap = new HashMap<>();
-			Map<String,String> stateMap = getStateMapFromRedis(device.getMonitorPointId(),mac);
-			if(!MapUtils.isEmpty(stateMap)){
-				resultMap.putAll(stateMap);
-			}else{
-				resultMap.put("state",Constants.DEVICE_STATE_OFFLINE);
-				resultMap.put("mac",mac);
-			}
-			if(BooleanUtils.isTrue(withData)){
-				String dataKey = "data_"+mac;
-				Map<String,String> dataMap = redisUtils.get(dataKey,new TypeReference<Map<String,String>>(){});
-				if(!MapUtils.isEmpty(dataMap)){
-					resultMap.putAll(dataMap);
+			if(!StringUtils.isBlank(mac)){
+				mac = mac.toLowerCase();
+				Device device = getDeviceWithOrgIdsByMac(mac);
+				Map<String,String> stateMap = getStateMapFromRedis(device.getMonitorPointId(),mac);
+				if(!MapUtils.isEmpty(stateMap)){
+					resultMap.putAll(stateMap);
+				}else{
+					resultMap.put("state",Constants.DEVICE_STATE_OFFLINE);
+					resultMap.put("mac",mac);
+				}
+				//������data
+				if(BooleanUtils.isTrue(withData)){
+					String dataKey = "data_"+mac;
+					Map<String,String> dataMap = redisUtils.get(dataKey,new TypeReference<Map<String,String>>(){});
+					if(!MapUtils.isEmpty(dataMap)){
+						resultMap.putAll(dataMap);
+					}
 				}
 			}
 			return  resultMap;
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
index 27f05e1..0098098 100644
--- a/src/main/resources/mapper/DeviceMapper.xml
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -21,6 +21,7 @@
 	  </association>
 	  <association property="deviceVersion" javaType="com.moral.entity.DeviceVersion">
 		  <result column="device_version_id" property="id" jdbcType="INTEGER" />
+		  <result column="device_version_value" property="version" jdbcType="INTEGER" />
 		  <result column="device_version_name" property="name" jdbcType="VARCHAR" />
 	  </association>
 	  <association property="monitorPoint" javaType="com.moral.entity.MonitorPoint">
@@ -133,8 +134,9 @@
 		AND device_version_id = #{deviceVersionId}
 	</select>
 	<select id="selectByOrgIdAndDevName" resultMap="BaseResultMap">
-		SELECT * from device dev
+		SELECT dev.*,dve.version as device_version_value from device dev
 		left join monitor_point mpt on dev.monitor_point_id = mpt.id
+		left join device_version dve on dev.device_version_id = dve.id
 		<where>
 			<if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
 				mpt.organization_id =  #{orgId}
@@ -145,8 +147,9 @@
 		</where>
 	</select>
 	<select id="selectByOrgIdAndMpId" resultMap="BaseResultMap">
-		SELECT * from device dev
+		SELECT dev.*,dve.version as device_version_value from device dev
 		left join monitor_point mpt on dev.monitor_point_id = mpt.id
+		left join device_version dve on dev.device_version_id = dve.id
 		<where>
 			<if test="@com.moral.common.bean.Constants@isNotSpecialOrgId(orgId)">
 				mpt.organization_id =  #{orgId}
diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js
index 107a9c1..4efef27 100644
--- a/src/main/webapp/js/moralmap.js
+++ b/src/main/webapp/js/moralmap.js
@@ -26,20 +26,20 @@
 	/*
 	 * ������mac������������version
 	 */
-	moralMap.getVersion = function(mac){
-		var version = null;
-		$.ajax({
-			type:"get",
-			url:"getversion?mac="+mac,
-			async:false,
-			success:function(jsonData){
-				if(jsonData!=null&&typeof jsonData=='object'){
-					version = jsonData['version'];
-				}
-			}
-		});
-		return version;
-	}
+	// moralMap.getVersion = function(mac){
+	// 	var version = null;
+	// 	$.ajax({
+	// 		type:"get",
+	// 		url:"getversion?mac="+mac,
+	// 		async:false,
+	// 		success:function(jsonData){
+	// 			if(jsonData!=null&&typeof jsonData=='object'){
+	// 				version = jsonData['version'];
+	// 			}
+	// 		}
+	// 	});
+	// 	return version;
+	// }
 	/*
 	 * ���������������������
 	 */
@@ -260,7 +260,7 @@
 			mac: (row['mac']).toLowerCase(),
 			longitude: row['longitude'],
 			latitude: row['latitude'],
-			version:moralMap.getVersion(row['mac'])
+            version:row['deviceVersion']['version']
 		}
 		var equStr = JSON.stringify(equ);
 		if(window["console"]!=undefined){
@@ -736,11 +736,13 @@
 	}
 	//������MonitorPoint������
 	moralMap.putEquipment = function(key, obj) {
-		key = String.prototype.toLowerCase.call(key);
-		if(moralMap['_equipments'] == undefined) {
-			moralMap['_equipments'] = {};
+		if(key!=null&&key!=""){
+            key = String.prototype.toLowerCase.call(key);
+            if(moralMap['_equipments'] == undefined) {
+                moralMap['_equipments'] = {};
+            }
+            moralMap['_equipments'][key] = obj;
 		}
-		moralMap['_equipments'][key] = obj;
 	}
 	moralMap.getEquipment = function(key) {
 		if(key == null){
diff --git a/src/main/webapp/view/map.jsp b/src/main/webapp/view/map.jsp
index 55f7a75..11ede8b 100644
--- a/src/main/webapp/view/map.jsp
+++ b/src/main/webapp/view/map.jsp
@@ -321,7 +321,7 @@
 										mac: (_obj['mac']).toLowerCase(),
 										longitude: _obj['longitude'],
 										latitude: _obj['latitude'],
-									    version:moralMap.getVersion(_obj['mac'])
+									    version:_obj['deviceVersion']['version']
 									}
 									var equStr = JSON.stringify(equ);
 									if(window["console"]!=undefined){

--
Gitblit v1.8.0