zbj//1.单位监测点暂态指标统计 年 算法
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package com.njcn.prepare.harmonic.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author zbj
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
@Data
|
||||
@TableName("r_stat_event_y")
|
||||
public class RStatEventYPO {
|
||||
|
||||
@MppMultiId(value = "org_no")
|
||||
private String orgNo;
|
||||
|
||||
@MppMultiId(value = "data_date")
|
||||
private LocalDate dataDate;
|
||||
|
||||
@MppMultiId(value = "measurement_type_class")
|
||||
private String measurementTypeClass;
|
||||
|
||||
@MppMultiId(value = "event_type")
|
||||
private String eventType;
|
||||
|
||||
@TableField(value = "event_measurement_average")
|
||||
private Float eventMeasurementAverage;
|
||||
|
||||
@TableField(value = "event_measurement_accrued")
|
||||
private Integer eventMeasurementAccrued;
|
||||
|
||||
@TableField(value = "event_freq")
|
||||
private Float eventFreq;
|
||||
|
||||
@TableField(value = "event_count")
|
||||
private Integer eventCount;
|
||||
|
||||
@TableField(value = "event_measurement_ratio_average")
|
||||
private Float eventMeasurementRatioAverage;
|
||||
|
||||
@TableField(value = "event_measurement_ratio_accrued")
|
||||
private Float eventMeasurementRatioAccrued;
|
||||
|
||||
@MppMultiId(value = "data_type")
|
||||
private String dataType;
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.njcn.prepare.harmonic.pojo.po;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 区域分类统计季表
|
||||
* </p>
|
||||
*
|
||||
* @author zbj
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
@Data
|
||||
@TableName("r_stat_org_y")
|
||||
public class RStatOrgYPO {
|
||||
|
||||
@MppMultiId(value = "org_no")
|
||||
private String orgNo;
|
||||
|
||||
@MppMultiId(value = "data_date")
|
||||
private LocalDate dataDate;
|
||||
|
||||
@MppMultiId(value = "measurement_type_class")
|
||||
private String measurementTypeClass;
|
||||
|
||||
@TableField(value = "all_count")
|
||||
private Integer allCount;
|
||||
|
||||
@TableField(value = "effective_measurement_average")
|
||||
private Integer effectiveMeasurementAverage;
|
||||
|
||||
@TableField(value = "effective_measurement_accrued")
|
||||
private Integer effectiveMeasurementAccrued;
|
||||
|
||||
@TableField(value = "harmonic_measurement_average")
|
||||
private Integer harmonicMeasurementAverage;
|
||||
|
||||
@TableField(value = "harmonic_measurement_accrued")
|
||||
private Integer harmonicMeasurementAccrued;
|
||||
|
||||
@TableField(value = "harmonic_measurement_ratio_average")
|
||||
private Float harmonicMeasurementRatioAverage;
|
||||
|
||||
@TableField(value = "average_over_day")
|
||||
private Float averageOverDay;
|
||||
|
||||
@TableField(value = "freq_pass_rate")
|
||||
private Float freqPassRate;
|
||||
|
||||
@TableField(value = "v_dev_pass_rate")
|
||||
private Float vDevPassRate;
|
||||
|
||||
@TableField(value = "flicker_pass_rate")
|
||||
private Float flickerPassRate;
|
||||
|
||||
@TableField(value = "event_measurement_average")
|
||||
private Integer eventMeasurementAverage;
|
||||
|
||||
@TableField(value = "event_measurement_accrued")
|
||||
private Integer eventMeasurementAccrued;
|
||||
|
||||
@TableField(value = "event_measurement_average")
|
||||
private Float eventMeasurementRatioAverage;
|
||||
|
||||
@TableField(value = "event_freq")
|
||||
private Float eventFreq;
|
||||
|
||||
@TableField(value = "event_count")
|
||||
private Integer eventCount;
|
||||
|
||||
@TableField(value = "should_count")
|
||||
private Integer shouldCount;
|
||||
|
||||
@TableField(value = "warn_count")
|
||||
private Integer warnCount;
|
||||
|
||||
@MppMultiId(value = "data_type")
|
||||
private String dataType;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.njcn.prepare.harmonic.mapper.mysql.area;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatOrgYPO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2022/12/14 16:17【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Mapper
|
||||
public interface RStatOrgYMapper extends MppBaseMapper<RStatOrgYPO> {
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventYPO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* 接口文档访问地址:http://serverIP:port/swagger-ui.html
|
||||
* Date: 2022/12/13 15:39【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Mapper
|
||||
public interface RStatEventYPOMapper extends MppBaseMapper<RStatEventYPO> {
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
|
||||
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.IMppService;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventYPO;
|
||||
|
||||
|
||||
/**
|
||||
* @author zbj
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
|
||||
public interface RStatEventYPOService extends IMppService<RStatEventYPO> {
|
||||
}
|
||||
@@ -12,18 +12,13 @@ import com.njcn.harmonic.pojo.po.RStatOrgMPO;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgYMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailMMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventDPOMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventMPOMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventDPO;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventMPO;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventQPO;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatOrgQPO;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventDPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventMPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventQPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventService;
|
||||
import com.njcn.prepare.harmonic.pojo.po.*;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
|
||||
import com.njcn.system.api.DicDataFeignClient;
|
||||
import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.enums.DicDataTypeEnum;
|
||||
@@ -36,6 +31,7 @@ import org.springframework.util.CollectionUtils;
|
||||
import java.text.DecimalFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -66,18 +62,22 @@ public class RStatEventServiceImpl implements RStatEventService {
|
||||
|
||||
private final RStatEventMPOService rStatEventMPOService;
|
||||
|
||||
private final RStatEventQPOService rStatEventQPOService;
|
||||
|
||||
private final RStatEventDPOMapper rStatEventDPOMapper;
|
||||
|
||||
private final RStatEventMPOMapper rStatEventMPOMapper;
|
||||
|
||||
private final RStatEventQPOService rStatEventQPOService;
|
||||
|
||||
private final RStatEventYPOService rStatEventYPOService;
|
||||
|
||||
private final RStatOrgDMapper rStatOrgDMapper;
|
||||
|
||||
private final RStatOrgMMapper rStatOrgMMapper;
|
||||
|
||||
private final RStatOrgQMapper rStatOrgQMapper;
|
||||
|
||||
private final RStatOrgYMapper rStatOrgYMapper;
|
||||
|
||||
@Override
|
||||
public void handler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||
switch (type) {
|
||||
@@ -703,11 +703,14 @@ public class RStatEventServiceImpl implements RStatEventService {
|
||||
|
||||
//年表
|
||||
public void rStartEventYHandler(List<DeptGetChildrenMoreDTO> data, String dataDate, Integer type) {
|
||||
List<RStatEventDPO> rStatEventDPOList = new ArrayList<>();
|
||||
List<RStatEventYPO> rStatEventYPOList = new ArrayList<>();
|
||||
DecimalFormat df = new DecimalFormat("0.00");
|
||||
Date date = DateUtil.parse(dataDate);
|
||||
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
|
||||
// 获取当前年的起始日期和结束日期
|
||||
LocalDate date1 = LocalDate.parse(dataDate, DateTimeFormatter.ISO_LOCAL_DATE);
|
||||
LocalDate startDate = date1.withDayOfYear(1);
|
||||
LocalDate endDate = date1.withDayOfYear(365).plusDays(1);
|
||||
/*获取暂态统计指标*/
|
||||
List<DictData> eventStatis = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVENT_STATIS.getCode()).getData();
|
||||
|
||||
@@ -719,8 +722,14 @@ public class RStatEventServiceImpl implements RStatEventService {
|
||||
List<DictData> lineSortList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_SORT.getCode()).getData();
|
||||
Map<String, DictData> lineSortMap = lineSortList.stream().collect(Collectors.toMap(DictData::getCode, dictData -> dictData));
|
||||
|
||||
QueryWrapper<RMpEventDetailDPO> rMpEventDetailDPOQueryWrapper = new QueryWrapper<>();
|
||||
QueryWrapper<RStatOrgDPO> rStatOrgDPOQueryWrapper = new QueryWrapper<>();
|
||||
//详情表
|
||||
QueryWrapper<RMpEventDetailMPO> rMpEventDetailMPOQueryWrapper = new QueryWrapper<>();
|
||||
//org年表
|
||||
QueryWrapper<RStatOrgYPO> rStatOrgYPOQueryWrapper = new QueryWrapper<>();
|
||||
//天表
|
||||
QueryWrapper<RStatEventDPO> rStatEventDPOQueryWrapper = new QueryWrapper<>();
|
||||
//月表
|
||||
QueryWrapper<RStatEventMPO> rStatEventMPOQueryWrapper = new QueryWrapper<>();
|
||||
|
||||
data.forEach(deptGetChildrenMoreDTO -> {
|
||||
|
||||
@@ -731,6 +740,101 @@ public class RStatEventServiceImpl implements RStatEventService {
|
||||
collect.forEach((k, v) -> {
|
||||
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
|
||||
rMpEventDetailMPOQueryWrapper.clear();
|
||||
rMpEventDetailMPOQueryWrapper.
|
||||
in("measurement_point_id", collect1).
|
||||
between("data_date", startDate, endDate);
|
||||
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||
|
||||
//年表
|
||||
rStatOrgYPOQueryWrapper.clear();
|
||||
rStatOrgYPOQueryWrapper.select("effective_measurement_accrued").
|
||||
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId()).
|
||||
between("data_date", startDate, endDate);
|
||||
|
||||
RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper);
|
||||
|
||||
//天表
|
||||
rStatEventDPOQueryWrapper.clear();
|
||||
rStatEventDPOQueryWrapper.
|
||||
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||
between("data_date", startDate, endDate).
|
||||
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||
List<RStatEventDPO> rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
|
||||
|
||||
//月表
|
||||
rStatEventMPOQueryWrapper.clear();
|
||||
rStatEventMPOQueryWrapper.
|
||||
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||
between("data_date", startDate, endDate).
|
||||
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||
eq("data_type", dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||
List<RStatEventMPO> rStatEventMPO = rStatEventMPOMapper.selectList(rStatEventMPOQueryWrapper);
|
||||
|
||||
//求各个类型的平均值(月表)
|
||||
Map<String, Double> avgEMM = rStatEventMPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementAverage)));
|
||||
|
||||
//event_measurement的和
|
||||
Map<String, Integer> sumEM = rStatEventDPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
|
||||
|
||||
//event_count(天表)
|
||||
Map<String, Integer> sumEC = rStatEventDPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
|
||||
|
||||
//event_count(月表)
|
||||
Map<String, Integer> sumECM = rStatEventMPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.summingInt(RStatEventMPO::getEventCount)));
|
||||
|
||||
//event_measurement_ratio_average(月表)
|
||||
Map<String, Double> avgEMRM = rStatEventMPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementRatioAverage)));
|
||||
|
||||
|
||||
eventStatis.forEach(dictData -> {
|
||||
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||
return;
|
||||
}
|
||||
//累计发生暂态监测点数
|
||||
Integer statisData = getStatisQData(dictData, rMpEventDetailMPOS);
|
||||
|
||||
RStatEventYPO rStatEventYPO = new RStatEventYPO();
|
||||
rStatEventYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||
rStatEventYPO.setDataDate(localDate);
|
||||
rStatEventYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||
rStatEventYPO.setEventType(dictData.getId());
|
||||
rStatEventYPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEMM.get(dictData.getId()))));
|
||||
// todo
|
||||
rStatEventYPO.setEventMeasurementAccrued(statisData);
|
||||
rStatEventYPO.setEventCount(sumECM.get(dictData.getId()));
|
||||
rStatEventYPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMRM.get(dictData.getId()))));
|
||||
rStatEventYPO.setDataType(dataTypeMap.get(DicDataEnum.MAINNET_POINT.getCode()).getId());
|
||||
|
||||
if (sumEM.get(dictData.getId()) == 0) {
|
||||
rStatEventYPO.setEventFreq(1.00f);
|
||||
} else {
|
||||
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()));
|
||||
rStatEventYPO.setEventFreq(Float.parseFloat(value));
|
||||
}
|
||||
if (Objects.isNull(rStatOrgYPO)) {
|
||||
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
|
||||
} else {
|
||||
if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) {
|
||||
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
|
||||
} else {
|
||||
String value = df.format(statisData / rStatOrgYPO.getEffectiveMeasurementAccrued());
|
||||
rStatEventYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||
}
|
||||
}
|
||||
rStatEventYPOList.add(rStatEventYPO);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -741,12 +845,107 @@ public class RStatEventServiceImpl implements RStatEventService {
|
||||
collect.forEach((k, v) -> {
|
||||
List<String> collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
|
||||
|
||||
rMpEventDetailMPOQueryWrapper.clear();
|
||||
rMpEventDetailMPOQueryWrapper.
|
||||
in("measurement_point_id", collect1).
|
||||
between("data_date", startDate, endDate);
|
||||
List<RMpEventDetailMPO> rMpEventDetailMPOS = rMpEventDetailMMapper.selectList(rMpEventDetailMPOQueryWrapper);
|
||||
|
||||
//年表
|
||||
rStatOrgYPOQueryWrapper.clear();
|
||||
rStatOrgYPOQueryWrapper.select("effective_measurement_accrued").
|
||||
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId()).
|
||||
between("data_date", startDate, endDate);
|
||||
|
||||
RStatOrgYPO rStatOrgYPO = rStatOrgYMapper.selectOne(rStatOrgYPOQueryWrapper);
|
||||
|
||||
//天表
|
||||
rStatEventDPOQueryWrapper.clear();
|
||||
rStatEventDPOQueryWrapper.
|
||||
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||
between("data_date", startDate, endDate).
|
||||
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||
List<RStatEventDPO> rStatEventDPO = rStatEventDPOMapper.selectList(rStatEventDPOQueryWrapper);
|
||||
|
||||
//月表
|
||||
rStatEventMPOQueryWrapper.clear();
|
||||
rStatEventMPOQueryWrapper.
|
||||
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
|
||||
between("data_date", startDate, endDate).
|
||||
eq("measurement_type_class", getmeasurementType(k, lineSortMap)).
|
||||
eq("data_type", dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||
List<RStatEventMPO> rStatEventMPO = rStatEventMPOMapper.selectList(rStatEventMPOQueryWrapper);
|
||||
|
||||
//求各个类型的平均值(月表)
|
||||
Map<String, Double> avgEMM = rStatEventMPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementAverage)));
|
||||
|
||||
//event_measurement的和
|
||||
Map<String, Integer> sumEM = rStatEventDPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventMeasurement)));
|
||||
|
||||
//event_count(天表)
|
||||
Map<String, Integer> sumEC = rStatEventDPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventDPO::getEventType, Collectors.summingInt(RStatEventDPO::getEventCount)));
|
||||
|
||||
//event_count(月表)
|
||||
Map<String, Integer> sumECM = rStatEventMPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.summingInt(RStatEventMPO::getEventCount)));
|
||||
|
||||
//event_measurement_ratio_average(月表)
|
||||
Map<String, Double> avgEMRM = rStatEventMPO.stream()
|
||||
.collect(Collectors.groupingBy(RStatEventMPO::getEventType, Collectors.averagingDouble(RStatEventMPO::getEventMeasurementRatioAverage)));
|
||||
|
||||
|
||||
eventStatis.forEach(dictData -> {
|
||||
if (Objects.equals(dictData.getCode(), DicDataEnum.DISTURBANCE.getCode())
|
||||
|| Objects.equals(dictData.getCode(), DicDataEnum.OTHER.getCode())
|
||||
|| Objects.equals(dictData.getCode(), DicDataEnum.RECORDING_WAVE.getCode())
|
||||
|| Objects.equals(dictData.getCode(), DicDataEnum.TOTAL_INDICATORS.getCode())) {
|
||||
return;
|
||||
}
|
||||
//累计发生暂态监测点数
|
||||
Integer statisData = getStatisQData(dictData, rMpEventDetailMPOS);
|
||||
|
||||
RStatEventYPO rStatEventYPO = new RStatEventYPO();
|
||||
rStatEventYPO.setOrgNo(deptGetChildrenMoreDTO.getUnitId());
|
||||
rStatEventYPO.setDataDate(localDate);
|
||||
rStatEventYPO.setMeasurementTypeClass(getmeasurementType(k, lineSortMap));
|
||||
rStatEventYPO.setEventType(dictData.getId());
|
||||
rStatEventYPO.setEventMeasurementAverage(Float.parseFloat(df.format(avgEMM.get(dictData.getId()))));
|
||||
// todo
|
||||
rStatEventYPO.setEventMeasurementAccrued(statisData);
|
||||
rStatEventYPO.setEventCount(sumECM.get(dictData.getId()));
|
||||
rStatEventYPO.setEventMeasurementRatioAverage(Float.parseFloat(df.format(avgEMRM.get(dictData.getId()))));
|
||||
rStatEventYPO.setDataType(dataTypeMap.get(DicDataEnum.DISTRIBUTION_POINT.getCode()).getId());
|
||||
|
||||
if (sumEM.get(dictData.getId()) == 0) {
|
||||
rStatEventYPO.setEventFreq(1.00f);
|
||||
} else {
|
||||
String value = df.format(sumEC.get(dictData.getId()) / sumEM.get(dictData.getId()));
|
||||
rStatEventYPO.setEventFreq(Float.parseFloat(value));
|
||||
}
|
||||
if (Objects.isNull(rStatOrgYPO)) {
|
||||
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
|
||||
} else {
|
||||
if (rStatOrgYPO.getEffectiveMeasurementAccrued() == 0) {
|
||||
rStatEventYPO.setEventMeasurementRatioAccrued(1.00f);
|
||||
} else {
|
||||
String value = df.format(statisData / rStatOrgYPO.getEffectiveMeasurementAccrued());
|
||||
rStatEventYPO.setEventMeasurementRatioAccrued(Float.parseFloat(value));
|
||||
}
|
||||
}
|
||||
rStatEventYPOList.add(rStatEventYPO);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
if (!CollectionUtils.isEmpty(rStatEventDPOList)) {
|
||||
rStatEventDPOService.saveOrUpdateBatchByMultiId(rStatEventDPOList, 500);
|
||||
if (!CollectionUtils.isEmpty(rStatEventYPOList)) {
|
||||
rStatEventYPOService.saveOrUpdateBatchByMultiId(rStatEventYPOList, 500);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
|
||||
|
||||
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventQPOMapper;
|
||||
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventYPOMapper;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventQPO;
|
||||
import com.njcn.prepare.harmonic.pojo.po.RStatEventYPO;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventQPOService;
|
||||
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatEventYPOService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 终端检测监督
|
||||
* </p>
|
||||
*
|
||||
* @author zbj
|
||||
* @since 2023-06-09
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RStatEventYPOServiceImpl extends MppServiceImpl<RStatEventYPOMapper, RStatEventYPO> implements RStatEventYPOService {
|
||||
}
|
||||
Reference in New Issue
Block a user