1.在线监测点-》稳态指标合格率分析 监测点合格率算法调整

2.区域-》指标合格率统计 各维度合格率算法调整
3.运行管理-》指标合格率列表 监测点合格率算法调整
This commit is contained in:
xy
2024-06-19 20:26:23 +08:00
parent cc795fd542
commit 1ca5ce855b
6 changed files with 422 additions and 232 deletions

View File

@@ -16,6 +16,8 @@ public class SteadyData implements Serializable {
private float allTime;
private float tAllTime;
private float frequency=3.1415f;
private float uBalance=3.1415f;
@@ -188,6 +190,14 @@ public class SteadyData implements Serializable {
this.inUharm = inUharm;
}
public float gettAllTime() {
return tAllTime;
}
public void settAllTime(float tAllTime) {
this.tAllTime = tAllTime;
}
@Override
public String toString() {
return "SteadyData{" +
@@ -195,6 +205,7 @@ public class SteadyData implements Serializable {
", monitors=" + monitors +
", areaIndex='" + areaIndex + '\'' +
", allTime=" + allTime +
", tAllTime=" + tAllTime +
", frequency=" + frequency +
", uBalance=" + uBalance +
", uAberrance=" + uAberrance +

View File

@@ -202,23 +202,17 @@ public class LineServiceImpls implements LineService {
return new SteadyData();//全部是3.1415,代表无监测点无数据
}
List<Integer> lineIndexTemp = new ArrayList<>(lineIndexs);
Integer size = lineIndexTemp.size();
int size = lineIndexTemp.size();
try {
if (size > 1000) {
Integer times = size / 1000 + 1;
int times = size / 1000 + 1;
for (int i = 0; i < times; i++) {
if (size > 1000) {
List<Integer> tempIndexs = lineIndexTemp.subList(0, 1000);
//需要区分频率偏差、三相电压不平衡与其他指标的获取方式
SteadyData tempT = limitRateMapper.getsteadDataByT(tempIndexs, startTime, endTime);
//合并数据
steadyData = mergeSteady(steadyData, tempT);
tempIndexs.clear();
} else {
//需要区分频率偏差、三相电压不平衡与其他指标的获取方式
SteadyData tempT = limitRateMapper.getsteadDataByT(lineIndexTemp, startTime, endTime);
steadyData = mergeSteady(steadyData, tempT);
}
List<Integer> tempIndexs = lineIndexTemp.subList(0, 1000);
//需要区分频率偏差、三相电压不平衡与其他指标的获取方式
SteadyData tempT = limitRateMapper.getsteadDataByT(tempIndexs, startTime, endTime);
//合并数据
steadyData = mergeSteady(steadyData, tempT);
tempIndexs.clear();
}
} else {
//需要区分频率偏差、三相电压不平衡与其他指标的获取方式
@@ -246,7 +240,11 @@ public class LineServiceImpls implements LineService {
} else {
steadyData.setAllTime(steadyData.getAllTime() + tempT.getAllTime());
}
if (steadyData.gettAllTime() == 0) {
steadyData.settAllTime(tempT.gettAllTime());
} else {
steadyData.settAllTime(steadyData.gettAllTime() + tempT.gettAllTime());
}
if (steadyData.getFrequency() == 3.1415f) {
steadyData.setFrequency(tempT.getFrequency());
} else {
@@ -329,14 +327,15 @@ public class LineServiceImpls implements LineService {
return steadyData;
} else {
float allTime = steadyData.getAllTime();
float tAllTime = steadyData.gettAllTime();
//冀北二期 谐波电流 谐波电压 负序电流 间谐波电压含有率 start
steadyData.setHarmVoltage(getAcceptlityByData(allTime, steadyData.getHarmVoltage()));
steadyData.setHarmElec(getAcceptlityByData(allTime, steadyData.getHarmElec()));
steadyData.setiNeg(getAcceptlityByData(allTime, steadyData.getiNeg()));
steadyData.setiNeg(getAcceptlityByData(tAllTime, steadyData.getiNeg()));
steadyData.setInUharm(getAcceptlityByData(allTime, steadyData.getInUharm()));
//冀北二期 谐波电流 谐波电压 负序电流 间谐波电压含有率 end
steadyData.setVoltageDeviation(getAcceptlityByData(allTime, steadyData.getVoltageDeviation()));
steadyData.setuBalance(getAcceptlityByData(allTime, steadyData.getuBalance()));
steadyData.setuBalance(getAcceptlityByData(tAllTime, steadyData.getuBalance()));
steadyData.setFlicker(getAcceptlityByData(steadyData.getAllFlicker(), steadyData.getFlicker()));
steadyData.setOddVoltage(getAcceptlityByData(allTime, steadyData.getOddVoltage()));
steadyData.setEvenVoltage(getAcceptlityByData(allTime, steadyData.getEvenVoltage()));
@@ -350,16 +349,23 @@ public class LineServiceImpls implements LineService {
//计算合格率结果
private float getAcceptlityByData(float allTime, float data) {
float accpet = allTime - data;
if (accpet < 0) {
accpet = 0;
float result;
if (Objects.equals(data,3.1415f)) {
result = 3.14159f;
} else {
float accpet = allTime - data;
if (accpet < 0) {
accpet = 0;
}
if(allTime == 0){
return 100.0f;
}
float num = accpet / allTime;
// 格式化小数
DecimalFormat df = new DecimalFormat("0.00");
result = Float.parseFloat(df.format(num * 100));
}
if(allTime == 0){
return 100.0f;
}
float num = accpet / allTime;
DecimalFormat df = new DecimalFormat("0.00");// 格式化小数
return Float.valueOf(df.format(num * 100));
return result;
}
//计算谐波电压合格率结果