完成influxdb迁移工具
This commit is contained in:
@@ -38,6 +38,85 @@
|
||||
<version>1.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<!-- CGLIB -->
|
||||
<dependency>
|
||||
<groupId>cglib</groupId>
|
||||
<artifactId>cglib</artifactId>
|
||||
<version>3.3.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- ASM -->
|
||||
<dependency>
|
||||
<groupId>org.ow2.asm</groupId>
|
||||
<artifactId>asm</artifactId>
|
||||
<version>7.3.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<configuration>
|
||||
<encoding>UTF-8</encoding>
|
||||
<nonFilteredFileExtensions>
|
||||
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
|
||||
</nonFilteredFileExtensions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.8.0</version>
|
||||
<configuration>
|
||||
<compilerArgument>-Xlint:unchecked</compilerArgument>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>com.spotify</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>build-image</id>
|
||||
<phase>${docker.operate}</phase>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<!--<serverId>36dockerHarbor</serverId>-->
|
||||
<registryUrl>http://${docker.repostory}</registryUrl>
|
||||
<!-- 镜像名称 -->
|
||||
<imageName>${docker.repostory}/${docker.registry.name}/${project.artifactId}</imageName>
|
||||
<imageTags>
|
||||
<imageTag>latest</imageTag>
|
||||
</imageTags>
|
||||
<dockerHost>${docker.url}</dockerHost>
|
||||
<dockerDirectory>${basedir}/</dockerDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<targetPath>/ROOT</targetPath>
|
||||
<directory>${project.build.directory}</directory>
|
||||
<include>${project.build.finalName}.jar</include>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read;
|
||||
package com.njcn.migration.read;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
@@ -6,12 +6,14 @@ import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.annotation.DependsOn;
|
||||
import org.springframework.scheduling.annotation.EnableAsync;
|
||||
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
@Slf4j
|
||||
@EnableAsync
|
||||
@DependsOn("proxyMapperRegister")
|
||||
@MapperScan("com.njcn.**.mapper")
|
||||
@EnableFeignClients(basePackages = "com.njcn")
|
||||
@@ -20,6 +22,7 @@ public class MigrationReadBootApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(MigrationReadBootApplication.class, args);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.njcn.migration.read.controller;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.util.CharsetUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
||||
import com.njcn.migration.read.service.IDataV;
|
||||
import com.njcn.migration.read.service.IPqsCommunicate;
|
||||
import com.njcn.migration.read.util.TimeUtil;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.migration.read.service.MigrationService;
|
||||
import com.njcn.po.influx.DataV;
|
||||
import com.njcn.po.influx.PqsCommunicate;
|
||||
import io.swagger.annotations.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.URLEncoder;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/1/15 18:47【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Validated
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/data")
|
||||
@Api(tags = "迁移信息数据同步")
|
||||
@AllArgsConstructor
|
||||
public class MigrationInfluxDBController {
|
||||
|
||||
private final MigrationService migrationService;
|
||||
private final IDataV dataV;
|
||||
private final IPqsCommunicate communicate;
|
||||
@GetMapping("/influxdb")
|
||||
@ApiOperation("influxdb数据同步->天数按小时进行分组同步")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "startDate", value = "开始时间(yyyy-MM-dd HH:mm:ss)", required = true),
|
||||
@ApiImplicitParam(name = "endDate", value = "结束时间(yyyy-MM-dd HH:mm:ss)", required = true)
|
||||
})
|
||||
public Boolean eventBatch(@RequestParam("startDate") String startDateTime,@RequestParam("endDate") String endDateTime) {
|
||||
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.hourseLineDataBacthSysc(param);
|
||||
migrationService.hourseDevDataBacthSysc(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.hourseLineDataBacthSysc(countEvaluateParam);
|
||||
migrationService.hourseDevDataBacthSysc(countEvaluateParam);
|
||||
}
|
||||
} catch (Exception exception) {
|
||||
exception.printStackTrace();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@GetMapping(value = "/importExcel",produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
|
||||
@ApiOperation(value ="获取最新数据信息文件", produces = MediaType.APPLICATION_OCTET_STREAM_VALUE)
|
||||
public void importDistributionAreaExcel(HttpServletResponse response) throws IOException {
|
||||
ClassPathResource picPathResource = new ClassPathResource("file/sj.xlsx");
|
||||
migrationService.initializeExcel();
|
||||
response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("最新数据信息.xlsx", CharsetUtil.UTF_8));
|
||||
// 输出文件内容
|
||||
InputStream fileInputStream = picPathResource.getInputStream();
|
||||
OutputStream responseOutputStream = response.getOutputStream();
|
||||
byte[] buffer = new byte[4096];
|
||||
int bytesRead;
|
||||
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
|
||||
responseOutputStream.write(buffer, 0, bytesRead);
|
||||
}
|
||||
fileInputStream.close();
|
||||
responseOutputStream.close();
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataHarmrateI;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataHarmrateV;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataI;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataV;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.imapper;
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.PqsCommunicate;
|
||||
@@ -0,0 +1,101 @@
|
||||
package com.njcn.migration.read.job;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.njcn.migration.read.service.IDataV;
|
||||
import com.njcn.migration.read.service.IPqsCommunicate;
|
||||
import com.njcn.migration.read.service.MigrationService;
|
||||
import com.njcn.migration.read.util.TimeUtil;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataV;
|
||||
import com.njcn.po.influx.PqsCommunicate;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/1/18 10:15【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Component
|
||||
@EnableScheduling
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class MigrationInfluxDBJob {
|
||||
|
||||
|
||||
private final MigrationService migrationService;
|
||||
private final IDataV dataV;
|
||||
private final IPqsCommunicate communicate;
|
||||
|
||||
@Scheduled(cron = "0 2 * * * ?")
|
||||
public void InfluxDBJob() {
|
||||
// 获取当前时间
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
// 减去一个小时
|
||||
LocalDateTime oneHourAgo = now.minusHours(1);
|
||||
// 将分钟和秒设置为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);
|
||||
}
|
||||
|
||||
@Scheduled(cron = "0 0 22 * * ?")
|
||||
public void mapJob() throws IOException {
|
||||
ClassPathResource picPathResource = new ClassPathResource("file/sj.xlsx");
|
||||
List<DataV> excelDataV = EasyExcel.read(picPathResource.getFile())
|
||||
.head(DataV.class)
|
||||
.sheet(0).doReadSync();
|
||||
List<DataV> datav = dataV.listDataVDesc(new LineCountEvaluateParam());
|
||||
if (CollUtil.isNotEmpty(excelDataV)) {
|
||||
//获取最新监测点最新数据集合
|
||||
List<String> ids = excelDataV.stream().map(DataV::getLineId).collect(Collectors.toList());
|
||||
List<DataV> notExcel = datav.stream().filter(x -> !ids.contains(x.getLineId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(notExcel)) {
|
||||
for (DataV v : notExcel) {
|
||||
TimeUtil.putLineTime(v.getLineId(), DateUtil.format(DateUtil.beginOfDay(DateUtil.parse(v.getTimeId(), DatePattern.NORM_DATETIME_FORMAT)), DatePattern.NORM_DATETIME_FORMAT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<PqsCommunicate> excelCommunicates = EasyExcel.read(picPathResource.getFile())
|
||||
.head(PqsCommunicate.class)
|
||||
.sheet(1).doReadSync();
|
||||
List<PqsCommunicate> communicates = communicate.listPqsCommunicateDesc(new LineCountEvaluateParam());
|
||||
if (CollUtil.isNotEmpty(excelCommunicates)) {
|
||||
//获取最新监测点最新数据集合
|
||||
List<String> ids = excelCommunicates.stream().map(PqsCommunicate::getDevId).collect(Collectors.toList());
|
||||
List<PqsCommunicate> notExcel = communicates.stream().filter(x -> !ids.contains(x.getDevId())).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(notExcel)) {
|
||||
for (PqsCommunicate v : notExcel) {
|
||||
TimeUtil.putDevTime(v.getDevId(), DateUtil.format(DateUtil.beginOfDay(DateUtil.parse(v.getTimeId(), DatePattern.NORM_DATETIME_FORMAT)), DatePattern.NORM_DATETIME_FORMAT));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.mapper;
|
||||
package com.njcn.migration.read.mapper;
|
||||
|
||||
import com.njcn.db.mapper.BatchBaseMapper;
|
||||
import com.njcn.po.mysql.RmpEventDetail;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service;
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
@@ -16,5 +16,7 @@ public interface IPqsCommunicate {
|
||||
|
||||
List<PqsCommunicate> listPqsCommunicate(LineCountEvaluateParam lineParam);
|
||||
|
||||
List<PqsCommunicate> listPqsCommunicateDesc(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertPqsCommunicate(List<PqsCommunicate> list);
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.mysql.RmpEventDetail;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/28 9:04【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IRmpEventDetail {
|
||||
|
||||
/**
|
||||
* 获取时间范围数据
|
||||
* @param lineParam
|
||||
* @return
|
||||
*/
|
||||
List<RmpEventDetail> getRawData(LineCountEvaluateParam lineParam);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* @author wr
|
||||
* @description
|
||||
* @date 2025/4/23 16:19
|
||||
*/
|
||||
public interface MigrationService {
|
||||
|
||||
void hourseLineDataBacthSysc(LineCountEvaluateParam param);
|
||||
|
||||
void hourseDevDataBacthSysc(LineCountEvaluateParam param);
|
||||
|
||||
void initializeExcel() throws IOException;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataV;
|
||||
import com.njcn.read.imapper.DataFlickerMapper;
|
||||
import com.njcn.read.service.IDataFlicker;
|
||||
import com.njcn.migration.read.imapper.DataFlickerMapper;
|
||||
import com.njcn.migration.read.service.IDataFlicker;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataFlucMapper;
|
||||
import com.njcn.migration.read.service.IDataFluc;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataFluc;
|
||||
import com.njcn.read.imapper.DataFlucMapper;
|
||||
import com.njcn.read.service.IDataFluc;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,15 +1,14 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataHarmRateIMapper;
|
||||
import com.njcn.migration.read.service.IDataHarmRateI;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataHarmpowerS;
|
||||
import com.njcn.po.influx.DataHarmrateI;
|
||||
import com.njcn.read.imapper.DataHarmRateIMapper;
|
||||
import com.njcn.read.service.IDataHarmRateI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
@@ -6,10 +6,9 @@ import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataHarmrateI;
|
||||
import com.njcn.po.influx.DataHarmrateV;
|
||||
import com.njcn.read.imapper.DataHarmRateVMapper;
|
||||
import com.njcn.read.service.IDataHarmRateV;
|
||||
import com.njcn.migration.read.imapper.DataHarmRateVMapper;
|
||||
import com.njcn.migration.read.service.IDataHarmRateV;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,15 +1,14 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataHarmphasicIMapper;
|
||||
import com.njcn.migration.read.service.IDataHarmphasicI;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFluc;
|
||||
import com.njcn.po.influx.DataHarmphasicI;
|
||||
import com.njcn.read.imapper.DataHarmphasicIMapper;
|
||||
import com.njcn.read.service.IDataHarmphasicI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,15 +1,14 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataHarmphasicVMapper;
|
||||
import com.njcn.migration.read.service.IDataHarmphasicV;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataHarmphasicI;
|
||||
import com.njcn.po.influx.DataHarmphasicV;
|
||||
import com.njcn.read.imapper.DataHarmphasicVMapper;
|
||||
import com.njcn.read.service.IDataHarmphasicV;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,15 +1,14 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataHarmpowerPMapper;
|
||||
import com.njcn.migration.read.service.IDataHarmpowerP;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataHarmphasicV;
|
||||
import com.njcn.po.influx.DataHarmpowerP;
|
||||
import com.njcn.read.imapper.DataHarmpowerPMapper;
|
||||
import com.njcn.read.service.IDataHarmpowerP;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,15 +1,15 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataHarmpowerQMapper;
|
||||
import com.njcn.migration.read.service.IDataHarmpowerQ;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataHarmpowerP;
|
||||
import com.njcn.po.influx.DataHarmpowerQ;
|
||||
import com.njcn.read.imapper.DataHarmpowerQMapper;
|
||||
import com.njcn.read.service.IDataHarmpowerQ;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,15 +1,14 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataHarmpowerSMapper;
|
||||
import com.njcn.migration.read.service.IDataHarmpowerS;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataHarmpowerQ;
|
||||
import com.njcn.po.influx.DataHarmpowerS;
|
||||
import com.njcn.read.imapper.DataHarmpowerSMapper;
|
||||
import com.njcn.read.service.IDataHarmpowerS;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
@@ -6,10 +6,9 @@ import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataHarmrateV;
|
||||
import com.njcn.po.influx.DataI;
|
||||
import com.njcn.read.imapper.DataIMapper;
|
||||
import com.njcn.read.service.IDataI;
|
||||
import com.njcn.migration.read.imapper.DataIMapper;
|
||||
import com.njcn.migration.read.service.IDataI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,15 +1,14 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataInharmIMapper;
|
||||
import com.njcn.migration.read.service.IDataInharmI;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataI;
|
||||
import com.njcn.po.influx.DataInharmI;
|
||||
import com.njcn.read.imapper.DataInharmIMapper;
|
||||
import com.njcn.read.service.IDataInharmI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,15 +1,14 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.common.utils.HarmonicTimesUtil;
|
||||
import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataInharmVMapper;
|
||||
import com.njcn.migration.read.service.IDataInharmV;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataInharmI;
|
||||
import com.njcn.po.influx.DataInharmV;
|
||||
import com.njcn.read.imapper.DataInharmVMapper;
|
||||
import com.njcn.read.service.IDataInharmV;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,13 +1,12 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.migration.read.imapper.DataPltMapper;
|
||||
import com.njcn.migration.read.service.IDataPlt;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataInharmV;
|
||||
import com.njcn.po.influx.DataPlt;
|
||||
import com.njcn.read.imapper.DataPltMapper;
|
||||
import com.njcn.read.service.IDataPlt;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
@@ -7,11 +7,10 @@ import com.njcn.influx.constant.InfluxDbSqlConstant;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataV;
|
||||
import com.njcn.read.imapper.DataVMapper;
|
||||
import com.njcn.read.service.IDataV;
|
||||
import com.njcn.migration.read.imapper.DataVMapper;
|
||||
import com.njcn.migration.read.service.IDataV;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.checkerframework.checker.units.qual.C;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
@@ -98,7 +97,13 @@ public class DataVImpl implements IDataV {
|
||||
if (CollUtil.isNotEmpty(lineParam.getPhasicType())) {
|
||||
influxQueryWrapper.regular(DataV::getPhasicType, lineParam.getPhasicType());
|
||||
}
|
||||
return dataVMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
List<DataV> dataVS = dataVMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataVS)){
|
||||
for (DataV dataV : dataVS) {
|
||||
dataV.setTimeId(DATE_TIME_FORMATTER.format(dataV.getTime()));
|
||||
}
|
||||
}
|
||||
return dataVS;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -0,0 +1,164 @@
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
||||
import com.njcn.api.MigrationInsertFeignClient;
|
||||
import com.njcn.migration.read.service.*;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataV;
|
||||
import com.njcn.migration.read.util.TimeUtil;
|
||||
import com.njcn.po.influx.PqsCommunicate;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author wr
|
||||
* @description
|
||||
* @date 2025/4/23 16:20
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class MigrationServiceImpl implements MigrationService {
|
||||
|
||||
private final IDataFlicker dataFlicker;
|
||||
private final IDataFluc dataFluc;
|
||||
private final IDataHarmphasicI dataHarmphasicI;
|
||||
private final IDataHarmphasicV dataHarmphasicV;
|
||||
private final IDataHarmpowerP dataHarmpowerP;
|
||||
private final IDataHarmpowerQ dataHarmpowerQ;
|
||||
private final IDataHarmpowerS dataHarmpowerS;
|
||||
private final IDataHarmRateI dataHarmRateI;
|
||||
private final IDataHarmRateV dataHarmRateV;
|
||||
private final IDataI dataI;
|
||||
private final IDataInharmI dataInharmI;
|
||||
private final IDataInharmV dataInharmV;
|
||||
private final IDataPlt dataPlt;
|
||||
private final IDataV dataV;
|
||||
private final IPqsCommunicate pqsCommunicate;
|
||||
private final IRmpEventDetail eventDetail;
|
||||
private final MigrationInsertFeignClient migrationInsertFeignClient;
|
||||
|
||||
|
||||
@Override
|
||||
@Async
|
||||
public void hourseLineDataBacthSysc(LineCountEvaluateParam param) {
|
||||
Map<String, String> map = TimeUtil.getLineMap();
|
||||
int size = map.size();
|
||||
final Integer[] num = {0};
|
||||
map.forEach((lineId,time)->{
|
||||
num[0] = num[0] + 1;
|
||||
System.out.println("当前总监测点数量"+size+"当前第"+num[0]+":-》"+lineId+" "+param.getStartTime()+" "+param.getEndTime()+"剩余"+(size-num[0]));
|
||||
String format=null;
|
||||
if(!param.getIsManual()){
|
||||
if(StrUtil.isNotBlank(time)){
|
||||
param.setStartTime(time);
|
||||
}
|
||||
}
|
||||
param.setLineId(Arrays.asList(lineId));
|
||||
List<DataV> dataVS = dataV.listDataV(param);
|
||||
if(CollUtil.isNotEmpty(dataVS)){
|
||||
if(!param.getIsManual()){
|
||||
format = dataVS.get(0).getTimeId();
|
||||
}
|
||||
migrationInsertFeignClient.insertDataV(dataVS);
|
||||
}
|
||||
migrationInsertFeignClient.insertDataFlicker(dataFlicker.listDataFlicker(param));
|
||||
migrationInsertFeignClient.insertDataFluc(dataFluc.listDataFluc(param));
|
||||
migrationInsertFeignClient.insertDataHarmphasicI(dataHarmphasicI.listDataHarmphasicI(param));
|
||||
migrationInsertFeignClient.insertDataHarmphasicV(dataHarmphasicV.listDataHarmphasicV(param));
|
||||
migrationInsertFeignClient.insertDataHarmpowerP(dataHarmpowerP.listDataHarmpowerP(param));
|
||||
migrationInsertFeignClient.insertDataHarmpowerQ(dataHarmpowerQ.listDataHarmpowerQ(param));
|
||||
migrationInsertFeignClient.insertDataHarmpowerS(dataHarmpowerS.listDataHarmpowerS(param));
|
||||
migrationInsertFeignClient.insertDataHarmrateI(dataHarmRateI.listDataHarmrateI(param));
|
||||
migrationInsertFeignClient.insertDataHarmrateV(dataHarmRateV.listDataHarmrateV(param));
|
||||
migrationInsertFeignClient.insertDataI(dataI.listDataI(param));
|
||||
migrationInsertFeignClient.insertDataInharmI(dataInharmI.listDataInharmI(param));
|
||||
migrationInsertFeignClient.insertDataInharmV(dataInharmV.listDataInharmV(param));
|
||||
migrationInsertFeignClient.insertDataPlt(dataPlt.listDataPlt(param));
|
||||
migrationInsertFeignClient.batchInsertion(eventDetail.getRawData(param));
|
||||
|
||||
if(!param.getIsManual()&&StrUtil.isNotBlank(format)){
|
||||
TimeUtil.putLineTime(lineId,format);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@Async
|
||||
public void hourseDevDataBacthSysc(LineCountEvaluateParam param) {
|
||||
Map<String, String> map = TimeUtil.getDevMap();
|
||||
int size = map.size();
|
||||
final Integer[] num = {0};
|
||||
map.forEach((lineId,time)->{
|
||||
num[0] = num[0] + 1;
|
||||
System.out.println("当前总终端数量"+size+"当前第"+num[0]+":-》"+lineId+" "+param.getStartTime()+" "+param.getEndTime()+"剩余"+(size-num[0]));
|
||||
String format=null;
|
||||
if(!param.getIsManual()){
|
||||
if(StrUtil.isNotBlank(time)){
|
||||
param.setStartTime(time);
|
||||
}
|
||||
}
|
||||
param.setLineId(Arrays.asList(lineId));
|
||||
List<PqsCommunicate> pqsCommunicates = pqsCommunicate.listPqsCommunicate(param);
|
||||
if(CollUtil.isNotEmpty(pqsCommunicates)){
|
||||
if(!param.getIsManual()){
|
||||
format = pqsCommunicates.get(0).getTimeId();
|
||||
}
|
||||
migrationInsertFeignClient.insertPqsCommunicate(pqsCommunicates);
|
||||
}
|
||||
if(!param.getIsManual()&&StrUtil.isNotBlank(format)){
|
||||
TimeUtil.putDevTime(lineId,format);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initializeExcel() throws IOException {
|
||||
ClassPathResource picPathResource = new ClassPathResource("file/sj.xlsx");
|
||||
Map<String, String> map = TimeUtil.getLineMap();
|
||||
List<DataV> lineExcel = new ArrayList<>();
|
||||
map.forEach((line,value)->{
|
||||
DataV data=new DataV();
|
||||
data.setLineId(line);
|
||||
data.setTimeId(value);
|
||||
lineExcel.add(data);
|
||||
});
|
||||
|
||||
Map<String, String> devmap = TimeUtil.getLineMap();
|
||||
List<PqsCommunicate> devExcel = new ArrayList<>();
|
||||
devmap.forEach((line,value)->{
|
||||
PqsCommunicate data=new PqsCommunicate();
|
||||
data.setDevId(line);
|
||||
data.setTimeId(value);
|
||||
devExcel.add(data);
|
||||
});
|
||||
|
||||
ExcelWriter excelWriter = EasyExcel.write(picPathResource.getFile()).build();
|
||||
//模板1
|
||||
WriteSheet writeSheet = EasyExcel.writerSheet(0, "line" ).head(DataV.class)
|
||||
.includeColumnFiledNames(Arrays.asList("lineId","timeId"))
|
||||
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||
.build();
|
||||
excelWriter.write(lineExcel, writeSheet);
|
||||
|
||||
//模板2
|
||||
WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "dev" ).head(PqsCommunicate.class)
|
||||
.includeColumnFiledNames(Arrays.asList("devId","timeId"))
|
||||
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||
.build();
|
||||
excelWriter.write(devExcel, writeSheet2);
|
||||
excelWriter.finish();
|
||||
}
|
||||
}
|
||||
@@ -1,13 +1,13 @@
|
||||
package com.njcn.read.service.impl;
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.njcn.influx.query.InfluxQueryWrapper;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataPlt;
|
||||
import com.njcn.po.influx.DataV;
|
||||
import com.njcn.po.influx.PqsCommunicate;
|
||||
import com.njcn.read.imapper.PqsCommunicateMapper;
|
||||
import com.njcn.read.service.IPqsCommunicate;
|
||||
import com.njcn.migration.read.imapper.PqsCommunicateMapper;
|
||||
import com.njcn.migration.read.service.IPqsCommunicate;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -50,6 +51,30 @@ public class PqsCommunicateImpl implements IPqsCommunicate {
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PqsCommunicate> listPqsCommunicateDesc(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(PqsCommunicate.class);
|
||||
influxQueryWrapper
|
||||
.select(PqsCommunicate::getTime)
|
||||
.select(PqsCommunicate::getDevId)
|
||||
.select(PqsCommunicate::getDescription)
|
||||
.select(PqsCommunicate::getType)
|
||||
.groupBy(PqsCommunicate::getDevId)
|
||||
.timeDesc()
|
||||
.limit(1);
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(PqsCommunicate::getDevId, lineParam.getLineId());
|
||||
}
|
||||
List<PqsCommunicate> dataList= pqsCommunicateMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (PqsCommunicate data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertPqsCommunicate(List<PqsCommunicate> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.njcn.migration.read.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.njcn.migration.read.mapper.RmpEventDetailMapper;
|
||||
import com.njcn.migration.read.service.IRmpEventDetail;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.mysql.RmpEventDetail;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/28 9:04【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RmpEventDetailImpl implements IRmpEventDetail {
|
||||
|
||||
private final RmpEventDetailMapper rmpEventDetailMapper;
|
||||
|
||||
@Override
|
||||
public List<RmpEventDetail> getRawData(LineCountEvaluateParam lineParam) {
|
||||
LambdaQueryWrapper<RmpEventDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(CollUtil.isNotEmpty(lineParam.getLineId()),RmpEventDetail::getMeasurementPointId,lineParam.getLineId())
|
||||
.ge(RmpEventDetail::getStartTime,lineParam.getStartTime())
|
||||
.le(RmpEventDetail::getStartTime,lineParam.getEndTime());
|
||||
return rmpEventDetailMapper.selectList(lambdaQueryWrapper);
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.njcn.read.util;
|
||||
package com.njcn.migration.read.util;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
package com.njcn.migration.read.util;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
||||
import com.njcn.migration.read.service.IDataV;
|
||||
import com.njcn.migration.read.service.IPqsCommunicate;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataV;
|
||||
import com.njcn.po.influx.PqsCommunicate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author wr
|
||||
* @description
|
||||
* @date 2025/4/23 16:11
|
||||
*/
|
||||
@Component
|
||||
public class TimeUtil {
|
||||
@Autowired
|
||||
private IDataV dataV;
|
||||
@Autowired
|
||||
private IPqsCommunicate communicate;
|
||||
/**
|
||||
* key:监测点id value:当前上次结束时间
|
||||
*/
|
||||
private static final Map<String, String> LINE_TIME_MAP = new ConcurrentHashMap<>();
|
||||
private static final Map<String, String> DEV_TIME_MAP = new ConcurrentHashMap<>();
|
||||
|
||||
public static void putLineTime(String lineId, String time) {
|
||||
LINE_TIME_MAP.put(lineId, time);
|
||||
}
|
||||
public static void putAllLineTime(Map<String, String> limeMap) {
|
||||
LINE_TIME_MAP.putAll(limeMap);
|
||||
}
|
||||
|
||||
public static String getLineTime(String lineId) {
|
||||
if (LINE_TIME_MAP.containsKey(lineId)) {
|
||||
return LINE_TIME_MAP.get(lineId);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Map<String, String> getLineMap() {
|
||||
return LINE_TIME_MAP;
|
||||
}
|
||||
|
||||
|
||||
public static void putDevTime(String devId, String time) {
|
||||
DEV_TIME_MAP.put(devId, time);
|
||||
}
|
||||
public static void putAllDevTime(Map<String, String> devMap) {
|
||||
DEV_TIME_MAP.putAll(devMap);
|
||||
}
|
||||
public static String getDevTime(String devId) {
|
||||
if (DEV_TIME_MAP.containsKey(devId)) {
|
||||
return DEV_TIME_MAP.get(devId);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Map<String, String> getDevMap() {
|
||||
return DEV_TIME_MAP;
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void init() throws IOException {
|
||||
ClassPathResource picPathResource = new ClassPathResource("file/sj.xlsx");
|
||||
List<DataV> excelDataV = EasyExcel.read(picPathResource.getFile())
|
||||
.head(DataV.class)
|
||||
.sheet(0).doReadSync();
|
||||
List<DataV> datav = dataV.listDataVDesc(new LineCountEvaluateParam());
|
||||
if(CollUtil.isNotEmpty(excelDataV)){
|
||||
//获取最新监测点最新数据集合
|
||||
List<String> ids = excelDataV.stream().map(DataV::getLineId).collect(Collectors.toList());
|
||||
List<DataV> notExcel = datav.stream().filter(x -> !ids.contains(x.getLineId())).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(notExcel)){
|
||||
for (DataV v : notExcel) {
|
||||
v.setTimeId(DateUtil.format(DateUtil.beginOfDay(DateUtil.parse(v.getTimeId(), DatePattern.NORM_DATETIME_FORMAT)),DatePattern.NORM_DATETIME_FORMAT));
|
||||
}
|
||||
excelDataV.addAll(notExcel);
|
||||
}
|
||||
}else{
|
||||
excelDataV.addAll(datav);
|
||||
}
|
||||
|
||||
List<PqsCommunicate> excelCommunicates = EasyExcel.read(picPathResource.getFile())
|
||||
.head(PqsCommunicate.class)
|
||||
.sheet(1).doReadSync();
|
||||
List<PqsCommunicate> communicates = communicate.listPqsCommunicateDesc(new LineCountEvaluateParam());
|
||||
if(CollUtil.isNotEmpty(excelCommunicates)){
|
||||
//获取最新监测点最新数据集合
|
||||
List<String> ids = excelCommunicates.stream().map(PqsCommunicate::getDevId).collect(Collectors.toList());
|
||||
List<PqsCommunicate> notExcel = communicates.stream().filter(x -> !ids.contains(x.getDevId())).collect(Collectors.toList());
|
||||
if(CollUtil.isNotEmpty(notExcel)){
|
||||
for (PqsCommunicate v : notExcel) {
|
||||
v.setTimeId(DateUtil.format(DateUtil.beginOfDay(DateUtil.parse(v.getTimeId(), DatePattern.NORM_DATETIME_FORMAT)),DatePattern.NORM_DATETIME_FORMAT));
|
||||
}
|
||||
excelCommunicates.addAll(notExcel);
|
||||
}
|
||||
}else{
|
||||
excelCommunicates.addAll(communicates);
|
||||
}
|
||||
|
||||
ExcelWriter excelWriter = EasyExcel.write(picPathResource.getFile()).build();
|
||||
//模板1
|
||||
WriteSheet writeSheet = EasyExcel.writerSheet(0, "line" ).head(DataV.class)
|
||||
.includeColumnFiledNames(Arrays.asList("lineId","timeId"))
|
||||
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||
.build();
|
||||
excelWriter.write(excelDataV, writeSheet);
|
||||
|
||||
//模板2
|
||||
WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "dev" ).head(PqsCommunicate.class)
|
||||
.includeColumnFiledNames(Arrays.asList("devId","timeId"))
|
||||
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||
.build();
|
||||
excelWriter.write(excelCommunicates, writeSheet2);
|
||||
excelWriter.finish();
|
||||
TimeUtil.putAllLineTime(excelDataV.stream().collect(Collectors.toMap(DataV::getLineId, DataV::getTimeId)));
|
||||
TimeUtil.putAllDevTime(excelCommunicates.stream().collect(Collectors.toMap(PqsCommunicate::getDevId, PqsCommunicate::getTimeId)));
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package com.njcn.read.service;
|
||||
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/28 9:04【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IRmpEventDetail {
|
||||
|
||||
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package com.njcn.read.service;
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
|
||||
/**
|
||||
* @author wr
|
||||
* @description
|
||||
* @date 2025/4/23 16:19
|
||||
*/
|
||||
public interface MigrationService {
|
||||
|
||||
void hourseDataBacthSysc(LineCountEvaluateParam param);
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
package com.njcn.read.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.njcn.api.MigrationInsertFeignClient;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataV;
|
||||
import com.njcn.read.service.*;
|
||||
import com.njcn.read.util.TimeUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author wr
|
||||
* @description
|
||||
* @date 2025/4/23 16:20
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class MigrationServiceImpl implements MigrationService {
|
||||
DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
|
||||
private final IDataFlicker dataFlicker;
|
||||
private final IDataFluc dataFluc;
|
||||
private final IDataHarmphasicI dataHarmphasicI;
|
||||
private final IDataHarmphasicV dataHarmphasicV;
|
||||
private final IDataHarmpowerP dataHarmpowerP;
|
||||
private final IDataHarmpowerQ dataHarmpowerQ;
|
||||
private final IDataHarmpowerS dataHarmpowerS;
|
||||
private final IDataHarmRateI dataHarmRateI;
|
||||
private final IDataHarmRateV dataHarmRateV;
|
||||
private final IDataI dataI;
|
||||
private final IDataInharmI dataInharmI;
|
||||
private final IDataInharmV dataInharmV;
|
||||
private final IDataPlt dataPlt;
|
||||
private final IDataV dataV;
|
||||
private final IPqsCommunicate pqsCommunicate;
|
||||
private final MigrationInsertFeignClient migrationInsertFeignClient;
|
||||
|
||||
|
||||
@Override
|
||||
public void hourseDataBacthSysc(LineCountEvaluateParam param) {
|
||||
Map<String, String> map = TimeUtil.getMap();
|
||||
map.forEach((lineId,time)->{
|
||||
System.out.println("正在测试监测点:-》"+lineId);
|
||||
String format=null;
|
||||
if(!param.getIsManual()){
|
||||
if(StrUtil.isNotBlank(time)){
|
||||
param.setStartTime(time);
|
||||
}
|
||||
}
|
||||
param.setLineId(Arrays.asList(lineId));
|
||||
List<DataV> dataVS = dataV.listDataV(param);
|
||||
if(CollUtil.isNotEmpty(dataVS)){
|
||||
if(!param.getIsManual()){
|
||||
format = dataVS.get(0).getTimeId();
|
||||
}
|
||||
migrationInsertFeignClient.insertDataV(dataVS);
|
||||
}
|
||||
migrationInsertFeignClient.insertDataFlicker(dataFlicker.listDataFlicker(param));
|
||||
migrationInsertFeignClient.insertDataFluc(dataFluc.listDataFluc(param));
|
||||
migrationInsertFeignClient.insertDataHarmphasicI(dataHarmphasicI.listDataHarmphasicI(param));
|
||||
migrationInsertFeignClient.insertDataHarmphasicV(dataHarmphasicV.listDataHarmphasicV(param));
|
||||
migrationInsertFeignClient.insertDataHarmpowerP(dataHarmpowerP.listDataHarmpowerP(param));
|
||||
migrationInsertFeignClient.insertDataHarmpowerQ(dataHarmpowerQ.listDataHarmpowerQ(param));
|
||||
migrationInsertFeignClient.insertDataHarmpowerS(dataHarmpowerS.listDataHarmpowerS(param));
|
||||
migrationInsertFeignClient.insertDataHarmrateI(dataHarmRateI.listDataHarmrateI(param));
|
||||
migrationInsertFeignClient.insertDataHarmrateV(dataHarmRateV.listDataHarmrateV(param));
|
||||
migrationInsertFeignClient.insertDataI(dataI.listDataI(param));
|
||||
migrationInsertFeignClient.insertDataInharmI(dataInharmI.listDataInharmI(param));
|
||||
migrationInsertFeignClient.insertDataInharmV(dataInharmV.listDataInharmV(param));
|
||||
migrationInsertFeignClient.insertDataPlt(dataPlt.listDataPlt(param));
|
||||
//todo 终端需要特殊处理
|
||||
// migrationInsertFeignClient.insertPqsCommunicate(pqsCommunicate.listPqsCommunicate(param));
|
||||
|
||||
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
package com.njcn.read.service.impl;
|
||||
|
||||
|
||||
import com.njcn.read.service.IRmpEventDetail;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/28 9:04【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public class RmpEventDetailImpl implements IRmpEventDetail {
|
||||
|
||||
|
||||
}
|
||||
@@ -1,55 +0,0 @@
|
||||
package com.njcn.read.util;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataV;
|
||||
import com.njcn.read.service.IDataV;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author wr
|
||||
* @description
|
||||
* @date 2025/4/23 16:11
|
||||
*/
|
||||
@Component
|
||||
public class TimeUtil {
|
||||
DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
@Autowired
|
||||
private IDataV dataV;
|
||||
|
||||
/**
|
||||
* key:监测点id value:当前上次结束时间
|
||||
*/
|
||||
private static final Map<String, String> TIME_MAP = new ConcurrentHashMap<>();
|
||||
|
||||
public static void putTime(String lineId, String time) {
|
||||
TIME_MAP.put(lineId, time);
|
||||
}
|
||||
|
||||
public static String getTime(String lineId) {
|
||||
if (TIME_MAP.containsKey(lineId)) {
|
||||
return TIME_MAP.get(lineId);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Map<String, String> getMap() {
|
||||
return TIME_MAP;
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
List<DataV> dataVS = dataV.listDataVDesc(new LineCountEvaluateParam());
|
||||
TIME_MAP.putAll(dataVS.stream().collect(Collectors.toMap(DataV::getLineId,x->DATE_TIME_FORMATTER.format(x.getTime()))));
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -1,8 +1,12 @@
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.ExcelWriter;
|
||||
import com.alibaba.excel.write.metadata.WriteSheet;
|
||||
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
|
||||
import com.njcn.api.MigrationInsertFeignClient;
|
||||
import com.njcn.migration.read.service.*;
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.*;
|
||||
import com.njcn.read.MigrationReadBootApplication;
|
||||
import com.njcn.read.service.*;
|
||||
import com.njcn.migration.read.MigrationReadBootApplication;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -12,6 +16,8 @@ import org.springframework.test.context.web.WebAppConfiguration;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -90,11 +96,41 @@ public class BaseJunitTest {
|
||||
public void test2() {
|
||||
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
||||
lineParam.setStartTime("2025-04-23 00:00:00");
|
||||
lineParam.setEndTime("2025-04-23 00:05:00");
|
||||
lineParam.setEndTime("2025-04-23 23:59:00");
|
||||
lineParam.setIsManual(true);
|
||||
migrationService.hourseDataBacthSysc(lineParam);
|
||||
migrationService.hourseLineDataBacthSysc(lineParam);
|
||||
|
||||
System.out.println("");
|
||||
|
||||
}
|
||||
@Test
|
||||
public void test3() {
|
||||
List<DataV> dataVS = dataV.listDataVDesc(new LineCountEvaluateParam());
|
||||
|
||||
|
||||
|
||||
String filePath = "C:\\Users\\web2023\\Desktop\\sj.xlsx";
|
||||
// 使用 EasyExcel 写入数据到 Excel 文件
|
||||
ExcelWriter excelWriter = EasyExcel.write(filePath).build();;
|
||||
//模板1
|
||||
WriteSheet writeSheet = EasyExcel.writerSheet(0, "line" )
|
||||
.head(DataV.class)
|
||||
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
|
||||
.build();
|
||||
excelWriter.write(dataVS, writeSheet);
|
||||
excelWriter.finish();
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String filePath = "C:\\Users\\web2023\\Desktop\\sj.xlsx";
|
||||
// 使用 EasyExcel 写入数据到 Excel 文件
|
||||
ExcelWriter excelWriter = EasyExcel.write(filePath).build();;
|
||||
//模板1
|
||||
WriteSheet writeSheet = EasyExcel.writerSheet(0, "line" ).head(DataV.class)
|
||||
.includeColumnFiledNames(Arrays.asList("lineId","timeId"))
|
||||
.build();
|
||||
excelWriter.write(new ArrayList<>(), writeSheet);
|
||||
excelWriter.finish();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user