src/main/java/com/moral/controller/AlarmConfigController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/controller/ScreenController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/AlarmConfigService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/system/alarmLevels.json | ●●●●● patch | view | raw | blame | history | |
src/main/webapp/view/map.jsp | ●●●●● 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);