perf: 优化常量

dev
huangfeng 8 months ago
parent 11cacdf53d
commit be09597c16

@ -21,7 +21,6 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.HashMap;
import java.util.List; import java.util.List;
@RestController @RestController
@ -83,13 +82,6 @@ public class IecServerController extends BasicController {
return Response.success("OK"); return Response.success("OK");
} }
// @GetMapping("status")
// @ApiOperation("查看IEC服务端状态")
// public Response<HashMap<String, Object>> status() throws Exception {
// HashMap<String, Object> map = iecServerService.status();
// return Response.success(map);
// }
@GetMapping("listParamindex") @GetMapping("listParamindex")
@ApiOperation("查询该IED下的paramindex数据") @ApiOperation("查询该IED下的paramindex数据")
public Response<List<IcdConfigTypeInst>> listParamindex(@Validated @NotNull(message = "fileId不能为空!") Integer fileId) throws Exception { public Response<List<IcdConfigTypeInst>> listParamindex(@Validated @NotNull(message = "fileId不能为空!") Integer fileId) throws Exception {

@ -5,6 +5,7 @@ import com.beanit.iec61850bean.FileInformation;
import com.xydl.cac.config.BizConfig; import com.xydl.cac.config.BizConfig;
import com.xydl.cac.entity.*; import com.xydl.cac.entity.*;
import com.xydl.cac.entity.constants.Constants; import com.xydl.cac.entity.constants.Constants;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.repository.*; import com.xydl.cac.repository.*;
import com.xydl.cac.service.DataService; import com.xydl.cac.service.DataService;
import com.xydl.cac.service.IedDlRecordService; import com.xydl.cac.service.IedDlRecordService;
@ -33,9 +34,6 @@ public class IEDCollectService {
String folder = "/record"; String folder = "/record";
public static HashMap<Integer, HashMap<String, String>> lastDataMap = new HashMap<>();
public static HashMap<String, String> relationMap = new HashMap<>();
public IEDCollectService(IcdConfigTypeRepository configRepository, IcdConfigTypeAttRepository attRepository, public IEDCollectService(IcdConfigTypeRepository configRepository, IcdConfigTypeAttRepository attRepository,
IcdConfigTypeInstRepository instRepository, RptparamindexRepository rptparamindexRepository, IcdConfigTypeInstRepository instRepository, RptparamindexRepository rptparamindexRepository,
IedDlRecordService dlRecordService, DataService dataService, IedDlRecordService dlRecordService, DataService dataService,
@ -69,7 +67,7 @@ public class IEDCollectService {
} }
// 开始连iec61850采集数据 // 开始连iec61850采集数据
try { try {
log.info("61850开始采集数据, ied=" + ied.getName() + ", ip=" + ied.getIp()); log.info("61850开始采集数据, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort());
this.connect(); this.connect();
if (!CollectionUtils.isEmpty(rptList)) { if (!CollectionUtils.isEmpty(rptList)) {
this.doCollectAndSave(configTypeList, rptList); this.doCollectAndSave(configTypeList, rptList);
@ -79,7 +77,7 @@ public class IEDCollectService {
this.doDownload(dlList); this.doDownload(dlList);
} }
} catch (Exception ex) { } 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); log.error(err, ex);
_webSocketServer.sendMessage(err, null); _webSocketServer.sendMessage(err, null);
} finally { } finally {
@ -122,10 +120,10 @@ public class IEDCollectService {
// 更新关联关系缓存 // 更新关联关系缓存
String key = paramindexNew + "_" + fc; String key = paramindexNew + "_" + fc;
value = rpt.getEqmid() + "," + rpt.getColname(); value = rpt.getEqmid() + "," + rpt.getColname();
relationMap.put(key, value); StaticVariable.paramRelationMap.put(key, value);
key = paramindexT + "_" + fc; key = paramindexT + "_" + fc;
value = rpt.getEqmid() + ",acquisitionTime"; value = rpt.getEqmid() + ",acquisitionTime";
relationMap.put(key, value); StaticVariable.paramRelationMap.put(key, value);
} }
private Rptparamindex findRpt(List<Rptparamindex> rptList, String paramindex) { private Rptparamindex findRpt(List<Rptparamindex> rptList, String paramindex) {
@ -183,10 +181,10 @@ public class IEDCollectService {
} }
public static void updateLastData(Integer eqmid, String colname, String value, String time) { public static void updateLastData(Integer eqmid, String colname, String value, String time) {
HashMap<String, String> map = lastDataMap.get(eqmid); HashMap<String, String> map = StaticVariable.sensorLastDataMap.get(eqmid);
if (map == null) { if (map == null) {
map = new HashMap<>(); map = new HashMap<>();
lastDataMap.put(eqmid, map); StaticVariable.sensorLastDataMap.put(eqmid, map);
} }
map.put(colname, value); map.put(colname, value);
if (time != null) { if (time != null) {
@ -198,8 +196,8 @@ public class IEDCollectService {
try { try {
String ref = bda.getReference().toString(); String ref = bda.getReference().toString();
String key = ref + "_" + bda.getFc().toString(); String key = ref + "_" + bda.getFc().toString();
if (IEDCollectService.relationMap.containsKey(key)) { if (StaticVariable.paramRelationMap.containsKey(key)) {
String value = IEDCollectService.relationMap.get(key); String value = StaticVariable.paramRelationMap.get(key);
String[] str = value.split(","); String[] str = value.split(",");
Integer eqmid = Integer.parseInt(str[0]); Integer eqmid = Integer.parseInt(str[0]);
String colname = str[1]; String colname = str[1];

@ -3,6 +3,7 @@ package com.xydl.cac.iec;
import com.xydl.cac.entity.*; import com.xydl.cac.entity.*;
import com.xydl.cac.entity.constants.Constants; import com.xydl.cac.entity.constants.Constants;
import com.xydl.cac.exception.BusinessException; import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.repository.IcdFileRepository; import com.xydl.cac.repository.IcdFileRepository;
import com.xydl.cac.service.IcdTransformService; import com.xydl.cac.service.IcdTransformService;
import com.xydl.cac.util.IcdXmlUtil; import com.xydl.cac.util.IcdXmlUtil;
@ -50,7 +51,7 @@ public class IecServerService {
IecServer iecServer = new IecServer(transformService); IecServer iecServer = new IecServer(transformService);
iecServer.start(icdFile.getXml(), port); iecServer.start(icdFile.getXml(), port);
iecServer.filename = icdFile.getFilename(); iecServer.filename = icdFile.getFilename();
RealTimeDataService.iecServerMap.put(fileId, iecServer); StaticVariable.iecServerMap.put(fileId, iecServer);
icdFile.setStart(Constants.TRUE); icdFile.setStart(Constants.TRUE);
icdFile.setPort(port); icdFile.setPort(port);
fileRepository.save(icdFile); fileRepository.save(icdFile);
@ -73,32 +74,23 @@ public class IecServerService {
} }
private void onlyStopServer(Integer fileId) { private void onlyStopServer(Integer fileId) {
IecServer iecServer = RealTimeDataService.iecServerMap.get(fileId); IecServer iecServer = StaticVariable.iecServerMap.get(fileId);
if (iecServer != null) { if (iecServer != null) {
log.info("关闭IecServer服务, port=" + iecServer.port); log.info("关闭IecServer服务, port=" + iecServer.port);
iecServer.close(); iecServer.close();
RealTimeDataService.iecServerMap.remove(fileId); StaticVariable.iecServerMap.remove(fileId);
} }
} }
@PreDestroy @PreDestroy
private void stop() { private void stop() {
Iterator<Integer> it = RealTimeDataService.iecServerMap.keySet().iterator(); Iterator<Integer> it = StaticVariable.iecServerMap.keySet().iterator();
while (it.hasNext()) { while (it.hasNext()) {
Integer key = it.next(); Integer key = it.next();
this.onlyStopServer(key); this.onlyStopServer(key);
} }
} }
// public HashMap<String, Object> status() {
// HashMap<String, Object> 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<IcdConfigTypeInst> listParamindex(Integer fileId) throws Exception { public List<IcdConfigTypeInst> listParamindex(Integer fileId) throws Exception {
Optional<IcdFile> optional = fileRepository.findById(fileId); Optional<IcdFile> optional = fileRepository.findById(fileId);
if (!optional.isPresent()) { if (!optional.isPresent()) {

@ -5,6 +5,7 @@ import com.xydl.cac.entity.IcdFile;
import com.xydl.cac.entity.IcdIed; import com.xydl.cac.entity.IcdIed;
import com.xydl.cac.entity.constants.Constants; import com.xydl.cac.entity.constants.Constants;
import com.xydl.cac.exception.BusinessException; import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.repository.IcdFileRepository; import com.xydl.cac.repository.IcdFileRepository;
import com.xydl.cac.repository.IcdIedRepository; import com.xydl.cac.repository.IcdIedRepository;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -27,7 +28,6 @@ public class RealTimeDataService {
@Resource @Resource
IcdIedRepository iedRepository; IcdIedRepository iedRepository;
public static HashMap<Integer, IecServer> iecServerMap = new HashMap<>();
public static boolean inDoing = false; public static boolean inDoing = false;
HashMap<Integer, IecClient> clientMap = new HashMap<>(); HashMap<Integer, IecClient> clientMap = new HashMap<>();
@ -137,10 +137,10 @@ public class RealTimeDataService {
} }
private static void processBdaNodeValue(BasicDataAttribute bda) { private static void processBdaNodeValue(BasicDataAttribute bda) {
Iterator<Integer> it = RealTimeDataService.iecServerMap.keySet().iterator(); Iterator<Integer> it = StaticVariable.iecServerMap.keySet().iterator();
while (it.hasNext()) { while (it.hasNext()) {
Integer key = it.next(); Integer key = it.next();
IecServer iecServer = RealTimeDataService.iecServerMap.get(key); IecServer iecServer = StaticVariable.iecServerMap.get(key);
iecServer.updateBda(bda); iecServer.updateBda(bda);
} }
IEDCollectService.updateLastData(bda); IEDCollectService.updateLastData(bda);

@ -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<Integer, IecServer> iecServerMap = new HashMap<>();
public static HashMap<Integer, HashMap<String, String>> sensorLastDataMap = new HashMap<>();
public static HashMap<String, String> paramRelationMap = new HashMap<>();
public static HashMap<String, String> unit_Cache = new HashMap<>();
public static List<ModevType> modevType_Cache = null;
public static List<Jg> jg_Cache = null;
public static List<Zsb> zsb_Cache = null;
public static ConcurrentHashMap<Integer, WarnRule> rule_Cache = new ConcurrentHashMap<>();
}

@ -3,10 +3,10 @@ package com.xydl.cac.service.impl;
import com.xydl.cac.entity.Bdz; import com.xydl.cac.entity.Bdz;
import com.xydl.cac.entity.Jg; import com.xydl.cac.entity.Jg;
import com.xydl.cac.exception.BusinessException; import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.repository.BdzRepository; import com.xydl.cac.repository.BdzRepository;
import com.xydl.cac.repository.JgRepository; import com.xydl.cac.repository.JgRepository;
import com.xydl.cac.service.BdzService; import com.xydl.cac.service.BdzService;
import com.xydl.cac.task.CacheTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -47,8 +47,8 @@ public class BdzServiceImpl implements BdzService {
throw new BusinessException("该名称已被使用"); throw new BusinessException("该名称已被使用");
} }
repository.save(item); repository.save(item);
CacheTask.jg_Cache = null; StaticVariable.jg_Cache = null;
CacheTask.zsb_Cache = null; StaticVariable.zsb_Cache = null;
} }
@Override @Override

@ -4,12 +4,12 @@ import com.xydl.cac.entity.Bdz;
import com.xydl.cac.entity.Jg; import com.xydl.cac.entity.Jg;
import com.xydl.cac.entity.Zsb; import com.xydl.cac.entity.Zsb;
import com.xydl.cac.exception.BusinessException; import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.repository.BdzRepository; import com.xydl.cac.repository.BdzRepository;
import com.xydl.cac.repository.JgRepository; import com.xydl.cac.repository.JgRepository;
import com.xydl.cac.repository.NSensorRepository; import com.xydl.cac.repository.NSensorRepository;
import com.xydl.cac.repository.ZsbRepository; import com.xydl.cac.repository.ZsbRepository;
import com.xydl.cac.service.JgService; import com.xydl.cac.service.JgService;
import com.xydl.cac.task.CacheTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -37,11 +37,11 @@ public class JgServiceImpl implements JgService {
@Override @Override
public List<Jg> listAll(Integer bdzid) { public List<Jg> listAll(Integer bdzid) {
if (bdzid == null) { if (bdzid == null) {
if (CacheTask.jg_Cache == null) { if (StaticVariable.jg_Cache == null) {
CacheTask.jg_Cache = repository.findAll(); StaticVariable.jg_Cache = repository.findAll();
this.fillBdzName(CacheTask.jg_Cache); this.fillBdzName(StaticVariable.jg_Cache);
} }
return CacheTask.jg_Cache; return StaticVariable.jg_Cache;
} else { } else {
List<Jg> result = repository.findByBdzid(bdzid); List<Jg> result = repository.findByBdzid(bdzid);
Optional<Bdz> optional = bdzRepository.findById(bdzid); Optional<Bdz> optional = bdzRepository.findById(bdzid);
@ -58,11 +58,11 @@ public class JgServiceImpl implements JgService {
public List<Jg> sensorCount(Integer bdzid) { public List<Jg> sensorCount(Integer bdzid) {
List<Jg> result; List<Jg> result;
if (bdzid == null) { if (bdzid == null) {
if (CacheTask.jg_Cache == null) { if (StaticVariable.jg_Cache == null) {
CacheTask.jg_Cache = repository.findAll(); StaticVariable.jg_Cache = repository.findAll();
this.fillBdzName(CacheTask.jg_Cache); this.fillBdzName(StaticVariable.jg_Cache);
} }
result = CacheTask.jg_Cache; result = StaticVariable.jg_Cache;
} else { } else {
result = repository.findByBdzid(bdzid); result = repository.findByBdzid(bdzid);
Optional<Bdz> optional = bdzRepository.findById(bdzid); Optional<Bdz> optional = bdzRepository.findById(bdzid);
@ -111,7 +111,7 @@ public class JgServiceImpl implements JgService {
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
throw new BusinessException("该名称已被使用"); throw new BusinessException("该名称已被使用");
} }
CacheTask.jg_Cache = null; StaticVariable.jg_Cache = null;
return repository.save(item); return repository.save(item);
} }
@ -126,8 +126,8 @@ public class JgServiceImpl implements JgService {
throw new BusinessException("该名称已被使用"); throw new BusinessException("该名称已被使用");
} }
repository.save(item); repository.save(item);
CacheTask.jg_Cache = null; StaticVariable.jg_Cache = null;
CacheTask.zsb_Cache = null; StaticVariable.zsb_Cache = null;
} }
@Override @Override
@ -137,7 +137,7 @@ public class JgServiceImpl implements JgService {
throw new BusinessException("已被主设备使用不能删除"); throw new BusinessException("已被主设备使用不能删除");
} }
repository.deleteById(id); repository.deleteById(id);
CacheTask.jg_Cache = null; StaticVariable.jg_Cache = null;
} }
@Override @Override

@ -3,11 +3,11 @@ package com.xydl.cac.service.impl;
import com.xydl.cac.entity.ModevType; import com.xydl.cac.entity.ModevType;
import com.xydl.cac.entity.NSensor; import com.xydl.cac.entity.NSensor;
import com.xydl.cac.exception.BusinessException; import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.repository.ModevTypePointRepository; import com.xydl.cac.repository.ModevTypePointRepository;
import com.xydl.cac.repository.ModevTypeRepository; import com.xydl.cac.repository.ModevTypeRepository;
import com.xydl.cac.repository.NSensorRepository; import com.xydl.cac.repository.NSensorRepository;
import com.xydl.cac.service.ModevTypeService; import com.xydl.cac.service.ModevTypeService;
import com.xydl.cac.task.CacheTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -31,10 +31,10 @@ public class ModevTypeServiceImpl implements ModevTypeService {
@Override @Override
public List<ModevType> listAll() { public List<ModevType> listAll() {
if (CacheTask.modevType_Cache == null) { if (StaticVariable.modevType_Cache == null) {
CacheTask.modevType_Cache = repository.findAll(); StaticVariable.modevType_Cache = repository.findAll();
} }
return CacheTask.modevType_Cache; return StaticVariable.modevType_Cache;
} }
@Override @Override
@ -54,7 +54,7 @@ public class ModevTypeServiceImpl implements ModevTypeService {
if (!CollectionUtils.isEmpty(byMc)) { if (!CollectionUtils.isEmpty(byMc)) {
throw new BusinessException("该监测装置类型已存在"); throw new BusinessException("该监测装置类型已存在");
} }
CacheTask.modevType_Cache = null; StaticVariable.modevType_Cache = null;
return repository.save(item); return repository.save(item);
} }
@ -69,7 +69,7 @@ public class ModevTypeServiceImpl implements ModevTypeService {
} }
} }
repository.save(item); repository.save(item);
CacheTask.modevType_Cache = null; StaticVariable.modevType_Cache = null;
} }
@Override @Override
@ -80,7 +80,7 @@ public class ModevTypeServiceImpl implements ModevTypeService {
} }
repository.deleteById(id); repository.deleteById(id);
pointRepository.deleteByModevtypeId(id); pointRepository.deleteByModevtypeId(id);
CacheTask.modevType_Cache = null; StaticVariable.modevType_Cache = null;
} }
@Override @Override

@ -3,11 +3,7 @@ package com.xydl.cac.service.impl;
import com.xydl.cac.entity.*; import com.xydl.cac.entity.*;
import com.xydl.cac.entity.constants.Constants; import com.xydl.cac.entity.constants.Constants;
import com.xydl.cac.exception.BusinessException; import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.iec.IEDCollectService; import com.xydl.cac.model.*;
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.repository.I2relationRepository; import com.xydl.cac.repository.I2relationRepository;
import com.xydl.cac.repository.ModevRepository; import com.xydl.cac.repository.ModevRepository;
import com.xydl.cac.repository.NSensorRepository; import com.xydl.cac.repository.NSensorRepository;
@ -84,7 +80,7 @@ public class NSensorServiceImpl implements NSensorService {
sensor.setTableName(type.getTablename()); sensor.setTableName(type.getTablename());
} }
} }
HashMap<String, String> map = IEDCollectService.lastDataMap.get(sensor.getDevId()); HashMap<String, String> map = StaticVariable.sensorLastDataMap.get(sensor.getDevId());
sensor.setLastData(map); sensor.setLastData(map);
} }
} }

@ -2,9 +2,9 @@ package com.xydl.cac.service.impl;
import com.xydl.cac.entity.Unit; import com.xydl.cac.entity.Unit;
import com.xydl.cac.exception.BusinessException; import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.repository.UnitRepository; import com.xydl.cac.repository.UnitRepository;
import com.xydl.cac.service.UnitService; import com.xydl.cac.service.UnitService;
import com.xydl.cac.task.CacheTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -33,30 +33,30 @@ public class UnitServiceImpl implements UnitService {
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
throw new BusinessException("该字段已存在"); throw new BusinessException("该字段已存在");
} }
CacheTask.unit_Cache.clear(); StaticVariable.unit_Cache.clear();
return repository.save(item); return repository.save(item);
} }
@Override @Override
public void update(Unit item) throws Exception { public void update(Unit item) throws Exception {
repository.save(item); repository.save(item);
CacheTask.unit_Cache.clear(); StaticVariable.unit_Cache.clear();
} }
@Override @Override
public void delete(Integer id) { public void delete(Integer id) {
repository.deleteById(id); repository.deleteById(id);
CacheTask.unit_Cache.clear(); StaticVariable.unit_Cache.clear();
} }
@Override @Override
public String findUnitInCache(String field) { public String findUnitInCache(String field) {
if (CacheTask.unit_Cache.size() < 1) { if (StaticVariable.unit_Cache.size() < 1) {
List<Unit> list = repository.findAll(); List<Unit> list = repository.findAll();
for (Unit item : list) { 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());
} }
} }

