| | |
| | | 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.MonitorPoint; |
| | | import com.moral.entity.alarm.AlarmConfig; |
| | | import com.moral.entity.alarm.AlarmConfigValue; |
| | | import com.moral.entity.alarm.AlarmMode; |
| | | 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<AlarmConfig> 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) { |
| | | return Optional.ofNullable(alarmConfig); |
| | | } else { |
| | | alarmConfigValue = getDefaultAlarmConfigValue(); |
| | | } |
| | | } |
| | | AlarmConfig alarmConfigNotWithId = new AlarmConfig(); |
| | | alarmConfigNotWithId.setValue(alarmConfigValue); |
| | | return Optional.ofNullable(alarmConfigNotWithId); |
| | | } |
| | | |
| | | @Override |
| | | public Optional<AlarmConfig> queryByOrganizationId(int organizationId) { |
| | | AlarmConfig alarmConfig = alarmConfigMapper.selectByOrganizationId(organizationId); |
| | | if(alarmConfig==null){ |
| | | alarmConfig = new AlarmConfig(); |
| | | alarmConfig.setValue(getDefaultAlarmConfigValue()); |
| | | } |
| | | return Optional.ofNullable(alarmConfig); |
| | | } |
| | | |
| | | @Override |
| | | public String getValueByOrganizationId(int organizationId) { |
| | | return alarmConfigMapper.getValueByOrganizationId(organizationId); |
| | | } |
| | | |
| | | @Override |
| | | public Optional<AlarmConfig> queryByMonitorPointId(int mpId) { |
| | | AlarmConfig alarmConfig = alarmConfigMapper.selectByMonitorPointId(mpId); |
| | | if(alarmConfig==null){ |
| | | alarmConfig = new AlarmConfig(); |
| | | alarmConfig.setValue(getDefaultAlarmConfigValue()); |
| | | } |
| | | return Optional.ofNullable(alarmConfig); |
| | | } |
| | | |
| | | @Override |
| | | public Optional<AlarmConfig> queryByDeviceMac(String mac) { |
| | | AlarmConfig alarmConfig = alarmConfigMapper.selectByDeviceMac(mac); |
| | | if(alarmConfig==null){ |
| | | alarmConfig = new AlarmConfig(); |
| | | alarmConfig.setValue(getDefaultAlarmConfigValue()); |
| | | } |
| | | return Optional.ofNullable(alarmConfig); |
| | | } |
| | | |
| | | @Override |
| | |
| | | throw ex; |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public int containOrgId(Integer orgId) { |
| | | return alarmConfigMapper.containOrgId(orgId); |
| | | } |
| | | |
| | | public AlarmConfigValue simplifyAlarmConfigValue(AlarmConfigValue value){ |
| | | Map<String,AlarmSensorLevel> alarmSensorLevelMap = value.getAlarmLevels(); |
| | | List<String> cleanKeys = new ArrayList<>(); |