123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742 |
- 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.service.auto.IProEconAlarmRuleService;
- import com.gyee.alarm.util.DateUtils;
- import com.gyee.alarm.util.StringUtils;
- import com.gyee.alarm.websocket.PushParams;
- import com.gyee.alarm.websocket.WebSocket;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import javax.websocket.EncodeException;
- import java.io.IOException;
- import java.sql.SQLException;
- import java.sql.Timestamp;
- import java.util.*;
- import java.util.concurrent.ConcurrentHashMap;
- @Service
- public class AlarmCtService {
- @Resource
- private IAlarmTsService alarmTsService;
- @Resource
- private IProEconAlarmInfoService proEconAlarmInfoService;
- @Value("${initialcode}")
- private String initialcode;
- @Value("${pushinterval}")
- private Double pushinterval;
- @Resource
- private WebSocket webSocket;
- @Resource
- private PushDataSevice pushDataSevice;
- public void dropSuperTable() {
- alarmTsService.dropSuperTable(AlarmSuperTalbeType.CT.getCode());
- }
- public void createSuperTable() {
- alarmTsService.createSuperTable(AlarmSuperTalbeType.CT.getCode());
- }
- public void initalCtAlarm() throws SQLException {
- List<AlarmVo> alarmVoList = CacheContext.alarmCtList;
- List<AlarmTag> alarmTags = new ArrayList<>();
- if (!alarmVoList.isEmpty()) {
- for (AlarmVo vo : alarmVoList) {
- alarmTsService.createTable(vo.getTbName(), vo.getAlarmid(), vo.getAlarmtype(),
- vo.getCharacteristic(), vo.getComponents(),
- vo.getDescription(),
- vo.getDeviceid(), vo.getDevicename(),
- vo.getDevicetype(), vo.getEnabled(),
- vo.getLineid(), vo.getLinename(),
- vo.getModelId(), vo.getProjectid(),
- vo.getProjectname(), vo.getRank(),
- vo.getResettable(), vo.getStationid(),
- vo.getStationname(), vo.getSubcomponents(),
- vo.getSuffix(), vo.getTagid(),
- vo.getTriggertype(), vo.getUniformcode(),
- vo.getSuperTableName(),vo.getName(),
- vo.getNemCode(),vo.getFaultCause(),vo.getResolvent(),vo.getFaultType(),vo.getAname());
- // AlarmTag po = new AlarmTag();
- // po.setId(vo.getTbName());
- // po.setVal(0.0);
- // po.setTriggerType(vo.getTriggertype());
- // po.setTagId(vo.getTagid());
- // po.setVal(0.0);
- // po.setRank(vo.getRank());
- // po.setTs(new Date().getTime());
- // alarmTags.add(po);
- }
- }
- // alarmTsService.insertList(alarmTags);
- }
- 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);
- }
- }
- }
- }
- 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());
- }
- 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);
- }
- }
- }
- }
- }
- }
- }
- 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);
- }
- }
- }
- }
- public List<AlarmCustomTag> findTags(String stbaleName) {
- List<AlarmCustomTag> ls = new ArrayList<>();
- if (StringUtils.notEmp(stbaleName)) {
- // List<AlarmVo> vos= alarmTsService.findTags(stbaleName);
- List<AlarmVo> vos = CacheContext.alarmCtList;
- if (!vos.isEmpty()) {
- for (AlarmVo vo : vos) {
- AlarmCustomTag po = new AlarmCustomTag();
- po.setId(vo.getTbName());
- po.setDescription(vo.getDescription());
- po.setTagId(vo.getTagid());
- po.setDeviceid(vo.getDeviceid());
- po.setDevicetype(vo.getDevicetype());
- po.setModelId(vo.getModelId());
- po.setAlarmtype(vo.getAlarmtype());
- po.setStationid(vo.getStationid());
- po.setVal(null);
- ls.add(po);
- }
- }
- }
- return ls;
- }
- public synchronized void saveAlarms(List<AlarmTag> ls) throws EncodeException, IOException {
- if (StringUtils.notEmp(ls) && !ls.isEmpty()) {
- alarmTsService.insertList(ls);
- Map<String,ProEconAlarmInfo> tempmap=new HashMap<>();
- if (StringUtils.notEmp(ls) && !ls.isEmpty()) {
- List<ProEconAlarmInfo> valuels = new ArrayList<>();
- for (AlarmTag alarm : ls) {
- if (CacheContext.alarmCtMap.containsKey(alarm.getId())) {
- AlarmVo vo = CacheContext.alarmCtMap.get(alarm.getId());
- ProEconAlarmInfo po = new ProEconAlarmInfo();
- po.setTbname(vo.getTbName());
- po.setLastUpdateTime(new Date(alarm.getTs()));
- po.setTagId(alarm.getTagId());
- po.setTriggerType(alarm.getTriggerType());
- po.setAlarmId(vo.getAlarmid());
- po.setDeviceId(vo.getDeviceid());
- po.setSubcomponents(vo.getSuffix());
- po.setRank(vo.getRank());
- po.setConfirmed(false);
- po.setUniformCode(vo.getUniformcode());
- po.setAlarmType(vo.getAlarmtype());
- po.setDeviceType(vo.getDevicetype());
- po.setComponents(vo.getComponents());
- po.setSubcomponents(vo.getSubcomponents());
- po.setDescription(vo.getDescription());
- po.setModelId(vo.getModelId());
- po.setResetTable(vo.getResettable());
- po.setEnable(vo.getEnabled());
- po.setCharacteristic(vo.getCharacteristic());
- po.setStationId(vo.getStationid());
- po.setProjectId(vo.getProjectid());
- po.setLineId(vo.getLineid());
- po.setStationName(vo.getStationname());
- po.setProjectiName(vo.getProjectname());
- po.setLineidName(vo.getLinename());
- po.setDeviceName(vo.getDevicename());
- po.setOval(alarm.getOval().intValue());
- po.setVal(alarm.getVal().intValue());
- po.setIsOpen(1);
- alarm.setRank(vo.getRank());
- alarm.setDescription(vo.getDescription());
- alarm.setAlarmType(vo.getAlarmtype());
- alarm.setDeviceType(vo.getDevicetype());
- alarm.setCharacteristic(vo.getCharacteristic());
- alarm.setFaultCause(vo.getFaultCause());
- alarm.setResolvent(vo.getResolvent());
- alarm.setIsClose(false);
- alarm.setDeviceId(vo.getDeviceid());
- alarm.setAlarmId(vo.getAlarmid());
- if(StringUtils.notEmp(vo.getDeviceid()) && CacheContext.wtmap.containsKey(vo.getDeviceid()))
- {
- alarm.setCode(CacheContext.wtmap.get(vo.getDeviceid()).getNemCode());
- }
- if(CacheContext.wpmap.containsKey(vo.getStationid()))
- {
- alarm.setWpName(CacheContext.wpmap.get(vo.getStationid()).getName());
- }
- if(po.getDeviceType().equals(DeviceTypeValue.IN.getCode()) || po.getDeviceType().equals(DeviceTypeValue.WT.getCode()))
- {
- pushDataSevice.pushWtData(alarm);
- }else if(po.getDeviceType().equals(DeviceTypeValue.BT.getCode()))
- {
- pushDataSevice.pushBtData(alarm);
- }
- tempmap.put(po.getTbname(),po);
- }
- }
- for (Map.Entry<String, ProEconAlarmInfo> entry : tempmap.entrySet()) {
- valuels.add(entry.getValue());
- }
- List<String> idls = new ArrayList<>();
- for (ProEconAlarmInfo vo : valuels) {
- idls.add(vo.getTbname());
- }
- if (!idls.isEmpty()) {
- proEconAlarmInfoService.removeByIds(idls);
- }
- List<ProEconAlarmInfo> templs = new ArrayList<>();
- for (ProEconAlarmInfo vo : valuels) {
- templs.add(vo);
- if (templs.size() == 100) {
- proEconAlarmInfoService.saveBatch(templs);
- templs = new ArrayList<>();
- }
- }
- if (!templs.isEmpty()) {
- proEconAlarmInfoService.saveBatch(templs);
- }
- }
- }
- }
- public synchronized void updateAlarms(List<AlarmTag> ls) throws EncodeException, IOException {
- if (StringUtils.notEmp(ls) && !ls.isEmpty()) {
- if (StringUtils.notEmp(ls) && !ls.isEmpty()) {
- StringBuilder sb = new StringBuilder();
- Map<String, AlarmSimpleVo> map = new HashMap<>();
- for (AlarmTag alarm : ls) {
- if (CacheContext.alarmCtMap.containsKey(alarm.getId())) {
- AlarmVo vo = CacheContext.alarmCtMap.get(alarm.getId());
- if(vo.getAlarmtype().equals(AlarmTypeValue.CT.getCode()) )
- {
- sb.append("'").append(alarm.getId().toLowerCase()).append("',");
- }
- }
- }
- String ids=null;
- if(sb.length()>0)
- {
- ids=sb.substring(0,sb.length()-1);
- }
- List<AlarmSimpleVo> alarmls=new ArrayList<>();
- if( null !=ids)
- {
- alarmls=alarmTsService.selectLastRowByTbname(AlarmSuperTalbeType.CT.getCode(),ids);
- }
- if(!alarmls.isEmpty())
- {
- for(AlarmSimpleVo vo:alarmls)
- {
- map.put(vo.getTbName().toLowerCase(),vo);
- }
- }
- List<AlarmTag> alarmTagls=new ArrayList<>();
- for (AlarmTag alarm : ls) {
- if(map.containsKey(alarm.getId().toLowerCase()))
- {
- AlarmSimpleVo tag=map.get(alarm.getId().toLowerCase());
- if(StringUtils.notEmp(tag.getTs()))
- {
- alarm.setTs(tag.getTs());
- Date begin = new Date(alarm.getEndts());
- Date end = new Date(alarm.getTs());
- double value= DateUtils.secondsDiff(begin,end);
- alarm.setTimeLong(value);
- alarm.setConfirmed(tag.getConfirmed());
- alarm.setSuperTalbe(AlarmSuperTalbeType.CT.getCode());
- alarmTagls.add(alarm);
- }
- }
- }
- if (StringUtils.notEmp(alarmTagls) && !alarmTagls.isEmpty()) {
- alarmTsService.insertList(alarmTagls);
- }
- Map<String,ProEconAlarmInfo> tempmap=new HashMap<>();
- if (StringUtils.notEmp(alarmTagls) && !alarmTagls.isEmpty()) {
- List<ProEconAlarmInfo> valuels = new ArrayList<>();
- for (AlarmTag alarm : alarmTagls) {
- if (CacheContext.alarmCtMap.containsKey(alarm.getId())) {
- AlarmVo vo = CacheContext.alarmCtMap.get(alarm.getId());
- ProEconAlarmInfo po = new ProEconAlarmInfo();
- po.setTbname(vo.getTbName());
- po.setLastUpdateTime(new Date(alarm.getTs()));
- po.setTagId(alarm.getTagId());
- po.setTriggerType(alarm.getTriggerType());
- po.setAlarmId(vo.getAlarmid());
- po.setDeviceId(vo.getDeviceid());
- po.setSubcomponents(vo.getSuffix());
- po.setRank(vo.getRank());
- po.setConfirmed(alarm.getConfirmed());
- po.setUniformCode(vo.getUniformcode());
- po.setAlarmType(vo.getAlarmtype());
- po.setDeviceType(vo.getDevicetype());
- po.setComponents(vo.getComponents());
- po.setSubcomponents(vo.getSubcomponents());
- po.setDescription(vo.getDescription());
- po.setModelId(vo.getModelId());
- po.setResetTable(vo.getResettable());
- po.setEnable(vo.getEnabled());
- po.setCharacteristic(vo.getCharacteristic());
- po.setStationId(vo.getStationid());
- po.setProjectId(vo.getProjectid());
- po.setLineId(vo.getLineid());
- po.setStationName(vo.getStationname());
- po.setProjectiName(vo.getProjectname());
- po.setLineidName(vo.getLinename());
- po.setDeviceName(vo.getDevicename());
- po.setOval(alarm.getOval().intValue());
- po.setVal(alarm.getVal().intValue());
- po.setCloseTime(new Date(alarm.getEndts()));
- po.setIsOpen(0);
- alarm.setRank(vo.getRank());
- alarm.setDescription(vo.getDescription());
- alarm.setAlarmType(vo.getAlarmtype());
- alarm.setDeviceType(vo.getDevicetype());
- alarm.setCharacteristic(vo.getCharacteristic());
- alarm.setFaultCause(vo.getFaultCause());
- alarm.setResolvent(vo.getResolvent());
- alarm.setDeviceId(vo.getDeviceid());
- alarm.setAlarmId(vo.getAlarmid());
- alarm.setIsClose(true);
- if(StringUtils.notEmp(vo.getDeviceid()) && CacheContext.wtmap.containsKey(vo.getDeviceid()))
- {
- alarm.setCode(CacheContext.wtmap.get(vo.getDeviceid()).getNemCode());
- }
- if(CacheContext.wpmap.containsKey(vo.getStationid()))
- {
- alarm.setWpName(CacheContext.wpmap.get(vo.getStationid()).getName());
- }
- if(po.getDeviceType().equals(DeviceTypeValue.IN.getCode()) || po.getDeviceType().equals(DeviceTypeValue.WT.getCode()))
- {
- pushDataSevice.pushWtData(alarm);
- }else if(po.getDeviceType().equals(DeviceTypeValue.BT.getCode()))
- {
- pushDataSevice.pushBtData(alarm);
- }
- tempmap.put(po.getTbname(),po);
- }
- }
- for (Map.Entry<String, ProEconAlarmInfo> entry : tempmap.entrySet()) {
- valuels.add(entry.getValue());
- }
- List<String> idls = new ArrayList<>();
- for (ProEconAlarmInfo vo : valuels) {
- idls.add(vo.getTbname());
- }
- if (!idls.isEmpty()) {
- proEconAlarmInfoService.removeByIds(idls);
- }
- List<ProEconAlarmInfo> templs = new ArrayList<>();
- for (ProEconAlarmInfo vo : valuels) {
- templs.add(vo);
- if (templs.size() == 100) {
- proEconAlarmInfoService.saveBatch(templs);
- templs = new ArrayList<>();
- }
- }
- if (!templs.isEmpty()) {
- proEconAlarmInfoService.saveBatch(templs);
- }
- }
- }
- }
- }
- // public void pushData(AlarmTag po) throws EncodeException, IOException {
- // ConcurrentHashMap<String, WebSocket> webSocketPushMap = WebSocket.webSocketMap;
- // ConcurrentHashMap<String, PushParams> webSocketPushParamsMap = WebSocket.webSocketParamsMap;
- // if(!webSocketPushMap.isEmpty()){
- // for(String key : webSocketPushMap.keySet()){
- // // 根据ws连接用户ID获取推送参数
- // PushParams pushParams = webSocketPushParamsMap.get(key);
- //
- // if(webSocketPushParamsMap.contains(po.getId()))
- // {
- // PushParams pp=webSocketPushParamsMap.get(po.getId());
- //
- // double hours=DateUtils.hoursDiff(pp.getStartTime(),new Date());
- // if(hours>pushinterval)
- // {
- //
- // synchronized (key)
- // {
- // webSocket.sendMessageByUserId(key,po);
- // pp.setStartTime(new Date(po.getTs()));
- // }
- //
- //
- // }
- // }else
- // {
- // synchronized (key)
- // {
- // webSocket.sendMessageByUserId(key,po);
- // PushParams pp=new PushParams();
- // pp.setStartTime(new Date());
- // webSocketPushParamsMap.put(po.getId(),pp);
- // }
- //
- // }
- // }
- // }
- //
- // }
- }
|