1.针对电压偏差合格率判断算法调整

2.文件导出bug调整
This commit is contained in:
xy
2024-06-14 14:36:45 +08:00
parent a0990f1773
commit cc795fd542
4 changed files with 78 additions and 38 deletions

View File

@@ -17,6 +17,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.njcn.enums.LogTypeEnum;
import com.njcn.mapper.user.UserMapper;
@@ -1088,10 +1089,9 @@ public class DeviceController {
return result;
}
private void transformData(List<ReportTarget> list, List<ReportValue> listValue, List<Pass> listOverlimit, boolean b) {
private void transformData(List<ReportTarget> list, List<ReportValue> listValue, List<Pass> listOverlimit, boolean b,Float lowLimit) {
int offset = 1;//b ? 3 : 1;
int i = 0;
for (int index = 0; index < listValue.size(); index += offset) {
ReportTarget reportTarget = new ReportTarget();
reportTarget.setList(listValue.subList(index, index + offset));
@@ -1103,7 +1103,7 @@ public class DeviceController {
for (int k = 0; k < reportTarget.getList().size(); k++) {
if (null == reportTarget.getList().get(k).getFmaxValue()) {
break;
} else if (Math.abs(reportTarget.getList().get(k).getFmaxValue().floatValue()) > overLimit.floatValue()) {
} else if (reportTarget.getList().get(k).getFmaxValue().floatValue() > overLimit.floatValue()) {
reportTarget.setPass(EnumPass.NOPASS.getCode());
break;
} else {
@@ -1147,6 +1147,21 @@ public class DeviceController {
}
}
break;
case 6:
for (int k = 0; k < reportTarget.getList().size(); k++) {
if (null == reportTarget.getList().get(k).getFmaxValue() || null == reportTarget.getList().get(k).getMinValue()) {
break;
} else if (reportTarget.getList().get(k).getFmaxValue() < lowLimit || reportTarget.getList().get(k).getFmaxValue() > overLimit) {
reportTarget.setPass(EnumPass.NOPASS.getCode());
break;
} else if (reportTarget.getList().get(k).getMinValue() < lowLimit || reportTarget.getList().get(k).getMinValue() > overLimit) {
reportTarget.setPass(EnumPass.NOPASS.getCode());
break;
} else {
reportTarget.setPass(EnumPass.PASS.getCode());
}
}
break;
default:
break;
}
@@ -1156,6 +1171,29 @@ public class DeviceController {
}
}
/**
* 根据监测点的电压等级获取电压偏差的下限因为目前oracle库中只有上限的值
*/
public Float getDevLowLimit(Integer line,Float upLimit) {
float low = 0.0f;
MachineAccount machineAccount = lineService.getLineName(line);
if (!Objects.isNull(machineAccount.getScale()) || !"".equals(machineAccount.getScale())) {
float nScale = Float.parseFloat(machineAccount.getScale().substring(0, machineAccount.getScale().length() - 2));
if (Objects.equals(nScale,220.0f) || nScale <= 20.0f) {
low = 0.0f;
} else if (nScale >= 66.0f && nScale <= 110.0f) {
low = -3.0f;
} else if (Objects.equals(nScale,35.0f)) {
if (upLimit >= 0.0f) {
low = -(10.0f - upLimit);
} else {
low = 10.0f - Math.abs(upLimit);
}
}
}
return low;
}
@PostMapping("getHistoryTableData")
@ResponseBody
public HttpResult getHistoryTableData(String startTime, String endTime, String lineId, String type, String index, String harmonicInHarms) {
@@ -1254,6 +1292,7 @@ public class DeviceController {
tempCondition.setPltCount(overLimitInfo.getPltCount());
tempCondition.setPstCount(overLimitInfo.getPstCount());
saveConditionData(tempCondition, key);
Float low = getDevLowLimit(lineIds[j],new Pass(overLimitInfo.getOverLimitRate().get(0).getVoltageDev(), EnumPass.MAX_AND_MIN.getCode()).getOverLimit());
for (int i = 0; i < types.length; i++) {
HistoryTableData.data data;
List<ReportTarget> list1;
@@ -1267,7 +1306,7 @@ public class DeviceController {
data.setTypeId(21);
transformData(list1, getVirtualDataService.getVirtualData(condition, "i"), new ArrayList<Pass>() {{
add(new Pass(null));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1279,7 +1318,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getVirtualDataService.getVirtualData(condition, "v"), new ArrayList<Pass>() {{
add(new Pass(null));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1291,7 +1330,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getVirtualDataService.getVVirtualData(condition), new ArrayList<Pass>() {{
add(new Pass(null));
}}, true);
}}, true, low);
data.setList(list1);
data.getList().get(0).getList().get(0).setPhaseType("AB");
data.getList().get(0).getList().get(1).setPhaseType("BC");
@@ -1306,7 +1345,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getPowerDataService.getPower(condition, "P"), new ArrayList<Pass>() {{
add(new Pass(null));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1318,7 +1357,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getPowerDataService.getPower(condition, "Q"), new ArrayList<Pass>() {{
add(new Pass(null));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1330,7 +1369,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getPowerDataService.getPower(condition, "S"), new ArrayList<Pass>() {{
add(new Pass(null));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1342,7 +1381,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getFlickerDataService.getPFlickerData(condition), new ArrayList<Pass>() {{
add(new Pass(null));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1354,7 +1393,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getFlickerDataService.getLLFlickerData(condition), new ArrayList<Pass>() {{
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getFlicker(), EnumPass.MAX.getCode()));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1366,7 +1405,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getDistortionDataService.getDistortionData(condition, "V"), new ArrayList<Pass>() {{
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getUaberrance(), EnumPass.CP95.getCode()));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1378,7 +1417,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getDistortionDataService.getDistortionData(condition, "I"), new ArrayList<Pass>() {{
add(new Pass(null));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1390,7 +1429,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getInegDataService.getInegData(condition), new ArrayList<Pass>() {{
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getiNeg(), EnumPass.MAX.getCode()));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1401,8 +1440,8 @@ public class DeviceController {
data.setTypeId(13);
list1 = new ArrayList<>();
transformData(list1, getVdeviationDataService.getVdeviationData(condition), new ArrayList<Pass>() {{
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getVoltageDev(), EnumPass.MAX.getCode()));
}}, true);
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getVoltageDev(), EnumPass.MAX_AND_MIN.getCode()));
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1414,7 +1453,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getFrequencyDataService.getFreqData(condition), new ArrayList<Pass>() {{
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getFreqDev(), EnumPass.MAX.getCode()));
}}, false);
}}, false, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1427,7 +1466,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, list2.subList(1, 2), new ArrayList<Pass>() {{
add(new Pass(null));
}}, false);
}}, false, low);
data.setList(list1);
historyTableData.setData(data);
@@ -1437,7 +1476,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, list2.subList(2, 3), new ArrayList<Pass>() {{
add(new Pass(null));
}}, false);
}}, false, low);
data.setList(list1);
historyTableData.setData(data);
@@ -1447,7 +1486,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, list2.subList(3, 4), new ArrayList<Pass>() {{
add(new Pass(null));
}}, false);
}}, false, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1460,7 +1499,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, listResult, new ArrayList<Pass>() {{
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getUbalance(), EnumPass.CP95.getCode()));
}}, false);
}}, false, low);
data.setList(list1);
historyTableData.setData(data);
break;
@@ -1477,7 +1516,7 @@ public class DeviceController {
int m = inde[k] - 2;
transformData(list1, list3, new ArrayList<Pass>() {{
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getVHarmList().get(m), EnumPass.CP95.getCode()));
}}, false);
}}, false, low);
data.setList(list1);
historyTableData.setData(data);
}
@@ -1495,7 +1534,7 @@ public class DeviceController {
int m = inde[k] - 2;
transformData(list1, list3, new ArrayList<Pass>() {{
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getIHarmList().get(m), EnumPass.CP95.getCode()));
}}, false);
}}, false, low);
data.setList(list1);
historyTableData.setData(data);
}
@@ -1514,7 +1553,7 @@ public class DeviceController {
int m = inharm[k];
transformData(list1, list3, new ArrayList<Pass>() {{
add(new Pass(overLimitInfo.getOverLimitRate().get(0).getInHarmList().get(m-1), EnumPass.CP95.getCode()));
}}, false);
}}, false, low);
data.setList(list1);
historyTableData.setData(data);
}
@@ -1528,7 +1567,7 @@ public class DeviceController {
list1 = new ArrayList<>();
transformData(list1, getVoltage.getVoltageData(condition), new ArrayList<Pass>() {{
add(new Pass(null));
}}, true);
}}, true, low);
data.setList(list1);
historyTableData.setData(data);
break;

