算法执行链切换

This commit is contained in:
2025-03-31 09:21:51 +08:00
parent c2405b9596
commit 82d616a99c
8 changed files with 55 additions and 62 deletions

View File

@@ -1,6 +1,8 @@
package com.njcn.device.pq.pojo.param.dataClean; package com.njcn.device.pq.pojo.param.dataClean;
import com.njcn.web.pojo.param.BaseParam; import com.njcn.web.pojo.param.BaseParam;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@@ -13,10 +15,18 @@ import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
public class MonitorBaseParam extends BaseParam { public class MonitorBaseParam extends BaseParam {
@ApiModelProperty(value = "部门id")
private String deptId; private String deptId;
@ApiModelProperty(value = "对象类型")
private String objType; private String objType;
@ApiModelProperty(value = "告警天数阈值")
private Integer alarmDayLimit;
@ApiModelProperty(value = "预警天数阈值")
private Integer warnDayLimit;
} }

View File

@@ -10,51 +10,21 @@ import lombok.Data;
@Data @Data
public class PowerQualityIndicatorsVO { public class PowerQualityIndicatorsVO {
// 频率,范围 42.5~57.5 //监测点名称
private double frequency; private String monitorName;
// 频率偏差,范围 -7.5~7.5 //所属终端名称
private double frequencyDeviation; private String devName;
// 相(线)电压有效值,范围 0~150%U //所属电站
private double phaseOrLineVoltageRms; private String stationName;
// 电压偏差,范围 -20%~20% //监测对象类型
private double voltageDeviation; private String objType;
// 电流有效值,大于 CT 一次变比 //监测对象名称
private double currentRms; private String objName;
// 单相功率因数,范围 -1~1 //电压等级
private double singlePhasePowerFactor; private String voltageLevel;
// 单相基波功率因数,范围 -1~1 //异常天数
private double singlePhaseFundamentalPowerFactor; private String abnormalDay;
// 三相功率因数,范围 -1~1 //严重度
private double threePhasePowerFactor; private Double severity;
// 基波功率因数,范围 -1~1
private double fundamentalPowerFactor;
// 电压总谐波畸变率,范围 0~30%
private double voltageTotalHarmonicDistortion;
// 相(线)电压基波有效值,范围 0~150%U
private double phaseOrLineVoltageFundamentalRms;
// 相(线)电压基波相角,范围 -180~180
private double phaseOrLineVoltageFundamentalPhaseAngle;
// 谐波电压含有率,范围 0~30%
private double harmonicVoltageContentRate;
// 谐波电压相角,范围 -180~180
private double harmonicVoltagePhaseAngle;
// 间谐波电压含有率,范围 0~30%
private double interHarmonicVoltageContentRate;
// 正序、负序和零序电压,范围 0~150%U
private double positiveNegativeZeroSequenceVoltage;
// 负序电压不平衡度,范围 0~40%
private double balanceV;
// 零序电压不平衡度,范围 0~40%
private double zeroSequenceVoltageUnbalanceDegree;
// 电压波动,范围 0~40%
private double voltageFluctuation;
// 短时间闪变值,范围 0~20
private double shortTermFlickerValue;
// 长时间闪变值,范围 0~20
private double longTermFlickerValue;
// 电压暂降特征幅值,范围 0~90%
private double voltageSagCharacteristicAmplitude;
// 电压暂升特征幅值
private double voltageSwellCharacteristicAmplitude;
} }

View File

@@ -7,8 +7,7 @@ import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil; import com.njcn.common.utils.HttpResultUtil;
import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam; import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam;
import com.njcn.device.pq.pojo.vo.AlarmStrategyVO;
import com.njcn.device.pq.pojo.vo.dataClean.PowerQualityIndicatorsVO;
import com.njcn.device.pq.pojo.vo.dataClean.VerifyMonitorVO; import com.njcn.device.pq.pojo.vo.dataClean.VerifyMonitorVO;
import com.njcn.device.pq.service.IDataVerifyService; import com.njcn.device.pq.service.IDataVerifyService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;

