算法提交

This commit is contained in:
hzj
2023-12-07 13:40:54 +08:00
parent 2704188f75
commit 79e01bbc82
12 changed files with 399 additions and 12 deletions

View File

@@ -21,7 +21,6 @@ import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.dto.DeptDTO; import com.njcn.user.pojo.dto.DeptDTO;
import com.njcn.user.pojo.po.Dept; import com.njcn.user.pojo.po.Dept;
import com.njcn.web.utils.WebUtil; import com.njcn.web.utils.WebUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -149,7 +148,7 @@ public class OverviewServiceImpl implements OverviewService {
//获取数据库数据 //获取数据库数据
List<RMpMonitorAlarmCountM> list = rMpMonitorAlarmCountMService.list(new LambdaQueryWrapper<RMpMonitorAlarmCountM>() List<RMpMonitorAlarmCountM> list = rMpMonitorAlarmCountMService.list(new LambdaQueryWrapper<RMpMonitorAlarmCountM>()
.in(RMpMonitorAlarmCountM::getMeasurementPointId, ids) .in(RMpMonitorAlarmCountM::getMeasurementPointId, ids)
.eq(RMpMonitorAlarmCountM::getDataType,data.getId()) // .eq(RMpMonitorAlarmCountM::getDataType,data.getId())
.ge(StringUtils.isNotBlank(param.getStartTime()), RMpMonitorAlarmCountM::getDataDate, param.getStartTime()) .ge(StringUtils.isNotBlank(param.getStartTime()), RMpMonitorAlarmCountM::getDataDate, param.getStartTime())
.le(StringUtils.isNotBlank(param.getEndTime()), RMpMonitorAlarmCountM::getDataDate, param.getEndTime()) .le(StringUtils.isNotBlank(param.getEndTime()), RMpMonitorAlarmCountM::getDataDate, param.getEndTime())
); );

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -7,7 +7,7 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; 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") @TableName(value = "r_operating_index_d")
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@Deprecated
public class ROperatingIndexDPO { public class ROperatingIndexDPO {
/** /**
* 单位ID * 单位ID
@@ -38,7 +37,7 @@ public class ROperatingIndexDPO {
* 时间 * 时间
*/ */
@MppMultiId(value = "data_date") @MppMultiId(value = "data_date")
private Date dataDate; private LocalDate dataDate;
/** /**
* 在运监测点数 * 在运监测点数

View File

@@ -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<Boolean> report() {
String methodDescribe = getMethodDescribe("report");
boolean flag = stationDataQualityService.report();
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
}
}

View File

@@ -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();
}

View File

@@ -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<Monitor> data = monitorClient.getMonitorList(new ArrayList<>()).getData();
List<PvTerminalTreeVO> deptList = deptFeignClient.allDeptList().getData();
Map<String, PvTerminalTreeVO> mapCode = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getCode, Function.identity()));
Map<String, PvTerminalTreeVO> mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity()));
data.stream().forEach(temp->{
SubstationQualityStatisticsDTO substaticsDTO = new SubstationQualityStatisticsDTO();
substaticsDTO.setId("1");
});
return true;
}
}

View File

@@ -80,7 +80,11 @@ public class OrgPointExecutor extends BaseExecutor{
public void processOperatingIndexProcess(NodeComponent bindCmp) { public void processOperatingIndexProcess(NodeComponent bindCmp) {
String tag = bindCmp.getTag(); String tag = bindCmp.getTag();
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData(); CalculatedParam<DeptGetChildrenMoreDTO> 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); rOperatingIndexService.handleMonth(calculatedParam);
} else if (tag.equalsIgnoreCase("r_operating_index_q")) { } else if (tag.equalsIgnoreCase("r_operating_index_q")) {

View File

@@ -1,13 +1,11 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.area; package com.njcn.prepare.harmonic.service.mysql.Impl.area;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO; 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.device.pms.pojo.po.Monitor;
import com.njcn.harmonic.pojo.po.*; import com.njcn.harmonic.pojo.po.*;
import com.njcn.prepare.harmonic.constant.AlgorithmParam; import com.njcn.prepare.harmonic.constant.AlgorithmParam;
@@ -26,7 +24,6 @@ import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum; import com.njcn.system.enums.DicDataTypeEnum;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
@@ -225,7 +222,8 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO(); ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO();
rOperatingIndexDPO.setOrgNo(orgid); rOperatingIndexDPO.setOrgNo(orgid);
rOperatingIndexDPO.setDataDate(tempDate);
rOperatingIndexDPO.setDataDate(LocalDate.parse(primaryGridParam.getDataDate()));
rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points); rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points);
rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points); rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points);
rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count); rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);
@@ -397,7 +395,7 @@ public class PrimaryGridDataServiceImpl implements PrimaryGridDataService {
ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO(); ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO();
rOperatingIndexDPO.setOrgNo(orgid); rOperatingIndexDPO.setOrgNo(orgid);
rOperatingIndexDPO.setDataDate(tempDate); rOperatingIndexDPO.setDataDate(LocalDate.parse(primaryGridParam.getDataDate()));
rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points); rOperatingIndexDPO.setMeasurementRunPoints(measurement_run_points);
rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points); rOperatingIndexDPO.setTransitMeasurementPoints(transit_measurement_points);
rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count); rOperatingIndexDPO.setEffectiveAccessMeasurementCount(effective_access_measurement_count);

View File

@@ -136,7 +136,7 @@ public class RDimObjTargetMServiceImpl extends MppServiceImpl<RDimObjTargetMMapp
overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getUaberranceOvertime()>0).distinct().count()+""); overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->po.getUaberranceOvertime()>0).distinct().count()+"");
} else if ( Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())) { } else if ( Objects.equals(temp.getCode(), DicDataEnum.HARMONIC_CURRENT.getCode())) {
overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po-> overLimiCount = Integer.valueOf(rStatLimitRateDPOS.stream().filter(po->
po.getIharm2Overtime()>0|| po.getIharm2Overtime()>0||
po.getIharm3Overtime() >0|| po.getIharm3Overtime() >0||
po.getIharm4Overtime() >0|| po.getIharm4Overtime() >0||
po.getIharm5Overtime() >0|| po.getIharm5Overtime() >0||

View File

@@ -20,4 +20,6 @@ public interface ROperatingIndexService {
void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam); void handleQtr(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam); void handleYear(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam);
} }

View File

@@ -7,6 +7,7 @@ import cn.hutool.core.date.LocalDateTimeUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO; 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.ROperatingIndexMPO;
import com.njcn.harmonic.pojo.po.ROperatingIndexQPO; import com.njcn.harmonic.pojo.po.ROperatingIndexQPO;
import com.njcn.harmonic.pojo.po.ROperatingIndexYPO; 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.RDnOperatingIndexMPO;
import com.njcn.prepare.harmonic.pojo.po.RDnOperatingQPO; import com.njcn.prepare.harmonic.pojo.po.RDnOperatingQPO;
import com.njcn.prepare.harmonic.pojo.po.RDnOperatingYPO; 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.ROperatingIndexMPOService;
import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexQPOService; import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexQPOService;
import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexYPOService; import com.njcn.prepare.harmonic.service.mysql.area.ROperatingIndexYPOService;
@@ -57,6 +59,7 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService {
private final ROperatingMonitorService rOperatingMonitorDService; private final ROperatingMonitorService rOperatingMonitorDService;
private final ROperatingMonitorMService rOperatingMonitorMService; private final ROperatingMonitorMService rOperatingMonitorMService;
private final ROperatingIndexDPOService rOperatingIndexDPOService;
private final ROperatingIndexMPOService rOperatingIndexMPOService; private final ROperatingIndexMPOService rOperatingIndexMPOService;
private final ROperatingIndexQPOService rOperatingIndexQPOService; private final ROperatingIndexQPOService rOperatingIndexQPOService;
private final ROperatingIndexYPOService rOperatingIndexYPOService; private final ROperatingIndexYPOService rOperatingIndexYPOService;
@@ -514,6 +517,131 @@ public class ROperatingIndexServiceImpl implements ROperatingIndexService {
} }
} }
@Override
public void handleDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
List<ROperatingIndexDPO> rdnOperatingIndexDPOList = new ArrayList<>();
QueryWrapper<ROperatingMonitorDPO> 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<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
if (!CollectionUtils.isEmpty(deptGetChildrenMoreDTO.getLineBaseList())) {
List<String> collect = deptGetChildrenMoreDTO.getLineBaseList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
queryWrapperD.clear();
queryWrapperD.in("measurement_point_id", collect).
between("data_date",begin,end);
List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO();
rOperatingIndexDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
rOperatingIndexDPO.setDataDate(localDate);
List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
List<String> collect2 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getDataIntegrityRate().doubleValue() > 0.95 && temp.getIsUnusual() == 1).
map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
Map<String, List<ROperatingMonitorDPO>> collect3 = rOperatingMonitorDPOList.stream().collect(Collectors.groupingBy(ROperatingMonitorDPO::getDevId));
Map<String, List<ROperatingMonitorDPO>> 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<String> 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<Integer, List<LineDevGetDTO>> collect3 = deptGetChildrenMoreDTO.getPwMonitorIds().stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineType));
//
// collect3.forEach((k,v)->{
// List<String> collect = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
// queryWrapperD.clear();
// queryWrapperD.in("measurement_point_id", collect).
// between("data_date",begin,end);
//
//
// List<ROperatingMonitorDPO> rOperatingMonitorDPOList = rOperatingMonitorDService.list(queryWrapperD);
// ROperatingIndexDPO rOperatingIndexDPO = new ROperatingIndexDPO();
// rOperatingIndexDPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
// rOperatingIndexDPO.setDataDate(localDate);
// List<String> collect1 = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).
// map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
//
// List<ROperatingMonitorDPO> monitorList = rOperatingMonitorDPOList.stream().filter(temp -> temp.getEffectiveMinuteCount() > 1).collect(Collectors.toList());
//
// List<String> 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<String> 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 @Deprecated
private void hanlderYear(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) { private void hanlderYear(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {