From 2618f4cc3342bb39dbbff73413dcbf7cc0ab1992 Mon Sep 17 00:00:00 2001 From: xy <748613699@qq.com> Date: Tue, 21 May 2024 14:01:31 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=8A=9F=E8=83=BDbug=E8=B0=83=E6=95=B4=202.?= =?UTF-8?q?=E7=AE=97=E6=B3=95=E6=B7=BB=E5=8A=A0=E9=83=A8=E5=88=86=E6=8C=87?= =?UTF-8?q?=E6=A0=87=E5=BC=82=E5=B8=B8=E6=95=B0=E6=8D=AE=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/pq/mapper/mapping/DeviceMapper.xml | 138 +++++++++--------- .../pq/service/impl/RunManageServiceImpl.java | 2 +- .../harmonic/pojo/vo/hebeinorth/AssessVo.java | 3 + .../harmonic/mapper/RStatDataVDMapper.java | 5 + .../mapper/mapping/RStatDataVDMapper.xml | 20 +++ .../service/impl/GridServiceImpl.java | 13 +- .../mysql/Impl/line/DayDataServiceImpl.java | 25 +++- 7 files changed, 133 insertions(+), 73 deletions(-) diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/DeviceMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/DeviceMapper.xml index 4b0380c18..8282033fe 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/DeviceMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/DeviceMapper.xml @@ -18,70 +18,70 @@ + + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java index a93b6cfde..e5ac3169b 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java @@ -91,6 +91,7 @@ public class GridServiceImpl implements IGridService { if (lineDetailMap.containsKey(item.getArea())) { AssessVo assessVo = new AssessVo(); assessVo.setName(item.getName()); + assessVo.setCode(item.getCode()); List ll = lineDetailMap.get(item.getArea()).stream().map(LineDetail::getId).collect(Collectors.toList()); List deptAssessList = assesList.stream().filter(it->ll.contains(it.getLineId())).collect(Collectors.toList()); List communicateList = BeanUtil.copyToList(deptAssessList,PqsComasses.class); @@ -310,6 +311,7 @@ public class GridServiceImpl implements IGridService { List list2 = getList2(lineList,param.getStartTime(),param.getEndTime()); List list3 = getList3(lineList,param.getStartTime(),param.getEndTime()); List list4 = getList4(lineList,param.getStartTime(),param.getEndTime()); + List list5 = getList5(lineList,param.getStartTime(),param.getEndTime()); if (CollUtil.isNotEmpty(list1)) { List d = list1.stream().map(o->o.getFreqDev().doubleValue()).collect(Collectors.toList()); double avg = d.stream().collect(Collectors.averagingDouble(x->x)); @@ -328,7 +330,7 @@ public class GridServiceImpl implements IGridService { vo3.setAvg(PubUtils.doubleRound(2,avg)); vo3.setSd(targetSd(d,avg)); } - if (CollUtil.isNotEmpty(list1)) { + if (CollUtil.isNotEmpty(list5)) { List d = list1.stream().map(o -> o.getVUnbalance().doubleValue()).collect(Collectors.toList()); double avg = d.stream().collect(Collectors.averagingDouble(x -> x)); vo4.setAvg(PubUtils.doubleRound(2,avg)); @@ -545,7 +547,7 @@ public class GridServiceImpl implements IGridService { } /** - * 获取监测点频率偏差 T相最大值\获取监测点三相电压不平衡度 T相最大值 + * 获取监测点频率偏差 T相最大值 */ public List getList1(List lineList, String startTime, String endTime) { return statDataVDMapper.getFreqDev(lineList,startTime,endTime); @@ -572,6 +574,13 @@ public class GridServiceImpl implements IGridService { return statDataPltDMapper.getPlt(lineList,startTime,endTime); } + /** + * 获取监测点三相电压不平衡度 T相 CP95 + */ + public List getList5(List lineList, String startTime, String endTime) { + return statDataVDMapper.getUnbalance(lineList,startTime,endTime); + } + /** * 计算标准差 */ diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java index b5ac1c617..92e851c1f 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/line/DayDataServiceImpl.java @@ -3,6 +3,7 @@ package com.njcn.prepare.harmonic.service.mysql.Impl.line; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.ObjUtil; import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.njcn.common.utils.HarmonicTimesUtil; import com.njcn.harmonic.pojo.po.day.*; @@ -19,7 +20,6 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.ListUtils; import org.springframework.beans.BeanUtils; -import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -113,7 +113,10 @@ public class DayDataServiceImpl implements DayDataService { RStatDataVDPO po1 = new RStatDataVDPO(); BeanUtils.copyProperties(item, po1); po1.setTime(LocalDate.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER)); + //todo 此数据质量标记为influxdb查询得出,数据转换时未做数据异常判断,因前置那边未做判断,系统先做判断拦截,后期前置应该加判断 po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); + //fixme 因现场数据异常,先处理频率偏差、电压偏差、电压总谐波畸变率、三相电压不平衡度、长时闪变异常数据拦截 + po1.setQualityFlag(DataAnomalyDetectio(po1,null)); dataVPOList.add(po1); DayV dayV = new DayV(); BeanUtils.copyProperties(item, dayV); @@ -580,6 +583,7 @@ public class DayDataServiceImpl implements DayDataService { BeanUtils.copyProperties(item, po1); po1.setTime(LocalDate.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMATTER)); po1.setQualityFlag(Integer.parseInt(item.getQualityFlag())); + po1.setQualityFlag(DataAnomalyDetectio(null,po1)); dataPltPOList.add(po1); DayPlt dayPlt = new DayPlt(); @@ -1864,4 +1868,23 @@ public class DayDataServiceImpl implements DayDataService { result.addAll(result4); return result; } + + public Integer DataAnomalyDetectio(RStatDataVDPO po1, RStatDataPltDPO po2) { + int result = 0; + if (ObjUtil.isNotNull(po1)) { + if (Math.abs(po1.getFreqDev()) > 7.5 + || Math.abs(po1.getVlDev()) > 20 + || Math.abs(po1.getVuDev()) > 20 + || po1.getVThd() > 30 + || po1.getVUnbalance() > 40) { + result = 1; + } + } + if (ObjUtil.isNotNull(po2)) { + if (po2.getPlt() > 20) { + result = 1; + } + } + return result; + } }