From 01aa33fb8f70bb521b4299bce081429d05e7bf75 Mon Sep 17 00:00:00 2001 From: fengyarnom Date: Fri, 1 Nov 2024 15:50:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=20WarningLogExecutor=20?= =?UTF-8?q?=E7=9A=84=E5=AF=BC=E8=87=B4=E6=97=A0=E6=B3=95=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/D3F0SelfCheckMessageExecutor.java | 1 - .../imdroid/sideslope/service/WarningServiceImpl.java | 11 +++++++---- .../com/imdroid/beidou/task/DeviceStatusChecker.java | 10 +++++++--- .../com/imdroid/common/util}/WarningLogExecutor.java | 9 +++------ 4 files changed, 17 insertions(+), 14 deletions(-) rename {sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd => sec-common/src/main/java/com/imdroid/common/util}/WarningLogExecutor.java (94%) diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java index 5d754803..6906911f 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/executor/D3F0SelfCheckMessageExecutor.java @@ -7,7 +7,6 @@ import com.imdroid.secapi.client.BeidouClient; import com.imdroid.secapi.dto.GnssMsg; import com.imdroid.secapi.dto.GnssMsgMapper; import com.imdroid.secapi.dto.GnssStatus; -import com.imdroid.sideslope.bd.WarningLogExecutor; import com.imdroid.sideslope.message.D3F0SelfCheckMessage; import com.imdroid.sideslope.sal.Device; import com.imdroid.sideslope.sal.DeviceService; diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/WarningServiceImpl.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/WarningServiceImpl.java index 9c23c031..5c4b706e 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/WarningServiceImpl.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/service/WarningServiceImpl.java @@ -2,10 +2,11 @@ package com.imdroid.sideslope.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.imdroid.common.util.NumberUtils; +import com.imdroid.common.util.WarningLogExecutor; import com.imdroid.secapi.dto.*; -import com.imdroid.sideslope.bd.WarningLogExecutor; import com.imdroid.sideslope.sal.Device; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; @@ -22,8 +23,9 @@ public class WarningServiceImpl implements WarningService { WarningMsgMapper warningMsgMapper; @Autowired GnssStatusMapper gnssStatusMapper; - @Autowired - private WarningLogExecutor warningLogExecutor; + + @Value("${warning.log.directory}") + private String logDirectory; // warning type <-> level & value Map cfgMap = new ConcurrentHashMap<>(); @@ -228,7 +230,8 @@ public class WarningServiceImpl implements WarningService { public void generate_warning_logs(String device_id,int warning_type,String warning_type_name){ if (warning_type == WarningCfg.TYPE_LOW_VOLTAGE) { - warningLogExecutor.generateWarningLogs(device_id,warning_type_name); + WarningLogExecutor warningLogExecutor = new WarningLogExecutor(logDirectory); + warningLogExecutor.generateWarningLogs(device_id, warning_type_name); } } diff --git a/sec-beidou/src/main/java/com/imdroid/beidou/task/DeviceStatusChecker.java b/sec-beidou/src/main/java/com/imdroid/beidou/task/DeviceStatusChecker.java index 9c5b37e9..eec06a93 100644 --- a/sec-beidou/src/main/java/com/imdroid/beidou/task/DeviceStatusChecker.java +++ b/sec-beidou/src/main/java/com/imdroid/beidou/task/DeviceStatusChecker.java @@ -3,10 +3,11 @@ package com.imdroid.beidou.task; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.query.MPJQueryWrapper; import com.imdroid.beidou.service.NotificationService; +import com.imdroid.common.util.WarningLogExecutor; import com.imdroid.secapi.dto.*; -import com.imdroid.sideslope.bd.WarningLogExecutor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; @@ -46,8 +47,8 @@ public class DeviceStatusChecker { @Autowired GnssDeviceMapper deviceMapper; - @Autowired - WarningLogExecutor warningLogExecutor; + @Value("${warning.log.directory}") + private String logDirectory; static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @@ -159,8 +160,11 @@ public class DeviceStatusChecker { status.setWarning(WarningCfg.LEVEL_2); deviceIds.add(status.getDeviceid()); + // 生成 Warning 日志 + WarningLogExecutor warningLogExecutor = new WarningLogExecutor(logDirectory); warningLogExecutor.generateWarningLogs(status.getDeviceid(),WarningCfg.TYPE_NAME_NO_FIXED_RESULT); + } gnssStatusMapper.updateById(status); } diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/WarningLogExecutor.java b/sec-common/src/main/java/com/imdroid/common/util/WarningLogExecutor.java similarity index 94% rename from sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/WarningLogExecutor.java rename to sec-common/src/main/java/com/imdroid/common/util/WarningLogExecutor.java index 59ab4fa7..eead76a6 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/bd/WarningLogExecutor.java +++ b/sec-common/src/main/java/com/imdroid/common/util/WarningLogExecutor.java @@ -1,8 +1,6 @@ -package com.imdroid.sideslope.bd; +package com.imdroid.common.util; -import com.imdroid.common.util.ThreadManager; import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; import java.io.*; import java.nio.file.*; @@ -13,16 +11,15 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; -@Component public class WarningLogExecutor { - @Value("${log.directory}") private String logDirectory; private final ExecutorService executor; // 记录已初始化的文件 private final ConcurrentHashMap initializedFiles = new ConcurrentHashMap<>(); - public WarningLogExecutor() { + public WarningLogExecutor(String logDirectory) { + this.logDirectory = logDirectory; this.executor = ThreadManager.getSingleThreadPool("warning_log_thread"); }