View File

@@ -5,6 +5,7 @@ public enum EnumPass {
MIN(2, "使用最小值与国标限值比较,判断指标是否合格"),
MEAN(3, "使用平均值与国标限值比较,判断指标是否合格"),
CP95(4, "使用CP95值与国标限值比较判断指标是否合格"),
MAX_AND_MIN(6, "使用最大值与最小值同国标限值比较,判断指标是否合格"),
DEFAULT(5, "不作比较"),
PASS(0, "合格"),
FPYVALUE(98, "合格率限值"),

View File

@@ -28,7 +28,7 @@ public class HarmonicDetailTask {
@Autowired
private OverLimitMonitorService overLimitMonitorService;
@Scheduled(cron = "0 0 6 * * ?")
@Scheduled(cron = "0 0 8 * * ?")
public void timer() {
try {
//获取前一天时间

View File

@@ -1212,31 +1212,31 @@ public class ComplexHeadExcel{
cell.setCellValue(list.get(i).getDiffHarmonicVoltageData());
cell = row.createCell(34);
cell.setCellValue(list.get(i).getOverFrequencyDeviationDay());
cell.setCellValue(list.get(i).getOverThreeVoltageUnbalanceDay());
cell = row.createCell(35);
cell.setCellValue(list.get(i).getMaxFrequencyDeviationData());
cell.setCellValue(list.get(i).getMaxThreeVoltageUnbalanceData());
cell = row.createCell(36);
cell.setCellValue(list.get(i).getLimitFrequencyDeviationData());
cell.setCellValue(list.get(i).getLimitThreeVoltageUnbalanceData());
cell = row.createCell(37);
cell.setCellValue(list.get(i).getDiffFrequencyDeviationData());
cell.setCellValue(list.get(i).getDiffThreeVoltageUnbalanceData());
cell = row.createCell(38);
cell.setCellValue(list.get(i).getOverInterharmonicsDay());
cell.setCellValue(list.get(i).getOverFrequencyDeviationDay());
cell = row.createCell(39);
cell.setCellValue(list.get(i).getMaxInterharmonicsData());
cell.setCellValue(list.get(i).getMaxFrequencyDeviationData());
cell = row.createCell(40);
cell.setCellValue(list.get(i).getLimitInterharmonicsData());
cell.setCellValue(list.get(i).getLimitFrequencyDeviationData());
cell = row.createCell(41);
cell.setCellValue(list.get(i).getDiffInterharmonicsData());
cell.setCellValue(list.get(i).getDiffFrequencyDeviationData());
cell = row.createCell(42);
cell.setCellValue(list.get(i).getOverThreeVoltageUnbalanceDay());
cell.setCellValue(list.get(i).getOverInterharmonicsDay());
cell = row.createCell(43);
cell.setCellValue(list.get(i).getMaxThreeVoltageUnbalanceData());
cell.setCellValue(list.get(i).getMaxInterharmonicsData());
cell = row.createCell(44);
cell.setCellValue(list.get(i).getLimitThreeVoltageUnbalanceData());
cell.setCellValue(list.get(i).getLimitInterharmonicsData());
cell = row.createCell(45);
cell.setCellValue(list.get(i).getDiffThreeVoltageUnbalanceData());
cell.setCellValue(list.get(i).getDiffInterharmonicsData());
cell = row.createCell(46);
cell.setCellValue(list.get(i).getOverNegativeDay());