修正 WarningLogExecutor 的导致无法编译项目的错误

This commit is contained in:
fengyarnom 2024-11-01 15:50:21 +08:00
parent 783c7ee58b
commit 01aa33fb8f
4 changed files with 17 additions and 14 deletions

View File

@ -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;

View File

@ -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<Integer, int[]> 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);
}
}

View File

@ -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);
}

View File

@ -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<String, Boolean> initializedFiles = new ConcurrentHashMap<>();
public WarningLogExecutor() {
public WarningLogExecutor(String logDirectory) {
this.logDirectory = logDirectory;
this.executor = ThreadManager.getSingleThreadPool("warning_log_thread");
}