View File

@@ -3,7 +3,7 @@ package com.njcn.device.pq.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam; import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam;
import com.njcn.device.pq.pojo.po.DataVerify; import com.njcn.device.pq.pojo.po.DataVerify;
import com.njcn.device.pq.pojo.vo.dataClean.PowerQualityIndicatorsVO;
import com.njcn.device.pq.pojo.vo.dataClean.VerifyMonitorVO; import com.njcn.device.pq.pojo.vo.dataClean.VerifyMonitorVO;
import java.util.List; import java.util.List;

View File

@@ -5,13 +5,12 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.*; import cn.hutool.core.date.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.dataProcess.enums.DataCleanEnum;
import com.njcn.device.pq.constant.Param; import com.njcn.device.pq.constant.Param;
import com.njcn.device.pq.mapper.DataVerifyMapper; import com.njcn.device.pq.mapper.DataVerifyMapper;
import com.njcn.device.pq.mapper.LineMapper; import com.njcn.device.pq.mapper.LineMapper;
import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam; import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam;
import com.njcn.device.pq.pojo.po.DataVerify; import com.njcn.device.pq.pojo.po.DataVerify;
import com.njcn.device.pq.pojo.vo.dataClean.PowerQualityIndicatorsVO;
import com.njcn.device.pq.pojo.vo.dataClean.VerifyMonitorVO; import com.njcn.device.pq.pojo.vo.dataClean.VerifyMonitorVO;
import com.njcn.device.pq.service.CommTerminalService; import com.njcn.device.pq.service.CommTerminalService;
import com.njcn.device.pq.service.IDataVerifyService; import com.njcn.device.pq.service.IDataVerifyService;
@@ -20,8 +19,10 @@ import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.DateFormat; import java.text.DateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -108,6 +109,7 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
Set<String> harmPhasicSet = new HashSet<>(); Set<String> harmPhasicSet = new HashSet<>();
Set<String> harmVSet = new HashSet<>(); Set<String> harmVSet = new HashSet<>();
Set<String> inHarmVSet = new HashSet<>(); Set<String> inHarmVSet = new HashSet<>();
Set<String> vRmsSet = new HashSet<>();
//正序、负序和零序电压 //正序、负序和零序电压
Set<String> posVSet = new HashSet<>(); Set<String> posVSet = new HashSet<>();
@@ -128,10 +130,8 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
powerQualityIndicatorsVO.setFrequencyDeviation(num.size()); powerQualityIndicatorsVO.setFrequencyDeviation(num.size());
break; break;
case Param.rms_v: case Param.rms_v:
powerQualityIndicatorsVO.setPhaseOrLineVoltageRms(powerQualityIndicatorsVO.getPhaseOrLineVoltageRms()+num.size());
break;
case Param.rms_lvr: case Param.rms_lvr:
powerQualityIndicatorsVO.setPhaseOrLineVoltageRms(powerQualityIndicatorsVO.getPhaseOrLineVoltageRms()+num.size()); vRmsSet.addAll(num);
break; break;
case Param.vu_dev: case Param.vu_dev:
powerQualityIndicatorsVO.setVoltageDeviation(num.size()); powerQualityIndicatorsVO.setVoltageDeviation(num.size());
@@ -179,11 +179,22 @@ public class DataVerifyServiceImpl extends ServiceImpl<DataVerifyMapper, DataVer
break; break;
} }
}); });
powerQualityIndicatorsVO.setHarmonicVoltagePhaseAngle(harmPhasicSet.size()); powerQualityIndicatorsVO.setHarmonicVoltagePhaseAngle(harmPhasicSet.size());
powerQualityIndicatorsVO.setHarmonicVoltageContentRate(harmVSet.size()); powerQualityIndicatorsVO.setHarmonicVoltageContentRate(harmVSet.size());
powerQualityIndicatorsVO.setInterHarmonicVoltageContentRate(inHarmVSet.size()); powerQualityIndicatorsVO.setInterHarmonicVoltageContentRate(inHarmVSet.size());
powerQualityIndicatorsVO.setPositiveNegativeZeroSequenceVoltage(posVSet.size()); powerQualityIndicatorsVO.setPositiveNegativeZeroSequenceVoltage(posVSet.size());
powerQualityIndicatorsVO.setPhaseOrLineVoltageRms(vRmsSet.size());
} }
public void getAbnormalTable(List<DataVerify> dataVerifyList,VerifyMonitorVO powerQualityIndicatorsVO,MonitorBaseParam monitorBaseParam) {
Map<String,List<DataVerify>> dataMap = dataVerifyList.stream().collect(Collectors.groupingBy(DataVerify::getLineId));
dataMap.forEach((key,list)->{
list.stream().map(it->it.getTime().format(DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN))).distinct().sorted(Comparator.comparing(Function.identity())).collect(Collectors.toList());
});
}
} }

