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){