代码提交
This commit is contained in:
@@ -29,7 +29,7 @@ public class QvvrDataStruct extends Structure {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<String> getFieldOrder() { // 返回值填入的顺序
|
protected List<String> getFieldOrder() {
|
||||||
return Arrays.asList(new String[]{"sys_res"});
|
return Arrays.asList("sys_num", "line_idx", "line_num", "sys_res");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,12 +37,12 @@
|
|||||||
<groupId>org.apache.commons</groupId>
|
<groupId>org.apache.commons</groupId>
|
||||||
<artifactId>commons-pool2</artifactId>
|
<artifactId>commons-pool2</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<!-- <dependency>
|
||||||
<groupId>com.njcn</groupId>
|
<groupId>com.njcn</groupId>
|
||||||
<artifactId>influxdb-springboot-starter</artifactId>
|
<artifactId>influxdb-springboot-starter</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>-->
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||||||
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
|
import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator;
|
||||||
import com.fasterxml.jackson.databind.module.SimpleModule;
|
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||||
import com.njcn.influx.utils.InstantDateDeserializer;
|
import com.njcn.redis.seriallizer.RedisInstantDateDeserializer;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
|
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
|
||||||
@@ -41,7 +41,7 @@ public class RedisConfig {
|
|||||||
//解决Java 8 date/time type java.time.Instant not supported
|
//解决Java 8 date/time type java.time.Instant not supported
|
||||||
objectMapper.registerModule(new JavaTimeModule());
|
objectMapper.registerModule(new JavaTimeModule());
|
||||||
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||||
objectMapper.registerModule(new SimpleModule().addDeserializer(Instant.class, new InstantDateDeserializer()));
|
objectMapper.registerModule(new SimpleModule().addDeserializer(Instant.class, new RedisInstantDateDeserializer()));
|
||||||
|
|
||||||
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
||||||
objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
|
objectMapper.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL);
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package com.njcn.redis.seriallizer;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.fasterxml.jackson.core.JsonParser;
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationContext;
|
||||||
|
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: cdf
|
||||||
|
* @CreateTime: 2025-07-25
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class RedisInstantDateDeserializer extends StdDeserializer<Instant> {
|
||||||
|
|
||||||
|
public RedisInstantDateDeserializer() {
|
||||||
|
this(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected RedisInstantDateDeserializer(Class<?> vc) {
|
||||||
|
super(vc);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Instant deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
|
||||||
|
String text = p.getValueAsString();
|
||||||
|
return DateUtil.parse(text, DatePattern.NORM_DATETIME_PATTERN).toInstant().plusMillis(TimeUnit.HOURS.toMillis(8));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -654,6 +654,7 @@ public class TerminalBaseServiceImpl extends ServiceImpl<LineMapper, Line> imple
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//记录终端相关操作日志
|
||||||
List<PqsTerminalLogs> pqsTerminalLogsList = new ArrayList<>();
|
List<PqsTerminalLogs> pqsTerminalLogsList = new ArrayList<>();
|
||||||
Map<String,DictData> dictDataMap = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_TYPE.getCode()).getData().stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
Map<String,DictData> dictDataMap = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_TYPE.getCode()).getData().stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
|
||||||
DictData dicDataByCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.DEV_PARAMETER.getCode()).getData();
|
DictData dicDataByCode = dicDataFeignClient.getDicDataByCode(DicDataEnum.DEV_PARAMETER.getCode()).getData();
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ public class IpUtils {
|
|||||||
public static String getRealIpAddress(ServerHttpRequest request) {
|
public static String getRealIpAddress(ServerHttpRequest request) {
|
||||||
HttpHeaders headers = request.getHeaders();
|
HttpHeaders headers = request.getHeaders();
|
||||||
String ipAddress = headers.getFirst(HEADER_X_FORWARDED_FOR);
|
String ipAddress = headers.getFirst(HEADER_X_FORWARDED_FOR);
|
||||||
log.error("X-Forwarded-For:"+ipAddress);
|
log.info("X-Forwarded-For:"+ipAddress);
|
||||||
ipAddress = headers.getFirst("X-Real-IP");
|
ipAddress = headers.getFirst("X-Real-IP");
|
||||||
log.error("X-Real-IP:"+ipAddress);
|
log.error("X-Real-IP:"+ipAddress);
|
||||||
ipAddress = headers.getFirst("Proxy-Client-IP");
|
ipAddress = headers.getFirst("Proxy-Client-IP");
|
||||||
|
|||||||
@@ -94,12 +94,12 @@
|
|||||||
<artifactId>joda-time</artifactId>
|
<artifactId>joda-time</artifactId>
|
||||||
<version>2.9.9</version>
|
<version>2.9.9</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<!-- <dependency>
|
||||||
<groupId>com.njcn</groupId>
|
<groupId>com.njcn</groupId>
|
||||||
<artifactId>prepare-api</artifactId>
|
<artifactId>prepare-api</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>-->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.njcn</groupId>
|
<groupId>com.njcn</groupId>
|
||||||
<artifactId>advance-api</artifactId>
|
<artifactId>advance-api</artifactId>
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import com.github.jeffreyning.mybatisplus.service.IMppService;
|
|||||||
import com.njcn.harmonic.pojo.po.RActivePowerRangePO;
|
import com.njcn.harmonic.pojo.po.RActivePowerRangePO;
|
||||||
import com.njcn.harmonic.pojo.vo.PowerStatisticsTargetVO;
|
import com.njcn.harmonic.pojo.vo.PowerStatisticsTargetVO;
|
||||||
import com.njcn.harmonic.pojo.vo.RActivePowerRangeVO;
|
import com.njcn.harmonic.pojo.vo.RActivePowerRangeVO;
|
||||||
import com.njcn.prepare.harmonic.pojo.param.RActivePowerRangeParam;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import com.njcn.harmonic.pojo.vo.PowerStatisticsTargetVO;
|
|||||||
import com.njcn.harmonic.pojo.vo.RActivePowerRangeVO;
|
import com.njcn.harmonic.pojo.vo.RActivePowerRangeVO;
|
||||||
import com.njcn.harmonic.service.activepowerrange.RActivePowerRangeService;
|
import com.njcn.harmonic.service.activepowerrange.RActivePowerRangeService;
|
||||||
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
|
import com.njcn.influx.pojo.constant.InfluxDBTableConstant;
|
||||||
import com.njcn.prepare.harmonic.pojo.param.RActivePowerRangeParam;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Value;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -165,7 +166,7 @@ public class TimersServiceImpl extends ServiceImpl<TimersMapper, Timers> impleme
|
|||||||
int retryCount = 0;
|
int retryCount = 0;
|
||||||
while (retryCount < maxRetryCount) {
|
while (retryCount < maxRetryCount) {
|
||||||
try {
|
try {
|
||||||
System.out.println("重试机制:"+(retryCount+1));
|
System.out.println(LocalDateTime.now()+"手动重试机制:"+(retryCount+1));
|
||||||
timerTaskRunner.action(date);
|
timerTaskRunner.action(date);
|
||||||
System.out.println("成功重试机制:"+(retryCount+1));
|
System.out.println("成功重试机制:"+(retryCount+1));
|
||||||
return; // 任务执行成功,跳出循环
|
return; // 任务执行成功,跳出循环
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hutool方式的定时任务执行
|
* hutool方式的定时任务执行
|
||||||
*
|
*
|
||||||
@@ -67,10 +69,11 @@ public class HutoolTimerExeServiceImpl implements TimerExeService {
|
|||||||
int retryCount = 0;
|
int retryCount = 0;
|
||||||
while (retryCount < maxRetryCount) {
|
while (retryCount < maxRetryCount) {
|
||||||
try {
|
try {
|
||||||
System.out.println("重试机制:"+(retryCount+1));
|
System.out.println(LocalDateTime.now()+"自动重试机制:"+(retryCount+1));
|
||||||
timerTaskRunner.action(null);
|
timerTaskRunner.action(null);
|
||||||
return; // 任务执行成功,跳出循环
|
return; // 任务执行成功,跳出循环
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
// 处理异常
|
// 处理异常
|
||||||
// 增加重试次数
|
// 增加重试次数
|
||||||
retryCount++;
|
retryCount++;
|
||||||
|
|||||||
Reference in New Issue
Block a user