fengxiang
2018-02-07 a8532c88680e4ab213c269ec91da5b223f62332f
地图相关资源
6 files modified
109 ■■■■ changed files
src/main/java/com/moral/controller/AlarmConfigController.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/ScreenController.java 38 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/AlarmConfigService.java 7 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java 52 ●●●● patch | view | raw | blame | history
src/main/resources/system/alarmLevels.json 2 ●●● patch | view | raw | blame | history
src/main/webapp/view/map.jsp 8 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/controller/AlarmConfigController.java
@@ -17,7 +17,7 @@
    AlarmConfigService alarmConfigService;
       @GetMapping("get-by-oid")
      public ResultBean<AlarmConfig> getAlarmConfigByOrganizationId(int organizationId){
          AlarmConfig alarmConfig = alarmConfigService.SelectByOrganizationId(organizationId);
          AlarmConfig alarmConfig = alarmConfigService.queryByOrganizationId(organizationId).get();
          ResultBean resultBean = new ResultBean();
          resultBean.setCode(ResultBean.SUCCESS);
           resultBean.setData(alarmConfig);
src/main/java/com/moral/controller/ScreenController.java
@@ -6,7 +6,9 @@
import static com.moral.common.util.WebUtils.getParametersStartingWith;
import java.io.*;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -19,7 +21,10 @@
import com.moral.entity.Device;
import com.moral.entity.MapBounds;
import com.moral.entity.MonitorPoint;
import com.moral.entity.alarm.AlarmConfigValue;
import com.moral.entity.alarm.AlarmSensorLevel;
import com.moral.service.*;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.net.ftp.FTPClient;
@@ -46,7 +51,8 @@
//@CrossOrigin(origins = "*", maxAge = 3600)
public class ScreenController {
    public  static Logger log = Logger.getLogger(ScreenController.class);
    @Resource
    AlarmConfigService alarmConfigService;
    @Resource
    AreaService areaService;
@@ -128,23 +134,25 @@
     */
    @SuppressWarnings("resource")
    @GetMapping("alarm-levels")
    public Map<String, Object> getAlarmLevels(HttpServletRequest request,String orgId) {
        Map<String, Object> result = new LinkedHashMap<String, Object>();
        String key = levelKey + orgId;
    public Object getAlarmLevels(HttpServletRequest request, Integer orgId) {
        List<Map<String,Object>> sensorAlarmList = null;
        AlarmConfigValue alarmConfigValue = null;
        try {
            if (hasKey(redisTemplate, key)) {
                String levelConfigStr = get(redisTemplate, key);
                result = JSON.parseObject(levelConfigStr, new TypeReference<Map<String, Object>>() {});
            } else {
                InputStreamReader reader = new InputStreamReader(resource.getInputStream());
                result = new JSONReader(reader).readObject(new TypeReference<LinkedHashMap<String, Object>>() {});
            }
        } catch (IOException e) {
            alarmConfigValue = alarmConfigService.queryValueByOrganizationId(orgId).get();
            Map<String,AlarmSensorLevel> alarmLevelMap = alarmConfigValue.getAlarmLevels();
            sensorAlarmList = alarmLevelMap.keySet().stream().map(key -> {
                 AlarmSensorLevel alarmSensorLevel = alarmLevelMap.get(key);
                JSONObject alarmSensorLevelMap = (JSONObject) JSON.toJSON(alarmSensorLevel);
                alarmSensorLevelMap.put("key",key);
                return alarmSensorLevelMap;
            }).collect(Collectors.toList());
        } catch (Exception e) {
            e.printStackTrace();
            result.put("msg", "系统错误,请联系管理员!原因如下:" + e.getMessage());
            Map<String, Object> err = new LinkedHashMap<String, Object>();
            err.put("msg", "系统错误,请联系管理员!原因如下:" + e.getMessage());
            return  err;
        }
        return result;
        return sensorAlarmList;
    }
    /**
src/main/java/com/moral/service/AlarmConfigService.java
@@ -1,9 +1,12 @@
package com.moral.service;
import com.moral.entity.alarm.AlarmConfig;
import com.moral.entity.alarm.AlarmConfigValue;
import java.util.Optional;
public interface AlarmConfigService {
     public AlarmConfig SelectByOrganizationId(int organizationId);
    public Optional<AlarmConfigValue> queryValueByOrganizationId(int organizationId);
    public Optional<AlarmConfig> queryByOrganizationId(int organizationId);
    void addOrModify(AlarmConfig alarmConfig);
}
src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
@@ -1,5 +1,7 @@
package com.moral.service.impl;
import com.alibaba.fastjson.JSONReader;
import com.alibaba.fastjson.TypeReference;
import com.moral.common.bean.Constants;
import com.moral.common.util.RedisUtils;
import com.moral.entity.alarm.AlarmConfig;
@@ -8,23 +10,61 @@
import com.moral.entity.alarm.AlarmSensorLevel;
import com.moral.mapper.AlarmConfigMapper;
import com.moral.service.AlarmConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.session.SessionProperties;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
@Service
public class AlarmConfigServiceImpl implements AlarmConfigService{
    /** 缺省三级警报配置 .*/
    @Value(value = "classpath:system/alarmLevels.json")
    private org.springframework.core.io.Resource resource;
    private static AlarmConfigValue defaultAlarmConfigValue;
    @Autowired
    public AlarmConfigValue getDefaultAlarmConfigValue(){
        if(defaultAlarmConfigValue!=null){
            return defaultAlarmConfigValue;
        }else {
            InputStreamReader reader = null;
            AlarmConfigValue alarmConfigValue = null;
            try {
                reader = new InputStreamReader(resource.getInputStream());
                alarmConfigValue = new JSONReader(reader).readObject(new TypeReference<AlarmConfigValue>() {});
            } catch (IOException e) {
                e.printStackTrace();
            }
            return  alarmConfigValue;
        }
    }
    @Resource
    RedisUtils redisUtils;
    @Resource
    AlarmConfigMapper alarmConfigMapper;
    @Override
    public AlarmConfig SelectByOrganizationId(int organizationId) {
         return alarmConfigMapper.selectByOrganizationId(organizationId);
    public Optional queryValueByOrganizationId(int organizationId) {
        String key = RedisUtils.getAlarmKey(organizationId);
        AlarmConfigValue alarmConfigValue = redisUtils.get(key,new TypeReference<AlarmConfigValue>(){});
        if(alarmConfigValue==null){
            AlarmConfig alarmConfig = alarmConfigMapper.selectByOrganizationId(organizationId);
            if(alarmConfig!=null&&alarmConfig.getValue()!=null){
                alarmConfigValue  = alarmConfig.getValue();
            }else{
                alarmConfigValue = getDefaultAlarmConfigValue();
            }
        }
        return Optional.of(alarmConfigValue);
    }
    @Override
    public Optional<AlarmConfig> queryByOrganizationId(int organizationId) {
        AlarmConfig alarmConfig = alarmConfigMapper.selectByOrganizationId(organizationId);
        return Optional.of(alarmConfig);
    }
    @Override
src/main/resources/system/alarmLevels.json
@@ -1,6 +1,6 @@
{
    "alarmMode": {
        "enable": 1,
        "enable": 0,
        "level1": [],
        "level2": [],
        "level3": []
src/main/webapp/view/map.jsp
@@ -333,6 +333,12 @@
                                        alert(equStr);
                                    }
                              }
                    obj['mouseover'] = function (type) {
                        if(type.target.getData()==null){
                            //当前设备数据为空时,设备悬停事件中 刷新一下数据
                            refreshAllState();
                        }
                    }
                   var moralMask = new moralMap.Equipment(obj);
                   moralMap.addOverlay(moralMask);
                }
@@ -410,7 +416,7 @@
         }
         setTimeout(function(){
            refreshAllState();
         },2000);
         },5000);
    }
    function stopRefreshPage(){
        window.clearInterval(_intervalNum);