zbj//1.变电站指标统计_月统计 算法

This commit is contained in:
zhangbaojian
2023-06-20 16:06:26 +08:00
parent d68b89763b
commit 29a6dfe038
11 changed files with 760 additions and 127 deletions

View File

@@ -0,0 +1,116 @@
package com.njcn.prepare.harmonic.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDate;
/**
*
* @author zbj
* @since 2023-06-20
*/
@Data
@TableName("r_stat_substation_m")
public class RStatSubstationMPO {
@MppMultiId(value = "data_date")
private LocalDate dataDate;
@MppMultiId(value = "substation_id")
private String substationId;
@TableField(value = "effective_measurement_average")
private Float effectiveMeasurementAverage;
@TableField(value = "effective_measurement_accrued")
private Integer effectiveMeasurementAccrued;
@TableField(value = "harmonic_over_day")
private Float harmonicOverDay;
@TableField(value = "harmonic_count")
private Integer harmonicCount;
@TableField(value = "freq_over_day")
private Float freqOverDay;
@TableField(value = "freq_count")
private Integer freqCount;
@TableField(value = "v_dev_over_day")
private Float vDevOverDay;
@TableField(value = "v_dev_count")
private Integer vDevCount;
@TableField(value = "v_over_day")
private Float vOverDay;
@TableField(value = "v_count")
private Integer vCount;
@TableField(value = "i_over_day")
private Float iOverDay;
@TableField(value = "i_count")
private Integer iCount;
@TableField(value = "unbalance_over_day")
private Float unbalanceOverDay;
@TableField(value = "unbalance_count")
private Integer unbalanceCount;
@TableField(value = "i_neg_over_day")
private Float iNegOverDay;
@TableField(value = "i_neg_count")
private Integer iNegCount;
@TableField(value = "flicker_over_day")
private Float flickerOverDay;
@TableField(value = "flicker_count")
private Integer flickerCount;
@TableField(value = "inuharm_over_day")
private Float inuharmOverDay;
@TableField(value = "inuharm_count")
private Integer inuharmCount;
@TableField(value = "event_count")
private Integer eventCount;
@TableField(value = "event_freq")
private Float eventFreq;
@TableField(value = "sag_count")
private Integer sagCount;
@TableField(value = "sag_freq")
private Float sagFreq;
@TableField(value = "swell_count")
private Integer swellCount;
@TableField(value = "swell_freq")
private Float swellFreq;
@TableField(value = "interrupt_count")
private Integer interruptCount;
@TableField(value = "interrupt_freq")
private Float interruptFreq;
}

View File

@@ -5,6 +5,7 @@ import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* RMpPartHarmonicDetailMMapper * RMpPartHarmonicDetailMMapper
@@ -17,4 +18,6 @@ public interface RMpPartHarmonicDetailMMapper extends MppBaseMapper<RMpPartHarmo
List<RMpPartHarmonicDetailM> getHarmonicDetailMonthOne(@Param("startTime") String startTime, @Param("endTime")String endTime, @Param("lineList") List<String> lineList); List<RMpPartHarmonicDetailM> getHarmonicDetailMonthOne(@Param("startTime") String startTime, @Param("endTime")String endTime, @Param("lineList") List<String> lineList);
Map<String, Object> getPartSum(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("lineIds") List<String> lineIds);
} }

View File

@@ -6,6 +6,7 @@ import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailM;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* RMpSurplusHarmonicDetailMMapper * RMpSurplusHarmonicDetailMMapper
@@ -18,4 +19,6 @@ public interface RMpSurplusHarmonicDetailMMapper extends MppBaseMapper<RMpSurplu
List<RMpSurplusHarmonicDetailM> getHarmonicDetailMonthTwo(@Param("startTime") String startTime,@Param("endTime") String endTime, @Param("lineList") List<String> lineList); List<RMpSurplusHarmonicDetailM> getHarmonicDetailMonthTwo(@Param("startTime") String startTime,@Param("endTime") String endTime, @Param("lineList") List<String> lineList);
Map<String, Object> getSurplusSum(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("lineIds") List<String> lineIds);
} }