@ -4,12 +4,12 @@ import com.xydl.cac.entity.ModevTypePoint;
import com.xydl.cac.entity.NSensor; import com.xydl.cac.entity.NSensor;
import com.xydl.cac.entity.WarnRule; import com.xydl.cac.entity.WarnRule;
import com.xydl.cac.exception.BusinessException; import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.repository.ModevTypePointRepository; import com.xydl.cac.repository.ModevTypePointRepository;
import com.xydl.cac.repository.WarnRuleRepository; import com.xydl.cac.repository.WarnRuleRepository;
import com.xydl.cac.service.DataService; import com.xydl.cac.service.DataService;
import com.xydl.cac.service.NSensorService; import com.xydl.cac.service.NSensorService;
import com.xydl.cac.service.WarnRuleService; import com.xydl.cac.service.WarnRuleService;
import com.xydl.cac.task.CacheTask;
import com.xydl.cac.util.DateUtil; import com.xydl.cac.util.DateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -87,12 +87,12 @@ public class WarnRuleServiceImpl implements WarnRuleService {
rule.setLevel(item.getLevel()); rule.setLevel(item.getLevel());
rule.setActive(item.getActive()); rule.setActive(item.getActive());
repository.save(rule); repository.save(rule);
CacheTask.rule_Cache.remove(rule.getId()); StaticVariable.rule_Cache.remove(rule.getId());
} }
@Override @Override
public void delete(Integer id) throws Exception { public void delete(Integer id) throws Exception {
repository.deleteById(id); repository.deleteById(id);
CacheTask.rule_Cache.remove(id); StaticVariable.rule_Cache.remove(id);
} }
} }

