From 612f599eff918ee00f30137de48c45c069d2a288 Mon Sep 17 00:00:00 2001 From: huangzj <826100833@qq.com> Date: Thu, 23 Nov 2023 08:50:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/po/dim/RDimBusTargetDPO.java | 3 +- .../pojo/po/dim/RDimBusTargetMPO.java | 5 +- .../pojo/po/dim/RDimBusTargetYPO.java | 5 +- .../pojo/po/dim/RDimBusbarHarmnicDPO.java | 2 - .../dim/impl/RDimBusTargetDPOServiceImpl.java | 105 ++++-------------- .../dim/impl/RDimBusTargetMPOServiceImpl.java | 73 ++++++++++++ .../dim/impl/RDimBusTargetYPOServiceImpl.java | 71 ++++++++++++ .../impl/RDimBusbarHarmnicDPOServiceImpl.java | 2 - 8 files changed, 172 insertions(+), 94 deletions(-) diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetDPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetDPO.java index e544847b7..f1620f352 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetDPO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetDPO.java @@ -55,7 +55,6 @@ public class RDimBusTargetDPO { @TableField(value = "Pass_Avg_Rate") private Double passAvgRate; - @TableField(value = "`State`") - private Integer state; + } \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetMPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetMPO.java index e4909ff52..cad1b3756 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetMPO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetMPO.java @@ -21,7 +21,7 @@ import lombok.Data; */ @Data @TableName(value = "r_dim_bus_target_m") -public class RDimBusTargetMPO extends BaseEntity { +public class RDimBusTargetMPO { @MppMultiId(value = "Org_Id") private String orgId; @@ -55,7 +55,6 @@ public class RDimBusTargetMPO extends BaseEntity { @TableField(value = "Pass_Avg_Rate") private Double passAvgRate; - @TableField(value = "`State`") - private Integer state; + } \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetYPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetYPO.java index 37e41a094..e00adcf6b 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetYPO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusTargetYPO.java @@ -21,7 +21,7 @@ import lombok.Data; */ @Data @TableName(value = "r_dim_bus_target_y") -public class RDimBusTargetYPO extends BaseEntity { +public class RDimBusTargetYPO { @MppMultiId(value = "Org_Id") private String orgId; @@ -55,8 +55,7 @@ public class RDimBusTargetYPO extends BaseEntity { @TableField(value = "Pass_Avg_Rate") private Double passAvgRate; - @TableField(value = "`State`") - private Integer state; + } \ No newline at end of file diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusbarHarmnicDPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusbarHarmnicDPO.java index 77c8e000d..09919696f 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusbarHarmnicDPO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/dim/RDimBusbarHarmnicDPO.java @@ -76,8 +76,6 @@ public class RDimBusbarHarmnicDPO { @TableField(value = "Statis_count") private Integer statisCount; - @TableField(value = "`State`") - private Integer state; diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetDPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetDPOServiceImpl.java index a7119c0ac..73a7c4deb 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetDPOServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetDPOServiceImpl.java @@ -2,42 +2,25 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.LocalDateTimeUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.extension.service.IService; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; -import com.njcn.device.biz.pojo.dto.LineDevGetDTO; -import com.njcn.device.pms.pojo.po.Monitor; -import com.njcn.device.pq.pojo.po.RStatIntegrityD; -import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD; -import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD; import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO; -import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper; -import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; -import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO; -import com.njcn.prepare.harmonic.service.mysql.Impl.line.ROperatingMonitorDServiceImpl; import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetDPOService; import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService; -import com.njcn.prepare.harmonic.service.mysql.line.IRMpPartHarmonicDetailDService; -import com.njcn.prepare.harmonic.service.mysql.line.IRMpSurplusHarmonicDetailDService; -import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.pojo.po.DictData; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.harmonic.pojo.po.dim.RDimBusTargetDPO; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetDPOMapper; import org.springframework.util.CollectionUtils; import java.time.LocalDate; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; +import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; /** @@ -56,9 +39,6 @@ public class RDimBusTargetDPOServiceImpl extends MppServiceImpl calculatedParam) { List rDimBusTargetDPOList = new ArrayList<>(); @@ -88,72 +68,33 @@ public class RDimBusTargetDPOServiceImpl extends MppServiceImpl temp.getStatisCount() > 0).mapToDouble(temp -> { + OptionalDouble average = rdibBusbarHarmList.stream().filter(temp -> temp.getStatisCount() > 0).mapToDouble(temp -> { return Double.valueOf(temp.getLimitCount()) / temp.getStatisCount(); - }).average().getAsDouble(); - double passRate = Math.round(asDouble * 100.0) / 100.0; - rDimBusTargetDPO.setPassRate(1-passRate); + }).average(); + Double passRate=0.00; + if(average.isPresent()) { + passRate = average.getAsDouble(); + rDimBusTargetDPO.setPassAvgRate(1 - passRate); + passRate = Math.round(passRate * 100.0) / 100.0; + rDimBusTargetDPO.setPassRate(1 - passRate); + }else { + rDimBusTargetDPO.setPassAvgRate(3.14159); + rDimBusTargetDPO.setPassRate(3.14159); + + } + + rDimBusTargetDPO.setLimitAvgRate(limitrate); + + rDimBusTargetDPOList.add(rDimBusTargetDPO); }); }); - - - - } - - private void overLimitTimes(DictData temp, List rMpSurplusHarmonicDetailDList, List rMpPartHarmonicDetailDList, List monitorList) { - Double overLimitTimes =0.00; - Map collect = monitorList.stream().collect(Collectors.toMap(Monitor::getId, Monitor::getStatisticalInterval)); - if (Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode())) { - overLimitTimes = rMpPartHarmonicDetailDList.stream().mapToDouble(po -> { - return po.getVDevTimes() * collect.get(po.getMeasurementPointId()); - } - ).sum(); - - } else if ( Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode())) { - overLimitTimes = rMpSurplusHarmonicDetailDList.stream().mapToDouble(po -> { - return po.getFlickerTimes() * collect.get(po.getMeasurementPointId()); - } - ).sum(); - - } else if ( Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode())) { - overLimitTimes = rMpPartHarmonicDetailDList.stream().mapToDouble(po -> { - return po.getUnbalanceTimes() * collect.get(po.getMeasurementPointId()); - } - ).sum(); - - } else if (Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())){ - overLimitTimes = rMpPartHarmonicDetailDList.stream().mapToDouble(po -> { - return po.getVTimes() * collect.get(po.getMeasurementPointId()); - } - ).sum(); + if (!CollectionUtils.isEmpty(rDimBusTargetDPOList)) { + this.saveOrUpdateBatchByMultiId(rDimBusTargetDPOList, 500); } + + } - /** - * @Description: overLimitBusbarsCount - * @Param: - * @return: java.lang.Integer - * @Author: clam - * @Date: 2023/11/21 - */ - private Integer overLimitBusbarsCount(DictData temp, List rMpSurplusHarmonicDetailDList, List rMpPartHarmonicDetailDList) { - Integer busbarsCount =0; - if (Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode())) { - busbarsCount = rMpPartHarmonicDetailDList.stream().filter(po -> Objects.equals(po.getIsVDev(), 1)).collect(Collectors.toList()).size(); - - } else if ( Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode())) { - busbarsCount = rMpSurplusHarmonicDetailDList.stream().filter(po -> Objects.equals(po.getIsFlicker(), 1)).collect(Collectors.toList()).size(); - - } else if ( Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode())) { - busbarsCount = rMpPartHarmonicDetailDList.stream().filter(po -> Objects.equals(po.getIsUnbalance(), 1)).collect(Collectors.toList()).size(); - - - } else if (Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())){ - busbarsCount = rMpPartHarmonicDetailDList.stream().filter(po -> Objects.equals(po.getIsVThd(), 1)).collect(Collectors.toList()).size(); - - } - return busbarsCount; - } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetMPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetMPOServiceImpl.java index c802639d3..854426c9a 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetMPOServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetMPOServiceImpl.java @@ -1,15 +1,31 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.LocalDateTimeUtil; import com.baomidou.mybatisplus.extension.service.IService; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusTargetDPO; +import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetDPOService; import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetMPOService; +import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetMPOMapper; import com.njcn.harmonic.pojo.po.dim.RDimBusTargetMPO; +import org.springframework.util.CollectionUtils; + +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; /** * @@ -23,8 +39,65 @@ import com.njcn.harmonic.pojo.po.dim.RDimBusTargetMPO; @RequiredArgsConstructor public class RDimBusTargetMPOServiceImpl extends MppServiceImpl implements RDimBusTargetMPOService { + private final DicDataFeignClient dicDataFeignClient; + private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService; + @Override public void handleMonth(CalculatedParam calculatedParam) { + List rDimBusTargetMPOList = new ArrayList<>(); + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN); + //获取日期 + DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + List collect = indicatorTypeDate.stream().filter(temp -> Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode()) || + Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode()) || + Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode()) || + Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())).map(DictData::getId).collect(Collectors.toList()); + List rdibBusbarHarms = rDimBusbarHarmnicDPOService.lambdaQuery().between(RDimBusbarHarmnicDPO::getStatisDate, begin,end).in(RDimBusbarHarmnicDPO::getTargetType, collect).list(); + if (CollectionUtils.isEmpty(rdibBusbarHarms)){ + return; + } + Map>> collect1 = rdibBusbarHarms.stream().collect(Collectors.groupingBy(RDimBusbarHarmnicDPO::getOrgId, + Collectors.groupingBy(RDimBusbarHarmnicDPO::getTargetType))); + collect1.forEach((orgId,v)->{ + v.forEach((tag,rdibBusbarHarmList)->{ + RDimBusTargetMPO rDimBusTargetMPO = new RDimBusTargetMPO(); + rDimBusTargetMPO.setOrgId(orgId); + rDimBusTargetMPO.setTargetType(tag); + rDimBusTargetMPO.setStatisDate(localDate); + //有效接入母线数量 + Double effectiveBuses = Double.valueOf(rdibBusbarHarmList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count() + ); + long count = rdibBusbarHarmList.stream().filter(temp -> temp.getLimitCount() > 0).map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + double v1 = count / effectiveBuses; + double limitrate = Math.round(v1 * 100.0) / 100.0; + rDimBusTargetMPO.setLimitRate(limitrate); + OptionalDouble average = rdibBusbarHarmList.stream().filter(temp -> temp.getStatisCount() > 0).mapToDouble(temp -> { + return Double.valueOf(temp.getLimitCount()) / temp.getStatisCount(); + }).average(); + Double passRate=0.00; + if(average.isPresent()) { + passRate = average.getAsDouble(); + rDimBusTargetMPO.setPassAvgRate(1 - passRate); + passRate = Math.round(passRate * 100.0) / 100.0; + rDimBusTargetMPO.setPassRate(1 - passRate); + }else { + rDimBusTargetMPO.setPassAvgRate(3.14159); + + rDimBusTargetMPO.setPassRate(3.14159); + + } + rDimBusTargetMPO.setLimitAvgRate(limitrate); + rDimBusTargetMPOList.add(rDimBusTargetMPO); + }); + }); + if (!CollectionUtils.isEmpty(rDimBusTargetMPOList)) { + this.saveOrUpdateBatchByMultiId(rDimBusTargetMPOList, 500); + } + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetYPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetYPOServiceImpl.java index d364e0543..0e43504d8 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetYPOServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusTargetYPOServiceImpl.java @@ -1,16 +1,32 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.LocalDateTimeUtil; import com.baomidou.mybatisplus.extension.service.IService; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; +import com.njcn.harmonic.pojo.po.dim.RDimBusTargetMPO; +import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetDPOService; import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusTargetYPOService; +import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService; +import com.njcn.system.api.DicDataFeignClient; +import com.njcn.system.enums.DicDataEnum; +import com.njcn.system.enums.DicDataTypeEnum; +import com.njcn.system.pojo.po.DictData; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.harmonic.pojo.po.dim.RDimBusTargetYPO; import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetYPOMapper; +import org.springframework.util.CollectionUtils; + +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; /** * @@ -24,8 +40,63 @@ import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusTargetYPOMapper; @RequiredArgsConstructor public class RDimBusTargetYPOServiceImpl extends MppServiceImpl implements RDimBusTargetYPOService { + private final DicDataFeignClient dicDataFeignClient; + private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService; @Override public void handleYear(CalculatedParam calculatedParam) { + List rDimBusTargetYPOList = new ArrayList<>(); + //指标对象类型 + List indicatorTypeDate = dicDataFeignClient.getDicDataByTypeCode( + DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); + LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN); + //获取日期 + DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + List collect = indicatorTypeDate.stream().filter(temp -> Objects.equals(temp.getCode(), DicDataEnum.VOLTAGE_DEV.getCode()) || + Objects.equals(temp.getCode(), DicDataEnum.FLICKER.getCode()) || + Objects.equals(temp.getCode(), DicDataEnum.PHASE_VOLTAGE.getCode()) || + Objects.equals(temp.getCode(), DicDataEnum.THD_V.getCode())).map(DictData::getId).collect(Collectors.toList()); + List rdibBusbarHarms = rDimBusbarHarmnicDPOService.lambdaQuery().between(RDimBusbarHarmnicDPO::getStatisDate, begin,end).in(RDimBusbarHarmnicDPO::getTargetType, collect).list(); + if (CollectionUtils.isEmpty(rdibBusbarHarms)){ + return; + } + Map>> collect1 = rdibBusbarHarms.stream().collect(Collectors.groupingBy(RDimBusbarHarmnicDPO::getOrgId, + Collectors.groupingBy(RDimBusbarHarmnicDPO::getTargetType))); + collect1.forEach((orgId,v)->{ + v.forEach((tag,rdibBusbarHarmList)->{ + RDimBusTargetYPO rDimBusTargetYPO = new RDimBusTargetYPO(); + rDimBusTargetYPO.setOrgId(orgId); + rDimBusTargetYPO.setTargetType(tag); + rDimBusTargetYPO.setStatisDate(localDate); + //有效接入母线数量 + Double effectiveBuses = Double.valueOf(rdibBusbarHarmList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count() + ); + long count = rdibBusbarHarmList.stream().filter(temp -> temp.getLimitCount() > 0).map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count(); + double v1 = count / effectiveBuses; + double limitrate = Math.round(v1 * 100.0) / 100.0; + rDimBusTargetYPO.setLimitRate(limitrate); + OptionalDouble average = rdibBusbarHarmList.stream().filter(temp -> temp.getStatisCount() > 0).mapToDouble(temp -> { + return Double.valueOf(temp.getLimitCount()) / temp.getStatisCount(); + }).average(); + Double passRate=0.00; + if(average.isPresent()) { + passRate = average.getAsDouble(); + rDimBusTargetYPO.setPassAvgRate(1 - passRate); + passRate = Math.round(passRate * 100.0) / 100.0; + rDimBusTargetYPO.setPassRate(1 - passRate); + }else { + rDimBusTargetYPO.setPassAvgRate(3.14159); + + rDimBusTargetYPO.setPassRate(3.14159); + + } + rDimBusTargetYPO.setLimitAvgRate(limitrate); + rDimBusTargetYPOList.add(rDimBusTargetYPO); + }); + }); + if (!CollectionUtils.isEmpty(rDimBusTargetYPOList)) { + this.saveOrUpdateBatchByMultiId(rDimBusTargetYPOList, 500); + } } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusbarHarmnicDPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusbarHarmnicDPOServiceImpl.java index e0b113917..ce1b66482 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusbarHarmnicDPOServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusbarHarmnicDPOServiceImpl.java @@ -110,7 +110,6 @@ public class RDimBusbarHarmnicDPOServiceImpl extends MppServiceImpl first = rStatLimitRateDPOS.stream().filter(rStatLimitRateDPO -> Objects.equals(rStatLimitRateDPO.getLineId(), busbar.getId())).findFirst(); @@ -145,7 +144,6 @@ public class RDimBusbarHarmnicDPOServiceImpl extends MppServiceImpl first = rMpEventDetailDPOList.stream().filter(rMpEventDetailDPO -> Objects.equals(rMpEventDetailDPO.getMeasurementPointId(), busbar.getId())).findFirst();