修正 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.GnssMsg;
import com.imdroid.secapi.dto.GnssMsgMapper; import com.imdroid.secapi.dto.GnssMsgMapper;
import com.imdroid.secapi.dto.GnssStatus; import com.imdroid.secapi.dto.GnssStatus;
import com.imdroid.sideslope.bd.WarningLogExecutor;
import com.imdroid.sideslope.message.D3F0SelfCheckMessage; import com.imdroid.sideslope.message.D3F0SelfCheckMessage;
import com.imdroid.sideslope.sal.Device; import com.imdroid.sideslope.sal.Device;
import com.imdroid.sideslope.sal.DeviceService; 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.imdroid.common.util.NumberUtils; import com.imdroid.common.util.NumberUtils;
import com.imdroid.common.util.WarningLogExecutor;
import com.imdroid.secapi.dto.*; import com.imdroid.secapi.dto.*;
import com.imdroid.sideslope.bd.WarningLogExecutor;
import com.imdroid.sideslope.sal.Device; import com.imdroid.sideslope.sal.Device;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@ -22,8 +23,9 @@ public class WarningServiceImpl implements WarningService {
WarningMsgMapper warningMsgMapper; WarningMsgMapper warningMsgMapper;
@Autowired @Autowired
GnssStatusMapper gnssStatusMapper; GnssStatusMapper gnssStatusMapper;
@Autowired
private WarningLogExecutor warningLogExecutor; @Value("${warning.log.directory}")
private String logDirectory;
// warning type <-> level & value // warning type <-> level & value
Map<Integer, int[]> cfgMap = new ConcurrentHashMap<>(); 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){ public void generate_warning_logs(String device_id,int warning_type,String warning_type_name){
if (warning_type == WarningCfg.TYPE_LOW_VOLTAGE) { 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.query.MPJQueryWrapper; import com.github.yulichang.query.MPJQueryWrapper;
import com.imdroid.beidou.service.NotificationService; import com.imdroid.beidou.service.NotificationService;
import com.imdroid.common.util.WarningLogExecutor;
import com.imdroid.secapi.dto.*; import com.imdroid.secapi.dto.*;
import com.imdroid.sideslope.bd.WarningLogExecutor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
@ -46,8 +47,8 @@ public class DeviceStatusChecker {
@Autowired @Autowired
GnssDeviceMapper deviceMapper; GnssDeviceMapper deviceMapper;
@Autowired @Value("${warning.log.directory}")
WarningLogExecutor warningLogExecutor; private String logDirectory;
static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@ -159,8 +160,11 @@ public class DeviceStatusChecker {
status.setWarning(WarningCfg.LEVEL_2); status.setWarning(WarningCfg.LEVEL_2);
deviceIds.add(status.getDeviceid()); deviceIds.add(status.getDeviceid());
// 生成 Warning 日志
WarningLogExecutor warningLogExecutor = new WarningLogExecutor(logDirectory);
warningLogExecutor.generateWarningLogs(status.getDeviceid(),WarningCfg.TYPE_NAME_NO_FIXED_RESULT); warningLogExecutor.generateWarningLogs(status.getDeviceid(),WarningCfg.TYPE_NAME_NO_FIXED_RESULT);
} }
gnssStatusMapper.updateById(status); 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.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.*; import java.io.*;
import java.nio.file.*; import java.nio.file.*;
@ -13,16 +11,15 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Component
public class WarningLogExecutor { public class WarningLogExecutor {
@Value("${log.directory}")
private String logDirectory; private String logDirectory;
private final ExecutorService executor; private final ExecutorService executor;
// 记录已初始化的文件 // 记录已初始化的文件
private final ConcurrentHashMap<String, Boolean> initializedFiles = new ConcurrentHashMap<>(); private final ConcurrentHashMap<String, Boolean> initializedFiles = new ConcurrentHashMap<>();
public WarningLogExecutor() { public WarningLogExecutor(String logDirectory) {
this.logDirectory = logDirectory;
this.executor = ThreadManager.getSingleThreadPool("warning_log_thread"); this.executor = ThreadManager.getSingleThreadPool("warning_log_thread");
} }