From f55f6e05bae945d275101592782fb3b8980d77cf Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Sun, 28 Jun 2020 15:26:47 +0800 Subject: [PATCH] update风速风向显示设置 --- src/main/webapp/img/icoWind06.png | 0 src/main/resources/mapper/DeviceMapper.xml | 19 ++++++ src/main/webapp/img/icoWind04.png | 0 src/main/webapp/img/icoWind01.png | 0 src/main/webapp/js/newmoralmap.js | 93 +++++++++++++++++++++++-------- src/main/webapp/img/icoWind08.png | 0 src/main/java/com/moral/service/impl/DeviceServiceImpl.java | 8 ++ src/main/webapp/view/newmap.jsp | 6 + src/main/java/com/moral/entity/Device.java | 3 + src/main/webapp/img/icoWind05.png | 0 /dev/null | 0 src/main/webapp/img/icoWind07.png | 0 src/main/webapp/img/icoWind02.png | 0 src/main/webapp/img/icoWind03.png | 0 src/main/java/com/moral/mapper/DeviceMapper.java | 5 + src/main/java/com/moral/webSocketServer/WebSocketServer.java | 15 ++++ src/main/java/com/moral/controller/ScreenController.java | 9 +++ 17 files changed, 128 insertions(+), 30 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 030a524..8127aaa 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -620,6 +620,15 @@ @RequestMapping(value = "/get-devices", method = RequestMethod.GET) @ResponseBody + @ApiOperation(value = "������������", notes = "������������") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "orgId",defaultValue = "5", value = "������Id", required = true, paramType = "query", dataType = "Integer"), + @ApiImplicitParam(name = "regionCode",defaultValue = "320583", value = "������������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "Fe", defaultValue = "31.485018",value = "���������������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "Ge", defaultValue = "121.378395",value = "���������������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "Ke", defaultValue = "31.296614",value = "���������������", required = true, paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "Le", defaultValue = "120.59651",value = "���������������", required = true, paramType = "query", dataType = "String") + }) public ResultBean getDevices(@RequestParam("orgId") Integer orgId, MapBounds mapBounds, @RequestParam("regionCode") String regionCode) { ResultBean<List<Device>> resultBean = new ResultBean(); diff --git a/src/main/java/com/moral/entity/Device.java b/src/main/java/com/moral/entity/Device.java index 1c01911..a69aa52 100644 --- a/src/main/java/com/moral/entity/Device.java +++ b/src/main/java/com/moral/entity/Device.java @@ -119,4 +119,7 @@ private Profession profession; @Transient private DeviceProperty deviceProperty; + + @Transient + private Boolean hasWindInfo; } \ 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 90a7ac3..2aa2714 100644 --- a/src/main/java/com/moral/mapper/DeviceMapper.java +++ b/src/main/java/com/moral/mapper/DeviceMapper.java @@ -4,11 +4,10 @@ import java.util.List; import java.util.Map; -import org.apache.ibatis.annotations.Param; - import com.moral.common.mapper.BaseMapper; import com.moral.entity.Device; +import org.apache.ibatis.annotations.Param; import tk.mybatis.mapper.entity.Example; public interface DeviceMapper extends BaseMapper<Device>{ @@ -51,4 +50,6 @@ List<Device> getDeviceById2(@Param("id") int id); List<Device> getDeviceById3(@Param("id") int id); + + List<Integer> getHasWindDirAndWindSpeedDeviceVersion(); } \ No newline at end of file diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java index 5311f2e..b3d7066 100644 --- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java @@ -206,6 +206,7 @@ */ @Override public List<Device> query(Map<String, Object> params) { + List<Integer> dv = deviceMapper.getHasWindDirAndWindSpeedDeviceVersion(); Object orgIdObj = params.get("orgId"); List<Device> deviceList = null; if (orgIdObj != null) { @@ -215,6 +216,13 @@ deviceList = deviceMapper.selectByMap(params); // loadDeviceState(deviceList); } + for(Device d:deviceList){ + if(dv.contains(d.getDeviceVersionId())){ + d.setHasWindInfo(true); + }else{ + d.setHasWindInfo(false); + } + } return deviceList; } diff --git a/src/main/java/com/moral/webSocketServer/WebSocketServer.java b/src/main/java/com/moral/webSocketServer/WebSocketServer.java index 33d06c8..59a9783 100644 --- a/src/main/java/com/moral/webSocketServer/WebSocketServer.java +++ b/src/main/java/com/moral/webSocketServer/WebSocketServer.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.util.concurrent.CopyOnWriteArraySet; +import java.util.concurrent.TimeoutException; import javax.websocket.OnClose; import javax.websocket.OnError; @@ -38,6 +39,10 @@ private String regionCode; + private Connection connection; + + private Channel channel; + // ������session��������������������������� private static CopyOnWriteArraySet<WebSocketServer> webSocketSet = new CopyOnWriteArraySet<WebSocketServer>(); @@ -64,8 +69,8 @@ factory.setUsername("guest"); factory.setPassword("guest_pass"); String routingKey = orgId+".*"; - Connection connection = factory.newConnection(); - Channel channel = connection.createChannel(); + connection = factory.newConnection(); + channel = connection.createChannel(); //��������������������������������������������������������������������������������������������������������� channel.queueDeclare(QUEUE_NAME, false, false, true, null); channel.queueBind(QUEUE_NAME,"screens_data",routingKey); @@ -93,6 +98,12 @@ public void onClose() { /**���������Set��� ������������������������*/ webSocketSet.remove(this); + try { + channel.close(); + connection.close(); + }catch (IOException | TimeoutException e){ + log.error(e.getMessage()); + } } @OnMessage diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml index 5c53568..2d97897 100644 --- a/src/main/resources/mapper/DeviceMapper.xml +++ b/src/main/resources/mapper/DeviceMapper.xml @@ -440,5 +440,24 @@ SELECT d.* FROM `device` as d,monitor_point as mp,device_property as dp where d.monitor_point_id=mp.id and d.id=dp.id and dp.device_tech=3 and d.monitor_point_id=#{id} </select> + <select id="getHasWindDirAndWindSpeedDeviceVersion" resultType="integer"> + SELECT id from + device_version + where id in + (SELECT s.device_version_id + from + (SELECT device_version_id + from + device_version_sensor + WHERE sensor_Id in + (SELECT id from + sensor + where + sensor_key='e18' or sensor_key='e23')) s + GROUP BY s.device_version_id + HAVING count(1)=2) + and is_delete=0; + </select> + </mapper> \ No newline at end of file diff --git a/src/main/webapp/img/icoWind01.png b/src/main/webapp/img/icoWind01.png new file mode 100644 index 0000000..994b975 --- /dev/null +++ b/src/main/webapp/img/icoWind01.png Binary files differ diff --git a/src/main/webapp/img/icoWind02.png b/src/main/webapp/img/icoWind02.png new file mode 100644 index 0000000..87a3356 --- /dev/null +++ b/src/main/webapp/img/icoWind02.png Binary files differ diff --git a/src/main/webapp/img/icoWind03.png b/src/main/webapp/img/icoWind03.png new file mode 100644 index 0000000..6cf20b9 --- /dev/null +++ b/src/main/webapp/img/icoWind03.png Binary files differ diff --git a/src/main/webapp/img/icoWind04.png b/src/main/webapp/img/icoWind04.png new file mode 100644 index 0000000..adc5281 --- /dev/null +++ b/src/main/webapp/img/icoWind04.png Binary files differ diff --git a/src/main/webapp/img/icoWind05.png b/src/main/webapp/img/icoWind05.png new file mode 100644 index 0000000..4d610e3 --- /dev/null +++ b/src/main/webapp/img/icoWind05.png Binary files differ diff --git a/src/main/webapp/img/icoWind06.png b/src/main/webapp/img/icoWind06.png new file mode 100644 index 0000000..0680e8f --- /dev/null +++ b/src/main/webapp/img/icoWind06.png Binary files differ diff --git a/src/main/webapp/img/icoWind07.png b/src/main/webapp/img/icoWind07.png new file mode 100644 index 0000000..030a1d3 --- /dev/null +++ b/src/main/webapp/img/icoWind07.png Binary files differ diff --git a/src/main/webapp/img/icoWind08.png b/src/main/webapp/img/icoWind08.png new file mode 100644 index 0000000..636566d --- /dev/null +++ b/src/main/webapp/img/icoWind08.png Binary files differ diff --git a/src/main/webapp/img/wind_dir.png b/src/main/webapp/img/wind_dir.png deleted file mode 100644 index a2e42b3..0000000 --- a/src/main/webapp/img/wind_dir.png +++ /dev/null Binary files differ diff --git a/src/main/webapp/js/newmoralmap.js b/src/main/webapp/js/newmoralmap.js index 3a90815..addf8f6 100644 --- a/src/main/webapp/js/newmoralmap.js +++ b/src/main/webapp/js/newmoralmap.js @@ -644,6 +644,7 @@ return listView; } + moralMap.MoralMarker = function (option) { var _option = option; var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']); @@ -696,21 +697,60 @@ }) } - moralMap.WindMarker = function (option, target) { + moralMap.WindMarker = function (option, moralMap) { var _option = option; var _pointObj = new BMap.Point(_option['longitude'], _option['latitude']); - var _iconObj = new BMap.Icon("/img/wind_dir.png", new BMap.Size(25, 25)); + var _iconObj = _getWindIcon(1); this._point = _pointObj; + + function _getWindIcon(speedLevel) { + speedLevel = speedLevel == null ? 0 : speedLevel; + var icon = _option["icon"]; + var url = icon["url"] + speedLevel + ".png"; + return new BMap.Icon(url, new BMap.Size(icon["width"], icon["height"]), { + imageSize: new BMap.Size(icon["width"], icon["height"]) + }); + } this.constructor.call(this, _pointObj, { icon: _iconObj, - offset: new BMap.Size(0, -35), + offset: new BMap.Size(0, -11), enableMassClear: true }) return $.extend(this, { - refreshWindDir: function (windDir) { + refreshWindDir: function (windDir, windSpeed) { //��������������������������������������������� - this.setRotation(windDir); + if (windDir == undefined || windSpeed == undefined) { + moralMap.removeOverlay(this); + } else { + var speedLevel; + if (windSpeed >= 0.0 && windSpeed <= 0.2) { + speedLevel = 0; + } else if (windSpeed >= 0.3 && windSpeed <= 1.5) { + speedLevel = 1; + } else if (windSpeed >= 1.6 && windSpeed <= 3.3) { + speedLevel = 2; + } else if (windSpeed >= 3.4 && windSpeed <= 5.4) { + speedLevel = 3; + } else if (windSpeed >= 5.5 && windSpeed <= 7.9) { + speedLevel = 4; + } else if (windSpeed >= 8.0 && windSpeed <= 10.7) { + speedLevel = 5; + } else if (windSpeed >= 10.8 && windSpeed <= 13.8) { + speedLevel = 6; + } else if (windSpeed >= 13.9 && windSpeed <= 17.1) { + speedLevel = 7; + } else if (windSpeed >= 17.2) { + speedLevel = 8; + } + } + if (speedLevel == 0) { + moralMap.removeOverlay(this); + } else { + var iconObj = _getWindIcon(speedLevel); + this.setIcon(iconObj); + this.setRotation(windDir); + } }, getOption: function () { return _option; @@ -823,14 +863,19 @@ } } } - var windMarker = new moralMap.WindMarker(option); + var icon = {}; + icon["url"] = "/img/icoWind0"; + icon["width"] = 25; + icon["height"] = 25; + option["icon"] = icon; + 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"]); + refreshWindMarker.call(this, data["e23"], data["e18"]); } }, setData: function (data) { @@ -898,15 +943,15 @@ } var mouseOverHandle = option['mouseover']; 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); - }*/ + /* 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; @@ -958,14 +1003,14 @@ }); 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); - }*/ + /* 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(); }); diff --git a/src/main/webapp/view/newmap.jsp b/src/main/webapp/view/newmap.jsp index 7e39dbc..a7e50f0 100644 --- a/src/main/webapp/view/newmap.jsp +++ b/src/main/webapp/view/newmap.jsp @@ -487,9 +487,11 @@ } } var moralMask = new moralMap.Equipment(obj); - var moralDeviceWind = new moralMap.Device(obj); moralMap.addOverlay(moralMask); - moralMap.addOverlay(moralDeviceWind); + if (obj['hasWindInfo']) { + var moralDeviceWind = new moralMap.Device(obj); + moralMap.addOverlay(moralDeviceWind); + } } } } -- Gitblit v1.8.0