@ -5,12 +5,12 @@ import com.xydl.cac.entity.Lx;
import com.xydl.cac.entity.Modev; import com.xydl.cac.entity.Modev;
import com.xydl.cac.entity.Zsb; import com.xydl.cac.entity.Zsb;
import com.xydl.cac.exception.BusinessException; import com.xydl.cac.exception.BusinessException;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.repository.LxRepository; import com.xydl.cac.repository.LxRepository;
import com.xydl.cac.repository.ModevRepository; import com.xydl.cac.repository.ModevRepository;
import com.xydl.cac.repository.ZsbRepository; import com.xydl.cac.repository.ZsbRepository;
import com.xydl.cac.service.JgService; import com.xydl.cac.service.JgService;
import com.xydl.cac.service.ZsbService; import com.xydl.cac.service.ZsbService;
import com.xydl.cac.task.CacheTask;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -37,12 +37,12 @@ public class ZsbServiceImpl implements ZsbService {
@Override @Override
public List<Zsb> listAll(Integer jgid) throws Exception { public List<Zsb> listAll(Integer jgid) throws Exception {
if (jgid == null) { if (jgid == null) {
if (CacheTask.zsb_Cache == null) { if (StaticVariable.zsb_Cache == null) {
CacheTask.zsb_Cache = repository.findAll(); StaticVariable.zsb_Cache = repository.findAll();
this.fillJgBdzName(CacheTask.zsb_Cache); this.fillJgBdzName(StaticVariable.zsb_Cache);
this.fillLxName(CacheTask.zsb_Cache); this.fillLxName(StaticVariable.zsb_Cache);
} }
return CacheTask.zsb_Cache; return StaticVariable.zsb_Cache;
} else { } else {
List<Zsb> result = repository.findByJgid(jgid); List<Zsb> result = repository.findByJgid(jgid);
Jg jg = jgService.detail(jgid); Jg jg = jgService.detail(jgid);
@ -99,7 +99,7 @@ public class ZsbServiceImpl implements ZsbService {
if (!CollectionUtils.isEmpty(list)) { if (!CollectionUtils.isEmpty(list)) {
throw new BusinessException("该名称已被使用"); throw new BusinessException("该名称已被使用");
} }
CacheTask.zsb_Cache = null; StaticVariable.zsb_Cache = null;
return repository.save(item); return repository.save(item);
} }
@ -116,7 +116,7 @@ public class ZsbServiceImpl implements ZsbService {
throw new BusinessException("该名称已被使用"); throw new BusinessException("该名称已被使用");
} }
repository.save(item); repository.save(item);
CacheTask.zsb_Cache = null; StaticVariable.zsb_Cache = null;
} }
@Override @Override
@ -126,7 +126,7 @@ public class ZsbServiceImpl implements ZsbService {
throw new BusinessException("已被监测装置使用不能删除"); throw new BusinessException("已被监测装置使用不能删除");
} }
repository.deleteById(id); repository.deleteById(id);
CacheTask.zsb_Cache = null; StaticVariable.zsb_Cache = null;
} }
@Override @Override

