冀北监测点合格率算法调整
This commit is contained in:
@@ -32,6 +32,7 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.Year;
|
import java.time.Year;
|
||||||
import java.time.YearMonth;
|
import java.time.YearMonth;
|
||||||
@@ -642,75 +643,47 @@ public class GridServiceImpl implements IGridService {
|
|||||||
qualifiedDetail.setVDev(PubUtils.doubleRound(2, 100.0 - (item2.getVoltageDevOvertime() * 100.0 / item2.getAllTime())));
|
qualifiedDetail.setVDev(PubUtils.doubleRound(2, 100.0 - (item2.getVoltageDevOvertime() * 100.0 / item2.getAllTime())));
|
||||||
qualifiedDetail.setVThd(PubUtils.doubleRound(2, 100.0 - (item2.getUaberranceOvertime() * 100.0 / item2.getAllTime())));
|
qualifiedDetail.setVThd(PubUtils.doubleRound(2, 100.0 - (item2.getUaberranceOvertime() * 100.0 / item2.getAllTime())));
|
||||||
qualifiedDetail.setUbalance(PubUtils.doubleRound(2, 100.0 - (item2.getUbalanceOvertime() * 100.0 / item2.getAllTime())));
|
qualifiedDetail.setUbalance(PubUtils.doubleRound(2, 100.0 - (item2.getUbalanceOvertime() * 100.0 / item2.getAllTime())));
|
||||||
qualifiedDetail.setUHarm(PubUtils.doubleRound(2, 100.0 - ((item2.getUharm2Overtime() +
|
//谐波电压
|
||||||
item2.getUharm3Overtime() +
|
List<Integer> list1 = getList(2,25,"getUharm",item2);
|
||||||
item2.getUharm4Overtime() +
|
Integer maxValue1 = list1.stream().max(Integer::compareTo).orElse(null);
|
||||||
item2.getUharm5Overtime() +
|
qualifiedDetail.setUHarm(Objects.isNull(maxValue1) ? 0 : PubUtils.doubleRound(2,100.0 - (maxValue1*100.0 / item2.getAllTime())));
|
||||||
item2.getUharm6Overtime() +
|
//谐波电流
|
||||||
item2.getUharm7Overtime() +
|
List<Integer> list2 = getList(2,25,"getIharm",item2);
|
||||||
item2.getUharm8Overtime() +
|
Integer maxValue2 = list2.stream().max(Integer::compareTo).orElse(null);
|
||||||
item2.getUharm9Overtime() +
|
qualifiedDetail.setUHarm(Objects.isNull(maxValue2) ? 0 : PubUtils.doubleRound(2,100.0 - (maxValue2*100.0 / item2.getAllTime())));
|
||||||
item2.getUharm10Overtime() +
|
//间谐波电压
|
||||||
item2.getUharm11Overtime() +
|
List<Integer> list3 = getList(1,16,"getInuharm",item2);
|
||||||
item2.getUharm12Overtime() +
|
Integer maxValue3 = list3.stream().max(Integer::compareTo).orElse(null);
|
||||||
item2.getUharm13Overtime() +
|
qualifiedDetail.setUHarm(Objects.isNull(maxValue3) ? 0 : PubUtils.doubleRound(2,100.0 - (maxValue3*100.0 / item2.getAllTime())));
|
||||||
item2.getUharm14Overtime() +
|
|
||||||
item2.getUharm15Overtime() +
|
|
||||||
item2.getUharm16Overtime() +
|
|
||||||
item2.getUharm17Overtime() +
|
|
||||||
item2.getUharm18Overtime() +
|
|
||||||
item2.getUharm19Overtime() +
|
|
||||||
item2.getUharm20Overtime() +
|
|
||||||
item2.getUharm21Overtime() +
|
|
||||||
item2.getUharm22Overtime() +
|
|
||||||
item2.getUharm23Overtime() +
|
|
||||||
item2.getUharm24Overtime() +
|
|
||||||
item2.getUharm25Overtime()) * 100.0 / item2.getAllTime())));
|
|
||||||
qualifiedDetail.setIHarm(PubUtils.doubleRound(2, 100.0 - ((item2.getIharm2Overtime() +
|
|
||||||
item2.getIharm4Overtime() +
|
|
||||||
item2.getIharm5Overtime() +
|
|
||||||
item2.getIharm6Overtime() +
|
|
||||||
item2.getIharm7Overtime() +
|
|
||||||
item2.getIharm8Overtime() +
|
|
||||||
item2.getIharm9Overtime() +
|
|
||||||
item2.getIharm10Overtime() +
|
|
||||||
item2.getIharm11Overtime() +
|
|
||||||
item2.getIharm12Overtime() +
|
|
||||||
item2.getIharm13Overtime() +
|
|
||||||
item2.getIharm14Overtime() +
|
|
||||||
item2.getIharm15Overtime() +
|
|
||||||
item2.getIharm16Overtime() +
|
|
||||||
item2.getIharm17Overtime() +
|
|
||||||
item2.getIharm18Overtime() +
|
|
||||||
item2.getIharm19Overtime() +
|
|
||||||
item2.getIharm20Overtime() +
|
|
||||||
item2.getIharm21Overtime() +
|
|
||||||
item2.getIharm22Overtime() +
|
|
||||||
item2.getIharm23Overtime() +
|
|
||||||
item2.getIharm24Overtime() +
|
|
||||||
item2.getIharm25Overtime()) * 100.0 / item2.getAllTime())));
|
|
||||||
qualifiedDetail.setInuHarm(PubUtils.doubleRound(2, 100.0 - ((item2.getInuharm1Overtime() +
|
|
||||||
item2.getInuharm2Overtime() +
|
|
||||||
item2.getInuharm3Overtime() +
|
|
||||||
item2.getInuharm4Overtime() +
|
|
||||||
item2.getInuharm5Overtime() +
|
|
||||||
item2.getInuharm6Overtime() +
|
|
||||||
item2.getInuharm7Overtime() +
|
|
||||||
item2.getInuharm8Overtime() +
|
|
||||||
item2.getInuharm9Overtime() +
|
|
||||||
item2.getInuharm10Overtime() +
|
|
||||||
item2.getInuharm11Overtime() +
|
|
||||||
item2.getInuharm12Overtime() +
|
|
||||||
item2.getInuharm13Overtime() +
|
|
||||||
item2.getInuharm14Overtime() +
|
|
||||||
item2.getInuharm15Overtime() +
|
|
||||||
item2.getInuharm16Overtime()) * 100.0 / item2.getAllTime())));
|
|
||||||
qualifiedDetail.setINeg(PubUtils.doubleRound(2, 100.0 - (item2.getINegOvertime() * 100.0 / item2.getAllTime())));
|
qualifiedDetail.setINeg(PubUtils.doubleRound(2, 100.0 - (item2.getINegOvertime() * 100.0 / item2.getAllTime())));
|
||||||
}
|
}
|
||||||
if (item2.getFlickerAllTime() > 0) {
|
if (item2.getFlickerAllTime() > 0) {
|
||||||
qualifiedDetail.setPlt(PubUtils.doubleRound(2, 100.0 - (item2.getFlickerOvertime() * 100.0 / item2.getFlickerAllTime())));
|
qualifiedDetail.setPlt(PubUtils.doubleRound(2, 100.0 - (item2.getFlickerOvertime() * 100.0 / item2.getFlickerAllTime())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 使用反射添加list的值
|
||||||
|
*/
|
||||||
|
public List<Integer> getList(Integer start, Integer end, String targetName, RStatLimitRateDPO item2) {
|
||||||
|
List<Integer> result = new ArrayList<>();
|
||||||
|
for (int i = start; i <= end; i++) {
|
||||||
|
try {
|
||||||
|
// 构造方法名
|
||||||
|
String methodName = targetName + i + "Overtime";
|
||||||
|
Method method = item2.getClass().getMethod(methodName);
|
||||||
|
// 调用方法并添加到列表中
|
||||||
|
Integer value = (Integer) method.invoke(item2);
|
||||||
|
if (value != null) {
|
||||||
|
result.add(value);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.getMessage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取监测点频率偏差 T相最大值
|
* 获取监测点频率偏差 T相最大值
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user