From 09f16f8dcb6991d13d3cec8024960b8cd1136a32 Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Mon, 3 Mar 2025 08:53:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=86=B2=E7=AA=81=E8=A1=A5?= =?UTF-8?q?=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataProcess/service/IDataHarmrateV.java | 6 +++- .../service/impl/LnDataDealServiceImpl.java | 2 +- .../influxdb/InfluxdbDataHarmrateVImpl.java | 24 +++++++++++++ .../relation/RelationDataHarmrateVImpl.java | 35 +++++++++++++++++++ 4 files changed, 65 insertions(+), 2 deletions(-) diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataHarmrateV.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataHarmrateV.java index 8157190..24e54bf 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataHarmrateV.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/IDataHarmrateV.java @@ -1,5 +1,6 @@ package com.njcn.dataProcess.service; +import com.njcn.dataProcess.dto.DataHarmrateVDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.pojo.dto.DataHarmDto; @@ -8,7 +9,8 @@ import java.util.List; /** * @author xy */ -public interface IDataHarmRateV { +public interface +IDataHarmRateV { /** * 获取原始数据 @@ -16,4 +18,6 @@ public interface IDataHarmRateV { * @return */ List getRawData(LineCountEvaluateParam lineParam); + + void batchInsertion(List dataHarmrateVDTOList); } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/LnDataDealServiceImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/LnDataDealServiceImpl.java index 86683c1..be038df 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/LnDataDealServiceImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/LnDataDealServiceImpl.java @@ -24,7 +24,7 @@ public class LnDataDealServiceImpl implements LnDataDealService { private IDataHarmphasicV dataHarmphasicVInsert; @InsertBean - private IDataHarmrateV dataHarmrateVInsert; + private IDataHarmRateV dataHarmrateVInsert; @InsertBean private IDataHarmpowerP dataHarmpowerPService; @InsertBean diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmrateVImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmrateVImpl.java index 95c0608..6a3603d 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmrateVImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/influxdb/InfluxdbDataHarmrateVImpl.java @@ -3,13 +3,16 @@ package com.njcn.dataProcess.service.impl.influxdb; import cn.hutool.core.collection.CollectionUtil; import com.njcn.common.utils.HarmonicTimesUtil; import com.njcn.dataProcess.dao.imapper.DataHarmRateVMapper; +import com.njcn.dataProcess.dto.DataHarmrateVDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.po.influx.DataHarmrateV; import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.service.IDataHarmRateV; +import com.njcn.dataProcess.util.BeanFeildUtils; import com.njcn.influx.constant.InfluxDbSqlConstant; import com.njcn.influx.query.InfluxQueryWrapper; import lombok.RequiredArgsConstructor; +import org.apache.commons.collections4.ListUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -95,4 +98,25 @@ public class InfluxdbDataHarmRateVImpl implements IDataHarmRateV { return result; } + + + @Override + public void batchInsertion(List dataHarmrateVDTOList) { + int totalCount = dataHarmrateVDTOList.size(); + if(totalCount<=0){ + return; + } + + List collect = dataHarmrateVDTOList.stream().flatMap(temp -> DataHarmrateV.relationToInfluxDB(temp).stream()).collect(Collectors.toList()); + int minSize = Math.min(1200000, collect.size()); + + List> partition = ListUtils.partition(collect, minSize); + for (List dataHarmrateVList : partition) { + List sublistAsOriginalListType = new ArrayList<>(dataHarmrateVList); + + dataHarmRateVMapper.insertBatch(sublistAsOriginalListType); + + } + } + } diff --git a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmrateVImpl.java b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmrateVImpl.java index c620edf..75fd647 100644 --- a/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmrateVImpl.java +++ b/data-processing/data-processing-boot/src/main/java/com/njcn/dataProcess/service/impl/relation/RelationDataHarmrateVImpl.java @@ -1,15 +1,23 @@ package com.njcn.dataProcess.service.impl.relation; +import com.njcn.dataProcess.dao.relation.mapper.DataHarmrateVRelationMapper; import com.njcn.dataProcess.dao.relation.mapper.DataIRelationMapper; +import com.njcn.dataProcess.dto.DataHarmrateVDTO; import com.njcn.dataProcess.param.LineCountEvaluateParam; +import com.njcn.dataProcess.po.relation.DataHarmrateV; import com.njcn.dataProcess.pojo.dto.DataHarmDto; import com.njcn.dataProcess.service.IDataHarmRateV; +import com.njcn.dataProcess.util.BeanFeildUtils; import lombok.RequiredArgsConstructor; +import org.apache.commons.collections4.ListUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; /** * @author xy @@ -20,9 +28,36 @@ public class RelationDataHarmRateVImpl implements IDataHarmRateV { @Resource private DataIRelationMapper dataIRelationMapper; + private final DataHarmrateVRelationMapper dataHarmrateVRelationMapper; @Override public List getRawData(LineCountEvaluateParam lineParam) { return Collections.emptyList(); } + + @Override + public void batchInsertion(List dataHarmrateVDTOList) { + int totalCount = dataHarmrateVDTOList.size(); + int minSize = Math.min(120, totalCount); + + if(totalCount<=0){ + return; + } + List collect = dataHarmrateVDTOList.stream().map(temp -> { + DataHarmrateV dataHarmrateV = new DataHarmrateV(); + BeanUtils.copyProperties(temp, dataHarmrateV, BeanFeildUtils.getNullPropertyNames(temp)); + return dataHarmrateV; + }).collect(Collectors.toList()); + collect = collect.stream().collect(Collectors.toMap( + temp -> temp.getTimeid() + temp.getLineid() + temp.getPhasicType(), + temp -> temp, + (exist, replace) -> exist + )).values().stream().collect(Collectors.toList()); + + List> partition = ListUtils.partition(collect, minSize); + for (List dataHarmphasicVList : partition) { + dataHarmrateVRelationMapper.insertBatchSomeColumn(dataHarmphasicVList); + + } + } }