From ca72da809fdf68f2d6833ed77ad92c9aadc0663d Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Tue, 22 May 2018 09:30:20 +0800
Subject: [PATCH] 地图 增加 监控点入口

---
 src/main/webapp/js/moralmap.js                                    |   72 +++++++++++++++++-------
 src/main/java/com/moral/mapper/DeviceMapper.java                  |    2 
 src/main/java/com/moral/service/MonitorPointService.java          |    2 
 src/main/webapp/view/map.jsp                                      |   37 ++++++++++-
 src/main/java/com/moral/controller/ScreenController.java          |   10 +++
 src/main/java/com/moral/service/impl/DeviceServiceImpl.java       |   20 ++++++
 src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java |    4 +
 src/main/java/com/moral/mapper/MonitorPointMapper.java            |    2 
 8 files changed, 120 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index dadbe33..773a1d0 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -526,4 +526,14 @@
 		List<Map<String, Object>> list = (List<Map<String, Object>>) pieData.get(sensorKey);
 		return new ResultBean<List<Map<String, Object>>>(list);
 	}
+
+	/**
+	 * ���������������id������������������version���������
+	 * @param mptid
+	 * @return
+	 */
+	@GetMapping("getvers")
+	public ResultBean<List<Integer>> getVersions(Integer mptid){
+		return  new ResultBean<>(monitorPointService.queryVersionsById(mptid));
+	}
 }
diff --git a/src/main/java/com/moral/mapper/DeviceMapper.java b/src/main/java/com/moral/mapper/DeviceMapper.java
index a9b1064..d6ffa80 100644
--- a/src/main/java/com/moral/mapper/DeviceMapper.java
+++ b/src/main/java/com/moral/mapper/DeviceMapper.java
@@ -19,7 +19,7 @@
 
 	List<Map<String, Object>> getDeviceVersionIdByMonitorPoint(Integer monitorPointId);
 
