微调
This commit is contained in:
122
migration-influxdb/migration-influxdb-read-boot/pom.xml
Normal file
122
migration-influxdb/migration-influxdb-read-boot/pom.xml
Normal file
@@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.njcn.platform</groupId>
|
||||
<artifactId>migration-influxdb</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>migration-influxdb-read-boot</artifactId>
|
||||
<name>migration-influxdb-boot</name>
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>common-web</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>common-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>common-swagger</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.njcn.platform</groupId>
|
||||
<artifactId>migration-influxdb-api</artifactId>
|
||||
<version>1.0.0</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<!-- 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>
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.njcn.migration.read;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
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")
|
||||
@SpringBootApplication(scanBasePackages = "com.njcn")
|
||||
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();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataFlickerMapper extends InfluxDbBaseMapper<DataFlicker> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataFluc;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataFlucMapper extends InfluxDbBaseMapper<DataFluc> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataHarmrateI;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
public interface DataHarmRateIMapper extends InfluxDbBaseMapper<DataHarmrateI> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataHarmrateV;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
public interface DataHarmRateVMapper extends InfluxDbBaseMapper<DataHarmrateV> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataHarmphasicI;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataHarmphasicIMapper extends InfluxDbBaseMapper<DataHarmphasicI> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataHarmphasicV;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataHarmphasicVMapper extends InfluxDbBaseMapper<DataHarmphasicV> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataHarmpowerP;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataHarmpowerPMapper extends InfluxDbBaseMapper<DataHarmpowerP> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataHarmpowerQ;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataHarmpowerQMapper extends InfluxDbBaseMapper<DataHarmpowerQ> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataHarmpowerS;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataHarmpowerSMapper extends InfluxDbBaseMapper<DataHarmpowerS> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataI;
|
||||
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0
|
||||
* @data 2024/11/7 18:49
|
||||
*/
|
||||
public interface DataIMapper extends InfluxDbBaseMapper<DataI> {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataInharmI;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataInharmIMapper extends InfluxDbBaseMapper<DataInharmI> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataInharmV;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataInharmVMapper extends InfluxDbBaseMapper<DataInharmV> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataPlt;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author hongawen
|
||||
* @since 2023-12-28
|
||||
*/
|
||||
public interface DataPltMapper extends InfluxDbBaseMapper<DataPlt> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.DataV;
|
||||
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0
|
||||
* @data 2024/11/7 18:49
|
||||
*/
|
||||
|
||||
public interface DataVMapper extends InfluxDbBaseMapper<DataV> {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.njcn.migration.read.imapper;
|
||||
|
||||
import com.njcn.influx.base.InfluxDbBaseMapper;
|
||||
import com.njcn.po.influx.PqsCommunicate;
|
||||
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: wr
|
||||
* @Date: 2025/3/10 9:49
|
||||
*/
|
||||
public interface PqsCommunicateMapper extends InfluxDbBaseMapper<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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.migration.read.mapper;
|
||||
|
||||
import com.njcn.db.mapper.BatchBaseMapper;
|
||||
import com.njcn.po.mysql.RmpEventDetail;
|
||||
|
||||
/**
|
||||
* pqs
|
||||
*
|
||||
* @author cdf
|
||||
* @date 2023/6/19
|
||||
*/
|
||||
public interface RmpEventDetailMapper extends BatchBaseMapper<RmpEventDetail> {
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataFlicker {
|
||||
|
||||
List<DataFlicker> listDataFlicker(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataFlicker(List<DataFlicker> list);
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataFluc;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataFluc {
|
||||
|
||||
List<DataFluc> listDataFluc(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataFluc(List<DataFluc> list);
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataHarmrateI;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
public interface IDataHarmRateI {
|
||||
|
||||
|
||||
List<DataHarmrateI> listDataHarmrateI(LineCountEvaluateParam lineParam);
|
||||
|
||||
|
||||
|
||||
void insertDataHarmrateI(List<DataHarmrateI> list);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataHarmrateI;
|
||||
import com.njcn.po.influx.DataHarmrateV;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
public interface IDataHarmRateV {
|
||||
|
||||
List<DataHarmrateV> listDataHarmrateV(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataHarmrateV(List<DataHarmrateV> list);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataHarmphasicI;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataHarmphasicI {
|
||||
|
||||
|
||||
List<DataHarmphasicI> listDataHarmphasicI(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataHarmphasicI(List<DataHarmphasicI> list);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataHarmphasicI;
|
||||
import com.njcn.po.influx.DataHarmphasicV;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataHarmphasicV {
|
||||
|
||||
List<DataHarmphasicV> listDataHarmphasicV(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataHarmphasicV(List<DataHarmphasicV> list);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataHarmphasicI;
|
||||
import com.njcn.po.influx.DataHarmpowerP;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataHarmpowerP {
|
||||
|
||||
|
||||
List<DataHarmpowerP> listDataHarmpowerP(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataHarmpowerP(List<DataHarmpowerP> list);
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataHarmpowerP;
|
||||
import com.njcn.po.influx.DataHarmpowerQ;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataHarmpowerQ {
|
||||
|
||||
|
||||
List<DataHarmpowerQ> listDataHarmpowerQ(LineCountEvaluateParam lineParam);
|
||||
|
||||
|
||||
void insertDataHarmpowerQ(List<DataHarmpowerQ> list);
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataHarmpowerP;
|
||||
import com.njcn.po.influx.DataHarmpowerS;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataHarmpowerS {
|
||||
|
||||
|
||||
List<DataHarmpowerS> listDataHarmpowerS(LineCountEvaluateParam lineParam);
|
||||
|
||||
|
||||
void insertDataHarmpowerS(List<DataHarmpowerS> list);
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataI;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataI {
|
||||
|
||||
|
||||
/**
|
||||
* 查询数据信息
|
||||
* @param lineParam @return: java.util.List<com.njcn.po.influx.DataV>
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/23 13:06
|
||||
*/
|
||||
List<DataI> listDataI(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataI(List<DataI> list);
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataInharmI;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 13:27【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataInharmI {
|
||||
|
||||
List<DataInharmI> listDataInharmI(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataInharmI(List<DataInharmI> list);
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataInharmI;
|
||||
import com.njcn.po.influx.DataInharmV;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 13:27【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataInharmV {
|
||||
|
||||
List<DataInharmV> listDataInharmV(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataInharmV(List<DataInharmV> list);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataPlt;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface IDataPlt {
|
||||
|
||||
|
||||
List<DataPlt> listDataPlt(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataPlt(List<DataPlt> list);
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.DataV;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0
|
||||
* @data 2024/11/7 10:54
|
||||
*/
|
||||
public interface IDataV {
|
||||
|
||||
/**
|
||||
* 查询数据信息
|
||||
* @param lineParam @return: java.util.List<com.njcn.po.influx.DataV>
|
||||
* @Author: wr
|
||||
* @Date: 2025/4/23 13:06
|
||||
*/
|
||||
List<DataV> listDataV(LineCountEvaluateParam lineParam);
|
||||
|
||||
|
||||
List<DataV> listDataVDesc(LineCountEvaluateParam lineParam);
|
||||
|
||||
void insertDataV(List<DataV> list);
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.njcn.migration.read.service;
|
||||
|
||||
|
||||
import com.njcn.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataFlicker;
|
||||
import com.njcn.po.influx.PqsCommunicate;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: wr
|
||||
* @Date: 2025/3/6 10:22
|
||||
*/
|
||||
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;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
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.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;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataFlickerImpl implements IDataFlicker {
|
||||
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataFlickerMapper dataFlickerMapper;
|
||||
@Override
|
||||
public List<DataFlicker> listDataFlicker(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataFlicker.class);
|
||||
influxQueryWrapper
|
||||
.select(DataFlicker::getLineId)
|
||||
.select(DataFlicker::getPhasicType)
|
||||
.select(DataFlicker::getFluc)
|
||||
.select(DataFlicker::getPst)
|
||||
.select(DataFlicker::getPlt)
|
||||
.select(DataFlicker::getQualityFlag)
|
||||
.between(DataFlicker::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataFlicker::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataFlicker> dataFlickers = dataFlickerMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataFlickers)){
|
||||
for (DataFlicker data : dataFlickers) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataFlickers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataFlicker(List<DataFlicker> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataFlicker>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataFlicker> dataFlickerList : partition) {
|
||||
List<DataFlicker> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataFlickerMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
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.DataFluc;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataFlucImpl implements IDataFluc {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataFlucMapper dataFlucMapper;
|
||||
@Override
|
||||
public List<DataFluc> listDataFluc(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataFluc.class);
|
||||
influxQueryWrapper
|
||||
.select(DataFluc::getLineId)
|
||||
.select(DataFluc::getPhasicType)
|
||||
.select(DataFluc::getFluc)
|
||||
.select(DataFluc::getFluccf)
|
||||
.select(DataFluc::getQualityFlag)
|
||||
.between(DataFluc::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataFluc::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataFluc> dataFlucs= dataFlucMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataFlucs)){
|
||||
for (DataFluc data : dataFlucs) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataFlucs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataFluc(List<DataFluc> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataFluc>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataFluc> dataFlickerList : partition) {
|
||||
List<DataFluc> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataFlucMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
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.DataHarmrateI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataHarmRateIImpl implements IDataHarmRateI {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataHarmRateIMapper dataHarmRateIMapper;
|
||||
@Override
|
||||
public List<DataHarmrateI> listDataHarmrateI(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateI.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataHarmrateI::getLineId)
|
||||
.select(DataHarmrateI::getPhasicType)
|
||||
.select(DataHarmrateI::getValueType)
|
||||
.select(DataHarmrateI::getQualityFlag)
|
||||
.between(DataHarmrateI::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataHarmrateI::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataHarmrateI> dataList= dataHarmRateIMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataHarmrateI data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataHarmrateI(List<DataHarmrateI> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataHarmrateI>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataHarmrateI> dataFlickerList : partition) {
|
||||
List<DataHarmrateI> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataHarmRateIMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
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.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataHarmrateV;
|
||||
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;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataHarmRateVImpl implements IDataHarmRateV {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataHarmRateVMapper dataHarmRateVMapper;
|
||||
@Override
|
||||
public List<DataHarmrateV> listDataHarmrateV(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmrateV.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataHarmrateV::getLineId)
|
||||
.select(DataHarmrateV::getPhasicType)
|
||||
.select(DataHarmrateV::getValueType)
|
||||
.select(DataHarmrateV::getQualityFlag)
|
||||
.between(DataHarmrateV::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataHarmrateV::getLineId, lineParam.getLineId());
|
||||
}
|
||||
if(CollUtil.isNotEmpty(lineParam.getPhasicType())){
|
||||
influxQueryWrapper.regular(DataHarmrateV::getPhasicType,lineParam.getPhasicType());
|
||||
}
|
||||
List<DataHarmrateV> dataList= dataHarmRateVMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataHarmrateV data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataHarmrateV(List<DataHarmrateV> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataHarmrateV>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataHarmrateV> dataFlickerList : partition) {
|
||||
List<DataHarmrateV> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataHarmRateVMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
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.DataHarmphasicI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataHarmphasicIImpl implements IDataHarmphasicI {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataHarmphasicIMapper dataHarmphasicIMapper;
|
||||
|
||||
@Override
|
||||
public List<DataHarmphasicI> listDataHarmphasicI(LineCountEvaluateParam lineParam) {
|
||||
List<DataHarmphasicI> result = new ArrayList<>();
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicI.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataHarmphasicI::getLineId)
|
||||
.select(DataHarmphasicI::getPhasicType)
|
||||
.select(DataHarmphasicI::getValueType)
|
||||
.select(DataHarmphasicI::getQualityFlag)
|
||||
.between(DataHarmphasicI::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataHarmphasicI::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataHarmphasicI> dataList= dataHarmphasicIMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataHarmphasicI data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataHarmphasicI(List<DataHarmphasicI> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataHarmphasicI>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataHarmphasicI> dataFlickerList : partition) {
|
||||
List<DataHarmphasicI> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataHarmphasicIMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
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.DataHarmphasicV;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataHarmphasicVImpl implements IDataHarmphasicV {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
|
||||
private final DataHarmphasicVMapper dataHarmphasicVMapper;
|
||||
@Override
|
||||
public List<DataHarmphasicV> listDataHarmphasicV(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmphasicV.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataHarmphasicV::getLineId)
|
||||
.select(DataHarmphasicV::getPhasicType)
|
||||
.select(DataHarmphasicV::getValueType)
|
||||
.select(DataHarmphasicV::getQualityFlag)
|
||||
.between(DataHarmphasicV::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataHarmphasicV::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataHarmphasicV> dataList= dataHarmphasicVMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataHarmphasicV data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataHarmphasicV(List<DataHarmphasicV> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataHarmphasicV>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataHarmphasicV> dataFlickerList : partition) {
|
||||
List<DataHarmphasicV> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataHarmphasicVMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
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.DataHarmpowerP;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataHarmpowerPImpl implements IDataHarmpowerP {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataHarmpowerPMapper dataHarmpowerPMapper;
|
||||
|
||||
@Override
|
||||
public List<DataHarmpowerP> listDataHarmpowerP(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerP.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.P, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataHarmpowerP::getLineId)
|
||||
.select(DataHarmpowerP::getPhasicType)
|
||||
.select(DataHarmpowerP::getValueType)
|
||||
.select(DataHarmpowerP::getP)
|
||||
.select(DataHarmpowerP::getDf)
|
||||
.select(DataHarmpowerP::getPf)
|
||||
.select(DataHarmpowerP::getQualityFlag)
|
||||
.between(DataHarmpowerP::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataHarmpowerP::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataHarmpowerP> dataList= dataHarmpowerPMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataHarmpowerP data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataHarmpowerP(List<DataHarmpowerP> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataHarmpowerP>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataHarmpowerP> dataFlickerList : partition) {
|
||||
List<DataHarmpowerP> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataHarmpowerPMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
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 lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataHarmpowerQImpl implements IDataHarmpowerQ {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataHarmpowerQMapper dataHarmpowerQMapper;
|
||||
@Override
|
||||
public List<DataHarmpowerQ> listDataHarmpowerQ(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerQ.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.Q, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataHarmpowerQ::getLineId)
|
||||
.select(DataHarmpowerQ::getPhasicType)
|
||||
.select(DataHarmpowerQ::getValueType)
|
||||
.select(DataHarmpowerQ::getQ)
|
||||
.select(DataHarmpowerQ::getQualityFlag)
|
||||
.between(DataHarmpowerQ::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataHarmpowerQ::getLineId, lineParam.getLineId());
|
||||
}
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataHarmpowerP::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataHarmpowerQ> dataList= dataHarmpowerQMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataHarmpowerQ data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataHarmpowerQ(List<DataHarmpowerQ> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataHarmpowerQ>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataHarmpowerQ> dataFlickerList : partition) {
|
||||
List<DataHarmpowerQ> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataHarmpowerQMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
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.DataHarmpowerS;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataHarmpowerSImpl implements IDataHarmpowerS {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataHarmpowerSMapper dataHarmpowerSMapper;
|
||||
@Override
|
||||
public List<DataHarmpowerS> listDataHarmpowerS(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataHarmpowerS.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.S, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataHarmpowerS::getLineId)
|
||||
.select(DataHarmpowerS::getPhasicType)
|
||||
.select(DataHarmpowerS::getValueType)
|
||||
.select(DataHarmpowerS::getS)
|
||||
.select(DataHarmpowerS::getQualityFlag)
|
||||
.between(DataHarmpowerS::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataHarmpowerS::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataHarmpowerS> dataList= dataHarmpowerSMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataHarmpowerS data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataHarmpowerS(List<DataHarmpowerS> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataHarmpowerS>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataHarmpowerS> dataFlickerList : partition) {
|
||||
List<DataHarmpowerS> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataHarmpowerSMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,77 @@
|
||||
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.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataI;
|
||||
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;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataIImpl implements IDataI {
|
||||
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataIMapper dataIMapper;
|
||||
@Override
|
||||
public List<DataI> listDataI(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataI.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataI::getLineId)
|
||||
.select(DataI::getPhasicType)
|
||||
.select(DataI::getValueType)
|
||||
.select(DataI::getINeg)
|
||||
.select(DataI::getIPos)
|
||||
.select(DataI::getIThd)
|
||||
.select(DataI::getIUnbalance)
|
||||
.select(DataI::getIZero)
|
||||
.select(DataI::getRms)
|
||||
.select(DataI::getQualityFlag)
|
||||
.between(DataI::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataI::getLineId, lineParam.getLineId());
|
||||
}
|
||||
if(CollUtil.isNotEmpty(lineParam.getPhasicType())){
|
||||
influxQueryWrapper.regular(DataI::getPhasicType,lineParam.getPhasicType());
|
||||
}
|
||||
List<DataI> dataList= dataIMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataI data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataI(List<DataI> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataI>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataI> dataFlickerList : partition) {
|
||||
List<DataI> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataIMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
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.DataInharmI;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 13:27【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataInharmIImpl implements IDataInharmI {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataInharmIMapper dataInharmIMapper;
|
||||
@Override
|
||||
public List<DataInharmI> listDataInharmI(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmI.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.I, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataInharmI::getLineId)
|
||||
.select(DataInharmI::getPhasicType)
|
||||
.select(DataInharmI::getValueType)
|
||||
.select(DataInharmI::getQualityFlag)
|
||||
.between(DataInharmI::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataInharmI::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataInharmI> dataList= dataInharmIMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataInharmI data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataInharmI(List<DataInharmI> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataInharmI>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataInharmI> dataFlickerList : partition) {
|
||||
List<DataInharmI> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataInharmIMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
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.DataInharmV;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 13:27【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataInharmVImpl implements IDataInharmV {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataInharmVMapper dataInharmVMapper;
|
||||
@Override
|
||||
public List<DataInharmV> listDataInharmV(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataInharmV.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataInharmV::getLineId)
|
||||
.select(DataInharmV::getPhasicType)
|
||||
.select(DataInharmV::getValueType)
|
||||
.select(DataInharmV::getQualityFlag)
|
||||
.between(DataInharmV::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataInharmV::getLineId, lineParam.getLineId());
|
||||
}
|
||||
if(CollUtil.isNotEmpty(lineParam.getPhasicType())){
|
||||
influxQueryWrapper.regular(DataInharmV::getPhasicType,lineParam.getPhasicType());
|
||||
}
|
||||
List<DataInharmV> dataList= dataInharmVMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataInharmV data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataInharmV(List<DataInharmV> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataInharmV>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataInharmV> dataFlickerList : partition) {
|
||||
List<DataInharmV> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataInharmVMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
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.DataPlt;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/11/18 11:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataPltImpl implements IDataPlt {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataPltMapper dataPltMapper;
|
||||
@Override
|
||||
public List<DataPlt> listDataPlt(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataPlt.class);
|
||||
influxQueryWrapper
|
||||
.select(DataPlt::getLineId)
|
||||
.select(DataPlt::getPhasicType)
|
||||
.select(DataPlt::getPlt)
|
||||
.select(DataPlt::getQualityFlag)
|
||||
.between(DataPlt::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataPlt::getLineId, lineParam.getLineId());
|
||||
}
|
||||
List<DataPlt> dataList= dataPltMapper.selectByQueryWrapper(influxQueryWrapper);
|
||||
if(CollUtil.isNotEmpty(dataList)){
|
||||
for (DataPlt data : dataList) {
|
||||
data.setTimeId(DATE_TIME_FORMATTER.format(data.getTime()));
|
||||
}
|
||||
}
|
||||
return dataList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertDataPlt(List<DataPlt> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataPlt>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataPlt> dataFlickerList : partition) {
|
||||
List<DataPlt> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataPltMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
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.param.LineCountEvaluateParam;
|
||||
import com.njcn.po.influx.DataV;
|
||||
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.springframework.stereotype.Service;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0
|
||||
* @data 2024/11/7 10:54
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class DataVImpl implements IDataV {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final DataVMapper dataVMapper;
|
||||
|
||||
@Override
|
||||
public List<DataV> listDataV(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataV::getLineId)
|
||||
.select(DataV::getPhasicType)
|
||||
.select(DataV::getValueType)
|
||||
.select(DataV::getFreq)
|
||||
.select(DataV::getFreqDev)
|
||||
.select(DataV::getRms)
|
||||
.select(DataV::getRmsLvr)
|
||||
.select(DataV::getVNeg)
|
||||
.select(DataV::getVPos)
|
||||
.select(DataV::getVThd)
|
||||
.select(DataV::getVUnbalance)
|
||||
.select(DataV::getVZero)
|
||||
.select(DataV::getVlDev)
|
||||
.select(DataV::getVuDev)
|
||||
.select(DataV::getQualityFlag)
|
||||
.between(DataV::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataV::getLineId, lineParam.getLineId());
|
||||
}
|
||||
if (CollUtil.isNotEmpty(lineParam.getPhasicType())) {
|
||||
influxQueryWrapper.regular(DataV::getPhasicType, lineParam.getPhasicType());
|
||||
}
|
||||
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
|
||||
public List<DataV> listDataVDesc(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class);
|
||||
influxQueryWrapper.samePrefixAndSuffix(InfluxDbSqlConstant.V, "", HarmonicTimesUtil.harmonicTimesList(1, 50, 1));
|
||||
influxQueryWrapper
|
||||
.select(DataV::getLineId)
|
||||
.select(DataV::getPhasicType)
|
||||
.select(DataV::getValueType)
|
||||
.select(DataV::getFreq)
|
||||
.select(DataV::getFreqDev)
|
||||
.select(DataV::getRms)
|
||||
.select(DataV::getRmsLvr)
|
||||
.select(DataV::getVNeg)
|
||||
.select(DataV::getVPos)
|
||||
.select(DataV::getVThd)
|
||||
.select(DataV::getVUnbalance)
|
||||
.select(DataV::getVZero)
|
||||
.select(DataV::getVlDev)
|
||||
.select(DataV::getVuDev)
|
||||
.select(DataV::getQualityFlag)
|
||||
.groupBy(DataV::getLineId)
|
||||
.timeDesc()
|
||||
.limit(1);
|
||||
if(CollUtil.isNotEmpty(lineParam.getLineId())){
|
||||
influxQueryWrapper.regular(DataV::getLineId, lineParam.getLineId());
|
||||
}
|
||||
if (CollUtil.isNotEmpty(lineParam.getPhasicType())) {
|
||||
influxQueryWrapper.regular(DataV::getPhasicType, lineParam.getPhasicType());
|
||||
}
|
||||
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
|
||||
public void insertDataV(List<DataV> list) {
|
||||
if(CollUtil.isNotEmpty(list)){
|
||||
List<List<DataV>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<DataV> dataFlickerList : partition) {
|
||||
List<DataV> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
dataVMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
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.DataV;
|
||||
import com.njcn.po.influx.PqsCommunicate;
|
||||
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;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description:
|
||||
* @Author: wr
|
||||
* @Date: 2025/3/6 10:22
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class PqsCommunicateImpl implements IPqsCommunicate {
|
||||
private final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
private final PqsCommunicateMapper pqsCommunicateMapper;
|
||||
@Override
|
||||
public List<PqsCommunicate> listPqsCommunicate(LineCountEvaluateParam lineParam) {
|
||||
InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(PqsCommunicate.class);
|
||||
influxQueryWrapper
|
||||
.select(PqsCommunicate::getTime)
|
||||
.select(PqsCommunicate::getDevId)
|
||||
.select(PqsCommunicate::getDescription)
|
||||
.select(PqsCommunicate::getType)
|
||||
.between(PqsCommunicate::getTime, lineParam.getStartTime(), lineParam.getEndTime())
|
||||
.timeDesc()
|
||||
;
|
||||
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 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)){
|
||||
List<List<PqsCommunicate>> partition = ListUtils.partition(list, 100000);
|
||||
for (List<PqsCommunicate> dataFlickerList : partition) {
|
||||
List<PqsCommunicate> sublistAsOriginalListType = new ArrayList<>(dataFlickerList);
|
||||
pqsCommunicateMapper.insertBatch(sublistAsOriginalListType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.njcn.migration.read.util;
|
||||
|
||||
import lombok.Getter;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Getter
|
||||
public enum TableEnum {
|
||||
DATAFLICKER("DataFlicker","电压闪变数据表", 1),
|
||||
DATAFLUC("DataFluc","电压波动数据表", 1),
|
||||
DATAHARMPHASICI("DataHarmphasicI","谐波电流角度数据表", 4),
|
||||
DATAHARMPHASICV("DataHarmphasicV","谐波电压角度数据表", 4),
|
||||
DATAHARMPOWERP("DataHarmpowerP","有功功率数据表", 4),
|
||||
DATAHARMPOWERQ("DataHarmpowerQ","无功功率数据表", 4),
|
||||
DATAHARMPOWERS("DataHarmpowerS","视在功率数据表", 4),
|
||||
DATAHARMRATEI("DataHarmrateI","谐波电流含有率数据表", 4),
|
||||
DATAHARMRATEV("DataHarmrateV","谐波电压含有率数据表", 4),
|
||||
DATAINHARMI("DataInharmI","电流简谐波幅值数据表", 4),
|
||||
DATAINHARMV("DataInharmV","电压间谐波幅值数据表", 4),
|
||||
DATAI("DataI","谐波电流幅值数据表", 4),
|
||||
DATAPLT("DataPlt","长时闪变数据表", 1),
|
||||
DATAV("DataV","谐波电压幅值数据表", 4),
|
||||
PQSCOMMUNICATE("PqsCommunicate","终端状态变更表", 4),
|
||||
;
|
||||
|
||||
|
||||
private final String code;
|
||||
private final String value;
|
||||
|
||||
private final Integer multiple;
|
||||
|
||||
TableEnum(String code, String value, Integer multiple) {
|
||||
this.code = code;
|
||||
this.value = value;
|
||||
this.multiple = multiple;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有可执行的组件类型,
|
||||
* 除了"目录"类型,其他都可以执行
|
||||
* @return
|
||||
*/
|
||||
public static List<String> getExecutableTypes() {
|
||||
return Arrays.stream(TableEnum.values()).map(tmep->{
|
||||
return tmep.code;
|
||||
}).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 通过code获取枚举值
|
||||
* @param code
|
||||
* @return
|
||||
*/
|
||||
public static String getValueByCode(String code) {
|
||||
for (TableEnum item : TableEnum.values()) {
|
||||
if (item.code.equals(code)) {
|
||||
return item.value;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Integer getMultipleByCode(String code) {
|
||||
for (TableEnum item : TableEnum.values()) {
|
||||
if (item.code.equals(code)) {
|
||||
return item.multiple;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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)));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
#当前服务的基本信息
|
||||
microservice:
|
||||
ename: @artifactId@
|
||||
name: '@name@'
|
||||
version: @version@
|
||||
sentinel:
|
||||
url: @sentinel.url@
|
||||
gateway:
|
||||
url: @gateway.url@
|
||||
server:
|
||||
port: 10406
|
||||
#feign接口开启服务熔断降级处理
|
||||
feign:
|
||||
sentinel:
|
||||
enabled: true
|
||||
spring:
|
||||
application:
|
||||
name: @artifactId@
|
||||
#nacos注册中心以及配置中心的指定
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
ip: @service.server.url@
|
||||
server-addr: @nacos.url@
|
||||
namespace: @nacos.namespace@
|
||||
config:
|
||||
server-addr: @nacos.url@
|
||||
namespace: @nacos.namespace@
|
||||
file-extension: yaml
|
||||
shared-configs:
|
||||
- data-id: share-config.yaml
|
||||
refresh: true
|
||||
- data-Id: share-config-datasource-read-db.yaml
|
||||
refresh: true
|
||||
main:
|
||||
allow-bean-definition-overriding: true
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 100MB
|
||||
max-request-size: 100MB
|
||||
jackson:
|
||||
time-zone: GMT+8
|
||||
|
||||
|
||||
#项目日志的配置
|
||||
logging:
|
||||
config: http://@nacos.url@/nacos/v1/cs/configs?tenant=@nacos.namespace@&group=DEFAULT_GROUP&dataId=logback.xml
|
||||
level:
|
||||
root: info
|
||||
|
||||
|
||||
mqtt:
|
||||
client-id: @artifactId@${random.value}
|
||||
|
||||
#mybatis配置信息
|
||||
mybatis-plus:
|
||||
configuration:
|
||||
#配置sql日志输出
|
||||
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
|
||||
|
||||
|
||||
# type-aliases-package: com.njcn.harmonic.pojo
|
||||
# type-handlers-package: com.njcn.db.handler
|
||||
# global-config:
|
||||
# db-config:
|
||||
# date-format: yyyy-MM-dd HH:mm:ss
|
||||
# global-config:
|
||||
# enable-sql-runner: true
|
||||
Binary file not shown.
@@ -0,0 +1,136 @@
|
||||
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.migration.read.MigrationReadBootApplication;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author hongawen
|
||||
* @version 1.0.0
|
||||
* @date 2021年12月10日 15:05
|
||||
*/
|
||||
@RunWith(SpringRunner.class)
|
||||
@WebAppConfiguration
|
||||
@SpringBootTest(classes = MigrationReadBootApplication.class)
|
||||
public class BaseJunitTest {
|
||||
|
||||
@Autowired
|
||||
private IDataFlicker dataFlicker;
|
||||
@Autowired
|
||||
private IDataFluc dataFluc;
|
||||
@Autowired
|
||||
private IDataHarmphasicI dataHarmphasicI;
|
||||
@Autowired
|
||||
private IDataHarmphasicV dataHarmphasicV;
|
||||
@Autowired
|
||||
private IDataHarmpowerP dataHarmpowerP;
|
||||
@Autowired
|
||||
private IDataHarmpowerQ dataHarmpowerQ;
|
||||
@Autowired
|
||||
private IDataHarmpowerS dataHarmpowerS;
|
||||
@Autowired
|
||||
private IDataHarmRateI dataHarmRateI;
|
||||
@Autowired
|
||||
private IDataHarmRateV dataHarmRateV;
|
||||
@Autowired
|
||||
private IDataI dataI;
|
||||
@Autowired
|
||||
private IDataInharmI dataInharmI;
|
||||
@Autowired
|
||||
private IDataInharmV dataInharmV;
|
||||
@Autowired
|
||||
private IDataPlt dataPlt;
|
||||
@Autowired
|
||||
private IDataV dataV;
|
||||
@Autowired
|
||||
private IPqsCommunicate pqsCommunicate;
|
||||
@Autowired
|
||||
private MigrationInsertFeignClient migrationInsertFeignClient;
|
||||
@Autowired
|
||||
private MigrationService migrationService;
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
||||
lineParam.setStartTime("2025-04-23 00:00:00");
|
||||
lineParam.setEndTime("2025-04-23 00:05:00");
|
||||
// List<DataFlicker> dataFlickers = dataFlicker.listDataFlicker(lineParam);
|
||||
// List<DataFluc> dataFlucs = dataFluc.listDataFluc(lineParam);
|
||||
// List<DataHarmphasicI> dataHarmphasicIS = dataHarmphasicI.listDataHarmphasicI(lineParam);
|
||||
// List<DataHarmphasicV> dataHarmphasicVS = dataHarmphasicV.listDataHarmphasicV(lineParam);
|
||||
// List<DataHarmpowerP> dataHarmpowerPS = dataHarmpowerP.listDataHarmpowerP(lineParam);
|
||||
// List<DataHarmpowerQ> dataHarmpowerQS = dataHarmpowerQ.listDataHarmpowerQ(lineParam);
|
||||
// List<DataHarmpowerS> dataHarmpowerS1 = dataHarmpowerS.listDataHarmpowerS(lineParam);
|
||||
// List<DataHarmrateI> dataHarmrateIS = dataHarmRateI.listDataHarmrateI(lineParam);
|
||||
// List<DataHarmrateV> dataHarmrateVS = dataHarmRateV.listDataHarmrateV(lineParam);
|
||||
// List<DataI> dataIS = dataI.listDataI(lineParam);
|
||||
// List<DataInharmI> dataInharmIS = dataInharmI.listDataInharmI(lineParam);
|
||||
// List<DataInharmV> dataInharmVS = dataInharmV.listDataInharmV(lineParam);
|
||||
// List<DataPlt> dataPlts = dataPlt.listDataPlt(lineParam);
|
||||
List<DataV> dataVS = dataV.listDataV(lineParam);
|
||||
migrationInsertFeignClient.insertDataV(dataVS);
|
||||
DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").withZone(ZoneId.systemDefault());
|
||||
// String format = DATE_TIME_FORMATTER.format(dataVS.get(0).getTime());
|
||||
// List<PqsCommunicate> pqsCommunicates = pqsCommunicate.listPqsCommunicate(lineParam);
|
||||
System.out.println(dataVS);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test2() {
|
||||
LineCountEvaluateParam lineParam = new LineCountEvaluateParam();
|
||||
lineParam.setStartTime("2025-04-23 00:00:00");
|
||||
lineParam.setEndTime("2025-04-23 23:59:00");
|
||||
lineParam.setIsManual(true);
|
||||
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