View File

@@ -127,4 +127,23 @@
measurement_point_id measurement_point_id
</select> </select>
<select id="getPartSum" resultType="java.util.Map">
SELECT
count( CASE WHEN measurement_over_day > 0 THEN 1 END ) "measurementOverDayCount",
count( CASE WHEN freq_over_day > 0 THEN 1 END ) "freqOverDayCount",
count( CASE WHEN v_dev_over_day > 0 THEN 1 END ) "vDevOverDayCount",
count( CASE WHEN v_over_day > 0 THEN 1 END ) "vOverDayCount",
count( CASE WHEN i_over_day > 0 THEN 1 END ) "iOverDayCount",
count( CASE WHEN unbalance_over_day > 0 THEN 1 END ) "unbalanceOverDayCount",
count( CASE WHEN i_neg_over_day > 0 THEN 1 END ) "iNegOverDayCount"
FROM
r_mp_part_harmonic_detail_m
WHERE
measurement_point_id in
<foreach collection="lineIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
AND data_date between #{startTime} and #{endTime}
</select>
</mapper> </mapper>

View File

@@ -71,4 +71,18 @@
measurement_point_id measurement_point_id
</select> </select>
<select id="getSurplusSum" resultType="java.util.Map">
SELECT
count( CASE WHEN flicker_over_day > 0 THEN 1 END ) "flickerOverDayCount",
count( CASE WHEN inuharm_over_day > 0 THEN 1 END ) "inuharmOverDayCount"
FROM
r_mp_surplus_harmonic_detail_m
WHERE
measurement_point_id in
<foreach collection="lineIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
AND data_date between #{startTime} and #{endTime}
</select>
</mapper> </mapper>

View File

@@ -1,13 +1,12 @@
package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm; package com.njcn.prepare.harmonic.mapper.mysql.newalgorithm;
import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
import com.njcn.prepare.harmonic.pojo.po.RStatEventDPO;
import com.njcn.prepare.harmonic.pojo.po.RStatEventDVO;
import com.njcn.prepare.harmonic.pojo.po.RStatSubstationDPO; import com.njcn.prepare.harmonic.pojo.po.RStatSubstationDPO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Description: * Description:
@@ -19,4 +18,7 @@ import java.util.List;
*/ */
@Mapper @Mapper
public interface RStatSubstationDPOMapper extends MppBaseMapper<RStatSubstationDPO> { public interface RStatSubstationDPOMapper extends MppBaseMapper<RStatSubstationDPO> {
Map<String, Object> getSumAndCount(@Param("startTime") String startTime, @Param("endTime") String endTime, @Param("substationId") String substationId);
} }

View File

