冀北监测点合格率算法调整
This commit is contained in:
@@ -32,6 +32,7 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.time.LocalDate;
|
||||
import java.time.Year;
|
||||
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.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.setUHarm(PubUtils.doubleRound(2, 100.0 - ((item2.getUharm2Overtime() +
|
||||
item2.getUharm3Overtime() +
|
||||
item2.getUharm4Overtime() +
|
||||
item2.getUharm5Overtime() +
|
||||
item2.getUharm6Overtime() +
|
||||
item2.getUharm7Overtime() +
|
||||
item2.getUharm8Overtime() +
|
||||
item2.getUharm9Overtime() +
|
||||
item2.getUharm10Overtime() +
|
||||
item2.getUharm11Overtime() +
|
||||
item2.getUharm12Overtime() +
|
||||
item2.getUharm13Overtime() +
|
||||
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())));
|
||||
//谐波电压
|
||||
List<Integer> list1 = getList(2,25,"getUharm",item2);
|
||||
Integer maxValue1 = list1.stream().max(Integer::compareTo).orElse(null);
|
||||
qualifiedDetail.setUHarm(Objects.isNull(maxValue1) ? 0 : PubUtils.doubleRound(2,100.0 - (maxValue1*100.0 / item2.getAllTime())));
|
||||
//谐波电流
|
||||
List<Integer> list2 = getList(2,25,"getIharm",item2);
|
||||
Integer maxValue2 = list2.stream().max(Integer::compareTo).orElse(null);
|
||||
qualifiedDetail.setUHarm(Objects.isNull(maxValue2) ? 0 : PubUtils.doubleRound(2,100.0 - (maxValue2*100.0 / item2.getAllTime())));
|
||||
//间谐波电压
|
||||
List<Integer> list3 = getList(1,16,"getInuharm",item2);
|
||||
Integer maxValue3 = list3.stream().max(Integer::compareTo).orElse(null);
|
||||
qualifiedDetail.setUHarm(Objects.isNull(maxValue3) ? 0 : PubUtils.doubleRound(2,100.0 - (maxValue3*100.0 / item2.getAllTime())));
|
||||
qualifiedDetail.setINeg(PubUtils.doubleRound(2, 100.0 - (item2.getINegOvertime() * 100.0 / item2.getAllTime())));
|
||||
}
|
||||
if (item2.getFlickerAllTime() > 0) {
|
||||
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相最大值
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user