123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427 |
- 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.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.sql.SQLException;
- import java.sql.Timestamp;
- import java.util.*;
- @Service
- public class AlarmWtService {
- @Resource
- private IAlarmTsService alarmTsService;
- @Resource
- private IProEconAlarmInfoService proEconAlarmInfoService;
- @Value("${initialcode}")
- private String initialcode;
- public void dropSuperTable()
- {
- alarmTsService.dropSuperTable(AlarmSuperTalbeType.WT.getCode());
- }
- public void createSuperTable()
- {
- alarmTsService.createSuperTable(AlarmSuperTalbeType.WT.getCode());
- }
- public void initalWtAlarm() throws SQLException {
- List<AlarmVo> alarmVoList=CacheContext.alarmWtList;
- 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());
- AlarmTag po=new AlarmTag();
- po.setId(vo.getTbName());
- po.setVal(0.0);
- po.setTriggerType(vo.getTriggertype());
- po.setTagId(vo.getTagid());
- po.setOval(0.0);
- po.setRank(vo.getRank());
- po.setTimeLong(0.0);
- po.setTs(new Date().getTime());
- alarmTags.add(po);
- }
- }
- alarmTsService.insertList(alarmTags);
- }
- public List<AlarmVo> initalAlarmVo() {
- List<AlarmVo> alarmVoList=new ArrayList<>();
- Map<String, List<ProEconAlarmConfiguration>> wtAlarmMap = CacheContext.wtAlarmMap;
- Map<String, Map<String, ProBasicEquipmentPoint>> wtpAimap = CacheContext.wtpAimap;
- for (ProBasicEquipment wt : CacheContext.wtls) {
- // if(wt.getId().contains("SXJ_KGDL_DJY_F_WT_0001_EQ"))
- // {
- // System.out.println("");
- // }
- // if(wt.getId().contains("SXJ_KGDL_GJY_F_WT_0001_EQ"))
- // {
- // System.out.println("");
- // }
- if (wtpAimap.containsKey(wt.getId())) {
- Map<String, ProBasicEquipmentPoint> pointMap = wtpAimap.get(wt.getId());
- StringBuilder sb = new StringBuilder();
- sb.append(wt.getWindpowerstationId() + wt.getModelId());
- if (StringUtils.notEmp(pointMap) && wtAlarmMap.containsKey(String.valueOf(sb))) {
- List<ProEconAlarmConfiguration> alarmls = wtAlarmMap.get(String.valueOf(sb));
- if (!alarmls.isEmpty()) {
- for (ProEconAlarmConfiguration alarm : alarmls) {
- if (pointMap.containsKey(alarm.getUniformCode())) {
- ProBasicEquipmentPoint equipmentPoint = pointMap.get(alarm.getUniformCode());
- if(StringUtils.notEmp(initialcode) &&
- StringUtils.notEmp(equipmentPoint.getNemCode()) &&
- !equipmentPoint.getNemCode().equals(initialcode))
- {
- 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(equipmentPoint.getNemCode());
- vo.setAlarmtype(alarm.getAlarmType());
- vo.setCharacteristic(alarm.getCharacteristic());
- vo.setComponents(alarm.getComponents());
- 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(alarm.getResetTable());
- vo.setStationid(wt.getWindpowerstationId());
- if(CacheContext.wpmap.containsKey(wt.getWindpowerstationId()))
- {
- ProBasicPowerstation wp=CacheContext.wpmap.get(wt.getWindpowerstationId());
- vo.setStationname(wp.getName());
- }
- vo.setSubcomponents(alarm.getSubcomponents());
- vo.setSuffix(alarm.getSuffix());
- vo.setTriggertype(alarm.getTriggerType());
- vo.setUniformcode(alarm.getUniformCode());
- vo.setSuperTableName(AlarmSuperTalbeType.WT.getCode());
- vo.setVal(0);
- alarmVoList.add(vo);
- }
- }else {
- //临时创建表
- 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("GF-TZ-SYZ.038200G9911SYB99GI017DB0111PA99RAW01");
- vo.setAlarmtype(alarm.getAlarmType());
- vo.setCharacteristic(alarm.getCharacteristic());
- vo.setComponents(alarm.getComponents());
- 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(alarm.getResetTable());
- vo.setStationid(wt.getWindpowerstationId());
- if(CacheContext.wpmap.containsKey(wt.getWindpowerstationId()))
- {
- ProBasicPowerstation wp=CacheContext.wpmap.get(wt.getWindpowerstationId());
- vo.setStationname(wp.getName());
- }
- vo.setSubcomponents(alarm.getSubcomponents());
- vo.setSuffix(alarm.getSuffix());
- vo.setTriggertype(alarm.getTriggerType());
- vo.setUniformcode(alarm.getUniformCode());
- vo.setSuperTableName(AlarmSuperTalbeType.WT.getCode());
- vo.setVal(0);
- alarmVoList.add(vo);
- }
- }
- }
- }
- }
- }
- return alarmVoList;
- }
- public List<AlarmTag> findTags(String stbaleName)
- {
- List<AlarmTag> ls=new ArrayList<>();
- if(StringUtils.notEmp(stbaleName))
- {
- // List<AlarmVo> vos= alarmTsService.findTags(stbaleName);
- List<AlarmVo> vos= CacheContext.alarmWtList;
- if(!vos.isEmpty())
- {
- for(AlarmVo vo:vos)
- {
- AlarmTag po=new AlarmTag();
- po.setId(vo.getTbName());
- po.setOval(vo.getVal().doubleValue());
- po.setTriggerType(vo.getTriggertype());
- po.setTagId(vo.getTagid());
- po.setVal(vo.getVal().doubleValue());
- po.setRank(vo.getRank());
- ls.add(po);
- }
- }
- }
- return ls;
- }
- public synchronized void saveAlarms(List<AlarmTag> ls)
- {
- if(StringUtils.notEmp(ls) && !ls.isEmpty()) {
- alarmTsService.insertList(ls);
- if (StringUtils.notEmp(ls) && !ls.isEmpty()) {
- List<ProEconAlarmInfo> valuels = new ArrayList<>();
- for (AlarmTag alarm : ls) {
- if (CacheContext.alarmWtMap.containsKey(alarm.getId())) {
- AlarmVo vo = CacheContext.alarmWtMap.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.setIsOpen(1);
- po.setVal(alarm.getVal().intValue());
- valuels.add(po);
- }
- }
- 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) {
- if (StringUtils.notEmp(ls) && !ls.isEmpty()) {
- StringBuilder sb=new StringBuilder();
- Map<String, AlarmSimpleVo> map=new HashMap<>();
- for (AlarmTag alarm : ls) {
- sb.append("'").append(alarm.getId()).append("',");
- }
- String ids=sb.substring(0,sb.length()-1);
- List<AlarmSimpleVo> alarmls=alarmTsService.selectLastRowByTbname(AlarmSuperTalbeType.WT.getCode(),ids);
- if(!alarmls.isEmpty())
- {
- for(AlarmSimpleVo vo:alarmls)
- {
- map.put(vo.getTbName(),vo);
- }
- }
- for (AlarmTag alarm : ls) {
- if(map.containsKey(alarm.getId()))
- {
- AlarmSimpleVo tag=map.get(alarm.getId());
- tag.setTs(new Timestamp(alarm.getTs()));
- Date begin = new Date(alarm.getEndts());
- Date end = new Date(alarm.getTs());
- double value= DateUtils.hoursDiff(begin,end);
- tag.setTimelong(value);
- }
- }
- alarmTsService.insertList(ls);
- if (StringUtils.notEmp(ls) && !ls.isEmpty()) {
- List<ProEconAlarmInfo> valuels = new ArrayList<>();
- for (AlarmTag alarm : ls) {
- if (CacheContext.alarmWtMap.containsKey(alarm.getId())) {
- AlarmVo vo = CacheContext.alarmWtMap.get(alarm.getId());
- ProEconAlarmInfo po = new ProEconAlarmInfo();
- po.setTbname(vo.getTbName());
- po.setLastUpdateTime(new Date(alarm.getEndts()));
- 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.setCloseTime(new Date(alarm.getEndts()));
- po.setIsOpen(0);
- po.setVal(alarm.getVal().intValue());
- valuels.add(po);
- }
- }
- 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() == 1000) {
- proEconAlarmInfoService.saveBatch(templs);
- templs = new ArrayList<>();
- }
- }
- if (!templs.isEmpty()) {
- proEconAlarmInfoService.saveBatch(templs);
- }
- }
- }
- }
- }
|