fengxiang
2018-05-22 ca72da809fdf68f2d6833ed77ad92c9aadc0663d
地图 增加 监控点入口
8 files modified
135 ■■■■ changed files
src/main/java/com/moral/controller/ScreenController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/DeviceMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/MonitorPointMapper.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/service/MonitorPointService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/DeviceServiceImpl.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/MonitorPointServiceImpl.java 4 ●●●● patch | view | raw | blame | history
src/main/webapp/js/moralmap.js 58 ●●●● patch | view | raw | blame | history
src/main/webapp/view/map.jsp 37 ●●●● patch | view | raw | blame | history
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));
    }
}
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);
    /**
     *
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);
}
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);
}
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){
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);
    }
}
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);
            }
        }
        else{
            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(!!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);
            }
        }
    }
    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);
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);
            }
        }
    );