-	List<Device> selectByOrgIdAndDevName(@Param("orgId")Integer orgId,@Param("name")String name);
+	List<Device> selectByOrgIdAndDevName(@Param("orgId")Integer orgId,@Param("devState") String state,@Param("name")String name);
 
 	/**
 	 *
diff --git a/src/main/java/com/moral/mapper/MonitorPointMapper.java b/src/main/java/com/moral/mapper/MonitorPointMapper.java
index efb0a64..bddf2ad 100644
--- a/src/main/java/com/moral/mapper/MonitorPointMapper.java
+++ b/src/main/java/com/moral/mapper/MonitorPointMapper.java
@@ -2,7 +2,6 @@
 
 import java.util.List;
 import java.util.Map;
-
 import com.moral.common.mapper.BaseMapper;
 import com.moral.entity.MonitorPoint;
 import tk.mybatis.mapper.entity.Example;
@@ -12,4 +11,5 @@
 	List<MonitorPoint> getMonitorPointsByAreaName(Map<String, Object> parameters);
     List<MonitorPoint> selectByMap(Map<String, Object> params);
     List<Integer> selectOrganizationIds(int id);
+    List<Integer> selectVersionsById(int id);
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/MonitorPointService.java b/src/main/java/com/moral/service/MonitorPointService.java
index b6fe1ac..452a257 100644
--- a/src/main/java/com/moral/service/MonitorPointService.java
+++ b/src/main/java/com/moral/service/MonitorPointService.java
@@ -26,4 +26,6 @@
 	List<MonitorPoint> getMonitorPointsByOrganizationId(Integer orgId);
 
 	List<MonitorPoint> getMonitorPointsByRegion(Map<String, Object> parameters);
+
+    List<Integer> queryVersionsById(Integer id);
 }
diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index a009a42..a3c9565 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -203,7 +203,25 @@
 		if(!ObjectUtils.isEmpty(pageSize)&&!ObjectUtils.isEmpty(pageNo)){
 			PageHelper.startPage(pageNo,pageSize);
 		}
-		List<Device> list = deviceMapper.selectByOrgIdAndDevName(orgId,deviceName);
+		String state = null;
+		switch (deviceName){
+			case "������":
+				state = "0";
+				deviceName = null;break;
+				case "������":
+				state = "1";
+				deviceName = null;break;
+			case "������":
+				state = "2";
+				deviceName = null;break;
+			case "������":
+				state = "3";
+				deviceName = null;break;
+			case "������":
+				state = "4";
+				deviceName = null;break;
+		}
+		List<Device> list = deviceMapper.selectByOrgIdAndDevName(orgId,state,deviceName);
 		//���redis������������
 		loadDeviceState(list);
 		if(list instanceof Page){
diff --git a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
index 5f128b2..200db4e 100644
--- a/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java
@@ -222,4 +222,8 @@
 		criteria.andEqualTo(parameters.get("name").toString(), parameters.get("value"));
 		return monitorPointMapper.selectByExample(example);
 	}
+	@Override
+    public List<Integer> queryVersionsById(Integer id){
+        return  monitorPointMapper.selectVersionsById(id);
+    }
 }
diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js
index e603e0a..4bcc87a 100644
--- a/src/main/webapp/js/moralmap.js
+++ b/src/main/webapp/js/moralmap.js
@@ -224,7 +224,6 @@
             moralMap["_closeInfoWinTimer"] = null;
         },1200);
         moralMap["_closeInfoWinTimer"] = timer;
-
 	}
 	moralMap.clearOverlays = function() {
 		baiduMap.clearOverlays();
@@ -274,6 +273,7 @@
             return;
         }
 		var equ = {
+            methodName : 'chart'== select ?'showChart':'showDeviceMonitor',
 			name: row['name'],
 			mac: (row['mac']).toLowerCase(),
 			longitude: row['longitude'],
@@ -283,23 +283,21 @@
 		};
 		!!select?equ['monitorPointId'] = row["monitorPointId"]:null;
 		var equStr = JSON.stringify(equ);
-        if(!!select&&select==='chart'){
-            if(window['external']&&window['external']['showChartInfo']){
-                window['external'].showChartInfo(equStr);
-            }else{
-                alert(equStr);
-            }
+        if(window["console"]!=undefined){
+            console.log(equStr);
+        }
+        if(!!window['external']&&window['external']['callWin']){
+            window['external'].callWin(equStr);
+        }else{
+			    if(!!select&&select==='chart'&&!!window['external']&&window['external']['showChartInfo']){
+                    window['external'].showChartInfo(equStr);
+                }else if(!!window['external']&&window['external']['showMonitorInfo']){
+                    window['external'].showMonitorInfo(equStr);
+                }else{
+                    alert(equStr);
+                }
 		}
-		else{
-            if(window["console"]!=undefined){
-                console.log(equStr);
-            }
-            if(window['external']&&window['external']['showMonitorInfo']){
-                window['external'].showMonitorInfo(equStr);
-            }else{
-                alert(equStr);
-            }
-		}
+
 	}
 	moralMap.setPopupEqus = function(arr) {
 		moralMap["_equs"] = arr;
@@ -528,7 +526,7 @@
 			//���������������
 			var winOpts = {
 				width: 110, // ������������������
-				height: 50, // ������������������
+				height: 80, // ������������������
 				title: getTitleOutHtml(), // ������������������
 				offset: new BMap.Size(-2, -21) //���������������������
 			}
@@ -552,12 +550,14 @@
 					address = address.slice(0, 18) + "...";
 				}
 				var adressOutHtml = "";
-				adressOutHtml += "<div onmouseover='moralMap.clearCloseInfoWindow()'"
-                adressOutHtml +=	"onmouseout='moralMap.closeInfoWindow()'"
+				adressOutHtml += "<div onmouseover='moralMap.clearCloseInfoWindow()'";
+                adressOutHtml +=	"onmouseout='moralMap.closeInfoWindow()'";
                 adressOutHtml	+=" style='font:12px arial,sans-serif;margin-top:12px'><table cellspacing='0' style='overflow:hidden;table-layout:fixed;width:100%;font:12px arial,sans-serif'>";
 				adressOutHtml += "<tbody><tr><td style='vertical-align:top;width:38px;white-space:nowrap;word-break:keep-all'>���������&nbsp;</td><td style='line-height:16px'>";
 				adressOutHtml += address + "&nbsp;";
-				adressOutHtml += "</td></tr></tbody></table></div>";
+				adressOutHtml += "</td></tr>";
+                adressOutHtml += "<tr><td style='width:98%;padding-top:10px;'colspan='2'><a href='javascript:void(0);' style='display:block;position: relative;float: right;' onclick='moralMap.showPointMonitor("+option.id+")'>������������>></a></td></tr>";
+                adressOutHtml += "</tbody></table></div>";
 				return adressOutHtml;
 			}
 			return new BMap.InfoWindow(getAdressOutHtml(), winOpts);
@@ -832,5 +832,35 @@
 		}
 		return markers;
 	}
+    moralMap.showPointMonitor = function (id) {
+        var mpointMarker = moralMap.getMpoint(id);
+        var mpoint = mpointMarker.getOption();
+        if(!!mpoint){
+        	delete mpoint['organization'];
+        	delete mpoint['icon'];
+        	delete mpoint['click'];
+            if(window["console"]!=undefined){
+                console.log(mpoint);
+            }
+            $.get("getvers?mptid="+id,function (res) {
+                if(!!res&&res.code==1){
+                    mpoint['versions'] = res.data;
+                    mpoint['methodName'] = 'showPointMonitor';
+                    var mpointStr = JSON.stringify(mpoint);
+                    if(!!window['external']&&window['external']['callWin']){
+                        window['external'].callWin(mpointStr);
+                    }else{
+                        alert(JSON.stringify(mpointStr));
+                    }
+                }
+            })
+		}else{
+            if(window["console"]!=undefined){
+                console.log("option of mpointMarker is null");
+                console.log(mpointMarker);
+            }
+		}
+
+    }
 	window.moralMap = moralMap;
 })(jQuery, BMap, window);
\ No newline at end of file
diff --git a/src/main/webapp/view/map.jsp b/src/main/webapp/view/map.jsp
index e339ca1..6fc278f 100644
--- a/src/main/webapp/view/map.jsp
+++ b/src/main/webapp/view/map.jsp
@@ -48,7 +48,17 @@
   padding:0;
   list-style:none;
 }
-
+a{
+    color: #1900c6;
+	text-decoration: none;
+	cursor: pointer;
+	font-size: 14px;
+	font-weight: 300;
+}
+a:hover {
+	text-decoration: underline;
+	color: #e60012;
+}
 #popup_box {
 	top: 75px;
 	left: 20px;
@@ -296,8 +306,10 @@
      window["listView"] = listView;
 	//���������������������click������������
 	function showEqus(obj) {
+
 		var params = moralMap['params'];
 		var mpoint = obj.currentTarget.getOption();
+        $("#searchParam").val(mpoint['name']);
 		var url = 'get-devices-by-mid-oid?mpId=' + mpoint['id'] + "&orgId=" + params['orgId'];
 		listView.load(url); 
 		moralMap.showPopupbox("#popup_box");
@@ -361,6 +373,7 @@
                                            return;
                                        }
 					                	var equ = {
+									    methodName : 'showDeviceMonitor',
 										name: _obj['name'],
 										mac: (_obj['mac']).toLowerCase(),
 										longitude: _obj['longitude'],
@@ -372,7 +385,10 @@
 									if(window["console"]!=undefined){
 										console.log(equStr);
 									}
-								    if(window['external']&&window['external']['showMonitorInfo']){
+                        			if(!!window['external']&&window['external']['callWin']){
+                                        window['external'].callWin(equStr);
+									}else
+								    if(!!window['external']&&window['external']['showMonitorInfo']){
 							        	window['external'].showMonitorInfo(equStr);
 							        }else{
 							        	alert(equStr);
@@ -446,14 +462,25 @@
 			var url = 'get-devices-for-popup?name=' + param + "&orgId=" + params['orgId'];
 			listView.load(url); 
 		}
-	)
+	);
+	$("#searchParam").keydown(function (event) {
+        if(event.keyCode ==13) {
+            $("#searchBtn").trigger("click");
+        }
+    })
 	//������������������������������
 	$(".charts_btn").click(
 	    function (e) {
-            if(window['external']&&window['external']['showChartInfo']){
+            var obj = {};
+            obj['methodName'] = 'showChart';
+            var objStr = JSON.stringify(obj);
+            if(!!window['external']&&window['external']['callWin']){
+                window['external'].callWin(objStr);
+            }else
+            if(!!window['external']&&window['external']['showChartInfo']){
                 window['external'].showChartInfo("");
             }else{
-                alert("");
+                alert(objStr);
             }
         }
 	);

--
Gitblit v1.8.0