View File

@@ -3,8 +3,9 @@ package com.njcn.system.timer.tasks;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njcn.algorithm.pojo.bo.BaseParam;
import com.njcn.algorithm.pojo.liteflow.LiteFlowAlgorithmFeignClient;
import com.njcn.prepare.harmonic.api.liteflow.LiteFlowFeignClient; import com.njcn.prepare.harmonic.api.liteflow.LiteFlowFeignClient;
import com.njcn.prepare.harmonic.pojo.bo.BaseParam;
import com.njcn.system.timer.TimerTaskRunner; import com.njcn.system.timer.TimerTaskRunner;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -20,7 +21,7 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor @RequiredArgsConstructor
public class DeviceTaskRunner implements TimerTaskRunner { public class DeviceTaskRunner implements TimerTaskRunner {
private final LiteFlowFeignClient liteFlowFeignClient; private final LiteFlowAlgorithmFeignClient liteFlowFeignClient;
@Override @Override
public void action(String date) { public void action(String date) {

View File

@@ -3,8 +3,9 @@ package com.njcn.system.timer.tasks;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njcn.algorithm.pojo.bo.BaseParam;
import com.njcn.algorithm.pojo.liteflow.LiteFlowAlgorithmFeignClient;
import com.njcn.prepare.harmonic.api.liteflow.LiteFlowFeignClient; import com.njcn.prepare.harmonic.api.liteflow.LiteFlowFeignClient;
import com.njcn.prepare.harmonic.pojo.bo.BaseParam;
import com.njcn.system.timer.TimerTaskRunner; import com.njcn.system.timer.TimerTaskRunner;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -20,7 +21,7 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor @RequiredArgsConstructor
public class OrgTaskRunner implements TimerTaskRunner { public class OrgTaskRunner implements TimerTaskRunner {
private final LiteFlowFeignClient liteFlowFeignClient; private final LiteFlowAlgorithmFeignClient liteFlowFeignClient;
@Override @Override
public void action(String date) { public void action(String date) {

View File

@@ -3,8 +3,10 @@ package com.njcn.system.timer.tasks;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.njcn.algorithm.pojo.bo.BaseParam;
import com.njcn.algorithm.pojo.liteflow.LiteFlowAlgorithmFeignClient;
import com.njcn.prepare.harmonic.api.liteflow.LiteFlowFeignClient; import com.njcn.prepare.harmonic.api.liteflow.LiteFlowFeignClient;
import com.njcn.prepare.harmonic.pojo.bo.BaseParam;
import com.njcn.system.timer.TimerTaskRunner; import com.njcn.system.timer.TimerTaskRunner;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -20,8 +22,7 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor @RequiredArgsConstructor
public class SubstationTaskRunner implements TimerTaskRunner { public class SubstationTaskRunner implements TimerTaskRunner {
private final LiteFlowFeignClient liteFlowFeignClient; private final LiteFlowAlgorithmFeignClient liteFlowFeignClient;
@Override @Override
public void action(String date) { public void action(String date) {
BaseParam baseParam = new BaseParam(); BaseParam baseParam = new BaseParam();