1.稳态区域报告功能微调

This commit is contained in:
2026-01-08 16:36:36 +08:00
parent b3ab5d2587
commit e2d3394669
7 changed files with 78 additions and 48 deletions

View File

@@ -42,6 +42,13 @@ public enum LineBaseEnum {
POWER_FLAG_NOT(1,"非电网侧"),
/**
* 装置系统类型
*/
DEV_DATA_TYPE_ZT(0,"暂态系统装置"),
DEV_DATA_TYPE_WT(1,"稳态系统装置"),
DEV_DATA_TYPE_ALL(2,"全部系统装置")
;

View File

@@ -29,6 +29,8 @@ import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.njcn.device.pq.enums.LineBaseEnum.DEV_DATA_TYPE_ALL;
/**
* pqs
*
@@ -120,7 +122,7 @@ public class CommTerminalServiceImpl implements CommTerminalService {
@Override
public List<MonitorCommLedgerInfoDTO> deptGetLineInfo(DeptGetLineParam deptGetLineParam) {
List<String> deptIds = deptFeignClient.getDepSonIdtByDeptId(deptGetLineParam.getDeptId()).getData();
List<MonitorCommLedgerInfoDTO> ledgerList = deptLineMapper.getMonitorByDeptIds(Stream.of(2).collect(Collectors.toList()),deptIds);
List<MonitorCommLedgerInfoDTO> ledgerList = deptLineMapper.getMonitorByDeptIds(Stream.of(DEV_DATA_TYPE_ALL.getCode()).collect(Collectors.toList()),deptIds);
return ledgerList;
}

View File

@@ -109,6 +109,7 @@
<foreach collection="deptIds" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
order by point.name asc
</select>

View File

@@ -48,13 +48,6 @@ public class IpUtils {
public static String getRealIpAddress(ServerHttpRequest request) {
HttpHeaders headers = request.getHeaders();
String ipAddress = headers.getFirst(HEADER_X_FORWARDED_FOR);
log.info("X-Forwarded-For:"+ipAddress);
ipAddress = headers.getFirst("X-Real-IP");
log.error("X-Real-IP:"+ipAddress);
ipAddress = headers.getFirst("Proxy-Client-IP");
log.error("Proxy-Client-IP:"+ipAddress);
ipAddress = headers.getFirst("REMOTE-HOST");
log.error("REMOTE-HOST:"+ipAddress);
if (StrUtil.isBlankIfStr(ipAddress) || UNKNOWN.equalsIgnoreCase(ipAddress)) {
ipAddress = headers.getFirst(HEADER_PROXY_CLIENT_IP);
}

View File

@@ -511,10 +511,10 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
Set<String> harmonicVoltageMonitorList = new HashSet<>();
Set<String> harmonicCurrentMonitorList = new HashSet<>();
int threeV = 0, fiveV = 0, sevenV = 0, elevenV = 0;
Set<String> threeVList = new HashSet<>(), fiveVList = new HashSet<>(), sevenVList = new HashSet<>(), elevenVList = new HashSet<>();
int threeI = 0, fiveI = 0, sevenI = 0, elevenI = 0;
Set<String> threeIList = new HashSet<>(), fiveIList = new HashSet<>(), sevenIList = new HashSet<>(), elevenIList = new HashSet<>();
int threeV = 0, fiveV = 0, sevenV = 0, elevenV = 0, otherV = 0;
Set<String> threeVList = new HashSet<>(), fiveVList = new HashSet<>(), sevenVList = new HashSet<>(), elevenVList = new HashSet<>(), otherVList = new HashSet<>();
int threeI = 0, fiveI = 0, sevenI = 0, elevenI = 0,otherI = 0;
Set<String> threeIList = new HashSet<>(), fiveIList = new HashSet<>(), sevenIList = new HashSet<>(), elevenIList = new HashSet<>(), otherIList = new HashSet<>();
if (!CollectionUtils.isEmpty(list)) {
@@ -595,6 +595,10 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
elevenV++;
elevenVList.add(item.getLineId());
}
if (vOtherHarmFlag(item)) {
otherV++;
otherVList.add(item.getLineId());
}
if (item.getIharm3Overtime() > 0) {
@@ -613,6 +617,10 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
elevenI++;
elevenIList.add(item.getLineId());
}
if (iOtherHarmFlag(item)) {
otherI++;
otherIList.add(item.getLineId());
}
}
}
@@ -625,7 +633,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
//频率偏差
overAreaLimitVO.setFrequencyMonitorNumber(freqCount);
overAreaLimitVO.setFrequencyBiLi(BigDecimal.valueOf(freqCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
overAreaLimitVO.setFreqMonitorList(new ArrayList<>(flickerMonitorList));
overAreaLimitVO.setFreqMonitorList(new ArrayList<>(freqList));
//电压偏差
overAreaLimitVO.setVoltageMonitorNumber(voltageCount);
overAreaLimitVO.setVoltageBiLi(BigDecimal.valueOf(voltageCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue());
@@ -658,8 +666,8 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
int freqOverDay = 0, voltageOverDay = 0, ubalanceOverDay = 0, flickerOverDay = 0, iNegOverDay = 0, uharmOverDay = 0, iharmOverDay = 0, inuharmOverDay = 0;
int threeOverV = 0, fiveOverV = 0, sevenOverV = 0, elevenOverV = 0;
int threeOverI = 0, fiveOverI = 0, sevenOverI = 0, elevenOverI = 0;
int threeOverV = 0, fiveOverV = 0, sevenOverV = 0, elevenOverV = 0, otherOverV = 0;
int threeOverI = 0, fiveOverI = 0, sevenOverI = 0, elevenOverI = 0, otherOverI = 0;
Map<LocalDate, List<RStatLimitTargetDPO>> map = list.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getTime));
@@ -669,15 +677,15 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
iharmOverOneDayList = new ArrayList<>(), inuharmOverOneDayList = new ArrayList<>();
List<Double> threeOverOneDayList = new ArrayList<>(), fiveOverOneDayList = new ArrayList<>(), sevenOverOneDayList = new ArrayList<>(), elevenOverOneDayList = new ArrayList<>();
List<Double> threeOverOneDayIList = new ArrayList<>(), fiveOverOneDayIList = new ArrayList<>(), sevenOverOneDayIList = new ArrayList<>(), elevenOverOneDayIList = new ArrayList<>();
List<Double> threeOverOneDayList = new ArrayList<>(), fiveOverOneDayList = new ArrayList<>(), sevenOverOneDayList = new ArrayList<>(), elevenOverOneDayList = new ArrayList<>(), otherOverOneDayList = new ArrayList<>();
List<Double> threeOverOneDayIList = new ArrayList<>(), fiveOverOneDayIList = new ArrayList<>(), sevenOverOneDayIList = new ArrayList<>(), elevenOverOneDayIList = new ArrayList<>(), otherOverOneDayIList = new ArrayList<>();
for (LocalDate key : map.keySet()) {
int freqOverOneDay = 0, voltageOverOneDay = 0, ubalanceOverOneDay = 0, flickerOverOneDay = 0, iNegOverOneDay = 0, uharmOverOneDay = 0, iharmOverOneDay = 0, inuharmOverOneDay = 0;
int threeOneV = 0, fiveOneV = 0, sevenOneV = 0, elevenOneV = 0;
int threeOneI = 0, fiveOneI = 0, sevenOneI = 0, elevenOneI = 0;
int threeOneV = 0, fiveOneV = 0, sevenOneV = 0, elevenOneV = 0, otherOneV = 0;
int threeOneI = 0, fiveOneI = 0, sevenOneI = 0, elevenOneI = 0, otherOneI = 0;
List<RStatLimitTargetDPO> l = map.get(key);
@@ -735,6 +743,11 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
elevenOneV++;
}
if (vOtherHarmFlag(pojo)) {
otherOverV++;
otherOneV++;
}
if (pojo.getIharm3Overtime() > 0) {
@@ -753,6 +766,10 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
elevenOverI++;
elevenOneI++;
}
if (iOtherHarmFlag(pojo)) {
otherOverI++;
otherOneI++;
}
}
}
@@ -771,12 +788,15 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
fiveOverOneDayList.add((double) fiveOneV / data.size() * 100);
sevenOverOneDayList.add((double) sevenOneV / data.size() * 100);
elevenOverOneDayList.add((double) elevenOneV / data.size() * 100);
elevenOverOneDayList.add((double) elevenOneV / data.size() * 100);
otherOverOneDayList.add((double) otherOneV / data.size() * 100);
threeOverOneDayIList.add((double) threeOneI / data.size() * 100);
fiveOverOneDayIList.add((double) fiveOneI / data.size() * 100);
sevenOverOneDayIList.add((double) sevenOneI / data.size() * 100);
elevenOverOneDayIList.add((double) elevenOneI / data.size() * 100);
otherOverOneDayIList.add((double) otherOneI / data.size() * 100);
}
@@ -809,6 +829,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
innerHarmVList.add(assLimitVO("5",fiveVList,fiveV,data.size(),fiveOverV,fiveOverOneDayList));
innerHarmVList.add(assLimitVO("7",sevenVList,sevenV,data.size(),sevenOverV,sevenOverOneDayList));
innerHarmVList.add(assLimitVO("11",elevenVList,elevenV,data.size(),elevenOverV,elevenOverOneDayList));
innerHarmVList.add(assLimitVO("其他",otherVList,otherV,data.size(),otherOverV,otherOverOneDayList));
overAreaLimitVO.setInnerHarmVList(innerHarmVList);
@@ -818,6 +839,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
innerHarmIList.add(assLimitVO("5",fiveIList,fiveI,data.size(),fiveOverI,fiveOverOneDayIList));
innerHarmIList.add(assLimitVO("7",sevenIList,sevenI,data.size(),sevenOverI,sevenOverOneDayIList));
innerHarmIList.add(assLimitVO("11",elevenIList,elevenI,data.size(),elevenOverI,elevenOverOneDayIList));
innerHarmIList.add(assLimitVO("其他",otherIList,otherI,data.size(),otherOverI,otherOverOneDayIList));
overAreaLimitVO.setInnerHarmIList(innerHarmIList);
}
@@ -858,31 +880,36 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
return count > 0;
}
private boolean vOtherHarmFlag(RStatLimitTargetDPO x) {
int count = x.getUharm2Overtime() + x.getUharm4Overtime() +
x.getUharm6Overtime() + x.getUharm8Overtime() + x.getUharm9Overtime() +
x.getUharm10Overtime() + x.getUharm12Overtime() + x.getUharm13Overtime() + x.getUharm14Overtime() +
x.getUharm15Overtime() + x.getUharm16Overtime() + x.getUharm17Overtime() + x.getUharm18Overtime() + x.getUharm19Overtime() +
x.getUharm20Overtime() + x.getUharm21Overtime() + x.getUharm22Overtime() + x.getUharm23Overtime() + x.getUharm24Overtime() +
x.getUharm25Overtime();
return count > 0;
}
private boolean iHarmFlag(RStatLimitTargetDPO rStatLimitRateDPO) {
int count = rStatLimitRateDPO.getIharm2Overtime() +
rStatLimitRateDPO.getIharm3Overtime() +
rStatLimitRateDPO.getIharm4Overtime() +
rStatLimitRateDPO.getIharm5Overtime() +
rStatLimitRateDPO.getIharm6Overtime() +
rStatLimitRateDPO.getIharm7Overtime() +
rStatLimitRateDPO.getIharm8Overtime() +
rStatLimitRateDPO.getIharm9Overtime() +
rStatLimitRateDPO.getIharm10Overtime() +
rStatLimitRateDPO.getIharm11Overtime() +
rStatLimitRateDPO.getIharm12Overtime() +
rStatLimitRateDPO.getIharm13Overtime() +
rStatLimitRateDPO.getIharm14Overtime() +
rStatLimitRateDPO.getIharm15Overtime() +
rStatLimitRateDPO.getIharm16Overtime() +
rStatLimitRateDPO.getIharm17Overtime() +
rStatLimitRateDPO.getIharm18Overtime() +
rStatLimitRateDPO.getIharm19Overtime() +
rStatLimitRateDPO.getIharm20Overtime() +
rStatLimitRateDPO.getIharm21Overtime() +
rStatLimitRateDPO.getIharm22Overtime() +
rStatLimitRateDPO.getIharm23Overtime() +
rStatLimitRateDPO.getIharm24Overtime() +
rStatLimitRateDPO.getIharm25Overtime();
int count = rStatLimitRateDPO.getIharm2Overtime() + rStatLimitRateDPO.getIharm3Overtime() + rStatLimitRateDPO.getIharm4Overtime() +
rStatLimitRateDPO.getIharm5Overtime() + rStatLimitRateDPO.getIharm6Overtime() + rStatLimitRateDPO.getIharm7Overtime() +
rStatLimitRateDPO.getIharm8Overtime() + rStatLimitRateDPO.getIharm9Overtime() + rStatLimitRateDPO.getIharm10Overtime() +
rStatLimitRateDPO.getIharm11Overtime() + rStatLimitRateDPO.getIharm12Overtime() + rStatLimitRateDPO.getIharm13Overtime() +
rStatLimitRateDPO.getIharm14Overtime() + rStatLimitRateDPO.getIharm15Overtime() + rStatLimitRateDPO.getIharm16Overtime() +
rStatLimitRateDPO.getIharm17Overtime() + rStatLimitRateDPO.getIharm18Overtime() + rStatLimitRateDPO.getIharm19Overtime() +
rStatLimitRateDPO.getIharm20Overtime() + rStatLimitRateDPO.getIharm21Overtime() + rStatLimitRateDPO.getIharm22Overtime() +
rStatLimitRateDPO.getIharm23Overtime() + rStatLimitRateDPO.getIharm24Overtime() + rStatLimitRateDPO.getIharm25Overtime();
return count > 0;
}
private boolean iOtherHarmFlag(RStatLimitTargetDPO rStatLimitRateDPO) {
int count = rStatLimitRateDPO.getIharm2Overtime() + rStatLimitRateDPO.getIharm4Overtime() + rStatLimitRateDPO.getIharm6Overtime() +
rStatLimitRateDPO.getIharm8Overtime() + rStatLimitRateDPO.getIharm9Overtime() + rStatLimitRateDPO.getIharm10Overtime() +
rStatLimitRateDPO.getIharm12Overtime() + rStatLimitRateDPO.getIharm13Overtime() +
rStatLimitRateDPO.getIharm14Overtime() + rStatLimitRateDPO.getIharm15Overtime() + rStatLimitRateDPO.getIharm16Overtime() +
rStatLimitRateDPO.getIharm17Overtime() + rStatLimitRateDPO.getIharm18Overtime() + rStatLimitRateDPO.getIharm19Overtime() +
rStatLimitRateDPO.getIharm20Overtime() + rStatLimitRateDPO.getIharm21Overtime() + rStatLimitRateDPO.getIharm22Overtime() +
rStatLimitRateDPO.getIharm23Overtime() + rStatLimitRateDPO.getIharm24Overtime() + rStatLimitRateDPO.getIharm25Overtime();
return count > 0;
}

View File

@@ -59,7 +59,7 @@ public class AreaHarmonicServiceImpl implements AreaHarmonicService {
private static final double MEDIUM_MAX_THRESHOLD = 30.0;
// 谐波次数顺序(保持原有顺序)
private static final List<String> HARMONIC_ORDERS = Arrays.asList("3", "5", "7", "11");
private static final List<String> HARMONIC_ORDERS = Arrays.asList("3", "5", "7", "11","other");
// 表格索引(保持原有顺序)
private static final int LEDGER_TABLE_INDEX = 1;
@@ -585,10 +585,10 @@ public class AreaHarmonicServiceImpl implements AreaHarmonicService {
*/
private List<TableMergeRule> buildTableMergeRules() {
List<TableMergeRule> mergeRules = new ArrayList<>();
// 表格7谐波电压的第0列5行合并一次(对应"单位"列)
mergeRules.add(TableMergeRule.build(VOLTAGE_HARMONIC_TABLE_INDEX, 0, 1, 5));
// 表格8谐波电流的第0列5行合并一次(对应"单位"列)
mergeRules.add(TableMergeRule.build(CURRENT_HARMONIC_TABLE_INDEX, 0, 1, 5));
// 表格7谐波电压的第0列6行合并一次(对应"单位"列)
mergeRules.add(TableMergeRule.build(VOLTAGE_HARMONIC_TABLE_INDEX, 0, 1, 6));
// 表格8谐波电流的第0列6行合并一次(对应"单位"列)
mergeRules.add(TableMergeRule.build(CURRENT_HARMONIC_TABLE_INDEX, 0, 1, 6));
return mergeRules;
}