123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- package com.gyee.alarm.service;
- import com.gyee.alarm.init.CacheContext;
- import com.gyee.alarm.model.auto.*;
- import com.gyee.alarm.model.vo.*;
- import com.gyee.alarm.service.auto.IAlarmTsService;
- import com.gyee.alarm.service.auto.IProEconAlarmInfoService;
- import com.gyee.alarm.util.DateUtils;
- import com.gyee.alarm.util.StringUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- import javax.annotation.Resource;
- import javax.servlet.http.HttpServletRequest;
- import javax.websocket.EncodeException;
- import java.io.IOException;
- import java.sql.SQLException;
- import java.util.*;
- import java.util.concurrent.ConcurrentHashMap;
- @Service
- public class AlarmCtService {
- @Resource
- private IAlarmTsService alarmTsService;
- @Resource
- private IProEconAlarmInfoService proEconAlarmInfoService;
- @Resource
- private TokenService tokenService;
- public List<AlarmVo> initalAlarmVo() {
- List<AlarmVo> alarmVoList = new ArrayList<>();
- Map<String, List<ProEconAlarmRule>> alarmRulesMap = CacheContext.alarmRulesMap;
- //风机自定义报警
- wtCustomAlarm(alarmVoList, alarmRulesMap);
- //逆变器自定义报警
- lnCustomAlarm(alarmVoList, alarmRulesMap);
- // //场站自定义报警
- // wpCustomAlarm(alarmVoList, alarmRulesMap);
- //升压站自定义报警
- btCustomAlarm(alarmVoList, alarmRulesMap);
- return alarmVoList;
- }
- private void wtCustomAlarm(List<AlarmVo> alarmVoList, Map<String, List<ProEconAlarmRule>> alarmRulesMap) {
- Map<String, List<ProEconAlarmRule>> armap = new HashMap<>();
- if (alarmRulesMap.containsKey(DeviceTypeValue.WT.getCode())) {
- List<ProEconAlarmRule> arls = alarmRulesMap.get(DeviceTypeValue.WT.getCode());
- if (!arls.isEmpty()) {
- for (ProEconAlarmRule ar : arls) {
- StringBuilder sb = new StringBuilder();
- sb.append(ar.getStationId() + ar.getModelId());
- if (armap.containsKey(String.valueOf(sb))) {
- List<ProEconAlarmRule> ls = armap.get(String.valueOf(sb));
- ls.add(ar);
- } else {
- List<ProEconAlarmRule> ls = new ArrayList<>();
- ls.add(ar);
- armap.put(String.valueOf(sb), ls);
- }
- }
- }
- }
- for (ProBasicEquipment wt : CacheContext.wtls) {
- StringBuilder sb = new StringBuilder();
- sb.append(wt.getWindpowerstationId() + wt.getModelId());
- if (armap.containsKey(String.valueOf(sb))) {
- List<ProEconAlarmRule> alarmls = armap.get(String.valueOf(sb));
- if (!alarmls.isEmpty()) {
- for (ProEconAlarmRule alarm : alarmls) {
- AlarmVo vo = new AlarmVo();
- StringBuilder tbName = new StringBuilder();
- tbName.append(wt.getId()).append("_").append(alarm.getId());
- vo.setTbName(String.valueOf(tbName));
- vo.setAlarmid(alarm.getId());
- vo.setTagid(alarm.getExpression());
- vo.setAlarmtype(AlarmTypeValue.CT.getCode());
- vo.setCharacteristic(alarm.getName());
- vo.setComponents(alarm.getRelatedParts());
- vo.setDescription(alarm.getDescription());
- vo.setDeviceid(wt.getId());
- vo.setDevicename(wt.getName());
- vo.setDevicetype(DeviceTypeValue.WT.getCode());
- vo.setEnabled(alarm.getEnable());
- vo.setLineid(wt.getLineId());
- if (CacheContext.lnmap.containsKey(wt.getLineId())) {
- ProBasicLine ln = CacheContext.lnmap.get(wt.getLineId());
- vo.setLinename(ln.getName());
- }
- vo.setModelId(wt.getModelId());
- vo.setProjectid(wt.getProjectId());
- if (CacheContext.pjmap.containsKey(wt.getProjectId())) {
- ProBasicProject pj = CacheContext.pjmap.get(wt.getProjectId());
- vo.setProjectname(pj.getName());
- }
- vo.setRank(alarm.getRank());
- vo.setResettable(false);
- vo.setStationid(wt.getWindpowerstationId());
- if (CacheContext.wpmap.containsKey(wt.getWindpowerstationId())) {
- ProBasicPowerstation wp = CacheContext.wpmap.get(wt.getWindpowerstationId());
- vo.setStationname(wp.getName());
- }
- vo.setSubcomponents("");
- vo.setSuffix("");
- vo.setTriggertype(1);
- vo.setUniformcode("");
- vo.setSuperTableName(AlarmSuperTalbeType.CT.getCode());
- vo.setVal(0);
- vo.setCharacteristic("自定义");
- vo.setFaultCause(alarm.getDescription());
- vo.setResolvent(alarm.getExpression());
- alarmVoList.add(vo);
- }
- }
- }
- }
- }
- private void lnCustomAlarm(List<AlarmVo> alarmVoList, Map<String, List<ProEconAlarmRule>> alarmRulesMap) {
- Map<String, List<ProEconAlarmRule>> armap = new HashMap<>();
- if (alarmRulesMap.containsKey(DeviceTypeValue.IN.getCode())) {
- List<ProEconAlarmRule> arls = alarmRulesMap.get(DeviceTypeValue.IN.getCode());
- if (!arls.isEmpty()) {
- for (ProEconAlarmRule ar : arls) {
- StringBuilder sb = new StringBuilder();
- sb.append(ar.getStationId() + ar.getModelId());
- if (armap.containsKey(String.valueOf(sb))) {
- List<ProEconAlarmRule> ls = armap.get(String.valueOf(sb));
- ls.add(ar);
- } else {
- List<ProEconAlarmRule> ls = new ArrayList<>();
- ls.add(ar);
- armap.put(String.valueOf(sb), ls);
- }
- }
- }
- }
- //
- // HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
- // List<ProBasicEquipment> wtls = tokenService.getWtls(request);
- for (ProBasicEquipment wt : CacheContext.wtls) {
- StringBuilder sb = new StringBuilder();
- sb.append(wt.getWindpowerstationId() + wt.getModelId());
- if (armap.containsKey(String.valueOf(sb))) {
- List<ProEconAlarmRule> alarmls = armap.get(String.valueOf(sb));
- if (!alarmls.isEmpty()) {
- for (ProEconAlarmRule alarm : alarmls) {
- AlarmVo vo = new AlarmVo();
- StringBuilder tbName = new StringBuilder();
- tbName.append(wt.getId()).append("_").append(alarm.getId());
- vo.setTbName(String.valueOf(tbName));
- vo.setAlarmid(alarm.getId());
- vo.setTagid(alarm.getExpression());
- vo.setAlarmtype(AlarmTypeValue.CT.getCode());
- vo.setCharacteristic(alarm.getName());
- vo.setComponents(alarm.getRelatedParts());
- vo.setDescription(alarm.getDescription());
- vo.setDeviceid(wt.getId());
- vo.setDevicename(wt.getName());
- vo.setDevicetype(DeviceTypeValue.IN.getCode());
- vo.setEnabled(alarm.getEnable());
- vo.setLineid(wt.getLineId());
- if (CacheContext.lnmap.containsKey(wt.getLineId())) {
- ProBasicLine ln = CacheContext.lnmap.get(wt.getLineId());
- vo.setLinename(ln.getName());
- }
- vo.setModelId(wt.getModelId());
- vo.setProjectid(wt.getProjectId());
- if (CacheContext.pjmap.containsKey(wt.getProjectId())) {
- ProBasicProject pj = CacheContext.pjmap.get(wt.getProjectId());
- vo.setProjectname(pj.getName());
- }
- vo.setRank(alarm.getRank());
- vo.setResettable(false);
- vo.setStationid(wt.getWindpowerstationId());
- if (CacheContext.wpmap.containsKey(wt.getWindpowerstationId())) {
- ProBasicPowerstation wp = CacheContext.wpmap.get(wt.getWindpowerstationId());
- vo.setStationname(wp.getName());
- }
- vo.setSubcomponents("");
- vo.setSuffix("");
- vo.setTriggertype(1);
- vo.setUniformcode("");
- vo.setSuperTableName(AlarmSuperTalbeType.CT.getCode());
- vo.setVal(0);
- vo.setCharacteristic("自定义");
- vo.setFaultCause(alarm.getDescription());
- vo.setResolvent(alarm.getExpression());
- alarmVoList.add(vo);
- }
- }
- }
- }
- }
- private void wpCustomAlarm(List<AlarmVo> alarmVoList, Map<String, List<ProEconAlarmRule>> alarmRulesMap) {
- List<ProEconAlarmRule> alarmls = new ArrayList<>();
- if (alarmRulesMap.containsKey(DeviceTypeValue.WP.getCode())) {
- alarmls = alarmRulesMap.get(DeviceTypeValue.WP.getCode());
- }
- // HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
- // List<ProBasicPowerstation> wpls = tokenService.getWpls(request);
- for (ProBasicPowerstation wp : CacheContext.wpls) {
- if (!alarmls.isEmpty()) {
- for (ProEconAlarmRule alarm : alarmls) {
- AlarmVo vo = new AlarmVo();
- StringBuilder tbName = new StringBuilder();
- tbName.append(wp.getId()).append("_").append(alarm.getId());
- vo.setTbName(String.valueOf(tbName));
- vo.setAlarmid(alarm.getId());
- vo.setTagid(alarm.getExpression());
- vo.setAlarmtype(AlarmTypeValue.CT.getCode());
- vo.setCharacteristic(alarm.getName());
- vo.setComponents(alarm.getRelatedParts());
- vo.setDescription(alarm.getDescription());
- vo.setDeviceid("");
- vo.setDevicename("");
- vo.setDevicetype(DeviceTypeValue.WP.getCode());
- vo.setEnabled(alarm.getEnable());
- vo.setLineid("");
- vo.setLinename("");
- vo.setModelId("");
- vo.setProjectid("");
- vo.setProjectname("");
- vo.setRank(alarm.getRank());
- vo.setResettable(false);
- vo.setStationid(wp.getId());
- vo.setStationname(wp.getName());
- vo.setSubcomponents("");
- vo.setSuffix("");
- vo.setTriggertype(1);
- vo.setUniformcode("");
- vo.setSuperTableName(AlarmSuperTalbeType.CT.getCode());
- vo.setVal(0);
- alarmVoList.add(vo);
- }
- }
- }
- }
- private void btCustomAlarm(List<AlarmVo> alarmVoList, Map<String, List<ProEconAlarmRule>> alarmRulesMap) {
- Map<String,List<ProEconAlarmRule>> alarmMap=new HashMap<>();
- if (alarmRulesMap.containsKey(DeviceTypeValue.BT.getCode())) {
- List<ProEconAlarmRule> alarmls = alarmRulesMap.get(DeviceTypeValue.BT.getCode());
- if(!alarmls.isEmpty())
- {
- for(ProEconAlarmRule alarm:alarmls)
- {
- if (StringUtils.notEmp(alarm) && StringUtils.notEmp(alarm.getElectricalId()))
- {
- String [] ids=alarm.getElectricalId().split(",");
- if(ids.length>0)
- {
- for(int i=0;i<ids.length;i++)
- {
- if(alarmMap.containsKey(ids[i]))
- {
- List<ProEconAlarmRule> arls=alarmMap.get(ids[i]);
- arls.add(alarm);
- }else
- {
- List<ProEconAlarmRule> arls=new ArrayList<>();
- arls.add(alarm);
- alarmMap.put(ids[i],arls);
- }
- }
- }
- }
- }
- }
- }
- // HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
- // List<ProBasicSubStation> subwpls = tokenService.getSubwpls(request);
- for (ProBasicSubStation wp : CacheContext.subwpls) {
- if (!alarmMap.isEmpty() && alarmMap.containsKey(wp.getId())) {
- List<ProEconAlarmRule> alarmls = alarmMap.get(wp.getId());
- for (ProEconAlarmRule alarm : alarmls) {
- AlarmVo vo = new AlarmVo();
- StringBuilder tbName = new StringBuilder();
- tbName.append(wp.getId()).append("_").append(alarm.getId());
- vo.setTbName(String.valueOf(tbName));
- vo.setAlarmid(alarm.getId());
- vo.setTagid(alarm.getExpression());
- vo.setAlarmtype(AlarmTypeValue.CT.getCode());
- vo.setCharacteristic(alarm.getName());
- vo.setComponents(alarm.getRelatedParts());
- vo.setDescription(alarm.getDescription());
- vo.setDeviceid("");
- vo.setDevicename("");
- vo.setDevicetype(DeviceTypeValue.BT.getCode());
- vo.setEnabled(alarm.getEnable());
- vo.setLineid("");
- vo.setLinename("");
- vo.setModelId("");
- vo.setProjectid("");
- vo.setProjectname("");
- vo.setRank(alarm.getRank());
- vo.setResettable(false);
- vo.setStationid(wp.getId());
- vo.setStationname(wp.getName());
- vo.setSubcomponents("");
- vo.setSuffix("");
- vo.setTriggertype(1);
- vo.setUniformcode("");
- vo.setSuperTableName(AlarmSuperTalbeType.CT.getCode());
- vo.setVal(0);
- vo.setOval(0);
- vo.setCharacteristic("自定义");
- vo.setFaultCause(alarm.getDescription());
- vo.setResolvent(alarm.getExpression());
- alarmVoList.add(vo);
- }
- }
- }
- }
- }
|