From be09597c165e0e12ef845d0f40455ed14da5d70f Mon Sep 17 00:00:00 2001 From: huangfeng Date: Tue, 29 Oct 2024 13:34:43 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=B8=B8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cac/controller/IecServerController.java | 8 ------ .../com/xydl/cac/iec/IEDCollectService.java | 20 +++++++------- .../com/xydl/cac/iec/IecServerService.java | 18 ++++--------- .../com/xydl/cac/iec/RealTimeDataService.java | 6 ++--- .../com/xydl/cac/model/StaticVariable.java | 25 ++++++++++++++++++ .../xydl/cac/service/impl/BdzServiceImpl.java | 6 ++--- .../xydl/cac/service/impl/JgServiceImpl.java | 26 +++++++++---------- .../service/impl/ModevTypeServiceImpl.java | 14 +++++----- .../cac/service/impl/NSensorServiceImpl.java | 8 ++---- .../cac/service/impl/UnitServiceImpl.java | 14 +++++----- .../cac/service/impl/WarnRuleServiceImpl.java | 6 ++--- .../xydl/cac/service/impl/ZsbServiceImpl.java | 18 ++++++------- .../java/com/xydl/cac/task/CacheTask.java | 25 ++++++------------ .../java/com/xydl/cac/task/RuleCheckTask.java | 5 ++-- .../xydl/cac/transform/I2DataTransformer.java | 6 ++--- 15 files changed, 100 insertions(+), 105 deletions(-) create mode 100644 src/main/java/com/xydl/cac/model/StaticVariable.java diff --git a/src/main/java/com/xydl/cac/controller/IecServerController.java b/src/main/java/com/xydl/cac/controller/IecServerController.java index f1f9a20..ccac68e 100644 --- a/src/main/java/com/xydl/cac/controller/IecServerController.java +++ b/src/main/java/com/xydl/cac/controller/IecServerController.java @@ -21,7 +21,6 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.validation.constraints.NotNull; import java.nio.charset.Charset; -import java.util.HashMap; import java.util.List; @RestController @@ -83,13 +82,6 @@ public class IecServerController extends BasicController { return Response.success("OK"); } -// @GetMapping("status") -// @ApiOperation("查看IEC服务端状态") -// public Response> status() throws Exception { -// HashMap map = iecServerService.status(); -// return Response.success(map); -// } - @GetMapping("listParamindex") @ApiOperation("查询该IED下的paramindex数据") public Response> listParamindex(@Validated @NotNull(message = "fileId不能为空!") Integer fileId) throws Exception { diff --git a/src/main/java/com/xydl/cac/iec/IEDCollectService.java b/src/main/java/com/xydl/cac/iec/IEDCollectService.java index f4e55f7..3df3e3b 100644 --- a/src/main/java/com/xydl/cac/iec/IEDCollectService.java +++ b/src/main/java/com/xydl/cac/iec/IEDCollectService.java @@ -5,6 +5,7 @@ import com.beanit.iec61850bean.FileInformation; import com.xydl.cac.config.BizConfig; import com.xydl.cac.entity.*; import com.xydl.cac.entity.constants.Constants; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.*; import com.xydl.cac.service.DataService; import com.xydl.cac.service.IedDlRecordService; @@ -33,9 +34,6 @@ public class IEDCollectService { String folder = "/record"; - public static HashMap> lastDataMap = new HashMap<>(); - public static HashMap relationMap = new HashMap<>(); - public IEDCollectService(IcdConfigTypeRepository configRepository, IcdConfigTypeAttRepository attRepository, IcdConfigTypeInstRepository instRepository, RptparamindexRepository rptparamindexRepository, IedDlRecordService dlRecordService, DataService dataService, @@ -69,7 +67,7 @@ public class IEDCollectService { } // 开始连iec61850采集数据 try { - log.info("61850开始采集数据, ied=" + ied.getName() + ", ip=" + ied.getIp()); + log.info("61850开始采集数据, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort()); this.connect(); if (!CollectionUtils.isEmpty(rptList)) { this.doCollectAndSave(configTypeList, rptList); @@ -79,7 +77,7 @@ public class IEDCollectService { this.doDownload(dlList); } } catch (Exception ex) { - String err = "61850采集数据异常, ied=" + ied.getName() + ", ip=" + ied.getIp(); + String err = "61850采集数据异常, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort(); log.error(err, ex); _webSocketServer.sendMessage(err, null); } finally { @@ -122,10 +120,10 @@ public class IEDCollectService { // 更新关联关系缓存 String key = paramindexNew + "_" + fc; value = rpt.getEqmid() + "," + rpt.getColname(); - relationMap.put(key, value); + StaticVariable.paramRelationMap.put(key, value); key = paramindexT + "_" + fc; value = rpt.getEqmid() + ",acquisitionTime"; - relationMap.put(key, value); + StaticVariable.paramRelationMap.put(key, value); } private Rptparamindex findRpt(List rptList, String paramindex) { @@ -183,10 +181,10 @@ public class IEDCollectService { } public static void updateLastData(Integer eqmid, String colname, String value, String time) { - HashMap map = lastDataMap.get(eqmid); + HashMap map = StaticVariable.sensorLastDataMap.get(eqmid); if (map == null) { map = new HashMap<>(); - lastDataMap.put(eqmid, map); + StaticVariable.sensorLastDataMap.put(eqmid, map); } map.put(colname, value); if (time != null) { @@ -198,8 +196,8 @@ public class IEDCollectService { try { String ref = bda.getReference().toString(); String key = ref + "_" + bda.getFc().toString(); - if (IEDCollectService.relationMap.containsKey(key)) { - String value = IEDCollectService.relationMap.get(key); + if (StaticVariable.paramRelationMap.containsKey(key)) { + String value = StaticVariable.paramRelationMap.get(key); String[] str = value.split(","); Integer eqmid = Integer.parseInt(str[0]); String colname = str[1]; diff --git a/src/main/java/com/xydl/cac/iec/IecServerService.java b/src/main/java/com/xydl/cac/iec/IecServerService.java index 2d4553e..a7cf42e 100644 --- a/src/main/java/com/xydl/cac/iec/IecServerService.java +++ b/src/main/java/com/xydl/cac/iec/IecServerService.java @@ -3,6 +3,7 @@ package com.xydl.cac.iec; import com.xydl.cac.entity.*; import com.xydl.cac.entity.constants.Constants; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.IcdFileRepository; import com.xydl.cac.service.IcdTransformService; import com.xydl.cac.util.IcdXmlUtil; @@ -50,7 +51,7 @@ public class IecServerService { IecServer iecServer = new IecServer(transformService); iecServer.start(icdFile.getXml(), port); iecServer.filename = icdFile.getFilename(); - RealTimeDataService.iecServerMap.put(fileId, iecServer); + StaticVariable.iecServerMap.put(fileId, iecServer); icdFile.setStart(Constants.TRUE); icdFile.setPort(port); fileRepository.save(icdFile); @@ -73,32 +74,23 @@ public class IecServerService { } private void onlyStopServer(Integer fileId) { - IecServer iecServer = RealTimeDataService.iecServerMap.get(fileId); + IecServer iecServer = StaticVariable.iecServerMap.get(fileId); if (iecServer != null) { log.info("关闭IecServer服务, port=" + iecServer.port); iecServer.close(); - RealTimeDataService.iecServerMap.remove(fileId); + StaticVariable.iecServerMap.remove(fileId); } } @PreDestroy private void stop() { - Iterator it = RealTimeDataService.iecServerMap.keySet().iterator(); + Iterator it = StaticVariable.iecServerMap.keySet().iterator(); while (it.hasNext()) { Integer key = it.next(); this.onlyStopServer(key); } } -// public HashMap status() { -// HashMap map = new HashMap<>(); -// map.put("port", 102); -// map.put("started", iecServer.started); -// map.put("filename", iecServer.filename); -// map.put("fileId", iecServer.fileId); -// return map; -// } - public List listParamindex(Integer fileId) throws Exception { Optional optional = fileRepository.findById(fileId); if (!optional.isPresent()) { diff --git a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java index 24b0d1a..c407f22 100644 --- a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java +++ b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java @@ -5,6 +5,7 @@ import com.xydl.cac.entity.IcdFile; import com.xydl.cac.entity.IcdIed; import com.xydl.cac.entity.constants.Constants; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.IcdFileRepository; import com.xydl.cac.repository.IcdIedRepository; import lombok.extern.slf4j.Slf4j; @@ -27,7 +28,6 @@ public class RealTimeDataService { @Resource IcdIedRepository iedRepository; - public static HashMap iecServerMap = new HashMap<>(); public static boolean inDoing = false; HashMap clientMap = new HashMap<>(); @@ -137,10 +137,10 @@ public class RealTimeDataService { } private static void processBdaNodeValue(BasicDataAttribute bda) { - Iterator it = RealTimeDataService.iecServerMap.keySet().iterator(); + Iterator it = StaticVariable.iecServerMap.keySet().iterator(); while (it.hasNext()) { Integer key = it.next(); - IecServer iecServer = RealTimeDataService.iecServerMap.get(key); + IecServer iecServer = StaticVariable.iecServerMap.get(key); iecServer.updateBda(bda); } IEDCollectService.updateLastData(bda); diff --git a/src/main/java/com/xydl/cac/model/StaticVariable.java b/src/main/java/com/xydl/cac/model/StaticVariable.java new file mode 100644 index 0000000..583891f --- /dev/null +++ b/src/main/java/com/xydl/cac/model/StaticVariable.java @@ -0,0 +1,25 @@ +package com.xydl.cac.model; + +import com.xydl.cac.entity.Jg; +import com.xydl.cac.entity.ModevType; +import com.xydl.cac.entity.WarnRule; +import com.xydl.cac.entity.Zsb; +import com.xydl.cac.iec.IecServer; + +import java.util.HashMap; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + +public class StaticVariable { + + public static HashMap iecServerMap = new HashMap<>(); + public static HashMap> sensorLastDataMap = new HashMap<>(); + public static HashMap paramRelationMap = new HashMap<>(); + + public static HashMap unit_Cache = new HashMap<>(); + public static List modevType_Cache = null; + public static List jg_Cache = null; + public static List zsb_Cache = null; + public static ConcurrentHashMap rule_Cache = new ConcurrentHashMap<>(); + +} diff --git a/src/main/java/com/xydl/cac/service/impl/BdzServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/BdzServiceImpl.java index 4b4e2de..1c29aaf 100644 --- a/src/main/java/com/xydl/cac/service/impl/BdzServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/BdzServiceImpl.java @@ -3,10 +3,10 @@ package com.xydl.cac.service.impl; import com.xydl.cac.entity.Bdz; import com.xydl.cac.entity.Jg; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.BdzRepository; import com.xydl.cac.repository.JgRepository; import com.xydl.cac.service.BdzService; -import com.xydl.cac.task.CacheTask; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -47,8 +47,8 @@ public class BdzServiceImpl implements BdzService { throw new BusinessException("该名称已被使用"); } repository.save(item); - CacheTask.jg_Cache = null; - CacheTask.zsb_Cache = null; + StaticVariable.jg_Cache = null; + StaticVariable.zsb_Cache = null; } @Override diff --git a/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java index 86904b5..c435b7b 100644 --- a/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/JgServiceImpl.java @@ -4,12 +4,12 @@ import com.xydl.cac.entity.Bdz; import com.xydl.cac.entity.Jg; import com.xydl.cac.entity.Zsb; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.BdzRepository; import com.xydl.cac.repository.JgRepository; import com.xydl.cac.repository.NSensorRepository; import com.xydl.cac.repository.ZsbRepository; import com.xydl.cac.service.JgService; -import com.xydl.cac.task.CacheTask; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,11 +37,11 @@ public class JgServiceImpl implements JgService { @Override public List listAll(Integer bdzid) { if (bdzid == null) { - if (CacheTask.jg_Cache == null) { - CacheTask.jg_Cache = repository.findAll(); - this.fillBdzName(CacheTask.jg_Cache); + if (StaticVariable.jg_Cache == null) { + StaticVariable.jg_Cache = repository.findAll(); + this.fillBdzName(StaticVariable.jg_Cache); } - return CacheTask.jg_Cache; + return StaticVariable.jg_Cache; } else { List result = repository.findByBdzid(bdzid); Optional optional = bdzRepository.findById(bdzid); @@ -58,11 +58,11 @@ public class JgServiceImpl implements JgService { public List sensorCount(Integer bdzid) { List result; if (bdzid == null) { - if (CacheTask.jg_Cache == null) { - CacheTask.jg_Cache = repository.findAll(); - this.fillBdzName(CacheTask.jg_Cache); + if (StaticVariable.jg_Cache == null) { + StaticVariable.jg_Cache = repository.findAll(); + this.fillBdzName(StaticVariable.jg_Cache); } - result = CacheTask.jg_Cache; + result = StaticVariable.jg_Cache; } else { result = repository.findByBdzid(bdzid); Optional optional = bdzRepository.findById(bdzid); @@ -111,7 +111,7 @@ public class JgServiceImpl implements JgService { if (!CollectionUtils.isEmpty(list)) { throw new BusinessException("该名称已被使用"); } - CacheTask.jg_Cache = null; + StaticVariable.jg_Cache = null; return repository.save(item); } @@ -126,8 +126,8 @@ public class JgServiceImpl implements JgService { throw new BusinessException("该名称已被使用"); } repository.save(item); - CacheTask.jg_Cache = null; - CacheTask.zsb_Cache = null; + StaticVariable.jg_Cache = null; + StaticVariable.zsb_Cache = null; } @Override @@ -137,7 +137,7 @@ public class JgServiceImpl implements JgService { throw new BusinessException("已被主设备使用不能删除"); } repository.deleteById(id); - CacheTask.jg_Cache = null; + StaticVariable.jg_Cache = null; } @Override diff --git a/src/main/java/com/xydl/cac/service/impl/ModevTypeServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/ModevTypeServiceImpl.java index a54f39f..1b8f330 100644 --- a/src/main/java/com/xydl/cac/service/impl/ModevTypeServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/ModevTypeServiceImpl.java @@ -3,11 +3,11 @@ package com.xydl.cac.service.impl; import com.xydl.cac.entity.ModevType; import com.xydl.cac.entity.NSensor; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.ModevTypePointRepository; import com.xydl.cac.repository.ModevTypeRepository; import com.xydl.cac.repository.NSensorRepository; import com.xydl.cac.service.ModevTypeService; -import com.xydl.cac.task.CacheTask; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -31,10 +31,10 @@ public class ModevTypeServiceImpl implements ModevTypeService { @Override public List listAll() { - if (CacheTask.modevType_Cache == null) { - CacheTask.modevType_Cache = repository.findAll(); + if (StaticVariable.modevType_Cache == null) { + StaticVariable.modevType_Cache = repository.findAll(); } - return CacheTask.modevType_Cache; + return StaticVariable.modevType_Cache; } @Override @@ -54,7 +54,7 @@ public class ModevTypeServiceImpl implements ModevTypeService { if (!CollectionUtils.isEmpty(byMc)) { throw new BusinessException("该监测装置类型已存在"); } - CacheTask.modevType_Cache = null; + StaticVariable.modevType_Cache = null; return repository.save(item); } @@ -69,7 +69,7 @@ public class ModevTypeServiceImpl implements ModevTypeService { } } repository.save(item); - CacheTask.modevType_Cache = null; + StaticVariable.modevType_Cache = null; } @Override @@ -80,7 +80,7 @@ public class ModevTypeServiceImpl implements ModevTypeService { } repository.deleteById(id); pointRepository.deleteByModevtypeId(id); - CacheTask.modevType_Cache = null; + StaticVariable.modevType_Cache = null; } @Override diff --git a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java index 6ed4ac8..a57d692 100644 --- a/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/NSensorServiceImpl.java @@ -3,11 +3,7 @@ package com.xydl.cac.service.impl; import com.xydl.cac.entity.*; import com.xydl.cac.entity.constants.Constants; import com.xydl.cac.exception.BusinessException; -import com.xydl.cac.iec.IEDCollectService; -import com.xydl.cac.model.ConditionModel; -import com.xydl.cac.model.OnePage; -import com.xydl.cac.model.SensorDetail; -import com.xydl.cac.model.SensorUpdateModel; +import com.xydl.cac.model.*; import com.xydl.cac.repository.I2relationRepository; import com.xydl.cac.repository.ModevRepository; import com.xydl.cac.repository.NSensorRepository; @@ -84,7 +80,7 @@ public class NSensorServiceImpl implements NSensorService { sensor.setTableName(type.getTablename()); } } - HashMap map = IEDCollectService.lastDataMap.get(sensor.getDevId()); + HashMap map = StaticVariable.sensorLastDataMap.get(sensor.getDevId()); sensor.setLastData(map); } } diff --git a/src/main/java/com/xydl/cac/service/impl/UnitServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/UnitServiceImpl.java index 075d9a7..593909b 100644 --- a/src/main/java/com/xydl/cac/service/impl/UnitServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/UnitServiceImpl.java @@ -2,9 +2,9 @@ package com.xydl.cac.service.impl; import com.xydl.cac.entity.Unit; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.UnitRepository; import com.xydl.cac.service.UnitService; -import com.xydl.cac.task.CacheTask; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -33,30 +33,30 @@ public class UnitServiceImpl implements UnitService { if (!CollectionUtils.isEmpty(list)) { throw new BusinessException("该字段已存在"); } - CacheTask.unit_Cache.clear(); + StaticVariable.unit_Cache.clear(); return repository.save(item); } @Override public void update(Unit item) throws Exception { repository.save(item); - CacheTask.unit_Cache.clear(); + StaticVariable.unit_Cache.clear(); } @Override public void delete(Integer id) { repository.deleteById(id); - CacheTask.unit_Cache.clear(); + StaticVariable.unit_Cache.clear(); } @Override public String findUnitInCache(String field) { - if (CacheTask.unit_Cache.size() < 1) { + if (StaticVariable.unit_Cache.size() < 1) { List list = repository.findAll(); for (Unit item : list) { - CacheTask.unit_Cache.put(item.getField().toLowerCase(), item.getUnit()); + StaticVariable.unit_Cache.put(item.getField().toLowerCase(), item.getUnit()); } } - return CacheTask.unit_Cache.get(field.toLowerCase()); + return StaticVariable.unit_Cache.get(field.toLowerCase()); } } diff --git a/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java index a43c1d5..dd00896 100644 --- a/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/WarnRuleServiceImpl.java @@ -4,12 +4,12 @@ import com.xydl.cac.entity.ModevTypePoint; import com.xydl.cac.entity.NSensor; import com.xydl.cac.entity.WarnRule; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.ModevTypePointRepository; import com.xydl.cac.repository.WarnRuleRepository; import com.xydl.cac.service.DataService; import com.xydl.cac.service.NSensorService; import com.xydl.cac.service.WarnRuleService; -import com.xydl.cac.task.CacheTask; import com.xydl.cac.util.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -87,12 +87,12 @@ public class WarnRuleServiceImpl implements WarnRuleService { rule.setLevel(item.getLevel()); rule.setActive(item.getActive()); repository.save(rule); - CacheTask.rule_Cache.remove(rule.getId()); + StaticVariable.rule_Cache.remove(rule.getId()); } @Override public void delete(Integer id) throws Exception { repository.deleteById(id); - CacheTask.rule_Cache.remove(id); + StaticVariable.rule_Cache.remove(id); } } diff --git a/src/main/java/com/xydl/cac/service/impl/ZsbServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/ZsbServiceImpl.java index af301ab..229c5af 100644 --- a/src/main/java/com/xydl/cac/service/impl/ZsbServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/ZsbServiceImpl.java @@ -5,12 +5,12 @@ import com.xydl.cac.entity.Lx; import com.xydl.cac.entity.Modev; import com.xydl.cac.entity.Zsb; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.LxRepository; import com.xydl.cac.repository.ModevRepository; import com.xydl.cac.repository.ZsbRepository; import com.xydl.cac.service.JgService; import com.xydl.cac.service.ZsbService; -import com.xydl.cac.task.CacheTask; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,12 +37,12 @@ public class ZsbServiceImpl implements ZsbService { @Override public List listAll(Integer jgid) throws Exception { if (jgid == null) { - if (CacheTask.zsb_Cache == null) { - CacheTask.zsb_Cache = repository.findAll(); - this.fillJgBdzName(CacheTask.zsb_Cache); - this.fillLxName(CacheTask.zsb_Cache); + if (StaticVariable.zsb_Cache == null) { + StaticVariable.zsb_Cache = repository.findAll(); + this.fillJgBdzName(StaticVariable.zsb_Cache); + this.fillLxName(StaticVariable.zsb_Cache); } - return CacheTask.zsb_Cache; + return StaticVariable.zsb_Cache; } else { List result = repository.findByJgid(jgid); Jg jg = jgService.detail(jgid); @@ -99,7 +99,7 @@ public class ZsbServiceImpl implements ZsbService { if (!CollectionUtils.isEmpty(list)) { throw new BusinessException("该名称已被使用"); } - CacheTask.zsb_Cache = null; + StaticVariable.zsb_Cache = null; return repository.save(item); } @@ -116,7 +116,7 @@ public class ZsbServiceImpl implements ZsbService { throw new BusinessException("该名称已被使用"); } repository.save(item); - CacheTask.zsb_Cache = null; + StaticVariable.zsb_Cache = null; } @Override @@ -126,7 +126,7 @@ public class ZsbServiceImpl implements ZsbService { throw new BusinessException("已被监测装置使用不能删除"); } repository.deleteById(id); - CacheTask.zsb_Cache = null; + StaticVariable.zsb_Cache = null; } @Override diff --git a/src/main/java/com/xydl/cac/task/CacheTask.java b/src/main/java/com/xydl/cac/task/CacheTask.java index 76ef642..fe640dd 100644 --- a/src/main/java/com/xydl/cac/task/CacheTask.java +++ b/src/main/java/com/xydl/cac/task/CacheTask.java @@ -1,18 +1,14 @@ package com.xydl.cac.task; -import com.xydl.cac.entity.Jg; -import com.xydl.cac.entity.ModevType; import com.xydl.cac.entity.WarnRule; -import com.xydl.cac.entity.Zsb; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.service.WarnRuleService; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.HashMap; import java.util.List; -import java.util.concurrent.ConcurrentHashMap; @Service @Slf4j @@ -21,19 +17,14 @@ public class CacheTask { @Resource WarnRuleService ruleService; - public static HashMap unit_Cache = new HashMap<>(); - public static List modevType_Cache = null; - public static List jg_Cache = null; - public static List zsb_Cache = null; - public static ConcurrentHashMap rule_Cache = new ConcurrentHashMap<>(); @Scheduled(cron = "0 0 9 * * ?") private void clearCache() { - unit_Cache.clear(); - modevType_Cache = null; - jg_Cache = null; - zsb_Cache = null; - rule_Cache.clear(); + StaticVariable.unit_Cache.clear(); + StaticVariable.modevType_Cache = null; + StaticVariable.jg_Cache = null; + StaticVariable.zsb_Cache = null; + StaticVariable.rule_Cache.clear(); } @@ -42,10 +33,10 @@ public class CacheTask { try { List list = ruleService.listAll(null); for (WarnRule item : list) { - WarnRule rule = rule_Cache.get(item.getId()); + WarnRule rule = StaticVariable.rule_Cache.get(item.getId()); if (rule == null) { item.initComparator(item.getComparator(), item.getOperator()); - rule_Cache.put(item.getId(), item); + StaticVariable.rule_Cache.put(item.getId(), item); } } } catch (Exception e) { diff --git a/src/main/java/com/xydl/cac/task/RuleCheckTask.java b/src/main/java/com/xydl/cac/task/RuleCheckTask.java index c0caf2d..b4616b8 100644 --- a/src/main/java/com/xydl/cac/task/RuleCheckTask.java +++ b/src/main/java/com/xydl/cac/task/RuleCheckTask.java @@ -4,6 +4,7 @@ import com.xydl.cac.entity.ModevTypePoint; import com.xydl.cac.entity.NSensor; import com.xydl.cac.entity.WarnRule; import com.xydl.cac.entity.Warning; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.model.TriggerModel; import com.xydl.cac.repository.WarnRuleRepository; import com.xydl.cac.repository.WarningRepository; @@ -43,10 +44,10 @@ public class RuleCheckTask { @Scheduled(initialDelay = 60 * 1000, fixedDelay = 3 * 60 * 1000) private void checkAll() { try { - Iterator it = CacheTask.rule_Cache.keySet().iterator(); + Iterator it = StaticVariable.rule_Cache.keySet().iterator(); while (it.hasNext()) { Integer key = it.next(); - WarnRule rule = CacheTask.rule_Cache.get(key); + WarnRule rule = StaticVariable.rule_Cache.get(key); if (rule.canDo()) { this.ruleCheck(rule); } diff --git a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java index 8102d85..f355a8e 100644 --- a/src/main/java/com/xydl/cac/transform/I2DataTransformer.java +++ b/src/main/java/com/xydl/cac/transform/I2DataTransformer.java @@ -2,11 +2,11 @@ package com.xydl.cac.transform; import com.alibaba.excel.util.StringUtils; import com.xydl.cac.entity.*; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.model.i2sync.Attr; import com.xydl.cac.model.i2sync.Datanode; import com.xydl.cac.model.i2sync.Monitordata; import com.xydl.cac.model.i2sync.Request; -import com.xydl.cac.task.CacheTask; import com.xydl.cac.util.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -25,10 +25,10 @@ public class I2DataTransformer { // 查到可用规则 List ruleList = new ArrayList<>(); - Iterator it = CacheTask.rule_Cache.keySet().iterator(); + Iterator it = StaticVariable.rule_Cache.keySet().iterator(); while (it.hasNext()) { Integer key = it.next(); - WarnRule rule = CacheTask.rule_Cache.get(key); + WarnRule rule = StaticVariable.rule_Cache.get(key); if (rule.canDo() && rule.getSensorId().equals(sensor.getId())) { ruleList.add(rule); }