diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/OverviewServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/OverviewServiceImpl.java index ad5eb7b06..123a1eeec 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/OverviewServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/OverviewServiceImpl.java @@ -21,7 +21,6 @@ import com.njcn.user.api.DeptFeignClient; import com.njcn.user.pojo.dto.DeptDTO; import com.njcn.user.pojo.po.Dept; import com.njcn.web.utils.WebUtil; -import io.swagger.annotations.ApiModelProperty; import lombok.RequiredArgsConstructor; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; @@ -149,7 +148,7 @@ public class OverviewServiceImpl implements OverviewService { //获取数据库数据 List list = rMpMonitorAlarmCountMService.list(new LambdaQueryWrapper() .in(RMpMonitorAlarmCountM::getMeasurementPointId, ids) - .eq(RMpMonitorAlarmCountM::getDataType,data.getId()) +// .eq(RMpMonitorAlarmCountM::getDataType,data.getId()) .ge(StringUtils.isNotBlank(param.getStartTime()), RMpMonitorAlarmCountM::getDataDate, param.getStartTime()) .le(StringUtils.isNotBlank(param.getEndTime()), RMpMonitorAlarmCountM::getDataDate, param.getEndTime()) ); diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/ConverterDetailStatisticsDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/ConverterDetailStatisticsDTO.java new file mode 100644 index 000000000..a83287f81 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/ConverterDetailStatisticsDTO.java @@ -0,0 +1,69 @@ +package com.njcn.harmonic.pojo.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Description: + * Date: 2023/12/6 15:22【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class ConverterDetailStatisticsDTO { + + + /*主键 是否必填:是*/ + private String id; + /*发生超标或暂态母线日均占比(%) 是否必填:否*/ + private BigDecimal abnormalBusAvgRate; + /*发生超标或暂态母线数量(条) 是否必填:是*/ + private Integer abnormalBusNum; + /*发生超标或暂态母线占比(%) 是否必填:否*/ + private BigDecimal abnormalBusRate; + /*发生超标或暂态换流站日均占比(%) 是否必填:否*/ + private BigDecimal abnormalConverterAvgRate; + /*发生超标或暂态换流站数量(条) 是否必填:否*/ + private Integer abnormalConverterNum; + /*发生超标或暂态换流站占比(%) 是否必填:否*/ + private BigDecimal abnormalConverterRate; + /*市级单位id 是否必填:是*/ + private String cityId; + /*市级单位名称 是否必填:否*/ + private String cityName; + /*监测交流母线数量(条) 是否必填:否*/ + private Integer monitorAlternatingBusNum; + /*交流母线监测率(%) 是否必填:否*/ + private BigDecimal monitorAlternatingBusRate; + /*监测换流站数量(座) 是否必填:是*/ + private Integer monitorConverterNum; + /*换流站监测率(%) 是否必填:*/ + private BigDecimal monitorConverterRate; + /*在运交流母线数量(条) 是否必填:是*/ + private Integer onlineAlternatingBusNum; + /*在运换流站数量(座) 是否必填:是*/ + private Integer onlineConverterNum; + /*省级单位名称 是否必填:否*/ + private String provinceName; + /*省级单位id 是否必填:是*/ + private String provinceId; + /*统计日期 是否必填:是*/ + private String statisticalDate; + /*统计类型 是否必填:是*/ + private String statisticalType; + /*统计层级 是否必填:是*/ + private String statisticalLevel; + /*累计发生超标或暂态换流站数量(座) 是否必填:否*/ + private Integer abnormalConverterCount; + /*累计监测换流站数量(座) 是否必填:否*/ + private Integer monitorConverterCount; + /*累计发生超标或暂态母线数量(座) 是否必填:否*/ + private Integer abnormalBusCount; + /*累计监测交流母线数量(座) 是否必填:否*/ + private Integer monitorAlternatingBusCount; + + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SubstationQualityStatisticsDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SubstationQualityStatisticsDTO.java new file mode 100644 index 000000000..4cbc5b523 --- /dev/null +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/SubstationQualityStatisticsDTO.java @@ -0,0 +1,89 @@ +package com.njcn.harmonic.pojo.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * Description: + * Date: 2023/12/6 15:30【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class SubstationQualityStatisticsDTO { + /*主键 是否必填:是*/ + private String id; + + /*统计日期 是否必填:是*/ + private String statisticalDate; + /*统计类型 是否必填:是*/ + private String statisticalType; + + /*省级单位id 是否必填:是*/ + private String provinceId; + /*省级单位名称 是否必填:否*/ + private String provinceName; + /*市级单位id 是否必填:是*/ + private String cityId; + /*市级单位名称 是否必填:否*/ + private String cityName; + /*县级单位id 是否必填:否*/ + private String countyId; + /*县级单位名称 是否必填:否*/ + private String countyName; + + /*换流站id 是否必填:是*/ + private String converterId; + /*换流站名称 是否必填:是*/ + private String converterName; + + /*母线id 是否必填:否*/ + private String busId; + /*母线名称 是否必填:否*/ + private String busName; + /*母线电压等级 是否必填:否*/ + private String busVoltageLevel; + + /*监测点id 是否必填:否*/ + private String monitorId; + + /*站内有效监测点数量(个) 是否必填:是*/ + private Integer effectiveMonitorNum; + /*月均超标天数 是否必填:否*/ + private BigDecimal monthOvDays; + /*奇次谐波电压限值(%) 是否必填:是*/ + private BigDecimal oddVoltLimit; + /*累计超标天数 是否必填:否*/ + private Integer totalOvDays; + /*11次谐波电压95%概率值(%) 是否必填:否*/ + private BigDecimal v11; + /*13次谐波电压95%概率值(%) 是否必填:否*/ + private BigDecimal v13; + /*23次谐波电压95%概率值(%) 是否必填:否*/ + private BigDecimal v23; + /*25次谐波电压95%概率值(%) 是否必填:否*/ + private BigDecimal v25; + /*3次谐波电压95%概率值(%) 是否必填:否*/ + private BigDecimal v3; + /*5次谐波电压95%概率值(%) 是否必填:否*/ + private BigDecimal v5; + /*7次谐波电压95%概率值(%) 是否必填:否*/ + private BigDecimal v7; + /*电压等级 是否必填:是*/ + private String voltageLevel; + /*电压总谐波畸变率95%概率值统计值(%) 是否必填:否*/ + private BigDecimal vthd; + /*电压总谐波畸变率95%概率值限值(%) 是否必填:是*/ + private BigDecimal vthdLimit; + + /*谐波电压超标天数 是否必填:否*/ + private Integer harmvOvDay; + + /*当年累计月数 是否必填:否*/ + private Integer monthsCount; + + + +} diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ROperatingIndexDPO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ROperatingIndexDPO.java index 94e3bfbea..e360133fa 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ROperatingIndexDPO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/po/ROperatingIndexDPO.java @@ -7,7 +7,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.Date; +import java.time.LocalDate; /** * @@ -26,7 +26,6 @@ import java.util.Date; @TableName(value = "r_operating_index_d") @AllArgsConstructor @NoArgsConstructor -@Deprecated public class ROperatingIndexDPO { /** * 单位ID @@ -38,7 +37,7 @@ public class ROperatingIndexDPO { * 时间 */ @MppMultiId(value = "data_date") - private Date dataDate; + private LocalDate dataDate; /** * 在运监测点数 diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/StationDataQualitySendController.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/StationDataQualitySendController.java new file mode 100644 index 000000000..7f6089193 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/controller/majornetwork/StationDataQualitySendController.java @@ -0,0 +1,41 @@ +package com.njcn.harmonic.controller.majornetwork; + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.harmonic.service.majornetwork.StationDataQualityService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * Description: + * Date: 2023/12/6 15:50【需求编号】 + * + * @author clam + * @version V1.0.0 + */ + +@RestController +@Api(tags = "上报电能质量换流站指标统计明细及统计数据接口") +@RequiredArgsConstructor +@RequestMapping("/StationDataQuality") +public class StationDataQualitySendController extends BaseController { + private final StationDataQualityService stationDataQualityService; + @PostMapping("/report") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("上报电能质量换流站指标统计明细及统计数据接口") + public HttpResult report() { + String methodDescribe = getMethodDescribe("report"); + + boolean flag = stationDataQualityService.report(); + + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe); + } +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/StationDataQualityService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/StationDataQualityService.java new file mode 100644 index 000000000..886fd3061 --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/StationDataQualityService.java @@ -0,0 +1,12 @@ +package com.njcn.harmonic.service.majornetwork; + +/** + * Description: + * Date: 2023/12/6 15:57【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface StationDataQualityService { + boolean report(); +} diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/StationDataQualityServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/StationDataQualityServiceImpl.java new file mode 100644 index 000000000..623852cfc --- /dev/null +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/StationDataQualityServiceImpl.java @@ -0,0 +1,46 @@ +package com.njcn.harmonic.service.majornetwork.impl; + +import com.njcn.device.pms.api.MonitorClient; +import com.njcn.device.pms.pojo.po.Monitor; +import com.njcn.harmonic.pojo.dto.SubstationQualityStatisticsDTO; +import com.njcn.harmonic.service.majornetwork.StationDataQualityService; +import com.njcn.user.api.DeptFeignClient; +import com.njcn.user.pojo.vo.PvTerminalTreeVO; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * Description: + * Date: 2023/12/6 15:57【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Service +@RequiredArgsConstructor +public class StationDataQualityServiceImpl implements StationDataQualityService { + + private final MonitorClient monitorClient; + private final DeptFeignClient deptFeignClient; + @Override + public boolean report() { + + List data = monitorClient.getMonitorList(new ArrayList<>()).getData(); + List deptList = deptFeignClient.allDeptList().getData(); + Map mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity())); + Map mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity())); + data.stream().forEach(temp->{ + SubstationQualityStatisticsDTO substaticsDTO = new SubstationQualityStatisticsDTO(); + substaticsDTO.setId("1"); + + }); + + return true; + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java index 666e32c15..5318d4306 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgPointExecutor.java @@ -80,7 +80,11 @@ public class OrgPointExecutor extends BaseExecutor{ public void processOperatingIndexProcess(NodeComponent bindCmp) { String tag = bindCmp.getTag(); CalculatedParam calculatedParam = bindCmp.getRequestData(); - if (tag.equalsIgnoreCase("r_operating_index_m")) { + if (tag.equalsIgnoreCase("r_operating_index_d")) { + //日表 + rOperatingIndexService.handleDay(calculatedParam); + } + else if (tag.equalsIgnoreCase("r_operating_index_m")) { //日表 rOperatingIndexService.handleMonth(calculatedParam); } else if (tag.equalsIgnoreCase("r_operating_index_q")) { diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java index 3d7f2f5fe..14be1aab7 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/PrimaryGridDataServiceImpl.java @@ -1,13 +1,11 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.area; import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; -import com.njcn.device.biz.pojo.param.DeptGetLineParam; import com.njcn.device.pms.pojo.po.Monitor; import com.njcn.harmonic.pojo.po.*; import com.njcn.prepare.harmonic.constant.AlgorithmParam; @@ -26,7 +24,6 @@ import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -225,7 +222,8 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService { ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO(); rOperatingIndexDPO.setOrgNo(orgid); - rOperatingIndexDPO.setDataDate(tempDate); + + rOperatingIndexDPO.setDataDate(LocalDate.parse(primaryGridParam.getDataDate())); rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points); rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points); rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count); @@ -397,7 +395,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService { ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO(); rOperatingIndexDPO.setOrgNo(orgid); - rOperatingIndexDPO.setDataDate(tempDate); + rOperatingIndexDPO.setDataDate(LocalDate.parse(primaryGridParam.getDataDate())); rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points); rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points); rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count); diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetMServiceImpl.java index 9eecb4c82..f61830b65 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetMServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimObjTargetMServiceImpl.java @@ -136,7 +136,7 @@ public class RDimObjTargetMServiceImpl extends MppServiceImplpo.getUaberranceOvertime()>0).distinct().count()+""); } else if ( Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())) { overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po-> - po.getIharm2Overtime()>0|| + po.getIharm2Overtime()>0|| po.getIharm3Overtime() >0|| po.getIharm4Overtime() >0|| po.getIharm5Overtime() >0|| diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/ROperatingIndexService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/ROperatingIndexService.java index abade762c..06410e8e0 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/ROperatingIndexService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/ROperatingIndexService.java @@ -20,4 +20,6 @@ public interface ROperatingIndexService { void handleQtr(CalculatedParam calculatedParam); void handleYear(CalculatedParam calculatedParam); + + void handleDay(CalculatedParam calculatedParam); } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/ROperatingIndexServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/ROperatingIndexServiceImpl.java index 8b5f96276..779b1d99b 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/ROperatingIndexServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/ROperatingIndexServiceImpl.java @@ -7,6 +7,7 @@ import cn.hutool.core.date.LocalDateTimeUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.harmonic.pojo.po.ROperatingIndexDPO; import com.njcn.harmonic.pojo.po.ROperatingIndexMPO; import com.njcn.harmonic.pojo.po.ROperatingIndexQPO; import com.njcn.harmonic.pojo.po.ROperatingIndexYPO; @@ -16,6 +17,7 @@ import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorMPO; import com.njcn.prepare.harmonic.pojo.po.RDnOperatingIndexMPO; import com.njcn.prepare.harmonic.pojo.po.RDnOperatingQPO; import com.njcn.prepare.harmonic.pojo.po.RDnOperatingYPO; +import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexDPOService; import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexMPOService; import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexQPOService; import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexYPOService; @@ -57,6 +59,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { private final ROperatingMonitorService rOperatingMonitorDService; private final ROperatingMonitorMService rOperatingMonitorMService; + private final ROperatingIndexDPOService rOperatingIndexDPOService; private final ROperatingIndexMPOService rOperatingIndexMPOService; private final ROperatingIndexQPOService rOperatingIndexQPOService; private final ROperatingIndexYPOService rOperatingIndexYPOService; @@ -514,6 +517,131 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService { } } + + @Override + public void handleDay(CalculatedParam calculatedParam) { + List rdnOperatingIndexDPOList = new ArrayList<>(); + QueryWrapper queryWrapperD = new QueryWrapper<>(); + DateTime begin = DateUtil.beginOfDay(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfDay(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN); /*获取监测点类型类型*/ + /*获取监测点类型类型*/ + + List lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData(); + Map lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData)); + + + for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) { + if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) { + List collect = deptGetChildrenMoreDTO.getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); + queryWrapperD.clear(); + queryWrapperD.in("measurement_point_id", collect). + between("data_date",begin,end); + + + List rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD); + ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO(); + rOperatingIndexDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); + rOperatingIndexDPO.setDataDate(localDate); + List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + List monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList()); + + List collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1). + map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + Map> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId)); + + Map> collect4 = monitorList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId)); + + rOperatingIndexDPO.setEffectiveAccessMeasurementCount(collect2.size()); + rOperatingIndexDPO.setMeasurementRunPoints(collect.size()); + rOperatingIndexDPO.setOnlineMeasurementCount(collect4.size()); + rOperatingIndexDPO.setTransitMeasurementPoints(collect1.size()); + rOperatingIndexDPO.setOnlineMeasurementPoints(collect3.size()); +// rOperatingIndexMPO.setShouldCount(); + + List collect5 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); + + + double v = rOperatingMonitorDPOList.stream().mapToDouble(temp -> { + return temp.getIndexIntegrityRate().doubleValue(); + }).average().orElse(0.0); + double v1 = rOperatingMonitorDPOList.stream().mapToDouble(temp -> { + return temp.getDataRightRate().doubleValue(); + }).average().orElse(0.0); + double v2 = rOperatingMonitorDPOList.stream().mapToDouble(temp -> { + return temp.getDataIntegrityRate().doubleValue(); + }).average().orElse(0.0); + rOperatingIndexDPO.setIndexIntegrityRate(v); + rOperatingIndexDPO.setDataIntegrityRate(v2); + rOperatingIndexDPO.setIsUnusual(collect5.size()); + rOperatingIndexDPO.setDataRightRate(v1); + rdnOperatingIndexDPOList.add(rOperatingIndexDPO); + + } +// if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { +// if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getPwMonitorIds())) { +// Map> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType)); +// +// collect3.forEach((k,v)->{ +// List collect = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); +// queryWrapperD.clear(); +// queryWrapperD.in("measurement_point_id", collect). +// between("data_date",begin,end); +// +// +// List rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD); +// ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO(); +// rOperatingIndexDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId()); +// rOperatingIndexDPO.setDataDate(localDate); +// List collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1). +// map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); +// +// List monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList()); +// +// List collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1). +// map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); +// +// +// rOperatingIndexDPO.setEffectiveAccessMeasurementCount(collect2.size()); +// rOperatingIndexDPO.setMeasurementRunPoints(collect.size()); +// rOperatingIndexDPO.setTransitMeasurementPoints(collect1.size()); +// +// +// List collect5 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getIsUnusual() == 0).map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList()); +// +// +// double integrity = rOperatingMonitorDPOList.stream().mapToDouble(temp -> { +// return temp.getIndexIntegrityRate().doubleValue(); +// }).average().orElse(0.0); +// double v1 = rOperatingMonitorDPOList.stream().mapToDouble(temp -> { +// return temp.getDataRightRate().doubleValue(); +// }).average().orElse(0.0); +// double v2 = rOperatingMonitorDPOList.stream().mapToDouble(temp -> { +// return temp.getDataIntegrityRate().doubleValue(); +// }).average().orElse(0.0); +// rOperatingIndexDPO.setIndexIntegrityRate(integrity); +// rOperatingIndexDPO.setDataIntegrityRate(v2); +// rOperatingIndexDPO.setIsUnusual(collect5.size()); +// rOperatingIndexDPO.setDataRightRate(v1); +// rdnOperatingIndexMPOList.add(rDnOperatingIndexMPO); +// }); +// +// } +// +// } + } + + + if (!CollectionUtils.isEmpty(rdnOperatingIndexDPOList)){ + rOperatingIndexDPOService.saveOrUpdateBatchByMultiId(rdnOperatingIndexDPOList); + + } + + } + @Deprecated private void hanlderYear(List data, String dataDate, Integer type) {