@ -1,18 +1,14 @@
package com.xydl.cac.task; 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.WarnRule;
import com.xydl.cac.entity.Zsb; import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.service.WarnRuleService; import com.xydl.cac.service.WarnRuleService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.ConcurrentHashMap;
@Service @Service
@Slf4j @Slf4j
@ -21,19 +17,14 @@ public class CacheTask {
@Resource @Resource
WarnRuleService ruleService; WarnRuleService ruleService;
public static HashMap<String, String> unit_Cache = new HashMap<>();
public static List<ModevType> modevType_Cache = null;
public static List<Jg> jg_Cache = null;
public static List<Zsb> zsb_Cache = null;
public static ConcurrentHashMap<Integer, WarnRule> rule_Cache = new ConcurrentHashMap<>();
@Scheduled(cron = "0 0 9 * * ?") @Scheduled(cron = "0 0 9 * * ?")
private void clearCache() { private void clearCache() {
unit_Cache.clear(); StaticVariable.unit_Cache.clear();
modevType_Cache = null; StaticVariable.modevType_Cache = null;
jg_Cache = null; StaticVariable.jg_Cache = null;
zsb_Cache = null; StaticVariable.zsb_Cache = null;
rule_Cache.clear(); StaticVariable.rule_Cache.clear();
} }
@ -42,10 +33,10 @@ public class CacheTask {
try { try {
List<WarnRule> list = ruleService.listAll(null); List<WarnRule> list = ruleService.listAll(null);
for (WarnRule item : list) { for (WarnRule item : list) {
WarnRule rule = rule_Cache.get(item.getId()); WarnRule rule = StaticVariable.rule_Cache.get(item.getId());
if (rule == null) { if (rule == null) {
item.initComparator(item.getComparator(), item.getOperator()); item.initComparator(item.getComparator(), item.getOperator());
rule_Cache.put(item.getId(), item); StaticVariable.rule_Cache.put(item.getId(), item);
} }
} }
} catch (Exception e) { } catch (Exception e) {

@ -4,6 +4,7 @@ import com.xydl.cac.entity.ModevTypePoint;
import com.xydl.cac.entity.NSensor; import com.xydl.cac.entity.NSensor;
import com.xydl.cac.entity.WarnRule; import com.xydl.cac.entity.WarnRule;
import com.xydl.cac.entity.Warning; import com.xydl.cac.entity.Warning;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.model.TriggerModel; import com.xydl.cac.model.TriggerModel;
import com.xydl.cac.repository.WarnRuleRepository; import com.xydl.cac.repository.WarnRuleRepository;
import com.xydl.cac.repository.WarningRepository; import com.xydl.cac.repository.WarningRepository;
@ -43,10 +44,10 @@ public class RuleCheckTask {
@Scheduled(initialDelay = 60 * 1000, fixedDelay = 3 * 60 * 1000) @Scheduled(initialDelay = 60 * 1000, fixedDelay = 3 * 60 * 1000)
private void checkAll() { private void checkAll() {
try { try {
Iterator<Integer> it = CacheTask.rule_Cache.keySet().iterator(); Iterator<Integer> it = StaticVariable.rule_Cache.keySet().iterator();
while (it.hasNext()) { while (it.hasNext()) {
Integer key = it.next(); Integer key = it.next();
WarnRule rule = CacheTask.rule_Cache.get(key); WarnRule rule = StaticVariable.rule_Cache.get(key);
if (rule.canDo()) { if (rule.canDo()) {
this.ruleCheck(rule); this.ruleCheck(rule);
} }

@ -2,11 +2,11 @@ package com.xydl.cac.transform;
import com.alibaba.excel.util.StringUtils; import com.alibaba.excel.util.StringUtils;
import com.xydl.cac.entity.*; import com.xydl.cac.entity.*;
import com.xydl.cac.model.StaticVariable;
import com.xydl.cac.model.i2sync.Attr; import com.xydl.cac.model.i2sync.Attr;
import com.xydl.cac.model.i2sync.Datanode; import com.xydl.cac.model.i2sync.Datanode;
import com.xydl.cac.model.i2sync.Monitordata; import com.xydl.cac.model.i2sync.Monitordata;
import com.xydl.cac.model.i2sync.Request; import com.xydl.cac.model.i2sync.Request;
import com.xydl.cac.task.CacheTask;
import com.xydl.cac.util.DateUtil; import com.xydl.cac.util.DateUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -25,10 +25,10 @@ public class I2DataTransformer {
// 查到可用规则 // 查到可用规则
List<WarnRule> ruleList = new ArrayList<>(); List<WarnRule> ruleList = new ArrayList<>();
Iterator<Integer> it = CacheTask.rule_Cache.keySet().iterator(); Iterator<Integer> it = StaticVariable.rule_Cache.keySet().iterator();
while (it.hasNext()) { while (it.hasNext()) {
Integer key = it.next(); 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())) { if (rule.canDo() && rule.getSensorId().equals(sensor.getId())) {
ruleList.add(rule); ruleList.add(rule);
} }

Loading…
Cancel
Save