1.污染值算法迁移

2.增加暂态信息补招
This commit is contained in:
wr
2025-07-25 17:27:18 +08:00
parent 6d5d2a339e
commit 7a0b0cc943
28 changed files with 499 additions and 53 deletions

View File

@@ -2,6 +2,7 @@ package com.njcn.migration.read.controller;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.njcn.api.MigrationInsertFeignClient;
import com.njcn.param.LineCountEvaluateParam;
import com.njcn.migration.read.service.MigrationService;
import io.swagger.annotations.*;
@@ -32,7 +33,7 @@ import java.time.temporal.ChronoUnit;
public class MigrationInfluxDBController {
private final MigrationService migrationService;
private final MigrationInsertFeignClient migrationInsertFeignClient;
@GetMapping("/influxdb")
@ApiOperation("influxdb数据同步->天数按小时进行分组同步")
@@ -68,29 +69,32 @@ public class MigrationInfluxDBController {
}
@GetMapping(value = "/importExcel")
@ApiOperation(value ="是否更新数据1是 0否表示用于定时任务")
public void importDistributionAreaExcel(@RequestParam("type") Integer type) {
public void importDistributionAreaExcel(@RequestParam("type") Integer type,@RequestParam("startDate") String startDateTime,@RequestParam("endDate") String endDateTime) {
if(type==0){
migrationService.initializeExcel();
}else{
System.out.println("--------------------------------手动1influxdb同步------------------------------------");
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 减去2个小时
LocalDateTime oneHourAgo = now.minusHours(2);
// 将分钟和秒设置为0
LocalDateTime result = oneHourAgo.truncatedTo(ChronoUnit.HOURS);
// 加上59分钟59秒
LocalDateTime modifiedResult = result.plusMinutes(59).plusSeconds(59);
LineCountEvaluateParam param = new LineCountEvaluateParam();
param.setIsManual(false);
param.setStartTime(result.format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
param.setEndTime(modifiedResult.format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
migrationService.hourseLineDataBacthSysc(param);
migrationService.hourseDevDataBacthSysc(param);
try {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN);
LineCountEvaluateParam param=new LineCountEvaluateParam();
param.setIsManual(true);
LocalDateTime startDate = LocalDateTimeUtil.parse(startDateTime, DatePattern.NORM_DATETIME_PATTERN);
LocalDateTime endDate = LocalDateTimeUtil.parse(endDateTime, DatePattern.NORM_DATETIME_PATTERN);
long betweenDay = LocalDateTimeUtil.between(startDate, endDate, ChronoUnit.HOURS);
param.setStartTime(startDate.format(dateTimeFormatter));
param.setEndTime(startDate.with(LocalTime.of(startDate.getHour(), 59, 59)).format(dateTimeFormatter));
migrationService.hourseLineEventBacthSysc(param);
for (int i = 0; i <betweenDay; i++) {
LineCountEvaluateParam countEvaluateParam=new LineCountEvaluateParam();
countEvaluateParam.setIsManual(true);
startDate = LocalDateTimeUtil.offset(startDate, 1, ChronoUnit.HOURS);
countEvaluateParam.setStartTime(startDate.format(dateTimeFormatter));
countEvaluateParam.setEndTime(startDate.with(LocalTime.of(startDate.getHour(), 59, 59)).format(dateTimeFormatter));
migrationService.hourseLineEventBacthSysc(countEvaluateParam);
}
} catch (Exception exception) {
exception.printStackTrace();
}
}
}
}

View File

@@ -46,19 +46,32 @@ public class MigrationInfluxDBJob {
System.out.println("--------------------------------influxdb同步------------------------------------");
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 减去2个小时
LocalDateTime oneHourAgo = now.minusHours(2);
// 将分钟和秒设置为0
LocalDateTime result = oneHourAgo.truncatedTo(ChronoUnit.HOURS);
// 加上59分钟59秒
LocalDateTime modifiedResult = result.plusMinutes(59).plusSeconds(59);
LineCountEvaluateParam param = new LineCountEvaluateParam();
param.setIsManual(false);
param.setStartTime(result.format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
param.setEndTime(modifiedResult.format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
migrationService.hourseLineDataBacthSysc(param);
migrationService.hourseDevDataBacthSysc(param);
//定时任务在往前补一小时的
LocalDateTime oneHourAgoOld = now.minusHours(3);
// 将分钟和秒设置为0
LocalDateTime resultOld = oneHourAgoOld.truncatedTo(ChronoUnit.HOURS);
// 加上59分钟59秒
LocalDateTime modifiedResultOld = resultOld.plusMinutes(59).plusSeconds(59);
LineCountEvaluateParam paramOld = new LineCountEvaluateParam();
paramOld.setIsManual(false);
paramOld.setStartTime(resultOld.format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
paramOld.setEndTime(modifiedResultOld.format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATETIME_PATTERN)));
migrationService.hourseLineDataBacthSysc(paramOld);
migrationService.hourseDevDataBacthSysc(paramOld);
}
@Scheduled(cron = "0 0 22 * * ?")

View File

@@ -12,6 +12,8 @@ public interface MigrationService {
void hourseLineDataBacthSysc(LineCountEvaluateParam param);
void hourseLineEventBacthSysc(LineCountEvaluateParam param);
void hourseDevDataBacthSysc(LineCountEvaluateParam param);
void initializeExcel();

View File

@@ -94,13 +94,21 @@ public class MigrationServiceImpl implements MigrationService {
migrationInsertFeignClient.insertDataInharmI(dataInharmI.listDataInharmI(evaluateParam));
migrationInsertFeignClient.insertDataInharmV(dataInharmV.listDataInharmV(evaluateParam));
migrationInsertFeignClient.insertDataPlt(dataPlt.listDataPlt(evaluateParam));
// migrationInsertFeignClient.batchInsertion(eventDetail.getRawData(evaluateParam));
migrationInsertFeignClient.batchInsertion(eventDetail.getRawData(evaluateParam));
if (!param.getIsManual() && StrUtil.isNotBlank(format)) {
TimeUtil.putLineTime(lineId, format);
}
});
System.gc();
}
@Override
@Async("asyncInfluxDBExecutor")
public void hourseLineEventBacthSysc(LineCountEvaluateParam param) {
LineCountEvaluateParam evaluateParam = new LineCountEvaluateParam();
evaluateParam.setStartTime(param.getStartTime());
evaluateParam.setEndTime(param.getEndTime());
migrationInsertFeignClient.batchInsertion(eventDetail.getRawData(evaluateParam));
}
@Override