This commit is contained in:
wr
2025-04-27 14:37:40 +08:00
parent 4c26d825cf
commit f73695af42
5 changed files with 110 additions and 26 deletions

View File

@@ -1,8 +1,12 @@
package com.njcn.migration.read.mapper;
import com.njcn.db.mapper.BatchBaseMapper;
import com.njcn.po.mysql.DevTimeDto;
import com.njcn.po.mysql.LineTimeDto;
import com.njcn.po.mysql.RmpEventDetail;
import java.util.List;
/**
* pqs
*
@@ -12,6 +16,16 @@ import com.njcn.po.mysql.RmpEventDetail;
public interface RmpEventDetailMapper extends BatchBaseMapper<RmpEventDetail> {
/**
* 查询最新监测点时间
* @return
*/
List<LineTimeDto> getLineTime();
/**
* 查询最新装置时间
* @return
*/
List<DevTimeDto> getDevTime();
}

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.migration.read.mapper.RmpEventDetailMapper">
<select id="getLineTime" resultType="com.njcn.po.mysql.LineTimeDto">
SELECT
t.id lineId,
device.UPDATE_TIME timeData
FROM
pq_line t,
pq_line subv,
pq_line device1,
pq_device device
WHERE
subv.id = t.pid
AND device.id = subv.pid
AND device1.id = device.id
AND device.RUN_FLAG = 0
</select>
<select id="getDevTime" resultType="com.njcn.po.mysql.DevTimeDto">
SELECT
pd.ID devId,
PD.UPDATE_TIME timeData
FROM
PQ_DEVICE pd
WHERE
pd.RUN_FLAG = 0
</select>
</mapper>

View File

@@ -8,11 +8,11 @@ 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.migration.read.mapper.RmpEventDetailMapper;
import com.njcn.po.influx.DataV;
import com.njcn.po.influx.PqsCommunicate;
import com.njcn.po.mysql.DevTimeDto;
import com.njcn.po.mysql.LineTimeDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@@ -31,9 +31,7 @@ import java.util.stream.Collectors;
@Component
public class TimeUtil {
@Autowired
private IDataV dataV;
@Autowired
private IPqsCommunicate communicate;
private RmpEventDetailMapper detailMapper;
/**
* key:监测点id value:当前上次结束时间
@@ -82,18 +80,18 @@ public class TimeUtil {
@PostConstruct
public void init() throws IOException {
File file = new File("/usr/local/jar/sj.xlsx");
List<DataV> excelDataV = EasyExcel.read(file)
.head(DataV.class)
File file = new File("D:\\AJava\\sj.xlsx");
List<LineTimeDto> excelDataV = EasyExcel.read(file)
.head(LineTimeDto.class)
.sheet(0).doReadSync();
List<DataV> datav = dataV.listDataVDesc(new LineCountEvaluateParam());
List<LineTimeDto> datav = detailMapper.getLineTime();
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());
List<String> ids = excelDataV.stream().map(LineTimeDto::getLineId).collect(Collectors.toList());
List<LineTimeDto> 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));
for (LineTimeDto v : notExcel) {
v.setTimeData(DateUtil.format(DateUtil.beginOfDay(DateUtil.parse(v.getTimeData(), DatePattern.NORM_DATETIME_FORMAT)), DatePattern.NORM_DATETIME_FORMAT));
}
excelDataV.addAll(notExcel);
}
@@ -101,17 +99,17 @@ public class TimeUtil {
excelDataV.addAll(datav);
}
List<PqsCommunicate> excelCommunicates = EasyExcel.read(file)
.head(PqsCommunicate.class)
List<DevTimeDto> excelCommunicates = EasyExcel.read(file)
.head(DevTimeDto.class)
.sheet(1).doReadSync();
List<PqsCommunicate> communicates = communicate.listPqsCommunicateDesc(new LineCountEvaluateParam());
List<DevTimeDto> communicates = detailMapper.getDevTime();
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());
//获取最新终端最新数据集合
List<String> ids = excelCommunicates.stream().map(DevTimeDto::getDevId).collect(Collectors.toList());
List<DevTimeDto> 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));
for (DevTimeDto v : notExcel) {
v.setTimeData(DateUtil.format(DateUtil.beginOfDay(DateUtil.parse(v.getTimeData(), DatePattern.NORM_DATETIME_FORMAT)), DatePattern.NORM_DATETIME_FORMAT));
}
excelCommunicates.addAll(notExcel);
}
@@ -122,19 +120,19 @@ public class TimeUtil {
ExcelWriter excelWriter = EasyExcel.write(file).build();
//模板1
WriteSheet writeSheet = EasyExcel.writerSheet(0, "line").head(DataV.class)
.includeColumnFiledNames(Arrays.asList("lineId", "timeId"))
.includeColumnFiledNames(Arrays.asList("lineId", "timeData"))
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.build();
excelWriter.write(excelDataV, writeSheet);
//模板2
WriteSheet writeSheet2 = EasyExcel.writerSheet(1, "dev").head(PqsCommunicate.class)
.includeColumnFiledNames(Arrays.asList("devId", "timeId"))
.includeColumnFiledNames(Arrays.asList("devId", "timeData"))
.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)));
TimeUtil.putAllLineTime(excelDataV.stream().collect(Collectors.toMap(LineTimeDto::getLineId, LineTimeDto::getTimeData)));
TimeUtil.putAllDevTime(excelCommunicates.stream().collect(Collectors.toMap(DevTimeDto::getDevId, DevTimeDto::getTimeData)));
}
}