From dad770673ec70b1d42b611afca9a7139e7a27cee Mon Sep 17 00:00:00 2001 From: xuyang <748613696@qq.com> Date: Mon, 13 Nov 2023 16:16:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=97=E6=B3=95=E6=94=B9=E9=80=A0:=E5=90=88?= =?UTF-8?q?=E6=A0=BC=E7=8E=87=E7=BB=9F=E8=AE=A1=E6=97=A5=E8=A1=A8(?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E8=B6=8A=E9=99=90)(r=5Fstat=5Flimit=5Ftarget?= =?UTF-8?q?=5Fd)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/po/day/RStatLimitTargetDPO.java | 3 +- .../Impl/line/LimitTargetServiceImpl.java | 47 ++++++++++++++++--- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/day/RStatLimitTargetDPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/day/RStatLimitTargetDPO.java index d943f960c..ff51a48bc 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/day/RStatLimitTargetDPO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/day/RStatLimitTargetDPO.java @@ -7,6 +7,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.time.LocalDate; import java.util.Date; @Data @@ -33,7 +34,7 @@ public class RStatLimitTargetDPO{ */ @MppMultiId @TableField(value = "time_id") - private Date time; + private LocalDate time; /** * 总计算次数 diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/LimitTargetServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/LimitTargetServiceImpl.java index e896bb8df..fe2e6ce6f 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/LimitTargetServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/LimitTargetServiceImpl.java @@ -1,7 +1,9 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.line; 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.StrUtil; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.harmonic.pojo.po.LimitRate; @@ -15,6 +17,7 @@ import com.njcn.prepare.harmonic.service.mysql.day.IRStatLimitRateDService; import com.njcn.prepare.harmonic.service.mysql.line.LimitTargetService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; import org.influxdb.InfluxDB; import org.influxdb.dto.BatchPoints; import org.influxdb.dto.Point; @@ -24,6 +27,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.time.LocalDate; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.TimeUnit; @@ -68,7 +72,7 @@ public class LimitTargetServiceImpl extends MppServiceImpl indexLists,String startTime,String endTime) { log.info(LocalDateTime.now()+"r_stat_limit_target_d开始执行=======》"); List list = new ArrayList<>(); - Date dateOut = DateUtil.parse(startTime); + LocalDate dateOut = LocalDate.parse(startTime,DatePattern.NORM_DATE_FORMATTER); List limitRateData = new ArrayList<>(); if (CollUtil.isEmpty(indexLists)){ @@ -90,12 +94,46 @@ public class LimitTargetServiceImpl extends MppServiceImpl list = new ArrayList<>(); + List limitRateData = new ArrayList<>(); + String startTime = LocalDateTimeUtil.format( + LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), + DatePattern.NORM_DATETIME_PATTERN + ); + String endTime = LocalDateTimeUtil.format( + LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), + DatePattern.NORM_DATETIME_PATTERN + ); + List lineIds = calculatedParam.getIdList(); + LocalDate dateOut = LocalDate.parse(calculatedParam.getDataDate(),DatePattern.NORM_DATE_FORMATTER); + //以尺寸100分片,查询数据 + List> pendingIds = ListUtils.partition(lineIds,100); + for (List pendingId : pendingIds) { + limitRateData.addAll(getLimitRateDataFromMysql(pendingId,startTime,endTime)); + } + if (!CollectionUtils.isEmpty(limitRateData)){ + for (RStatLimitRateDPO limitRate : limitRateData){ + RStatLimitTargetDPO limitTarget = new RStatLimitTargetDPO(); + limitTarget.setTime(dateOut); + limitTarget.setLineId(limitRate.getLineId()); + limitTarget.setPhasicType(limitRate.getPhasicType()); + chanelData(limitRate,limitTarget); + list.add(limitTarget); + } + } + this.saveOrUpdateBatchByMultiId(list,100); } + private List getLimitRateDataFromMysql(List lineList,String startTime,String endTime){ + return statLimitRateDService.findList(lineList,startTime,endTime); + } + + /***********************************************新算法结束*******************************************************************/ + private List getLimitRateData(String lineId,String date){ StringBuilder sql = new StringBuilder(); sql.append("SELECT * FROM limit_rate WHERE time >= '").append(date).append(" 00:00:00' and time <= '") @@ -109,11 +147,6 @@ public class LimitTargetServiceImpl extends MppServiceImpl getLimitRateDataFromMysql(List lineList,String startTime,String endTime){ - return statLimitRateDService.findList(lineList,startTime,endTime); - } - - private List processOutData(List limitRateData,Date dateOut){ List records = new ArrayList<>(); for (LimitRate limitRate : limitRateData){