From e5f35cffd88b05e59dfeb017b1a34312ad2a193a Mon Sep 17 00:00:00 2001 From: huangfeng Date: Mon, 16 Jun 2025 11:33:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E7=82=B9=E8=A1=A8?= =?UTF-8?q?=E7=BC=93=E5=AD=98=EF=BC=8C=E5=AE=9A=E6=97=B6=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E5=92=8C=E5=90=AF=E5=8A=A8104=E6=9C=8D=E5=8A=A1=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xydl/cac/iec104/Iec104ServerService.java | 10 +++++++++- .../java/com/xydl/cac/model/StaticVariable.java | 1 + .../cac/service/impl/Iec104PointServiceImpl.java | 4 +++- src/main/java/com/xydl/cac/task/CacheTask.java | 15 ++++++++++++--- 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/xydl/cac/iec104/Iec104ServerService.java b/src/main/java/com/xydl/cac/iec104/Iec104ServerService.java index bba2a14..6837f7d 100644 --- a/src/main/java/com/xydl/cac/iec104/Iec104ServerService.java +++ b/src/main/java/com/xydl/cac/iec104/Iec104ServerService.java @@ -2,21 +2,29 @@ package com.xydl.cac.iec104; import com.xydl.cac.exception.BusinessException; import com.xydl.cac.model.StaticVariable; +import com.xydl.cac.service.Iec104PointService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; +import javax.annotation.Resource; @Service @Slf4j public class Iec104ServerService { + @Resource + Iec104PointService iec104PointService; @PostConstruct private void init() { try { -// this.startServer(2404); + iec104PointService.findAll(); + if (!CollectionUtils.isEmpty(StaticVariable.point104_Cache)) { + this.startServer(2404); + } } catch (Exception ignore) { } } diff --git a/src/main/java/com/xydl/cac/model/StaticVariable.java b/src/main/java/com/xydl/cac/model/StaticVariable.java index e0dd7ca..3e64788 100644 --- a/src/main/java/com/xydl/cac/model/StaticVariable.java +++ b/src/main/java/com/xydl/cac/model/StaticVariable.java @@ -32,6 +32,7 @@ public class StaticVariable { public static List zsb_Cache = null; public static ConcurrentHashMap rule_Cache = new ConcurrentHashMap<>(); public static HashMap ruleRelationMap = new HashMap<>(); + public static List point104_Cache = null; // 更新服务端 diff --git a/src/main/java/com/xydl/cac/service/impl/Iec104PointServiceImpl.java b/src/main/java/com/xydl/cac/service/impl/Iec104PointServiceImpl.java index 2b29b12..f06f1e2 100644 --- a/src/main/java/com/xydl/cac/service/impl/Iec104PointServiceImpl.java +++ b/src/main/java/com/xydl/cac/service/impl/Iec104PointServiceImpl.java @@ -2,6 +2,7 @@ package com.xydl.cac.service.impl; import com.xydl.cac.entity.Iec104Point; import com.xydl.cac.exception.BusinessException; +import com.xydl.cac.model.StaticVariable; import com.xydl.cac.repository.Iec104PointRepository; import com.xydl.cac.service.Iec104PointService; import lombok.extern.slf4j.Slf4j; @@ -23,7 +24,8 @@ public class Iec104PointServiceImpl implements Iec104PointService { @Override public List findAll() { - return iec104PointRepository.findAll(); + StaticVariable.point104_Cache = iec104PointRepository.findAll(); + return StaticVariable.point104_Cache; } @Override diff --git a/src/main/java/com/xydl/cac/task/CacheTask.java b/src/main/java/com/xydl/cac/task/CacheTask.java index d4fc7af..8e929fd 100644 --- a/src/main/java/com/xydl/cac/task/CacheTask.java +++ b/src/main/java/com/xydl/cac/task/CacheTask.java @@ -1,7 +1,9 @@ package com.xydl.cac.task; +import com.xydl.cac.entity.Iec104Point; import com.xydl.cac.entity.WarnRule; import com.xydl.cac.model.StaticVariable; +import com.xydl.cac.service.Iec104PointService; import com.xydl.cac.service.WarnRuleService; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; @@ -16,9 +18,11 @@ public class CacheTask { @Resource WarnRuleService ruleService; + @Resource + Iec104PointService iec104PointService; @Scheduled(cron = "0 0 1 * * ?") - private void clearCache1() { + public void clearCache1() { StaticVariable.unit_Cache.clear(); StaticVariable.modevType_Cache = null; StaticVariable.jg_Cache = null; @@ -29,12 +33,12 @@ public class CacheTask { } @Scheduled(cron = "0 30 9 * * ?") - private void clearCache9() { + public void clearCache9() { StaticVariable.doneWarnMap.clear(); } @Scheduled(initialDelay = 30 * 1000, fixedDelay = 60 * 1000) - private void refreshRule() { + public void refreshRule() { try { List list = ruleService.listAll(null); for (WarnRule item : list) { @@ -52,4 +56,9 @@ public class CacheTask { log.error("CacheTask.refreshRule error.", e); } } + + @Scheduled(initialDelay = 5 * 60 * 1000, fixedDelay = 5 * 60 * 1000) + public void refresh104() { + iec104PointService.findAll(); + } }