@@ -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.RStatSubstationMPO;
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 RStatSubstationMPOMapper extends MppBaseMapper<RStatSubstationMPO> {
}

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatSubstationDPOMapper">
<select id="getSumAndCount" resultType="java.util.Map">
SELECT t.effectiveMeasurementCountAvg,
t.harmonicCountCount,
t.freqCountCount,
t.vDevCountCount,
t.vCountCount,
t.iCountCount,
t.unbalanceCountCount,
t.iNegCountCount,
t.flickerCountCount,
t.inuharmCountCount,
t.eventCountSum,
CASE
WHEN t.eventMeasurementCountSum = 0 THEN
0.00
ELSE round(t.eventCountSum / t.eventMeasurementCountSum, 2)
END "eventCountFrequency",
t.sagCountSum,
CASE
WHEN t.sagMeasurementCountSum = 0 THEN
0.00
ELSE round(t.sagCountSum / t.sagMeasurementCountSum, 2)
END "sagCountFrequency",
t.swellCountSum,
CASE
WHEN t.swellMeasurementCountSum = 0 THEN
0.00
ELSE round(t.swellCountSum / t.swellMeasurementCountSum, 2)
END "swellCountFrequency",
t.interruptCountSum,
CASE
WHEN t.interruptMeasurementCountSum = 0 THEN
0.00
ELSE round(t.interruptCountSum / t.interruptMeasurementCountSum, 2)
END "interruptCountFrequency"
FROM (
SELECT round(avg(effective_measurement_count), 2) "effectiveMeasurementCountAvg",
count(CASE WHEN harmonic_count > 0 THEN 1 END) "harmonicCountCount",
count(CASE WHEN freq_count > 0 THEN 1 END) "freqCountCount",
count(CASE WHEN v_dev_count > 0 THEN 1 END) "vDevCountCount",
count(CASE WHEN v_count > 0 THEN 1 END) "vCountCount",
count(CASE WHEN i_count > 0 THEN 1 END) "iCountCount",
count(CASE WHEN unbalance_count > 0 THEN 1 END) "unbalanceCountCount",
count(CASE WHEN i_neg_count > 0 THEN 1 END) "iNegCountCount",
count(CASE WHEN flicker_count > 0 THEN 1 END) "flickerCountCount",
count(CASE WHEN inuharm_count > 0 THEN 1 END) "inuharmCountCount",
sum(event_count) "eventCountSum",
sum(event_measurement_count) "eventMeasurementCountSum",
sum(sag_count) "sagCountSum",
sum(sag_measurement_count) "sagMeasurementCountSum",
sum(swell_count) "swellCountSum",
sum(swell_measurement_count) "swellMeasurementCountSum",
sum(interrupt_count) "interruptCountSum",
sum(interrupt_measurement_count) "interruptMeasurementCountSum"
FROM r_stat_substation_d
WHERE substation_id = #{substationId}
AND data_date between #{startTime} and #{endTime}
) t
</select>
</mapper>

View File

@@ -0,0 +1,15 @@
package com.njcn.prepare.harmonic.service.mysql.newalgorithm;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.prepare.harmonic.pojo.po.RStatSubstationDPO;
import com.njcn.prepare.harmonic.pojo.po.RStatSubstationMPO;
/**
* @author zbj
* @since 2023-06-19
*/
public interface RStatSubstationMPOService extends IMppService<RStatSubstationMPO> {
}

View File

@@ -0,0 +1,21 @@
package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatSubstationDPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatSubstationMPOMapper;
import com.njcn.prepare.harmonic.pojo.po.RStatSubstationDPO;
import com.njcn.prepare.harmonic.pojo.po.RStatSubstationMPO;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatSubstationDPOService;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatSubstationMPOService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
*
* @author zbj
* @since 2023-06-19
*/
@Service
@RequiredArgsConstructor
public class RStatSubstationMPOServiceImpl extends MppServiceImpl<RStatSubstationMPOMapper, RStatSubstationMPO> implements RStatSubstationMPOService {
}

View File

