From d3c5982218db1413c8f609f1f51b49c49a2db496 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Wed, 21 Oct 2020 17:19:58 +0800 Subject: [PATCH] 大屏多设备数据报表接口 --- src/main/java/com/moral/service/HistoryMinutelyService.java | 2 src/main/resources/mapper/DeviceMapper.xml | 4 src/main/resources/mapper/MonitorPointMapper.xml | 4 src/main/webapp/js/moralmap.js | 553 +++++++++++++++++++++++++++------------------ src/main/java/com/moral/mapper/DeviceMapper.java | 2 src/main/java/com/moral/controller/ScreenController.java | 25 - src/main/java/com/moral/mapper/MonitorPointMapper.java | 2 src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java | 113 +++++++++ 8 files changed, 458 insertions(+), 247 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index c55bbdf..1589d0b 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -2516,30 +2516,17 @@ return screenVersionService.getScreenVersion(version); } - @GetMapping("devices-sensors-excel") + @GetMapping("allDeviceExcel") @ApiOperation(value = "���������������������������������", notes = "���������������������������������") @ApiImplicitParams(value = { - @ApiImplicitParam(name = "monitor_point_id", defaultValue = "5", value = "������������id", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "monitorPoint", value = "������������id", required = true, paramType = "query", dataType = "String"), @ApiImplicitParam(name = "sensorKey", value = "���������key,������������������", required = true, paramType = "query", dataType = "String"), - @ApiImplicitParam(name = "time", value = "������(���������2020-04-09)", required = true, paramType = "query", dataType = "String")}) - public ResultBean<List<Map<String, Object>>> getDevicesToExcel(HttpServletRequest request) throws Exception { + @ApiImplicitParam(name = "startTime", value = "������������(���������2020-08-03)", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "endTime", value = "������������(���������2020-08-04)", required = false, paramType = "query", dataType = "String")}) + public ResultBean<List<Map<String, Object>>> getAllDeviceDataToExcel(HttpServletRequest request) throws Exception { Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null); ParameterUtils.getTimeType4Time(parameters); - /*String[] sensorKeys = parameters.get("sensorKey").toString().split(","); - parameters.put("sensorKeys", Arrays.asList(sensorKeys)); - List<String> macList = new ArrayList<>(); - List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsAndDevicesByRegion(parameters); - for (MonitorPoint m : monitorPoints) { - for (Device d : m.getDevices()) { - macList.add(d.getMac()); - } - } - parameters.put("macs", macList); - List<Map<String, Object>> list = new ArrayList<>(); - if (!CollectionUtils.isEmpty(macList)) { - list = historyMinutelyService.getDevicesAvgDataToExcel(parameters); - }*/ - List<Map<String, Object>> list = historyMinutelyService.getDevicesSensorsToExcel(parameters); + List<Map<String, Object>> list = historyMinutelyService.getAllDeviceDataToExcel(parameters); return new ResultBean<List<Map<String, Object>>>(list); } } \ No newline at end of file diff --git a/src/main/java/com/moral/mapper/DeviceMapper.java b/src/main/java/com/moral/mapper/DeviceMapper.java index 3e19f58..00b8fbc 100644 --- a/src/main/java/com/moral/mapper/DeviceMapper.java +++ b/src/main/java/com/moral/mapper/DeviceMapper.java @@ -86,5 +86,7 @@ List<Device> getDeviceByCodeAndId(@Param("code") String code, @Param("id") String id); + List<Map<String, Object>> getDevicesByMpId(int mpId); + String byMacGetOrgId(String mac); } \ No newline at end of file diff --git a/src/main/java/com/moral/mapper/MonitorPointMapper.java b/src/main/java/com/moral/mapper/MonitorPointMapper.java index fb7dd6e..a39c5d6 100644 --- a/src/main/java/com/moral/mapper/MonitorPointMapper.java +++ b/src/main/java/com/moral/mapper/MonitorPointMapper.java @@ -48,4 +48,6 @@ List<MonitorPoint> byCodeGetMonitor(Map<String, Object> params); String getOrgIdByMac(String mac); + + String getMonitorName(int mpId); } \ No newline at end of file diff --git a/src/main/java/com/moral/service/HistoryMinutelyService.java b/src/main/java/com/moral/service/HistoryMinutelyService.java index 7e8e0c2..fe65a54 100644 --- a/src/main/java/com/moral/service/HistoryMinutelyService.java +++ b/src/main/java/com/moral/service/HistoryMinutelyService.java @@ -39,6 +39,6 @@ List<Map<String, Object>> getMultiDeviceSensorData(Map<String, Object> parameters) throws Exception; - List<Map<String, Object>> getDevicesSensorsToExcel(Map<String, Object> parameters); + List<Map<String, Object>> getAllDeviceDataToExcel(Map<String, Object> parameters) throws Exception; } diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java index aea113e..b3056f9 100644 --- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java +++ b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java @@ -1000,9 +1000,116 @@ } @Override - public List<Map<String, Object>> getDevicesSensorsToExcel(Map<String, Object> parameters) { + public List<Map<String, Object>> getAllDeviceDataToExcel(Map<String, Object> parameters) throws Exception { + String time = parameters.remove("startTime").toString(); + String timeb; + if (parameters.get("endTime") == null) { + timeb = time; + } else { + timeb = parameters.remove("endTime").toString(); + } + parameters.put("time", time); + parameters.put("timeb", timeb); + Calendar cal = Calendar.getInstance(); + int length = time.length(); + String type = ""; + if (length == 10) { + type = "day"; + } else if (length == 7) { + type = "month"; + } else if (length == 4) { + type = "year"; + } else if (length == 13) { + type = "hour"; + } + parameters.put("type", type); + String[] endTimes = timeb.split("-"); + String dateFormat = ""; + String beginTime = ""; + String endTime = ""; + Integer year = Integer.valueOf(endTimes[0]); + int i = 0; + if (type.equals("year")) { + dateFormat = "yyyy-MM"; + beginTime = time + "-01"; + timeb = Integer.valueOf(timeb) + 1 + ""; + endTime = timeb + "-01"; + i = Calendar.MONTH; + } else if (type.equals("month")) { + dateFormat = "yyyy-MM-dd"; + beginTime = time + "-01"; + i = Calendar.DAY_OF_MONTH; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); + cal.setTime(sdf.parse(timeb)); + cal.add(Calendar.MONTH, 1); + timeb = sdf.format(cal.getTime()); + endTime = timeb + "-01"; + } else if (type.equals("day")) { + dateFormat = "yyyy-MM-dd HH"; + beginTime = time + " 00"; + i = Calendar.HOUR_OF_DAY; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + cal.setTime(sdf.parse(timeb)); + cal.add(Calendar.DAY_OF_MONTH, 1); + timeb = sdf.format(cal.getTime()); + endTime = timeb + " 00"; + } else if (type.equals("hour")) { + dateFormat = "yyyy-MM-dd HH:mm"; + beginTime = time + ":00:00"; + i = Calendar.MINUTE; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH"); + cal.setTime(sdf.parse(timeb)); + cal.add(Calendar.HOUR_OF_DAY, 1); + timeb = sdf.format(cal.getTime()); + endTime = timeb + ":00:00"; + } + SimpleDateFormat sdf = new SimpleDateFormat(dateFormat); + cal.setTime(sdf.parse(beginTime)); + List<String> times = new ArrayList<>(); + for (long d = cal.getTimeInMillis(); d < sdf.parse(endTime).getTime(); cal.set(i, cal.get(i) + 1), d = cal.getTimeInMillis()) { + String format = sdf.format(d); + times.add(format); + } String[] sensorKeys = parameters.get("sensorKey").toString().split(","); - parameters.put("sensorKeys", Arrays.asList(sensorKeys)); - return null; + List<String> keys = Arrays.asList(sensorKeys); + parameters.put("sensors", keys); + parameters.put("sensorKeys", keys); + parameters.put("timeb", timeb); + int mpId = Integer.valueOf(parameters.get("monitorPoint").toString()); + String monitorPointName = monitorPointMapper.getMonitorName(mpId); + List<Map<String, Object>> devices = deviceMapper.getDevicesByMpId(mpId); + List<Map<String, Object>> resultList = new ArrayList<>(); + for (Map<String, Object> map : devices) { + String mac = map.get("mac").toString(); + parameters.put("mac", mac); + String name = map.get("name").toString(); + List<Map<String, Object>> data = getMonitorPointOrDeviceAvgData(parameters); + for (String sensorKey : keys) { + Map<String, Object> sensor = sensorMapper.getSensorBySensorKey(sensorKey); + if (sensor == null) { + continue; + } + String description = sensor.get("description").toString(); + String unit = sensor.get("unit").toString(); + Map<String, Object> hashMap = new LinkedHashMap<>(); + for (String t : times) { + hashMap.put("monitorPointName", monitorPointName); + hashMap.put("name", name); + hashMap.put("sensor", description + "(" + unit + ")"); + hashMap.put(t, ""); + } + if (data.size() != 0) { + for (Map<String, Object> dataMap : data) { + String t = dataMap.get("time").toString(); + if (dataMap.get(sensorKey) != null) { + String value = dataMap.get(sensorKey).toString(); + hashMap.put(t, value); + } + } + } + resultList.add(hashMap); + } + } + return resultList; } } diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml index 79771cb..84e4e42 100644 --- a/src/main/resources/mapper/DeviceMapper.xml +++ b/src/main/resources/mapper/DeviceMapper.xml @@ -561,4 +561,8 @@ <select id="byMacGetOrgId" resultType="java.lang.String"> SELECT organization_id FROM `monitor_point` as mt ,device as d where d.monitor_point_id=mt.id and mac=#{mac} </select> + + <select id="getDevicesByMpId" resultType="java.util.Map"> + select name,mac from device where monitor_point_id=#{mpId} and is_delete=0 + </select> </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/MonitorPointMapper.xml b/src/main/resources/mapper/MonitorPointMapper.xml index fdb9ac2..c4da432 100644 --- a/src/main/resources/mapper/MonitorPointMapper.xml +++ b/src/main/resources/mapper/MonitorPointMapper.xml @@ -225,4 +225,8 @@ JOIN device d ON d.`monitor_point_id` = m.`id` AND d.`mac`= #{mac} </select> + + <select id="getMonitorName" resultType="java.lang.String"> + select name from monitor_point where id=#{mpId} + </select> </mapper> \ No newline at end of file diff --git a/src/main/webapp/js/moralmap.js b/src/main/webapp/js/moralmap.js index 6f91d9f..50524d8 100644 --- a/src/main/webapp/js/moralmap.js +++ b/src/main/webapp/js/moralmap.js @@ -72,6 +72,7 @@ // ���������������������������������������,��������������������� // ��������������������������� var myGeo = new BMap.Geocoder(); + address = address.replace(/\s*/g, ""); myGeo.getPoint(address, function (point) { if (point) { if ("���������" == cityName) { @@ -234,10 +235,6 @@ var longitude = 106.638135; var latitude = 29.709625; point = new BMap.Point(longitude, latitude); - }else if("���������" == regoinNames[2]){ - var longitude = 120.332826; - var latitude = 33.772274; - point = new BMap.Point(longitude, latitude); } map.centerAndZoom(point, showZoom); } else { @@ -290,23 +287,10 @@ var endZoom = baiduMap.getZoom(); var startZoom = moralMap.startZoom(); //������key������������������ - // var key = moralMap.lazyKeyer(); + // var key = moralMap.lazyKeyer(); var confine = moralMap.getZoomConfine(); - if (endZoom > startZoom) { - //������������������ - if (endZoom >= confine && startZoom <= confine) { - //������������ - moralMap.layer("equipments"); - moralMap.clearOverlays(); - } - } else { - //������������������ - if (endZoom != startZoom && startZoom >= confine && endZoom < confine) { - //������������ - moralMap.layer("monitorpoints"); - moralMap.clearOverlays(); - } - } + moralMap.layer("equipments"); + moralMap.clearOverlays(); } moralMap.layer = (function () { var _layers = ["equipments", "monitorpoints"]; @@ -428,7 +412,7 @@ var timer = setTimeout(function () { baiduMap.closeInfoWindow.apply(baiduMap, arguments); moralMap["_closeInfoWinTimer"] = null; - }, 1200); + }, 500); moralMap["_closeInfoWinTimer"] = timer; } moralMap.clearOverlays = function () { @@ -677,6 +661,7 @@ return listView; } + moralMap.MoralMarker = function (option) { var _option = option; var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']); @@ -728,8 +713,80 @@ } }) } + + + moralMap.WindMarker = function (option, moralMap) { + var _option = option; + var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']); + var _iconObj = _getWindIcon(0); + this._point = _pointObj; + + function _getWindIcon(speedLevel) { + speedLevel = speedLevel == null ? 0 : speedLevel; + var windIcon = _option["windIcon"]; + var windUrl = windIcon["url"] + speedLevel + ".png"; + + return new BMap.Icon(windUrl, new BMap.Size(windIcon["width"], windIcon["height"]), { + imageSize: new BMap.Size(windIcon["width"], windIcon["height"]) + }); + } + + this.constructor.call(this, _pointObj, { + icon: _iconObj, + offset: new BMap.Size(0, -11), + enableMassClear: true + }) + + + return $.extend(this, { + refreshWindDir: function (windDir, windSpeed) { + //��������������������������������������������� + if (windDir == undefined || windSpeed == undefined) { + moralMap.removeOverlay(this); + } else { + var speedLevel; + if (windSpeed >= 0 && windSpeed <= 0.2) { + speedLevel = 0; + } else if (windSpeed > 0.2 && windSpeed <= 1.5) { + speedLevel = 1; + } else if (windSpeed > 1.5 && windSpeed <= 3.3) { + speedLevel = 2; + } else if (windSpeed > 3.3 && windSpeed <= 5.4) { + speedLevel = 3; + } else if (windSpeed > 5.4 && windSpeed <= 7.9) { + speedLevel = 4; + } else if (windSpeed > 7.9 && windSpeed <= 10.7) { + speedLevel = 5; + } else if (windSpeed > 10.7 && windSpeed <= 13.8) { + speedLevel = 6; + } else if (windSpeed > 13.8 && windSpeed <= 17.1) { + speedLevel = 7; + } else if (windSpeed > 17.1) { + speedLevel = 8; + } + if (speedLevel == 0) { + moralMap.removeOverlay(this); + } else { + var iconObj = _getWindIcon(speedLevel); + this.setIcon(iconObj); + this.setRotation(windDir); + } + } + }, + getOption: function () { + return _option; + }, + setOption: function (option) { + _option = option; + }, + + }) + + } + //new BMap.Marker()������������IE7��������������������� moralMap.MoralMarker.prototype = new BMap.Marker(); + moralMap.WindMarker.prototype = new BMap.Marker(); //��������������� ������Mark������ moralMap.Monitorpoint = function (option) { if (monitorPointStates) { @@ -747,7 +804,7 @@ icon["height"] = 50; option["icon"] = icon; var moralMarker = new moralMap.MoralMarker(option); - // var mark =new BMap.Marker(pointObj,{icon:iconObj}); + // var mark =new BMap.Marker(pointObj,{icon:iconObj}); //==================infoWindow-start============================ var infoWindow; if (moralMarker["infoWindow"] == undefined) { @@ -806,21 +863,57 @@ } } + + var sensorsDescriptionMap; + var sensorsUnitMap; + $.ajax({ + url: "getSensorsAllMap", + type: "get", + dataType: "json", + success: function (data) { + sensorsDescriptionMap = data[0]; + sensorsUnitMap = data[1]; + } + }); + + moralMap.Device = function (option) { + if (deviceStates) { + for (var i in deviceStates) { + var state = deviceStates[i]; + if (state.id == option.id) { + option.state = state.state; + } + } + } + var windIcon = {}; + windIcon["url"] = "/img/icoWind0"; + windIcon["width"] = 25; + windIcon["height"] = 25; + option["windIcon"] = windIcon; + var windMarker = new moralMap.WindMarker(option, moralMap); + moralMap.putDevice(option['mac'], windMarker); + var refreshWindMarker = windMarker.refreshWindDir; + return $.extend(windMarker, { + refreshWindDir: function (data) { + if (data != null && data != "") { + this.setData(data); //������������ + refreshWindMarker.call(this, data["e23"], data["e18"]); + } + }, + setData: function (data) { + var option = this.getOption(); + option["data"] = data; + this.setOption(option); + }, + getData: function () { + return this.getOption()["data"]; + } + }); + } + //���������mac���key������ //��������������� ������MoralMark������ moralMap.Equipment = function (option) { - var sensorsDescriptionMap; - var sensorsUnitMap; - $.ajax({ - url: "getSensorsMap?mac=" + option['mac'], - type: "get", - dataType: "json", - success: function (data) { - sensorsDescriptionMap = data[0]; - sensorsUnitMap = data[1]; - } - }); - if (deviceStates) { for (var i in deviceStates) { var state = deviceStates[i]; @@ -830,17 +923,13 @@ } } var icon = {}; - icon["stateIcons"] = ["/img/ico_coo00.png", "/img/ico_coo01.png", "/img/ico_coo02.png", "/img/ico_coo03.png", "/img/ico_coo04.png"]; - icon["url"] = "/img/ico_coo0"; + icon["stateIcons"] = ["/img/ico00.png", "/img/ico01.png", "/img/ico02.png", "/img/ico03.png", "/img/ico04.png"]; + icon["url"] = "/img/ico0"; icon["width"] = 50; - icon["height"] = 60; + icon["height"] = 50; option["icon"] = icon; - option["offline_width"] = 300; - option["offline_height"] = 80; - option["online_width"] = 355; - option["online_height"] = 385; var moralMarker = new moralMap.MoralMarker(option); - // var mark =new BMap.Marker(pointObj,{icon:iconObj}); + // var mark =new BMap.Marker(pointObj,{icon:iconObj}); //==================infoWindow-start============================ var infoWindow = (function () { //��������������� @@ -871,164 +960,55 @@ return new BMap.InfoWindow("", winOpts); })(); - /*var infoWindow = (function() { - //��������������� - var winOpts = { - width: option["online_width"], // ������������������ - height:option["online_height"], // ������������������ - title: getTitleOutHtml(), // ������������������ - offset: new BMap.Size(-2, -10) //��������������������� - } - - function getTitleOutHtml() { - //title���������������... - var title = (option["name"] == null) ? "" : option["name"]; - if(title.length > 13) { - title = title.slice(0, 13) + "..."; - } - var titleOutHtml = ""; - titleOutHtml += "<p style='width:210px;font:bold 14px/16px arial,sans-serif;margin:0;color:#cc5522;white-space:nowrap;overflow:hidden'" - titleOutHtml += "title='" + option["name"] + "'>"; - titleOutHtml += title + "</p>"; - return titleOutHtml; - } - return new BMap.InfoWindow("", winOpts); - })(); - var dataHandle = { - _getDataOutHtml: function(data) { - if(data==null||data["state"]==4){ - return "<br/><h3>������������������������,������������������!</h3>"; - } - var mac = data['mac']; - var itme_mac_key = "item-" + mac + "-" + key; - var dataOutHtml = "<div id='"+itme_mac_key+"' class='equ-data-box'><ul class='equ-data-list'>"; - for(var key in data) { - if($.inArray(key,showSensorKeys)!=-1) { - var dataValue = data[key]; - var name = sensorNames[key][0]; - var unit = sensorNames[key][1]; - var itme_state = dataHandle._getSensorState(data, key); -// var itme_name_mac_key = "item-name-" + mac + "-" + key; - var itme_data_mac_key = "item-data-" + mac + "-" + key; - var item = "<li>"; - item += "<p>"+name+"</p>"; - item += "<span id='"+itme_data_mac_key+"' class='"+itme_state+"'>"+dataValue+"</span>"; - item += "<em>"+unit+"</em>"; - item += "</li>"; - dataOutHtml += item; - } - - } - dataOutHtml += "</ul></div>"; - return dataOutHtml; - }, - _getSensorState: function(data, key) { - var grade="grade"; - var levels; - if(data["level3"]!=null){ - levels = data["level3"] instanceof Array ? data["level3"]:JSON.parse(data["level3"]); - if($.inArray(key,levels)!=-1){ - return grade+"03"; - } - } - if(data["level2"] !=null){ - levels = data["level2"] instanceof Array ? data["level2"]:JSON.parse(data["level2"]); - if($.inArray(key,levels)!=-1){ - return grade+"02"; - } - } - if(data["level1"] !=null){ - levels = data["level1"] instanceof Array ? data["level1"]:JSON.parse(data["level1"]); - if($.inArray(key,levels)!=-1){ - return grade+"01"; - } - } - return grade+"00"; - } - };*/ - if (moralMarker["infoWindow"] == undefined) { moralMarker["infoWindow"] = infoWindow; } var mouseOverHandle = option['mouseover']; - //��������������������� - /*moralMarker.addEventListener("mouseover", function() { - if(mouseOverHandle!=null&&mouseOverHandle instanceof Function){ - //���arguments��������������� - var args = Array.prototype.slice.call(arguments); - mouseOverHandle.apply(this, args); - } - moralMap.closeSearchBox(); - baiduMap.openInfoWindow(infoWindow, this._point); //������������������ - if(infoWindow.getContent() == "") { - var data = this.getData(); - var option = this.getOption(); - if(data==null||data["state"]==4){ - infoWindow.setHeight(option["offline_height"]); - infoWindow.setWidth(option["offline_width"]); - }else{ - infoWindow.setHeight(option["online_height"]); - infoWindow.setWidth(option["online_width"]); - } - infoWindow.setContent(dataHandle._getDataOutHtml(data)); - infoWindow.redraw(); - } - }); - moralMarker.addEventListener("mouseout", function() { - baiduMap.closeInfoWindow(); - infoWindow.setContent(""); - moralMap.openSearchBox(); - });*/ moralMarker.addEventListener("mouseover", function () { - var obj = {}; - obj['methodName'] = 'deliverMac'; - obj['mac'] = option['mac']; - var objStr = JSON.stringify(obj); - if (!!window['external'] && !!window['external']['callWin']) { - window['external'].callWin(objStr); - } else { - alert(objStr); - } - moralMap.showSensors = function (jsonData) { + var deviceSensors = jsonData; + var mac = deviceSensors["mac"]; if (!jsonData.hasOwnProperty('mac')) { infoWindow.setContent(""); infoWindow.redraw(); } else { - var adressOutHtml = '<div style="min-height:20px;overflow:auto;max-height:400px;font-size: 12px;" onmouseover="moralMap.clearCloseInfoWindow()" onmouseout="moralMap.closeInfoWindow()">'; - var y, m, d, h, mm, s; - var date = new Date(jsonData['time']); - y = 1900 + date.getYear(); - m = "0" + (date.getMonth() + 1); - d = "0" + date.getDate(); - h = "0" + date.getHours(); - mm = "0" + date.getMinutes(); - s = "0" + date.getSeconds(); - date = y + "-" + m.substring(m.length - 2, m.length) + "-" + d.substring(d.length - 2, d.length) + " " + h.substring(h.length - 2, h.length) + ":" + mm.substring(mm.length - 2, mm.length) + ":" + s.substring(s.length - 2, s.length); - adressOutHtml += '<p style="height: 18px;line-height: 18px">' + "��������� " + date + " </p>"; - for (var prop in jsonData) { - if (jsonData.hasOwnProperty(prop) && prop != 'ver' && prop != 'methodName' && prop != 'mac' && prop != 'time') { - for (var key in sensorsDescriptionMap) { - if (prop == key) { - var sensorsDescription = sensorsDescriptionMap[key]; - } - } - for (var key in sensorsUnitMap) { - if (prop == key) { - var sensorsUnit = sensorsUnitMap[key]; - if (sensorsUnit == null) { - sensorsUnit = ""; + if (mac == option['mac']) { + var adressOutHtml = '<div style="min-height:20px;overflow:auto;max-height:480px;font-size: 12px;" onmouseover="moralMap.clearCloseInfoWindow()" onmouseout="moralMap.closeInfoWindow()">'; + var y, m, d, h, mm, s; + var date = new Date($.now()); + y = 1900 + date.getYear(); + m = "0" + (date.getMonth() + 1); + d = "0" + date.getDate(); + h = "0" + date.getHours(); + mm = "0" + date.getMinutes(); + s = "0" + date.getSeconds(); + date = y + "-" + m.substring(m.length - 2, m.length) + "-" + d.substring(d.length - 2, d.length) + " " + h.substring(h.length - 2, h.length) + ":" + mm.substring(mm.length - 2, mm.length) + ":" + s.substring(s.length - 2, s.length); + adressOutHtml += '<p style="height: 18px;line-height: 18px">' + "��������� " + date + " </p>"; + for (var prop in jsonData) { + if (jsonData.hasOwnProperty(prop) && prop != 'ver' && prop != 'methodName' && prop != 'mac' && prop != 'time') { + for (var key in sensorsDescriptionMap) { + if (prop == key) { + var sensorsDescription = sensorsDescriptionMap[key]; } } + for (var key in sensorsUnitMap) { + if (prop == key) { + var sensorsUnit = sensorsUnitMap[key]; + if (sensorsUnit == null) { + sensorsUnit = ""; + } + } + } + adressOutHtml += ('<p style="height: 18px;line-height: 18px">' + sensorsDescription + "���" + jsonData[prop] + sensorsUnit + "</p>"); } - adressOutHtml += ('<p style="height: 18px;line-height: 18px">' + sensorsDescription + "���" + jsonData[prop] + sensorsUnit + "</p>"); } + adressOutHtml += "</div>"; + infoWindow.setContent(adressOutHtml); + infoWindow.redraw(); } - adressOutHtml += "</div>"; - infoWindow.setContent(adressOutHtml); - infoWindow.redraw(); } } + // } /* if (!$.isEmptyObject(sensorInfo)) { moralMap.openInfoWindow(infoWindow, this._point); //������������������ }*/ @@ -1036,14 +1016,6 @@ }); moralMarker.addEventListener("mouseout", function () { - var obj = {}; - obj['methodName'] = 'stopDeliverMac'; - var objStr = JSON.stringify(obj); - if (!!window['external'] && !!window['external']['callWin']) { - window['external'].callWin(objStr); - } else { - alert(objStr); - } moralMap.closeInfoWindow(); }); @@ -1058,37 +1030,6 @@ var state = this.getOption()["state"]; this.setData(data); //������������ _super_refreshState.call(this, data["state"]); - //������������������������������,������������������������ - /*if(infoWindow.isOpen()) { - if(data["state"]==4){ - if(state!=4){ - infoWindow.setHeight(option["offline_height"]); - infoWindow.setWidth(option["offline_width"]); - infoWindow.setContent(dataHandle._getDataOutHtml(data)); - infoWindow.redraw(); - } - return; - } - var mac = data["mac"]; - var itme_mac_key = "#item-" + mac + "-" + key; - if($(itme_mac_key).length==0){ - infoWindow.setHeight(option["online_height"]); - infoWindow.setWidth(option["online_width"]); - infoWindow.setContent(dataHandle._getDataOutHtml(data)); - infoWindow.redraw(); - } - for(var key in data) { - if($.inArray(key,showSensorKeys)!=-1) { - var dataValue = data[key]; - var itme_state = dataHandle._getSensorState(data, key); - var itme_data_mac_key = "#item-data-" + mac + "-" + key; - if(!$(itme_data_mac_key).hasClass(itme_state)) { - $(itme_data_mac_key).attr("class", itme_state); - } - $(itme_data_mac_key).text(dataValue); - } - } - }*/ } }, setData: function (data) { @@ -1123,6 +1064,31 @@ moralMap.getEquipments = function (key) { return moralMap['_equipments']; } + + moralMap.putDevice = function (key, obj) { + if (key != null && key != "") { + key = String.prototype.toLowerCase.call(key); + if (moralMap['_devices'] == undefined) { + moralMap['_devices'] = {}; + } + moralMap['_devices'][key] = obj; + } + } + + moralMap.getDevice = function (key) { + if (key == null) { + return null; + } + key = String.prototype.toLowerCase.call(key); + if (typeof moralMap['_devices'] === 'object') { + return moralMap['_devices'][key]; + } + } + + moralMap.getDevices = function (key) { + return moralMap['_devices']; + } + moralMap.clearEquipments = function () { if (moralMap['_equipments'] != undefined) { delete moralMap['_equipments']; @@ -1156,12 +1122,53 @@ if (longitude < bounds.northeastLng && longitude > bounds.southwestLng && latitude < bounds.northeastLat && latitude > bounds.southwestLat) { markers.push(oldmarker); } + if ("���������" === option["monitorPoint"]["description"]) { + var icon05 = new BMap.Icon("/img/ico05.png", new BMap.Size(50, 50)); + var mark05 = new BMap.Marker(new BMap.Point(option["monitorPoint"]["longitude"], option["monitorPoint"]["latitude"]), {icon: icon05}); + markers.push(mark05); + } else if ("���������" === option["monitorPoint"]["description"]) { + var icon06 = new BMap.Icon("/img/ico06.png", new BMap.Size(50, 50)); + var mark06 = new BMap.Marker(new BMap.Point(option["monitorPoint"]["longitude"], option["monitorPoint"]["latitude"]), {icon: icon06}); + markers.push(mark06); + } else if ("���������" === option["monitorPoint"]["description"]) { + var icon08 = new BMap.Icon("/img/ico08.png", new BMap.Size(50, 50)); + var mark08 = new BMap.Marker(new BMap.Point(option["monitorPoint"]["longitude"], option["monitorPoint"]["latitude"]), {icon: icon08}); + markers.push(mark08); + } } } } } return markers; } + + moralMap.getHorizonWindMarkers = function (isShow) { + var bounds = moralMap.getBounds(); + var oldWindMarkerList; + var isShow = (isShow) ? baiduMap : null; + if (moralMap.layer() == "equipments") { + oldWindMarkerList = moralMap.getDevices(); + } + var markers = []; + if (oldWindMarkerList != null && typeof oldWindMarkerList == "object") { + for (var i in oldWindMarkerList) { + var oldWindMarker = oldWindMarkerList[i]; + if (oldWindMarker != null && oldWindMarker instanceof BMap.Overlay && oldWindMarker.getMap() == isShow) { + var option = oldWindMarker.getOption(); + if (typeof option == 'object') { + var longitude = option['longitude']; + var latitude = option['latitude']; + // ������������������������������������ + if (longitude < bounds.northeastLng && longitude > bounds.southwestLng && latitude < bounds.northeastLat && latitude > bounds.southwestLat) { + markers.push(oldWindMarker); + } + } + } + } + } + return markers; + } + moralMap.showPointMonitor = function (id) { var mpointMarker = moralMap.getMpoint(id); var mpoint = mpointMarker.getOption(); @@ -1215,7 +1222,57 @@ var deviceStates; var monitorPointStates; - moralMap.refreshState = function (states) { + moralMap.refreshState = function (states, orgId, regionCode, accountId) { + var state = JSON.stringify(states); + var state1 = $(".pp2").html() + var paramMap = {}; + var abc = ''; + paramMap["orgId"] = orgId; + paramMap["regionCode"] = regionCode; + paramMap["accountId"] = accountId; + paramMap["states"] = state; + paramMap["states1"] = state1; + $.ajax({ + url: "/screen/tellAlarm", + type: "get", + dataType: "json", + data: paramMap, + success: function (info) { + var alarm = JSON.parse(JSON.stringify(info)); + if (alarm.length > 0) { + $("#box").attr("style", "display:block;");//������div + $("#tou").attr("style", "display:block;color: #d9534f;font-size: 20px;");//������div + for (var i = 0; i < alarm.length; i++) { + var text = "<span style='line-height: 25px><p style='line-height: 25px'>"; + var lookString = alarm[i][0]["time"] + " " + alarm[i][0]["name"]; + for (var j = 0; j < alarm[i].length; j++) { + var value = ""; + if (alarm[i].length > 1) { + if (j == 0) { + value = alarm[i][j]["sensor"] + "=" + alarm[i][j]["value"]; + lookString = lookString + value; + } else { + value = alarm[i][j]["sensor"] + "=" + alarm[i][j]["value"]; + lookString = lookString + "," + value; + } + } else { + value = alarm[i][j]["sensor"] + "=" + alarm[i][j]["value"]; + lookString = lookString + value; + } + text = text + lookString + "������" + "</p><hr></hr></span>"; + $("#box1").prepend(text); + } + + } + for (var j = 0; j < $("#box1").children("span").length; j++) { + if ($("#box1").children("span").length > 50) { + $("#box1 span:last").remove() ; + } + } + } + }, + }) + state1 = $(".pp2").html(state); monitorPointStates = states; deviceStates = []; for (var i in states) { @@ -1243,5 +1300,53 @@ } } + + moralMap.getRoad = function (data, regionCode) { + + var wind = data["e23"]; + var mac = data["mac"]; + var windSpeed = data["e18"]; + var speedLevel; + if (windSpeed >= 0 && windSpeed <= 0.2) { + speedLevel = 0; + } else if (windSpeed > 0.2 && windSpeed <= 1.5) { + speedLevel = 1; + } else if (windSpeed > 1.5 && windSpeed <= 3.3) { + speedLevel = 2; + } else if (windSpeed > 3.3 && windSpeed <= 5.4) { + speedLevel = 3; + } else if (windSpeed > 5.4 && windSpeed <= 7.9) { + speedLevel = 4; + } else if (windSpeed > 7.9 && windSpeed <= 10.7) { + speedLevel = 5; + } else if (windSpeed > 10.7 && windSpeed <= 13.8) { + speedLevel = 6; + } else if (windSpeed > 13.8 && windSpeed <= 17.1) { + speedLevel = 7; + } else if (windSpeed > 17.1) { + speedLevel = 8; + } + + $.ajax({ + url: "/screen/getAlarm", + type: "get", + dataType: "json", + data: {"windData": wind, "code": regionCode, "mac": mac, "speedLevel": speedLevel}, + success: function (info) { + console.log("---------------" + info); + }, + + }) + } + + moralMap.refreshWindDir = function (devicesInfo) { + var deviceInfo = devicesInfo; + var mac = deviceInfo["mac"]; + var device = moralMap.getDevice(mac); + if (device) { + device.refreshWindDir(deviceInfo); + } + } + window.moralMap = moralMap; -})(jQuery, BMap, window); +})(jQuery, BMap, window); \ No newline at end of file -- Gitblit v1.8.0