Compare commits
5 Commits
e35bbd9b34
...
2025-12
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
184b2b8fad | ||
|
|
fe029fcb95 | ||
|
|
9143466ce7 | ||
|
|
9409d57243 | ||
| 63603dee08 |
@@ -51,6 +51,7 @@ import net.sf.json.JSONObject;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
@@ -471,7 +472,7 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl<RmpEventAdvanc
|
|||||||
|
|
||||||
List<AdvanceEventDetailVO> advanceEventDetailVOList = BeanUtil.copyToList(rmpEventDetailPOList, AdvanceEventDetailVO.class);
|
List<AdvanceEventDetailVO> advanceEventDetailVOList = BeanUtil.copyToList(rmpEventDetailPOList, AdvanceEventDetailVO.class);
|
||||||
advanceEventDetailVOList = advanceEventDetailVOList.stream().peek(item -> {
|
advanceEventDetailVOList = advanceEventDetailVOList.stream().peek(item -> {
|
||||||
item.setFeatureAmplitude(item.getFeatureAmplitude()*100);
|
item.setFeatureAmplitude(roundHalfUp(item.getFeatureAmplitude()*100));
|
||||||
|
|
||||||
if (map.containsKey(item.getLineId())) {
|
if (map.containsKey(item.getLineId())) {
|
||||||
AreaLineInfoVO areaLineInfoVO = map.get(item.getLineId());
|
AreaLineInfoVO areaLineInfoVO = map.get(item.getLineId());
|
||||||
@@ -491,7 +492,17 @@ public class EventRelevantAnalysisServiceImpl extends ServiceImpl<RmpEventAdvanc
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 四舍五入保留两位小数
|
||||||
|
*/
|
||||||
|
private Double roundHalfUp(double num) {
|
||||||
|
if (num == 3.14159) {
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
BigDecimal b = new BigDecimal(num);
|
||||||
|
//保留2位小数
|
||||||
|
return com.njcn.harmonic.utils.PubUtils.dataLimits(b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public Page<RmpEventDetailAssPO> queryEventsAssPage(BaseParam baseParam) {
|
public Page<RmpEventDetailAssPO> queryEventsAssPage(BaseParam baseParam) {
|
||||||
List<LocalDateTime> timeV = PubUtils.checkLocalDate(baseParam.getSearchBeginTime(), baseParam.getSearchEndTime());
|
List<LocalDateTime> timeV = PubUtils.checkLocalDate(baseParam.getSearchBeginTime(), baseParam.getSearchEndTime());
|
||||||
|
|||||||
@@ -43,4 +43,7 @@ public class MonitorBaseParam extends BaseParam {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "异常天数时间")
|
@ApiModelProperty(value = "异常天数时间")
|
||||||
private List<String> time;
|
private List<String> time;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "过滤异常时间次数")
|
||||||
|
private Integer errorTimeCount;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.njcn.device.pq.pojo.po;
|
package com.njcn.device.pq.pojo.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.njcn.db.bo.BaseEntity;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import java.io.Serializable;
|
import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@@ -25,136 +26,306 @@ public class PqDataVerifyBak {
|
|||||||
/**
|
/**
|
||||||
* 监测点id
|
* 监测点id
|
||||||
*/
|
*/
|
||||||
|
@MppMultiId
|
||||||
|
@TableField(value = "line_id")
|
||||||
private String lineId;
|
private String lineId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 异常数据时间
|
* 异常数据时间
|
||||||
*/
|
*/
|
||||||
|
@MppMultiId
|
||||||
|
@TableField(value = "time_id")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||||
private LocalDate timeId;
|
private LocalDate timeId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 频率(0:正常 1:异常)
|
* 监测点状态
|
||||||
|
* 判断所有指标 0:无异常 1:异常
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "state")
|
||||||
|
private Integer state ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 频率指标
|
||||||
|
*/
|
||||||
|
@TableField(value = "freq")
|
||||||
private Integer freq ;
|
private Integer freq ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 频率偏差(0:正常 1:异常)
|
* 频率异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "freq_time")
|
||||||
|
private Integer freqTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 频率偏差指标
|
||||||
|
*/
|
||||||
|
@TableField(value = "freq_dev")
|
||||||
private Integer freqDev ;
|
private Integer freqDev ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 相电压有效值(0:正常 1:异常)
|
* 频率偏差异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "freq_dev_time")
|
||||||
|
private Integer freqDevTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相电压有效值
|
||||||
|
*/
|
||||||
|
@TableField(value = "v_rms")
|
||||||
private Integer vRms ;
|
private Integer vRms ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 正序电压(0:正常 1:异常)
|
* 相电压有效值异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_rms_time")
|
||||||
|
private Integer vRmsTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 正序电压
|
||||||
|
*/
|
||||||
|
@TableField(value = "v_pos")
|
||||||
private Integer vPos ;
|
private Integer vPos ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 负序电压(0:正常 1:异常)
|
* 正序电压异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_pos_time")
|
||||||
|
private Integer vPosTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 负序电压
|
||||||
|
*/
|
||||||
|
@TableField(value = "v_neg")
|
||||||
private Integer vNeg ;
|
private Integer vNeg ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 零序电压(0:正常 1:异常)
|
* 负序电压异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_neg_time")
|
||||||
|
private Integer vNegTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 零序电压
|
||||||
|
*/
|
||||||
|
@TableField(value = "v_zero")
|
||||||
private Integer vZero ;
|
private Integer vZero ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电压不平衡度(0:正常 1:异常)
|
* 零序电压异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_zero_time")
|
||||||
|
private Integer vZeroTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电压不平衡度
|
||||||
|
*/
|
||||||
|
@TableField(value = "v_unbalance")
|
||||||
private Integer vUnbalance ;
|
private Integer vUnbalance ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 线电压有效值(0:正常 1:异常)
|
* 电压不平衡度异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_unbalance_time")
|
||||||
|
private Integer vUnbalanceTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 线电压有效值
|
||||||
|
*/
|
||||||
|
@TableField(value = "rms_lvr")
|
||||||
private Integer rmsLvr ;
|
private Integer rmsLvr ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电压正偏差(0:正常 1:异常)
|
* 线电压有效值异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "rms_lvr_time")
|
||||||
|
private Integer rmsLvrTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电压正偏差
|
||||||
|
*/
|
||||||
|
@TableField(value = "vu_dev")
|
||||||
private Integer vuDev ;
|
private Integer vuDev ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电压负偏差(0:正常 1:异常)
|
* 电压正偏差异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "vu_dev_time")
|
||||||
|
private Integer vuDevTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电压负偏差
|
||||||
|
*/
|
||||||
|
@TableField(value = "vl_Dev")
|
||||||
private Integer vlDev ;
|
private Integer vlDev ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电压总谐波畸变率(0:正常 1:异常)
|
* 电压负偏差异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "vl_Dev_time")
|
||||||
|
private Integer vlDevTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电压总谐波畸变率
|
||||||
|
*/
|
||||||
|
@TableField(value = "v_thd")
|
||||||
private Integer vThd ;
|
private Integer vThd ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 相电压基波有效值(0:正常 1:异常)
|
* 电压总谐波畸变率异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_thd_time")
|
||||||
|
private Integer vThdTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 相电压基波有效值
|
||||||
|
*/
|
||||||
|
@TableField(value = "v")
|
||||||
private Integer v ;
|
private Integer v ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电流有效值(0:正常 1:异常)
|
* 相电压基波有效值异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_time")
|
||||||
|
private Integer vTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电流有效值
|
||||||
|
*/
|
||||||
|
@TableField(value = "i_rms")
|
||||||
private Integer iRms ;
|
private Integer iRms ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 长时闪变(0:正常 1:异常)
|
* 电流有效值异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "i_rms_time")
|
||||||
|
private Integer iRmsTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 长时闪变
|
||||||
|
*/
|
||||||
|
@TableField(value = "plt")
|
||||||
private Integer plt ;
|
private Integer plt ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 间谐波电压含有率(0:正常 1:异常)
|
* 长时闪变异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "plt_time")
|
||||||
|
private Integer pltTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 间谐波电压含有率
|
||||||
|
*/
|
||||||
|
@TableField(value = "v_inharm")
|
||||||
private Integer vInharm ;
|
private Integer vInharm ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 谐波电压含有率(0:正常 1:异常)
|
* 间谐波电压含有率异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_Inharm_time")
|
||||||
|
private Integer vInharmTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 谐波电压含有率
|
||||||
|
*/
|
||||||
|
@TableField(value = "v_harm")
|
||||||
private Integer vHarm ;
|
private Integer vHarm ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 功率因数(0:正常 1:异常)
|
* 谐波电压含有率异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_harm_time")
|
||||||
|
private Integer vHarmTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 功率因数
|
||||||
|
*/
|
||||||
|
@TableField(value = "pf")
|
||||||
private Integer pf ;
|
private Integer pf ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 谐波电压相角(0:正常 1:异常)
|
* 功率因数异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "pf_time")
|
||||||
|
private Integer pfTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 谐波电压相角
|
||||||
|
*/
|
||||||
|
@TableField(value = "v_phasic")
|
||||||
private Integer vPhasic ;
|
private Integer vPhasic ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 谐波电压基波相角(0:正常 1:异常)
|
* 谐波电压相角异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v_phasic_time")
|
||||||
|
private Integer vPhasicTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 谐波电压基波相角
|
||||||
|
*/
|
||||||
|
@TableField(value = "v1_phasic")
|
||||||
private Integer v1Phasic ;
|
private Integer v1Phasic ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电压波动(0:正常 1:异常)
|
* 谐波电压基波相角异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "v1_phasic_time")
|
||||||
|
private Integer v1PhasicTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电压波动
|
||||||
|
*/
|
||||||
|
@TableField(value = "fluc")
|
||||||
private Integer fluc ;
|
private Integer fluc ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 短时闪变(0:正常 1:异常)
|
* 电压波动异常时间
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "fluc_time")
|
||||||
|
private Integer flucTime ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短时闪变
|
||||||
|
*/
|
||||||
|
@TableField(value = "pst")
|
||||||
private Integer pst ;
|
private Integer pst ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 短时闪变异常时间
|
||||||
|
*/
|
||||||
|
@TableField(value = "pst_time")
|
||||||
|
private Integer pstTime ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电压暂降(0:正常 1:异常)
|
* 电压暂降(0:正常 1:异常)
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "dip")
|
||||||
private Integer dip ;
|
private Integer dip ;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电压暂降异常时间
|
||||||
|
*/
|
||||||
|
@TableField(value = "dip_time")
|
||||||
|
private Integer dipTime ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 电压暂升(0:正常 1:异常)
|
* 电压暂升(0:正常 1:异常)
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "rise")
|
||||||
private Integer rise ;
|
private Integer rise ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断所有指标 0:无异常 1:有异常
|
* 电压暂升异常时间
|
||||||
*/
|
*/
|
||||||
private Integer state;
|
@TableField(value = "rise_time")
|
||||||
|
private Integer riseTime ;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 文件路径
|
* 文件路径
|
||||||
*/
|
*/
|
||||||
|
@TableField(value = "path")
|
||||||
private String path;
|
private String path;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,8 @@
|
|||||||
select
|
select
|
||||||
dev_index,
|
dev_index,
|
||||||
sum(online_min) as onlineMin,
|
sum(online_min) as onlineMin,
|
||||||
sum(offline_min) as offlineMin
|
sum(offline_min) as offlineMin,
|
||||||
|
ROUND( sum(online_min)*1.0/(sum(online_min) + sum(offline_min))*100,2) as onlineRate
|
||||||
from r_stat_onlinerate_d
|
from r_stat_onlinerate_d
|
||||||
<where>
|
<where>
|
||||||
<if test="param!=null and param.ids != null and param.ids.size > 0">
|
<if test="param!=null and param.ids != null and param.ids.size > 0">
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ package com.njcn.device.pq.service.impl;
|
|||||||
import cn.hutool.core.codec.Base64;
|
import cn.hutool.core.codec.Base64;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.*;
|
import cn.hutool.core.date.*;
|
||||||
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONArray;
|
||||||
import cn.hutool.json.JSONConfig;
|
import cn.hutool.json.JSONConfig;
|
||||||
@@ -74,21 +75,24 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VerifyMonitorVO getMonitorVerifyData(MonitorBaseParam monitorBaseParam) {
|
public VerifyMonitorVO getMonitorVerifyData(MonitorBaseParam monitorBaseParam) {
|
||||||
|
if(Objects.isNull(monitorBaseParam.getErrorTimeCount())){
|
||||||
|
monitorBaseParam.setErrorTimeCount(720);
|
||||||
|
}
|
||||||
List<String> monitorIds = commTerminalService.getRunMonitorByDept(monitorBaseParam);
|
List<String> monitorIds = commTerminalService.getRunMonitorByDept(monitorBaseParam);
|
||||||
VerifyMonitorVO verifyMonitorVO = new VerifyMonitorVO();
|
VerifyMonitorVO verifyMonitorVO = new VerifyMonitorVO();
|
||||||
if (CollUtil.isNotEmpty(monitorIds)) {
|
if (CollUtil.isNotEmpty(monitorIds)) {
|
||||||
List<PqDataVerifyBak> dataVerifyList = baseDataVerifyQuery(monitorIds, monitorBaseParam);
|
List<PqDataVerifyBak> dataVerifyList = baseDataVerifyQuery(monitorIds, monitorBaseParam);
|
||||||
verifyMonitorVO.setRunNum(monitorIds.size());
|
verifyMonitorVO.setRunNum(monitorIds.size());
|
||||||
verifyMonitorVO.setAbnormalNum(dataVerifyList.stream().collect(Collectors.groupingBy(PqDataVerifyBak::getLineId)).size());
|
verifyMonitorVO.setAbnormalNum(dataVerifyList.stream().collect(Collectors.groupingBy(PqDataVerifyBak::getLineId)).size());
|
||||||
List<PqDataVerifyBak> dataSumVerifyList = baseDataSumVerifyQuery(monitorIds, monitorBaseParam);
|
// List<PqDataVerifyBak> dataSumVerifyList = baseDataSumVerifyQuery(monitorIds, monitorBaseParam);
|
||||||
verifyMonitorVO.setMapList(getRangeAbnormalMonitor(monitorBaseParam, dataVerifyList));
|
verifyMonitorVO.setMapList(getRangeAbnormalMonitor(monitorBaseParam, dataVerifyList));
|
||||||
verifyMonitorVO.setTargetList(getAbnormalTarget(dataSumVerifyList));
|
verifyMonitorVO.setTargetList(getAbnormalTarget(dataVerifyList,monitorBaseParam.getErrorTimeCount()));
|
||||||
verifyMonitorVO.setMonitorAlarmInfo(getAbnormalTable(dataVerifyList, monitorBaseParam));
|
verifyMonitorVO.setMonitorAlarmInfo(getAbnormalTable(dataVerifyList, monitorBaseParam));
|
||||||
} else {
|
} else {
|
||||||
verifyMonitorVO.setRunNum(0);
|
verifyMonitorVO.setRunNum(0);
|
||||||
verifyMonitorVO.setAbnormalNum(0);
|
verifyMonitorVO.setAbnormalNum(0);
|
||||||
verifyMonitorVO.setMapList(getRangeAbnormalMonitor(monitorBaseParam, new ArrayList<>()));
|
verifyMonitorVO.setMapList(getRangeAbnormalMonitor(monitorBaseParam, new ArrayList<>()));
|
||||||
verifyMonitorVO.setTargetList(getAbnormalTarget(new ArrayList<>()));
|
verifyMonitorVO.setTargetList(getAbnormalTarget(new ArrayList<>(),monitorBaseParam.getErrorTimeCount()));
|
||||||
verifyMonitorVO.setMonitorAlarmInfo(getAbnormalTable(new ArrayList<>(), monitorBaseParam));
|
verifyMonitorVO.setMonitorAlarmInfo(getAbnormalTable(new ArrayList<>(), monitorBaseParam));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -179,6 +183,9 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DetailAbnormalVO> monitorAbnormalTable(MonitorBaseParam monitorBaseParam) {
|
public List<DetailAbnormalVO> monitorAbnormalTable(MonitorBaseParam monitorBaseParam) {
|
||||||
|
if(Objects.isNull(monitorBaseParam.getErrorTimeCount())){
|
||||||
|
monitorBaseParam.setErrorTimeCount(720);
|
||||||
|
}
|
||||||
List<DetailAbnormalVO> result = new ArrayList<>();
|
List<DetailAbnormalVO> result = new ArrayList<>();
|
||||||
//参数校验
|
//参数校验
|
||||||
Map<String, PqReasonableRangeDto> rangeMap = getStandRange();
|
Map<String, PqReasonableRangeDto> rangeMap = getStandRange();
|
||||||
@@ -201,67 +208,73 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
|
|||||||
if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) {
|
if (StrUtil.isNotBlank(monitorBaseParam.getTargetKey())) {
|
||||||
switch (monitorBaseParam.getTargetKey()) {
|
switch (monitorBaseParam.getTargetKey()) {
|
||||||
case Param.freq:
|
case Param.freq:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getFreq, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getFreqTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.freq_dev:
|
case Param.freq_dev:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getFreqDev, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getFreqDevTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.rms_v:
|
case Param.rms_v:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVRms, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVRmsTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.rms_lvr:
|
case Param.rms_lvr:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getRmsLvr, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getRmsLvrTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.vu_dev:
|
case Param.vu_dev:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVuDev, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVuDevTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.vl_dev:
|
case Param.vl_dev:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVlDev, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVlDevTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.rms_i:
|
case Param.rms_i:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getIRms, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getIRmsTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.v_thd:
|
case Param.v_thd:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVThd, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVThdTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.v_1_v:
|
case Param.v_1_v:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getV, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.phasic_v_1:
|
case Param.phasic_v_1:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getV1Phasic, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getV1PhasicTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.phasic_rate_x:
|
case Param.phasic_rate_x:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVPhasic, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVPhasicTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.v_rate:
|
case Param.v_rate:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVHarm, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVHarmTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.in_v_rate:
|
case Param.in_v_rate:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVInharm, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVInharmTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.v_zero:
|
case Param.v_zero:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVZero, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVZeroTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.v_neg:
|
case Param.v_neg:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVNeg, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVNegTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.v_pos:
|
case Param.v_pos:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVPos, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVPosTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.v_unbalance:
|
case Param.v_unbalance:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getVUnbalance, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getVUnbalanceTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.fluc:
|
case Param.fluc:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getFluc, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getFlucTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.pst:
|
case Param.pst:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getPst, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getPstTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.plt:
|
case Param.plt:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getPlt, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getPltTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
case Param.pf:
|
case Param.pf:
|
||||||
lambdaQueryWrapper.eq(PqDataVerifyBak::getPf, 1);
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getPfTime, monitorBaseParam.getErrorTimeCount());
|
||||||
|
break;
|
||||||
|
case Param.Voltage_Dip:
|
||||||
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getDipTime, monitorBaseParam.getErrorTimeCount());
|
||||||
|
break;
|
||||||
|
case Param.Voltage_Rise:
|
||||||
|
lambdaQueryWrapper.ge(PqDataVerifyBak::getRiseTime, monitorBaseParam.getErrorTimeCount());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
log.error("方法{}未匹配到异常数据指标", "monitorAbnormalTable");
|
log.error("方法{}未匹配到异常数据指标", "monitorAbnormalTable");
|
||||||
@@ -284,7 +297,7 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
|
|||||||
for (PqDataVerifyBak pqDataVerifyBak : value) {
|
for (PqDataVerifyBak pqDataVerifyBak : value) {
|
||||||
targetKey = new DetailAbnormalVO.TimeAndTargetKey();
|
targetKey = new DetailAbnormalVO.TimeAndTargetKey();
|
||||||
targetKey.setDate(pqDataVerifyBak.getTimeId().format(DatePattern.NORM_DATE_FORMATTER));
|
targetKey.setDate(pqDataVerifyBak.getTimeId().format(DatePattern.NORM_DATE_FORMATTER));
|
||||||
targetKey.setTargetKeys(getAbnormalTarget(Arrays.asList(pqDataVerifyBak)).stream().filter(x->x.getIds().size()>0).collect(Collectors.toList()));
|
targetKey.setTargetKeys(getAbnormalTarget(Arrays.asList(pqDataVerifyBak),monitorBaseParam.getErrorTimeCount()).stream().filter(x->x.getIds().size()>0).collect(Collectors.toList()));
|
||||||
targetKeyList.add(targetKey);
|
targetKeyList.add(targetKey);
|
||||||
}
|
}
|
||||||
detailAbnormalVO.setDateTargetList(targetKeyList);
|
detailAbnormalVO.setDateTargetList(targetKeyList);
|
||||||
@@ -462,6 +475,52 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
|
|||||||
lambdaQueryWrapper.between(PqDataVerifyBak::getTimeId, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchEndTime())))
|
lambdaQueryWrapper.between(PqDataVerifyBak::getTimeId, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchEndTime())))
|
||||||
.in(PqDataVerifyBak::getLineId, monitorIds)
|
.in(PqDataVerifyBak::getLineId, monitorIds)
|
||||||
.eq(PqDataVerifyBak::getState, 1)
|
.eq(PqDataVerifyBak::getState, 1)
|
||||||
|
.and(x -> x.ge(PqDataVerifyBak::getFreqTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getFreqDevTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVRmsTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVPosTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVNegTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVZeroTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVUnbalanceTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getRmsLvrTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVuDevTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVlDevTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVThdTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getIRmsTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getPltTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVInharmTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVHarmTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getPfTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVPhasicTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getV1PhasicTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getFlucTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getPstTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getDipTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getRiseTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
)
|
||||||
.orderByAsc(PqDataVerifyBak::getTimeId);
|
.orderByAsc(PqDataVerifyBak::getTimeId);
|
||||||
return this.list(lambdaQueryWrapper);
|
return this.list(lambdaQueryWrapper);
|
||||||
}
|
}
|
||||||
@@ -475,6 +534,52 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
|
|||||||
.lambda().between(PqDataVerifyBak::getTimeId, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchEndTime())))
|
.lambda().between(PqDataVerifyBak::getTimeId, DateUtil.beginOfDay(DateUtil.parse(monitorBaseParam.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(monitorBaseParam.getSearchEndTime())))
|
||||||
.in(PqDataVerifyBak::getLineId, monitorIds)
|
.in(PqDataVerifyBak::getLineId, monitorIds)
|
||||||
.eq(PqDataVerifyBak::getState, 1)
|
.eq(PqDataVerifyBak::getState, 1)
|
||||||
|
.and(x -> x.ge(PqDataVerifyBak::getFreqTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getFreqDevTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVRmsTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVPosTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVNegTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVZeroTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVUnbalanceTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getRmsLvrTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVuDevTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVlDevTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVThdTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getIRmsTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getPltTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVInharmTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVHarmTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getPfTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getVPhasicTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getV1PhasicTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getFlucTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getPstTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getDipTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
.or()
|
||||||
|
.ge(PqDataVerifyBak::getRiseTime, monitorBaseParam.getErrorTimeCount())
|
||||||
|
)
|
||||||
.groupBy(PqDataVerifyBak::getLineId);
|
.groupBy(PqDataVerifyBak::getLineId);
|
||||||
return this.list(queryWrapper);
|
return this.list(queryWrapper);
|
||||||
}
|
}
|
||||||
@@ -515,102 +620,102 @@ public class PqDataVerifyBakServiceImpl extends ServiceImpl<PqDataVerifyBakMappe
|
|||||||
/**
|
/**
|
||||||
* 指标异常测点数量
|
* 指标异常测点数量
|
||||||
*/
|
*/
|
||||||
public List<VerifyTargetVO> getAbnormalTarget(List<PqDataVerifyBak> dataVerifyList) {
|
public List<VerifyTargetVO> getAbnormalTarget(List<PqDataVerifyBak> dataVerifyList,Integer errorTimeCount) {
|
||||||
List<VerifyTargetVO> result = new ArrayList<>();
|
List<VerifyTargetVO> result = new ArrayList<>();
|
||||||
Map<String, PqReasonableRangeDto> rangeMap = getStandRange();
|
Map<String, PqReasonableRangeDto> rangeMap = getStandRange();
|
||||||
rangeMap.forEach((key, dto) -> {
|
rangeMap.forEach((key, dto) -> {
|
||||||
Set<String> ids;
|
Set<String> ids;
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case Param.freq:
|
case Param.freq:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getFreq() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getFreqTime())).filter(it -> it.getFreqTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.freq_dev:
|
case Param.freq_dev:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getFreqDev() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getFreqDevTime())).filter(it -> it.getFreqDevTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.rms_v:
|
case Param.rms_v:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVRms() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVRmsTime())).filter(it -> it.getVRmsTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.rms_lvr:
|
case Param.rms_lvr:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getRmsLvr() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getRmsLvrTime())).filter(it -> it.getRmsLvrTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.vu_dev:
|
case Param.vu_dev:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVuDev() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVuDevTime())).filter(it -> it.getVuDevTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.vl_dev:
|
case Param.vl_dev:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVlDev() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVlDevTime())).filter(it -> it.getVlDevTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.rms_i:
|
case Param.rms_i:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getIRms() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getIRmsTime())).filter(it -> it.getIRmsTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.v_thd:
|
case Param.v_thd:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVThd() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVThdTime())).filter(it -> it.getVThdTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.v_1_v:
|
case Param.v_1_v:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getV() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVTime())).filter(it -> it.getVTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.phasic_v_1:
|
case Param.phasic_v_1:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getV1Phasic() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getV1PhasicTime())).filter(it -> it.getV1PhasicTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.phasic_rate_x:
|
case Param.phasic_rate_x:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVPhasic() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVPhasicTime())).filter(it -> it.getVPhasicTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.v_rate:
|
case Param.v_rate:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVHarm() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVHarmTime())).filter(it -> it.getVHarmTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.in_v_rate:
|
case Param.in_v_rate:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVInharm() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVInharmTime())).filter(it -> it.getVInharmTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.v_zero:
|
case Param.v_zero:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVZero() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVZeroTime())).filter(it -> it.getVZeroTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.v_neg:
|
case Param.v_neg:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVNeg() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVNegTime())).filter(it -> it.getVNegTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.v_pos:
|
case Param.v_pos:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVPos() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVPosTime())).filter(it -> it.getVPosTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.v_unbalance:
|
case Param.v_unbalance:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getVUnbalance() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getVUnbalanceTime())).filter(it -> it.getVUnbalanceTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.fluc:
|
case Param.fluc:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getFluc() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getFlucTime())).filter(it -> it.getFlucTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.pst:
|
case Param.pst:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getPst() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getPstTime())).filter(it -> it.getPstTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.plt:
|
case Param.plt:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getPlt() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getPltTime())).filter(it -> it.getPltTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.pf:
|
case Param.pf:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getPf() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getPfTime())).filter(it -> it.getPfTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.Voltage_Dip:
|
case Param.Voltage_Dip:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getDip() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getDipTime())).filter(it -> it.getDipTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
case Param.Voltage_Rise:
|
case Param.Voltage_Rise:
|
||||||
ids = dataVerifyList.stream().filter(it -> it.getRise() > 0).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
ids = dataVerifyList.stream().filter(x-> ObjUtil.isNotNull(x.getRiseTime())).filter(it -> it.getRiseTime() > errorTimeCount).map(PqDataVerifyBak::getLineId).collect(Collectors.toSet());
|
||||||
assembleEntity(ids, dto, result);
|
assembleEntity(ids, dto, result);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -20,7 +20,8 @@
|
|||||||
SELECT
|
SELECT
|
||||||
line_index AS lineIndex,
|
line_index AS lineIndex,
|
||||||
sum(real_time) AS realTime,
|
sum(real_time) AS realTime,
|
||||||
sum(due_time) AS dueTime
|
sum(due_time) AS dueTime,
|
||||||
|
ROUND(sum( real_time )*100.0 / sum( due_time ) ,2) AS integrityRate
|
||||||
FROM
|
FROM
|
||||||
r_stat_integrity_d
|
r_stat_integrity_d
|
||||||
<where>
|
<where>
|
||||||
|
|||||||
@@ -36,10 +36,10 @@ public class TransientParam extends DeviceInfoParam.BusinessParam {
|
|||||||
private BigDecimal eventValueMin;
|
private BigDecimal eventValueMin;
|
||||||
|
|
||||||
@ApiModelProperty("持续时间最大值")
|
@ApiModelProperty("持续时间最大值")
|
||||||
private Integer persistMax;
|
private Double persistMax;
|
||||||
|
|
||||||
@ApiModelProperty("持续时间最小值")
|
@ApiModelProperty("持续时间最小值")
|
||||||
private Integer persistMin;
|
private Double persistMin;
|
||||||
|
|
||||||
@ApiModelProperty("严重度最大值")
|
@ApiModelProperty("严重度最大值")
|
||||||
private BigDecimal severityMax;
|
private BigDecimal severityMax;
|
||||||
|
|||||||
@@ -526,6 +526,7 @@ public class TransientServiceImpl implements TransientService {
|
|||||||
log.info("cfg-----"+cfgPath);
|
log.info("cfg-----"+cfgPath);
|
||||||
log.info("cfg-----"+datPath);
|
log.info("cfg-----"+datPath);
|
||||||
|
|
||||||
|
|
||||||
//判断文件是否存在
|
//判断文件是否存在
|
||||||
File file = new File(cfgPath);
|
File file = new File(cfgPath);
|
||||||
if(!file.exists()){
|
if(!file.exists()){
|
||||||
@@ -540,6 +541,8 @@ public class TransientServiceImpl implements TransientService {
|
|||||||
log.info("cfg-----"+cfgPath);
|
log.info("cfg-----"+cfgPath);
|
||||||
log.info("cfg-----"+datPath);
|
log.info("cfg-----"+datPath);
|
||||||
cfgStream = waveFileComponent.getFileInputStreamByFilePath(cfgPath);
|
cfgStream = waveFileComponent.getFileInputStreamByFilePath(cfgPath);
|
||||||
|
datStream = waveFileComponent.getFileInputStreamByFilePath(datPath);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
cfgPath = OssPath.WAVE_DIR + ip + StrUtil.SLASH + waveName + GeneralConstant.CFG;
|
cfgPath = OssPath.WAVE_DIR + ip + StrUtil.SLASH + waveName + GeneralConstant.CFG;
|
||||||
boolean result1 = minIoUtils.checkFileIsExist(minIossProperties.getBucket(), cfgPath);
|
boolean result1 = minIoUtils.checkFileIsExist(minIossProperties.getBucket(), cfgPath);
|
||||||
|
|||||||
@@ -81,33 +81,56 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SteadyQualifyCensusVO getSteadyQualifyCensus(DeviceInfoParam.BusinessParam steadyCensusParam) {
|
public SteadyQualifyCensusVO getSteadyQualifyCensus(DeviceInfoParam.BusinessParam steadyCensusParam) {
|
||||||
|
List<SteadyQualifyVO> steadyQualifyList = getSteadyQualifyData(steadyCensusParam);
|
||||||
SteadyQualifyCensusVO steadyQualifyCensusVO = new SteadyQualifyCensusVO();
|
SteadyQualifyCensusVO steadyQualifyCensusVO = new SteadyQualifyCensusVO();
|
||||||
List<String> type = new ArrayList<>();
|
List<String> type = new ArrayList<>();
|
||||||
//按照条件获取实际运行终端综合信息
|
|
||||||
List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyCensusParam).getData();
|
|
||||||
List<Double> harmonicVoltage = new ArrayList<>(), voltageOffset = new ArrayList<>(),
|
List<Double> harmonicVoltage = new ArrayList<>(), voltageOffset = new ArrayList<>(),
|
||||||
VoltageUnbalance = new ArrayList<>(), interHarmonic = new ArrayList<>(),
|
VoltageUnbalance = new ArrayList<>(), interHarmonic = new ArrayList<>(),
|
||||||
harmonicCurrent = new ArrayList<>(), negativeCurrent = new ArrayList<>(),
|
harmonicCurrent = new ArrayList<>(), negativeCurrent = new ArrayList<>(),
|
||||||
freqOffset = new ArrayList<>(), flicker = new ArrayList<>();
|
freqOffset = new ArrayList<>(), flicker = new ArrayList<>();
|
||||||
if (!CollectionUtils.isEmpty(deviceDataList)) {
|
if (CollUtil.isNotEmpty(steadyQualifyList)) {
|
||||||
for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
|
for (SteadyQualifyVO steadyQualifyVO : steadyQualifyList) {
|
||||||
List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
// 还需要递归出有多少个测点
|
||||||
if (CollectionUtils.isEmpty(lineIndexes)) {
|
int lineNum = seekLineNum(steadyQualifyVO);
|
||||||
continue;
|
type.add(steadyQualifyVO.getName() + "\n(" + lineNum + ")");
|
||||||
}
|
harmonicVoltage.add(steadyQualifyVO.getHarmonicVoltage());
|
||||||
type.add(generalDeviceDTO.getName() + "\n(" + generalDeviceDTO.getLineIndexes().size() + ")");
|
voltageOffset.add(steadyQualifyVO.getVoltageOffset());
|
||||||
List<RStatLimitRateDPO> qualifiesRate = getQualifiesRate(lineIndexes, steadyCensusParam.getSearchBeginTime(), steadyCensusParam.getSearchEndTime());
|
VoltageUnbalance.add(steadyQualifyVO.getVoltageUnbalance());
|
||||||
SteadyQualifyVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate);
|
interHarmonic.add(steadyQualifyVO.getInterHarmonic());
|
||||||
harmonicVoltage.add(dataMoreMonitorMoreDay.getHarmonicVoltage());
|
harmonicCurrent.add(steadyQualifyVO.getHarmonicCurrent());
|
||||||
voltageOffset.add(dataMoreMonitorMoreDay.getVoltageOffset());
|
negativeCurrent.add(steadyQualifyVO.getNegativeCurrent());
|
||||||
VoltageUnbalance.add(dataMoreMonitorMoreDay.getVoltageUnbalance());
|
freqOffset.add(steadyQualifyVO.getFreqOffset());
|
||||||
interHarmonic.add(dataMoreMonitorMoreDay.getInterHarmonic());
|
flicker.add(steadyQualifyVO.getFlicker());
|
||||||
harmonicCurrent.add(dataMoreMonitorMoreDay.getHarmonicCurrent());
|
|
||||||
negativeCurrent.add(dataMoreMonitorMoreDay.getNegativeCurrent());
|
|
||||||
freqOffset.add(dataMoreMonitorMoreDay.getFreqOffset());
|
|
||||||
flicker.add(dataMoreMonitorMoreDay.getFlicker());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// List<String> type = new ArrayList<>();
|
||||||
|
// //按照条件获取实际运行终端综合信息
|
||||||
|
// List<GeneralDeviceDTO> deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyCensusParam).getData();
|
||||||
|
// List<Double> harmonicVoltage = new ArrayList<>(), voltageOffset = new ArrayList<>(),
|
||||||
|
// VoltageUnbalance = new ArrayList<>(), interHarmonic = new ArrayList<>(),
|
||||||
|
// harmonicCurrent = new ArrayList<>(), negativeCurrent = new ArrayList<>(),
|
||||||
|
// freqOffset = new ArrayList<>(), flicker = new ArrayList<>();
|
||||||
|
// if (!CollectionUtils.isEmpty(deviceDataList)) {
|
||||||
|
// for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) {
|
||||||
|
// List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
||||||
|
// if (CollectionUtils.isEmpty(lineIndexes)) {
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// type.add(generalDeviceDTO.getName() + "\n(" + generalDeviceDTO.getLineIndexes().size() + ")");
|
||||||
|
// List<RStatLimitRateDPO> qualifiesRate = getQualifiesRate(lineIndexes, steadyCensusParam.getSearchBeginTime(), steadyCensusParam.getSearchEndTime());
|
||||||
|
// SteadyQualifyVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate);
|
||||||
|
// harmonicVoltage.add(dataMoreMonitorMoreDay.getHarmonicVoltage());
|
||||||
|
// voltageOffset.add(dataMoreMonitorMoreDay.getVoltageOffset());
|
||||||
|
// VoltageUnbalance.add(dataMoreMonitorMoreDay.getVoltageUnbalance());
|
||||||
|
// interHarmonic.add(dataMoreMonitorMoreDay.getInterHarmonic());
|
||||||
|
// harmonicCurrent.add(dataMoreMonitorMoreDay.getHarmonicCurrent());
|
||||||
|
// negativeCurrent.add(dataMoreMonitorMoreDay.getNegativeCurrent());
|
||||||
|
// freqOffset.add(dataMoreMonitorMoreDay.getFreqOffset());
|
||||||
|
// flicker.add(dataMoreMonitorMoreDay.getFlicker());
|
||||||
|
// }
|
||||||
|
// }
|
||||||
steadyQualifyCensusVO.setHarmonicVoltage(harmonicVoltage);
|
steadyQualifyCensusVO.setHarmonicVoltage(harmonicVoltage);
|
||||||
steadyQualifyCensusVO.setVoltageOffset(voltageOffset);
|
steadyQualifyCensusVO.setVoltageOffset(voltageOffset);
|
||||||
steadyQualifyCensusVO.setVoltageUnbalance(VoltageUnbalance);
|
steadyQualifyCensusVO.setVoltageUnbalance(VoltageUnbalance);
|
||||||
@@ -121,6 +144,25 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService {
|
|||||||
return steadyQualifyCensusVO;
|
return steadyQualifyCensusVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归出有多少个测点
|
||||||
|
*
|
||||||
|
* @param steadyQualifyVO 最上层的信息
|
||||||
|
*/
|
||||||
|
private int seekLineNum(SteadyQualifyVO steadyQualifyVO) {
|
||||||
|
List<SteadyQualifyVO> children = steadyQualifyVO.getChildren();
|
||||||
|
// 如果没有子节点,说明当前就是最底层节点,计数1
|
||||||
|
if (children == null || children.isEmpty()) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// 如果有子节点,递归计算所有子节点的最底层节点总数
|
||||||
|
int total = 0;
|
||||||
|
for (SteadyQualifyVO child : children) {
|
||||||
|
total += seekLineNum(child);
|
||||||
|
}
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SteadyQualifyVO> getEnterpriseSteadyQualify(DeviceInfoParam.BusinessParam steadyParam) {
|
public List<SteadyQualifyVO> getEnterpriseSteadyQualify(DeviceInfoParam.BusinessParam steadyParam) {
|
||||||
List<SteadyQualifyVO> steadyQualifyList = new ArrayList<>();
|
List<SteadyQualifyVO> steadyQualifyList = new ArrayList<>();
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import com.njcn.harmonic.mapper.THDistortionMapper;
|
|||||||
import com.njcn.harmonic.pojo.dto.PublicDTO;
|
import com.njcn.harmonic.pojo.dto.PublicDTO;
|
||||||
import com.njcn.harmonic.pojo.po.RMpVThd;
|
import com.njcn.harmonic.pojo.po.RMpVThd;
|
||||||
import com.njcn.harmonic.pojo.vo.RMpVThdVO;
|
import com.njcn.harmonic.pojo.vo.RMpVThdVO;
|
||||||
|
import com.njcn.harmonic.pojo.vo.SteadyQualifyVO;
|
||||||
import com.njcn.harmonic.pojo.vo.THDistortionCensusVO;
|
import com.njcn.harmonic.pojo.vo.THDistortionCensusVO;
|
||||||
import com.njcn.harmonic.pojo.vo.THDistortionVO;
|
import com.njcn.harmonic.pojo.vo.THDistortionVO;
|
||||||
import com.njcn.harmonic.service.THDistortionService;
|
import com.njcn.harmonic.service.THDistortionService;
|
||||||
@@ -102,20 +103,23 @@ public class THDistortionServiceImpl implements THDistortionService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public THDistortionCensusVO getTHDistortionCensus(DeviceInfoParam.BusinessParam thDistortionCensusParam) {
|
public THDistortionCensusVO getTHDistortionCensus(DeviceInfoParam.BusinessParam thDistortionCensusParam) {
|
||||||
|
List<THDistortionVO> thDistortionVOS = getTHDistortionData(thDistortionCensusParam, 0);
|
||||||
|
|
||||||
THDistortionCensusVO distortionCensusVO = new THDistortionCensusVO();
|
THDistortionCensusVO distortionCensusVO = new THDistortionCensusVO();
|
||||||
thDistortionCensusParam.setServerName(generalInfo.getMicroServiceName());
|
// thDistortionCensusParam.setServerName(generalInfo.getMicroServiceName());
|
||||||
List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(thDistortionCensusParam).getData();
|
// List<GeneralDeviceDTO> generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(thDistortionCensusParam).getData();
|
||||||
List<String> type = new ArrayList<>();
|
List<String> type = new ArrayList<>();
|
||||||
List<Double> single = new ArrayList<>();
|
List<Double> single = new ArrayList<>();
|
||||||
if (!CollectionUtils.isEmpty(generalDeviceDTOList)) {
|
if (!CollectionUtils.isEmpty(thDistortionVOS)) {
|
||||||
for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) {
|
for (THDistortionVO thDistortionVO : thDistortionVOS) {
|
||||||
List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
// List<String> lineIndexes = generalDeviceDTO.getLineIndexes();
|
||||||
if (CollectionUtils.isEmpty(lineIndexes)) {
|
// if (CollectionUtils.isEmpty(lineIndexes)) {
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
type.add(generalDeviceDTO.getName() + "\n(" + generalDeviceDTO.getLineIndexes().size() + ")");
|
// type.add(thDistortionVO.getName() + "\n(" + seekLineNum(thDistortionVO) + ")");
|
||||||
List<PublicDTO> condition = getCondition(lineIndexes, thDistortionCensusParam.getSearchBeginTime(), thDistortionCensusParam.getSearchEndTime());
|
type.add(thDistortionVO.getName() );
|
||||||
single.add(roundHalfUp(condition.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159)));
|
// List<PublicDTO> condition = getCondition(lineIndexes, thDistortionCensusParam.getSearchBeginTime(), thDistortionCensusParam.getSearchEndTime());
|
||||||
|
single.add(thDistortionVO.getDistortion());
|
||||||
}
|
}
|
||||||
distortionCensusVO.setType(type);
|
distortionCensusVO.setType(type);
|
||||||
distortionCensusVO.setSingle(single);
|
distortionCensusVO.setSingle(single);
|
||||||
@@ -123,6 +127,25 @@ public class THDistortionServiceImpl implements THDistortionService {
|
|||||||
return distortionCensusVO;
|
return distortionCensusVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归出有多少个测点
|
||||||
|
*
|
||||||
|
* @param thDistortionVO 最上层的信息
|
||||||
|
*/
|
||||||
|
private int seekLineNum(THDistortionVO thDistortionVO) {
|
||||||
|
List<THDistortionVO> children = thDistortionVO.getChildren();
|
||||||
|
// 如果没有子节点,说明当前就是最底层节点,计数1
|
||||||
|
if (children == null || children.isEmpty()) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
// 如果有子节点,递归计算所有子节点的最底层节点总数
|
||||||
|
int total = 0;
|
||||||
|
for (THDistortionVO child : children) {
|
||||||
|
total += seekLineNum(child);
|
||||||
|
}
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param statisticsBizBaseParam
|
* @param statisticsBizBaseParam
|
||||||
* @Description: 谐波总畸变率前十列表
|
* @Description: 谐波总畸变率前十列表
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ public class UserReportNormalParam extends BaseParam {
|
|||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
@ApiModelProperty(value = "保存1,提交审批2")
|
@ApiModelProperty(value = "保存1,提交审批2")
|
||||||
private String saveOrCheckflag;
|
private String saveOrCheckflag;
|
||||||
/**
|
/**
|
||||||
@@ -40,6 +41,11 @@ public class UserReportNormalParam extends BaseParam {
|
|||||||
*/
|
*/
|
||||||
private String reportUrl;
|
private String reportUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 治理方案仿真校验评估报告
|
||||||
|
*/
|
||||||
|
private String simulationReportUrl;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 1:审批中;2:审批通过;3:审批不通过;4:已取消
|
* 1:审批中;2:审批通过;3:审批不通过;4:已取消
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -37,6 +37,12 @@ public class UserReportNormalPO extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private String reportUrl;
|
private String reportUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 治理方案仿真校验评估报告
|
||||||
|
*/
|
||||||
|
private String simulationReportUrl;
|
||||||
|
|
||||||
|
|
||||||
private String processInstanceId;
|
private String processInstanceId;
|
||||||
|
|
||||||
private String historyInstanceId;
|
private String historyInstanceId;
|
||||||
|
|||||||
@@ -121,6 +121,9 @@ public class WarningLeafletVO extends BaseEntity implements Serializable{
|
|||||||
@ApiModelProperty("预告警单下载路径")
|
@ApiModelProperty("预告警单下载路径")
|
||||||
private String filePath;
|
private String filePath;
|
||||||
|
|
||||||
|
@ApiModelProperty("实际路径")
|
||||||
|
private String absFilePath;
|
||||||
|
|
||||||
@ApiModelProperty("技术监督报告")
|
@ApiModelProperty("技术监督报告")
|
||||||
private String supervisionReport;
|
private String supervisionReport;
|
||||||
|
|
||||||
|
|||||||
@@ -209,6 +209,9 @@ public class UserReportVO {
|
|||||||
@ApiModelProperty(value = "入网评估报告和治理报告的文件路径名")
|
@ApiModelProperty(value = "入网评估报告和治理报告的文件路径名")
|
||||||
private String otherReport;
|
private String otherReport;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "仿真治理评估告")
|
||||||
|
private String simulationReport;
|
||||||
|
|
||||||
private String userReportId;
|
private String userReportId;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,5 +224,8 @@ public class UserReportVO {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "治理评估告")
|
@ApiModelProperty(value = "治理评估告")
|
||||||
private List<String> governReport;
|
private List<String> governReport;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "仿真治理评估告")
|
||||||
|
private List<String> simulationReport;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,7 +163,9 @@ public class WarningLeafletServiceImpl extends ServiceImpl<WarningLeafletMapper,
|
|||||||
x.setDutyOrgName(deptMap.get(x.getDutyOrgId()));
|
x.setDutyOrgName(deptMap.get(x.getDutyOrgId()));
|
||||||
}
|
}
|
||||||
if (!Objects.isNull(x.getFilePath())) {
|
if (!Objects.isNull(x.getFilePath())) {
|
||||||
|
x.setAbsFilePath(x.getFilePath());
|
||||||
x.setFilePath(fileStorageUtil.getFileUrl(x.getFilePath()));
|
x.setFilePath(fileStorageUtil.getFileUrl(x.getFilePath()));
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -393,6 +395,8 @@ public class WarningLeafletServiceImpl extends ServiceImpl<WarningLeafletMapper,
|
|||||||
record.setDutyOrgName(deptMap.get(record.getDutyOrgId()));
|
record.setDutyOrgName(deptMap.get(record.getDutyOrgId()));
|
||||||
}
|
}
|
||||||
if (!Objects.isNull(record.getFilePath())) {
|
if (!Objects.isNull(record.getFilePath())) {
|
||||||
|
record.setAbsFilePath(record.getFilePath());
|
||||||
|
|
||||||
record.setFilePath(fileStorageUtil.getFileUrl(record.getFilePath()));
|
record.setFilePath(fileStorageUtil.getFileUrl(record.getFilePath()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,6 @@ public class UserReportNormalServiceImpl extends ServiceImpl<UserReportNormalMap
|
|||||||
userReportNormalPO.setState(DataStateEnum.ENABLE.getCode());
|
userReportNormalPO.setState(DataStateEnum.ENABLE.getCode());
|
||||||
if (Objects.equals(userReportNormalParam.getSaveOrCheckflag(), "1")) {
|
if (Objects.equals(userReportNormalParam.getSaveOrCheckflag(), "1")) {
|
||||||
userReportNormalPO.setStatus(BpmTaskStatusEnum.WAIT.getStatus());
|
userReportNormalPO.setStatus(BpmTaskStatusEnum.WAIT.getStatus());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
userReportNormalPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
|
userReportNormalPO.setStatus(BpmTaskStatusEnum.RUNNING.getStatus());
|
||||||
|
|
||||||
@@ -154,6 +153,7 @@ public class UserReportNormalServiceImpl extends ServiceImpl<UserReportNormalMap
|
|||||||
vo.setId(item.getId());
|
vo.setId(item.getId());
|
||||||
vo.setUserReportId(item.getUserReportId());
|
vo.setUserReportId(item.getUserReportId());
|
||||||
vo.setOtherReport(item.getReportUrl());
|
vo.setOtherReport(item.getReportUrl());
|
||||||
|
vo.setSimulationReport(item.getSimulationReportUrl());
|
||||||
vo.setProcessInstanceId(item.getProcessInstanceId());
|
vo.setProcessInstanceId(item.getProcessInstanceId());
|
||||||
vo.setCreateTime(item.getCreateTime());
|
vo.setCreateTime(item.getCreateTime());
|
||||||
vo.setStatus(item.getStatus());
|
vo.setStatus(item.getStatus());
|
||||||
@@ -175,6 +175,7 @@ public class UserReportNormalServiceImpl extends ServiceImpl<UserReportNormalMap
|
|||||||
BeanUtil.copyProperties(userReportPO, vo);
|
BeanUtil.copyProperties(userReportPO, vo);
|
||||||
BeanUtil.copyProperties(userReportNormalPO, vo);
|
BeanUtil.copyProperties(userReportNormalPO, vo);
|
||||||
vo.setOtherReport(userReportNormalPO.getReportUrl());
|
vo.setOtherReport(userReportNormalPO.getReportUrl());
|
||||||
|
vo.setSimulationReport(userReportNormalPO.getSimulationReportUrl());
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
@@ -278,8 +279,10 @@ public class UserReportNormalServiceImpl extends ServiceImpl<UserReportNormalMap
|
|||||||
);
|
);
|
||||||
Optional<String> netInReport = list.stream().filter(x -> 0 == x.getType()).map(UserReportNormalPO::getReportUrl).findFirst();
|
Optional<String> netInReport = list.stream().filter(x -> 0 == x.getType()).map(UserReportNormalPO::getReportUrl).findFirst();
|
||||||
Optional<String> governReport = list.stream().filter(x -> 1 == x.getType()).map(UserReportNormalPO::getReportUrl).findFirst();
|
Optional<String> governReport = list.stream().filter(x -> 1 == x.getType()).map(UserReportNormalPO::getReportUrl).findFirst();
|
||||||
|
Optional<String> simulationReport = list.stream().filter(x -> 1 == x.getType()).map(UserReportNormalPO::getSimulationReportUrl).findFirst();
|
||||||
userReportVO.setNetInReport(Collections.singletonList(netInReport.orElse(null)));
|
userReportVO.setNetInReport(Collections.singletonList(netInReport.orElse(null)));
|
||||||
userReportVO.setGovernReport(Collections.singletonList(governReport.orElse(null)));
|
userReportVO.setGovernReport(Collections.singletonList(governReport.orElse(null)));
|
||||||
|
userReportVO.setSimulationReport(Collections.singletonList(simulationReport.orElse(null)));
|
||||||
return userReportVO;
|
return userReportVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -420,8 +420,10 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
|
|||||||
);
|
);
|
||||||
Optional<String> netInReport = list.stream().filter(x -> 0 == x.getType()).map(UserReportNormalPO::getReportUrl).findFirst();
|
Optional<String> netInReport = list.stream().filter(x -> 0 == x.getType()).map(UserReportNormalPO::getReportUrl).findFirst();
|
||||||
Optional<String> governReport = list.stream().filter(x -> 1 == x.getType()).map(UserReportNormalPO::getReportUrl).findFirst();
|
Optional<String> governReport = list.stream().filter(x -> 1 == x.getType()).map(UserReportNormalPO::getReportUrl).findFirst();
|
||||||
|
Optional<String> simulationReport = list.stream().filter(x -> 1 == x.getType()).map(UserReportNormalPO::getSimulationReportUrl).findFirst();
|
||||||
userReportVO.setNetInReport(Collections.singletonList(netInReport.orElse(null)));
|
userReportVO.setNetInReport(Collections.singletonList(netInReport.orElse(null)));
|
||||||
userReportVO.setGovernReport(Collections.singletonList(governReport.orElse(null)));
|
userReportVO.setGovernReport(Collections.singletonList(governReport.orElse(null)));
|
||||||
|
userReportVO.setSimulationReport(Collections.singletonList(simulationReport.orElse(null)));
|
||||||
return userReportVO;
|
return userReportVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1030,11 +1032,11 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
|
|||||||
ExcelImportResult<SensitiveReportExcel> sensitiveUserExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), SensitiveReportExcel.class, params);
|
ExcelImportResult<SensitiveReportExcel> sensitiveUserExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), SensitiveReportExcel.class, params);
|
||||||
log.info("Excel 解析完成,原始数据行数:{}", sensitiveUserExcelExcelImportResult.getList().size());
|
log.info("Excel 解析完成,原始数据行数:{}", sensitiveUserExcelExcelImportResult.getList().size());
|
||||||
//如果存在非法数据,将不合格的数据导出
|
//如果存在非法数据,将不合格的数据导出
|
||||||
if (sensitiveUserExcelExcelImportResult.isVerifyFail()) {
|
// if (sensitiveUserExcelExcelImportResult.isVerifyFail()) {
|
||||||
log.warn("存在校验失败的数据");
|
// log.warn("存在校验失败的数据");
|
||||||
PoiUtil.exportFileByWorkbook(sensitiveUserExcelExcelImportResult.getFailWorkbook(), "非法用户数据.xlsx", response);
|
// PoiUtil.exportFileByWorkbook(sensitiveUserExcelExcelImportResult.getFailWorkbook(), "非法用户数据.xlsx", response);
|
||||||
return; // 校验失败直接返回
|
// return; // 校验失败直接返回
|
||||||
} else {
|
// } else {
|
||||||
// 过滤掉空行数据(projectName 为空的行)
|
// 过滤掉空行数据(projectName 为空的行)
|
||||||
sensitiveUserExcels = sensitiveUserExcelExcelImportResult.getList().stream()
|
sensitiveUserExcels = sensitiveUserExcelExcelImportResult.getList().stream()
|
||||||
.filter(x -> StringUtils.isNotBlank(x.getProjectName()))
|
.filter(x -> StringUtils.isNotBlank(x.getProjectName()))
|
||||||
@@ -1044,7 +1046,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
|
|||||||
if (CollectionUtil.isEmpty(sensitiveUserExcels)) {
|
if (CollectionUtil.isEmpty(sensitiveUserExcels)) {
|
||||||
throw new BusinessException(SupervisionResponseEnum.IMPORT_DEV_DATA_ERROR);
|
throw new BusinessException(SupervisionResponseEnum.IMPORT_DEV_DATA_ERROR);
|
||||||
}
|
}
|
||||||
}
|
// }
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("导入失败,文件:{}", file.getOriginalFilename(), e);
|
log.error("导入失败,文件:{}", file.getOriginalFilename(), e);
|
||||||
throw new BusinessException(SupervisionResponseEnum.IMPORT_SENSITIVE_REPORT_ERROR);
|
throw new BusinessException(SupervisionResponseEnum.IMPORT_SENSITIVE_REPORT_ERROR);
|
||||||
|
|||||||
Reference in New Issue
Block a user