@@ -12,12 +12,10 @@ import com.njcn.harmonic.pojo.po.RMpEventDetailMPO;
import com.njcn.harmonic.pojo.po.RStatOrgDPO; import com.njcn.harmonic.pojo.po.RStatOrgDPO;
import com.njcn.harmonic.pojo.po.RStatOrgMPO; import com.njcn.harmonic.pojo.po.RStatOrgMPO;
import com.njcn.prepare.harmonic.mapper.mysql.area.*; import com.njcn.prepare.harmonic.mapper.mysql.area.*;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailDMapper; import com.njcn.prepare.harmonic.mapper.mysql.line.*;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpEventDetailMMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventDPOMapper; import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventDPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventMPOMapper; import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatEventMPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.newalgorithm.RStatSubstationDPOMapper;
import com.njcn.prepare.harmonic.pojo.po.*; import com.njcn.prepare.harmonic.pojo.po.*;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*; import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.api.DicDataFeignClient;
@@ -29,6 +27,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.text.DecimalFormat; import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.ZoneId; import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@@ -54,12 +53,20 @@ public class RStatSubstationServiceImpl implements RStatSubstationService {
private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper; private final RMpPartHarmonicDetailDMapper rMpPartHarmonicDetailDMapper;
private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper;
private final RMpSurplusHarmonicDetailDMapper mpSurplusHarmonicDetailDMapper; private final RMpSurplusHarmonicDetailDMapper mpSurplusHarmonicDetailDMapper;
private final RMpSurplusHarmonicDetailMMapper mpSurplusHarmonicDetailMMapper;
private final RMpEventDetailDMapper rMpEventDetailDMapper; private final RMpEventDetailDMapper rMpEventDetailDMapper;
private final RStatSubstationDPOService rStatSubstationDPOService; private final RStatSubstationDPOService rStatSubstationDPOService;
private final RStatSubstationMPOService rStatSubstationMPOService;
private final RStatSubstationDPOMapper rStatSubstationDPOMapper;
@Override @Override
public void handler(List<DeptGetSubStationDTO> data, String dataDate, Integer type) { public void handler(List<DeptGetSubStationDTO> data, String dataDate, Integer type) {
switch (type) { switch (type) {
@@ -68,10 +75,10 @@ public class RStatSubstationServiceImpl implements RStatSubstationService {
break; break;
case 2: case 2:
this.rStartEventQHandler(data, dataDate, type); this.rStartEventQHandler(data, dataDate, type);
break;
case 3:
this.rStartEventMHandler(data, dataDate, type);
break;*/ break;*/
case 3:
this.rStatSubstationMHandler(data, dataDate, type);
break;
case 5: case 5:
this.rStatSubstationDHandler(data, dataDate, type); this.rStatSubstationDHandler(data, dataDate, type);
break; break;
@@ -323,4 +330,351 @@ public class RStatSubstationServiceImpl implements RStatSubstationService {
} }
} }
//月表
public void rStatSubstationMHandler(List<DeptGetSubStationDTO> data, String dataDate, Integer type) {
List<RStatSubstationMPO> rStatSubstationMPOS = new ArrayList<>();
Date date = DateUtil.parse(dataDate);
LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
//传入字符串日期获取月的起始日期与结束日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.DAY_OF_MONTH, 1); // 将日期设置为当月的第一天
String startTime = sdf.format(calendar.getTime()); // 获取当月的起始日期
calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); // 将日期设置为当月的最后一天
String endTime = sdf.format(calendar.getTime());// 获取当月的结束日期
List<String> zwList = new ArrayList<>();
List<String> pwList = new ArrayList<>();
for (DeptGetSubStationDTO datum : data) {
if (!CollectionUtils.isEmpty(datum.getStationIds())) {
zwList.addAll(datum.getStationIds());
}
if (!CollectionUtils.isEmpty(datum.getPwStationIds())) {
pwList.addAll(datum.getPwStationIds());
}
}
List<String> zw = zwList.stream().distinct().collect(Collectors.toList());
List<String> pw = pwList.stream().distinct().collect(Collectors.toList());
//主网
if (!CollectionUtils.isEmpty(zw)) {
zw.forEach(z -> {
//获取监测点对象集合
LineDevGetBandDTO lineDevGetDTOs = commTerminalGeneralClient.substationGetLine(z).getData();
//获取监测点id集合
List<String> lineIds = lineDevGetDTOs.getZwList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
//判空
if (!CollectionUtils.isEmpty(lineIds)) {
//r_mp_target_warn_d 表中字段求和
Map<String, Object> warnSum = rMpTargetWarnDMapper.getSumDate(startTime, endTime, lineIds);
//r_mp_part_harmonic_detail_m 表中字段求和
Map<String, Object> partSum = rMpPartHarmonicDetailMMapper.getPartSum(startTime, endTime, lineIds);
//r_mp_surplus_harmonic_detail_m 表中字段求和
Map<String, Object> surplusSum = mpSurplusHarmonicDetailMMapper.getSurplusSum(dataDate, dataDate, lineIds);
//r_stat_substation_d 表中字段求和及计数
Map<String, Object> eventDetailSumAndCount = rStatSubstationDPOMapper.getSumAndCount(dataDate, dataDate, z);
RStatSubstationMPO rStatSubstationMPO = new RStatSubstationMPO();
rStatSubstationMPO.setDataDate(localDate);
rStatSubstationMPO.setSubstationId(z);
if (!CollectionUtils.isEmpty(warnSum)) {
rStatSubstationMPO.setEffectiveMeasurementAccrued(warnSum.containsKey("iECount") ?
Integer.parseInt(warnSum.get("iECount").toString()) : 0);
} else {
rStatSubstationMPO.setEffectiveMeasurementAccrued(0);
}
if (!CollectionUtils.isEmpty(partSum)) {
rStatSubstationMPO.setHarmonicCount(partSum.containsKey("measurementOverDayCount") ?
Integer.parseInt(partSum.get("measurementOverDayCount").toString()) : 0);
rStatSubstationMPO.setFreqCount(partSum.containsKey("freqOverDayCount") ?
Integer.parseInt(partSum.get("freqOverDayCount").toString()) : 0);
rStatSubstationMPO.setVDevCount(partSum.containsKey("vDevOverDayCount") ?
Integer.parseInt(partSum.get("vDevOverDayCount").toString()) : 0);
rStatSubstationMPO.setVCount(partSum.containsKey("vOverDayCount") ?
Integer.parseInt(partSum.get("vOverDayCount").toString()) : 0);
rStatSubstationMPO.setICount(partSum.containsKey("iOverDayCount") ?
Integer.parseInt(partSum.get("iOverDayCount").toString()) : 0);
rStatSubstationMPO.setUnbalanceCount(partSum.containsKey("unbalanceOverDayCount") ?
Integer.parseInt(partSum.get("unbalanceOverDayCount").toString()) : 0);
rStatSubstationMPO.setINegCount(partSum.containsKey("iNegOverDayCount") ?
Integer.parseInt(partSum.get("iNegOverDayCount").toString()) : 0);
} else {
rStatSubstationMPO.setHarmonicCount(0);
rStatSubstationMPO.setFreqCount(0);
rStatSubstationMPO.setVDevCount(0);
rStatSubstationMPO.setVCount(0);
rStatSubstationMPO.setICount(0);
rStatSubstationMPO.setUnbalanceCount(0);
rStatSubstationMPO.setINegCount(0);
}
if (!CollectionUtils.isEmpty(surplusSum)) {
rStatSubstationMPO.setFlickerCount(surplusSum.containsKey("flickerOverDayCount") ?
Integer.parseInt(surplusSum.get("flickerOverDayCount").toString()) : 0);
rStatSubstationMPO.setInuharmCount(surplusSum.containsKey("inuharmOverDayCount") ?
Integer.parseInt(surplusSum.get("inuharmOverDayCount").toString()) : 0);
} else {
rStatSubstationMPO.setFlickerCount(0);
rStatSubstationMPO.setInuharmCount(0);
}
if (!CollectionUtils.isEmpty(eventDetailSumAndCount)) {
rStatSubstationMPO.setEffectiveMeasurementAverage(eventDetailSumAndCount.containsKey("effectiveMeasurementCountAvg") ?
Float.parseFloat(eventDetailSumAndCount.get("effectiveMeasurementCountAvg").toString()) : 0.0f);
rStatSubstationMPO.setHarmonicOverDay(eventDetailSumAndCount.containsKey("harmonicCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("harmonicCountCount").toString()) : 0.0f);
rStatSubstationMPO.setFreqOverDay(eventDetailSumAndCount.containsKey("freqCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("freqCountCount").toString()) : 0.0f);
rStatSubstationMPO.setVDevOverDay(eventDetailSumAndCount.containsKey("vDevCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("vDevCountCount").toString()) : 0.0f);
rStatSubstationMPO.setVOverDay(eventDetailSumAndCount.containsKey("vCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("vCountCount").toString()) : 0.0f);
rStatSubstationMPO.setIOverDay(eventDetailSumAndCount.containsKey("iCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("iCountCount").toString()) : 0.0f);
rStatSubstationMPO.setUnbalanceOverDay(eventDetailSumAndCount.containsKey("unbalanceCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("unbalanceCountCount").toString()) : 0.0f);
rStatSubstationMPO.setINegOverDay(eventDetailSumAndCount.containsKey("iNegCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("iNegCountCount").toString()) : 0.0f);
rStatSubstationMPO.setFlickerOverDay(eventDetailSumAndCount.containsKey("flickerCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("flickerCountCount").toString()) : 0.0f);
rStatSubstationMPO.setInuharmOverDay(eventDetailSumAndCount.containsKey("inuharmCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("inuharmCountCount").toString()) : 0.0f);
rStatSubstationMPO.setEventCount(eventDetailSumAndCount.containsKey("eventCountSum") ?
Integer.parseInt(eventDetailSumAndCount.get("eventCountSum").toString()) : 0);
rStatSubstationMPO.setEventFreq(eventDetailSumAndCount.containsKey("eventCountFrequency") ?
Float.parseFloat(eventDetailSumAndCount.get("eventCountFrequency").toString()) : 0.0f);
rStatSubstationMPO.setSagCount(eventDetailSumAndCount.containsKey("sagCountSum") ?
Integer.parseInt(eventDetailSumAndCount.get("sagCountSum").toString()) : 0);
rStatSubstationMPO.setSagFreq(eventDetailSumAndCount.containsKey("sagCountFrequency") ?
Float.parseFloat(eventDetailSumAndCount.get("sagCountFrequency").toString()) : 0.0f);
rStatSubstationMPO.setSwellCount(eventDetailSumAndCount.containsKey("swellCountSum") ?
Integer.parseInt(eventDetailSumAndCount.get("swellCountSum").toString()) : 0);
rStatSubstationMPO.setSwellFreq(eventDetailSumAndCount.containsKey("swellCountFrequency") ?
Float.parseFloat(eventDetailSumAndCount.get("swellCountFrequency").toString()) : 0.0f);
rStatSubstationMPO.setInterruptCount(eventDetailSumAndCount.containsKey("interruptCountSum") ?
Integer.parseInt(eventDetailSumAndCount.get("interruptCountSum").toString()) : 0);
rStatSubstationMPO.setInterruptFreq(eventDetailSumAndCount.containsKey("interruptCountFrequency") ?
Float.parseFloat(eventDetailSumAndCount.get("interruptCountFrequency").toString()) : 0.0f);
} else {
rStatSubstationMPO.setEffectiveMeasurementAverage(0.0f);
rStatSubstationMPO.setHarmonicOverDay(0.0f);
rStatSubstationMPO.setFreqOverDay(0.0f);
rStatSubstationMPO.setVDevOverDay(0.0f);
rStatSubstationMPO.setVOverDay(0.0f);
rStatSubstationMPO.setIOverDay(0.0f);
rStatSubstationMPO.setUnbalanceOverDay(0.0f);
rStatSubstationMPO.setINegOverDay(0.0f);
rStatSubstationMPO.setFlickerOverDay(0.0f);
rStatSubstationMPO.setInuharmOverDay(0.0f);
rStatSubstationMPO.setEventCount(0);
rStatSubstationMPO.setEventFreq(0.0f);
rStatSubstationMPO.setSagCount(0);
rStatSubstationMPO.setSagFreq(0.0f);
rStatSubstationMPO.setSwellCount(0);
rStatSubstationMPO.setSwellFreq(0.0f);
rStatSubstationMPO.setInterruptCount(0);
rStatSubstationMPO.setInterruptFreq(0.0f);
}
rStatSubstationMPOS.add(rStatSubstationMPO);
}
});
}
//配网
if (!CollectionUtils.isEmpty(pw)) {
pw.forEach(p -> {
//获取监测点对象集合
LineDevGetBandDTO lineDevGetDTOs = commTerminalGeneralClient.substationGetLine(p).getData();
//获取监测点id集合
List<String> lineIds = lineDevGetDTOs.getZwList().stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
//判空
if (!CollectionUtils.isEmpty(lineIds)) {
//r_mp_target_warn_d 表中字段求和
Map<String, Object> warnSum = rMpTargetWarnDMapper.getSumDate(startTime, endTime, lineIds);
//r_mp_part_harmonic_detail_m 表中字段求和
Map<String, Object> partSum = rMpPartHarmonicDetailMMapper.getPartSum(startTime, endTime, lineIds);
//r_mp_surplus_harmonic_detail_m 表中字段求和
Map<String, Object> surplusSum = mpSurplusHarmonicDetailMMapper.getSurplusSum(dataDate, dataDate, lineIds);
//r_stat_substation_d 表中字段求和及计数
Map<String, Object> eventDetailSumAndCount = rStatSubstationDPOMapper.getSumAndCount(dataDate, dataDate, p);
RStatSubstationMPO rStatSubstationMPO = new RStatSubstationMPO();
rStatSubstationMPO.setDataDate(localDate);
rStatSubstationMPO.setSubstationId(p);
if (!CollectionUtils.isEmpty(warnSum)) {
rStatSubstationMPO.setEffectiveMeasurementAccrued(warnSum.containsKey("iECount") ?
Integer.parseInt(warnSum.get("iECount").toString()) : 0);
} else {
rStatSubstationMPO.setEffectiveMeasurementAccrued(0);
}
if (!CollectionUtils.isEmpty(partSum)) {
rStatSubstationMPO.setHarmonicCount(partSum.containsKey("measurementOverDayCount") ?
Integer.parseInt(partSum.get("measurementOverDayCount").toString()) : 0);
rStatSubstationMPO.setFreqCount(partSum.containsKey("freqOverDayCount") ?
Integer.parseInt(partSum.get("freqOverDayCount").toString()) : 0);
rStatSubstationMPO.setVDevCount(partSum.containsKey("vDevOverDayCount") ?
Integer.parseInt(partSum.get("vDevOverDayCount").toString()) : 0);
rStatSubstationMPO.setVCount(partSum.containsKey("vOverDayCount") ?
Integer.parseInt(partSum.get("vOverDayCount").toString()) : 0);
rStatSubstationMPO.setICount(partSum.containsKey("iOverDayCount") ?
Integer.parseInt(partSum.get("iOverDayCount").toString()) : 0);
rStatSubstationMPO.setUnbalanceCount(partSum.containsKey("unbalanceOverDayCount") ?
Integer.parseInt(partSum.get("unbalanceOverDayCount").toString()) : 0);
rStatSubstationMPO.setINegCount(partSum.containsKey("iNegOverDayCount") ?
Integer.parseInt(partSum.get("iNegOverDayCount").toString()) : 0);
} else {
rStatSubstationMPO.setHarmonicCount(0);
rStatSubstationMPO.setFreqCount(0);
rStatSubstationMPO.setVDevCount(0);
rStatSubstationMPO.setVCount(0);
rStatSubstationMPO.setICount(0);
rStatSubstationMPO.setUnbalanceCount(0);
rStatSubstationMPO.setINegCount(0);
}
if (!CollectionUtils.isEmpty(surplusSum)) {
rStatSubstationMPO.setFlickerCount(surplusSum.containsKey("flickerOverDayCount") ?
Integer.parseInt(surplusSum.get("flickerOverDayCount").toString()) : 0);
rStatSubstationMPO.setInuharmCount(surplusSum.containsKey("inuharmOverDayCount") ?
Integer.parseInt(surplusSum.get("inuharmOverDayCount").toString()) : 0);
} else {
rStatSubstationMPO.setFlickerCount(0);
rStatSubstationMPO.setInuharmCount(0);
}
if (!CollectionUtils.isEmpty(eventDetailSumAndCount)) {
rStatSubstationMPO.setEffectiveMeasurementAverage(eventDetailSumAndCount.containsKey("effectiveMeasurementCountAvg") ?
Float.parseFloat(eventDetailSumAndCount.get("effectiveMeasurementCountAvg").toString()) : 0.0f);
rStatSubstationMPO.setHarmonicOverDay(eventDetailSumAndCount.containsKey("harmonicCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("harmonicCountCount").toString()) : 0.0f);
rStatSubstationMPO.setFreqOverDay(eventDetailSumAndCount.containsKey("freqCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("freqCountCount").toString()) : 0.0f);
rStatSubstationMPO.setVDevOverDay(eventDetailSumAndCount.containsKey("vDevCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("vDevCountCount").toString()) : 0.0f);
rStatSubstationMPO.setVOverDay(eventDetailSumAndCount.containsKey("vCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("vCountCount").toString()) : 0.0f);
rStatSubstationMPO.setIOverDay(eventDetailSumAndCount.containsKey("iCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("iCountCount").toString()) : 0.0f);
rStatSubstationMPO.setUnbalanceOverDay(eventDetailSumAndCount.containsKey("unbalanceCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("unbalanceCountCount").toString()) : 0.0f);
rStatSubstationMPO.setINegOverDay(eventDetailSumAndCount.containsKey("iNegCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("iNegCountCount").toString()) : 0.0f);
rStatSubstationMPO.setFlickerOverDay(eventDetailSumAndCount.containsKey("flickerCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("flickerCountCount").toString()) : 0.0f);
rStatSubstationMPO.setInuharmOverDay(eventDetailSumAndCount.containsKey("inuharmCountCount") ?
Float.parseFloat(eventDetailSumAndCount.get("inuharmCountCount").toString()) : 0.0f);
rStatSubstationMPO.setEventCount(eventDetailSumAndCount.containsKey("eventCountSum") ?
Integer.parseInt(eventDetailSumAndCount.get("eventCountSum").toString()) : 0);
rStatSubstationMPO.setEventFreq(eventDetailSumAndCount.containsKey("eventCountFrequency") ?
Float.parseFloat(eventDetailSumAndCount.get("eventCountFrequency").toString()) : 0.0f);
rStatSubstationMPO.setSagCount(eventDetailSumAndCount.containsKey("sagCountSum") ?
Integer.parseInt(eventDetailSumAndCount.get("sagCountSum").toString()) : 0);
rStatSubstationMPO.setSagFreq(eventDetailSumAndCount.containsKey("sagCountFrequency") ?
Float.parseFloat(eventDetailSumAndCount.get("sagCountFrequency").toString()) : 0.0f);
rStatSubstationMPO.setSwellCount(eventDetailSumAndCount.containsKey("swellCountSum") ?
Integer.parseInt(eventDetailSumAndCount.get("swellCountSum").toString()) : 0);
rStatSubstationMPO.setSwellFreq(eventDetailSumAndCount.containsKey("swellCountFrequency") ?
Float.parseFloat(eventDetailSumAndCount.get("swellCountFrequency").toString()) : 0.0f);
rStatSubstationMPO.setInterruptCount(eventDetailSumAndCount.containsKey("interruptCountSum") ?
Integer.parseInt(eventDetailSumAndCount.get("interruptCountSum").toString()) : 0);
rStatSubstationMPO.setInterruptFreq(eventDetailSumAndCount.containsKey("interruptCountFrequency") ?
Float.parseFloat(eventDetailSumAndCount.get("interruptCountFrequency").toString()) : 0.0f);
} else {
rStatSubstationMPO.setEffectiveMeasurementAverage(0.0f);
rStatSubstationMPO.setHarmonicOverDay(0.0f);
rStatSubstationMPO.setFreqOverDay(0.0f);
rStatSubstationMPO.setVDevOverDay(0.0f);
rStatSubstationMPO.setVOverDay(0.0f);
rStatSubstationMPO.setIOverDay(0.0f);
rStatSubstationMPO.setUnbalanceOverDay(0.0f);
rStatSubstationMPO.setINegOverDay(0.0f);
rStatSubstationMPO.setFlickerOverDay(0.0f);
rStatSubstationMPO.setInuharmOverDay(0.0f);
rStatSubstationMPO.setEventCount(0);
rStatSubstationMPO.setEventFreq(0.0f);
rStatSubstationMPO.setSagCount(0);
rStatSubstationMPO.setSagFreq(0.0f);
rStatSubstationMPO.setSwellCount(0);
rStatSubstationMPO.setSwellFreq(0.0f);
rStatSubstationMPO.setInterruptCount(0);
rStatSubstationMPO.setInterruptFreq(0.0f);
}
rStatSubstationMPOS.add(rStatSubstationMPO);
}
});
}
if (!CollectionUtils.isEmpty(rStatSubstationMPOS)) {
rStatSubstationMPOService.saveOrUpdateBatchByMultiId(rStatSubstationMPOS, 500);
}
}
} }