稳态指标超标明细
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
package com.njcn.harmonic.mapper;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface RStatLimitTargetMapper extends BaseMapper<RStatLimitTargetDPO> {
|
||||
|
||||
Page<MonitorOverLimitVO> getSumLimitRatePage(Page<RStatLimitRateDPO> p,
|
||||
@Param("ids") List<String> lineIndexes,
|
||||
@Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.njcn.harmonic.mapper.RStatLimitTargetMapper">
|
||||
<select id="getSumLimitRatePage" resultType="com.njcn.harmonic.pojo.vo.MonitorOverLimitVO">
|
||||
SELECT
|
||||
my_index AS id,
|
||||
SUM(all_time) AS overDay,
|
||||
SUM(freq_dev_overtime) AS freqOverDay,
|
||||
SUM(voltage_dev_overtime ) AS volDevOverDay,
|
||||
SUM(flicker_overtime) AS flickerOverDay,
|
||||
SUM(i_neg_overtime) AS negativeOverDay,
|
||||
SUM(ubalance_overtime) AS threeUnbalance,
|
||||
SUM(uaberrance_overtime) AS volDisOverDay,
|
||||
SUM(uharm_3_overtime) AS overVolThreeTimes,
|
||||
SUM(uharm_5_overtime) AS overVolFiveTimes,
|
||||
SUM(uharm_7_overtime) AS overVolSevenTimes,
|
||||
SUM(uharm_11_overtime) AS overVolElevenTimes,
|
||||
SUM(uharm_13_overtime) AS overVolThirteenTimes,
|
||||
SUM(uharm_23_overtime) AS overVolTwentyThreeTimes,
|
||||
SUM(uharm_25_overtime) AS overVolTwentyFiveTimes,
|
||||
SUM(uharm_2_overtime)
|
||||
+ SUM(uharm_4_overtime)
|
||||
+ SUM(uharm_6_overtime)
|
||||
+ SUM(uharm_8_overtime)
|
||||
+ SUM(uharm_9_overtime)
|
||||
+ SUM(uharm_10_overtime)
|
||||
+ SUM(uharm_12_overtime)
|
||||
+ SUM(uharm_14_overtime)
|
||||
+ SUM(uharm_15_overtime)
|
||||
+ SUM(uharm_16_overtime)
|
||||
+ SUM(uharm_17_overtime)
|
||||
+ SUM(uharm_18_overtime)
|
||||
+ SUM(uharm_19_overtime)
|
||||
+ SUM(uharm_20_overtime)
|
||||
+ SUM(uharm_21_overtime)
|
||||
+ SUM(uharm_22_overtime)
|
||||
+ SUM(uharm_24_overtime) AS overVolOtherTimes,
|
||||
SUM(iharm_3_overtime) AS overCurThreeTimes,
|
||||
SUM(iharm_5_overtime) AS overCurFiveTimes,
|
||||
SUM(iharm_7_overtime) AS overCurSevenTimes,
|
||||
SUM(iharm_11_overtime) AS overCurElevenTimes,
|
||||
SUM(iharm_13_overtime) AS overCurThirteenTimes,
|
||||
SUM(iharm_23_overtime) AS overCurTwentyThreeTimes,
|
||||
SUM(iharm_25_overtime) AS overCurTwentyFiveTimes,
|
||||
SUM(iharm_2_overtime)
|
||||
+ SUM(iharm_4_overtime)
|
||||
+ SUM(iharm_6_overtime)
|
||||
+ SUM(iharm_8_overtime)
|
||||
+ SUM(iharm_9_overtime)
|
||||
+ SUM(iharm_10_overtime)
|
||||
+ SUM(iharm_12_overtime)
|
||||
+ SUM(iharm_14_overtime)
|
||||
+ SUM(iharm_15_overtime)
|
||||
+ SUM(iharm_16_overtime)
|
||||
+ SUM(iharm_17_overtime)
|
||||
+ SUM(iharm_18_overtime)
|
||||
+ SUM(iharm_19_overtime)
|
||||
+ SUM(iharm_20_overtime)
|
||||
+ SUM(iharm_21_overtime)
|
||||
+ SUM(iharm_22_overtime)
|
||||
+ SUM(iharm_24_overtime) AS overCurOtherTimes
|
||||
FROM
|
||||
r_stat_limit_target_d
|
||||
WHERE my_index IN
|
||||
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
|
||||
#{item}
|
||||
</foreach>
|
||||
AND time_id BETWEEN #{startTime} AND #{endTime}
|
||||
GROUP BY my_index
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -19,6 +19,7 @@ import com.njcn.device.pq.pojo.dto.WarningSubstationDTO;
|
||||
import com.njcn.device.pq.pojo.vo.AreaLineInfoVO;
|
||||
import com.njcn.harmonic.constant.Param;
|
||||
import com.njcn.harmonic.mapper.RStatLimitRateDMapper;
|
||||
import com.njcn.harmonic.mapper.RStatLimitTargetMapper;
|
||||
import com.njcn.harmonic.pojo.excel.area.AreaExcel;
|
||||
import com.njcn.harmonic.pojo.excel.monitor.ITimes;
|
||||
import com.njcn.harmonic.pojo.excel.monitor.MonitorExcel;
|
||||
@@ -29,6 +30,7 @@ import com.njcn.harmonic.pojo.po.EventDetail;
|
||||
import com.njcn.harmonic.pojo.po.LimitRate;
|
||||
import com.njcn.harmonic.pojo.po.LimitTarget;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO;
|
||||
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
|
||||
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
|
||||
import com.njcn.harmonic.pojo.vo.OverAreaLimitVO;
|
||||
import com.njcn.harmonic.pojo.vo.OverAreaVO;
|
||||
@@ -75,6 +77,8 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
|
||||
private final RStatLimitRateDMapper rateDMapper;
|
||||
|
||||
private final RStatLimitTargetMapper targetMapper;
|
||||
|
||||
@Override
|
||||
public Page<OverAreaLimitVO> getAreaData(OverAreaVO param) {
|
||||
Page<OverAreaLimitVO> page = new Page<>();
|
||||
@@ -295,7 +299,8 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
p.setSize(param.getPageSize());
|
||||
p.setCurrent(param.getPageNum());
|
||||
if (CollectionUtil.isNotEmpty(lineList)) {
|
||||
Page<MonitorOverLimitVO> sumLimitRatePage = rateDMapper.getSumLimitRatePage(p, lineList, param.getSearchBeginTime(), param.getSearchEndTime());
|
||||
Page<MonitorOverLimitVO> sumLimitRatePage = targetMapper.getSumLimitRatePage(p, lineList, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),
|
||||
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())));
|
||||
List<MonitorOverLimitVO> pageRecords = sumLimitRatePage.getRecords();
|
||||
Map<String, List<MonitorOverLimitVO>> monMap = pageRecords.stream().collect(Collectors.groupingBy(MonitorOverLimitVO::getId));
|
||||
ArrayList<String> list = new ArrayList<>();
|
||||
@@ -305,13 +310,10 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
List<AreaLineInfoVO> data = lineFeignClient.getBaseLineAreaInfo(list).getData();
|
||||
System.out.println(data);
|
||||
List<OverLimitLineDTO> overLimitLineList = lineFeignClient.getOverLimitLineInfo(pollutionParamDTO).getData();
|
||||
List<RStatLimitRateDPO> rStatLimitRateDPOS = rateDMapper.selectList(new QueryWrapper<RStatLimitRateDPO>()
|
||||
.in("r_stat_limit_rate_d.my_index", list)
|
||||
.between("r_stat_limit_rate_d.time_id",
|
||||
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),
|
||||
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())))
|
||||
);
|
||||
Map<String, List<RStatLimitRateDPO>> rsMap = rStatLimitRateDPOS.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId));
|
||||
List<RStatLimitTargetDPO> rStatLimitTargetDPOS = targetMapper.selectList(new QueryWrapper<RStatLimitTargetDPO>()
|
||||
.in("r_stat_limit_target_d.my_index", list).between("r_stat_limit_target_d.time_id",DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),
|
||||
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))));
|
||||
Map<String, List<RStatLimitTargetDPO>> rsMap = rStatLimitTargetDPOS.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getLineId));
|
||||
for (OverLimitLineDTO vo : overLimitLineList) {
|
||||
MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO();
|
||||
BeanUtil.copyProperties(vo,monitorOverLimitVO);
|
||||
@@ -339,10 +341,11 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
monitorOverLimitVO.setOverCurTwentyThreeTimes(source.getOverCurTwentyThreeTimes());
|
||||
monitorOverLimitVO.setOverCurTwentyFiveTimes(source.getOverCurTwentyFiveTimes());
|
||||
monitorOverLimitVO.setOverCurOtherTimes(source.getOverCurOtherTimes());
|
||||
List<RStatLimitRateDPO> limitRateDPOS = rsMap.get(vo.getId());
|
||||
List<RStatLimitTargetDPO> limitRateDPOS = rsMap.get(vo.getId());
|
||||
// 谐波电压含有率超标天数
|
||||
long volContainOverDay = limitRateDPOS.stream().filter(t -> filterNotQualifiedUharmData(t)).count();
|
||||
// 谐波电流超标天数
|
||||
List<RStatLimitTargetDPO> collect = limitRateDPOS.stream().filter(t -> filterNotQualifiedUharmData(t)).collect(Collectors.toList());
|
||||
long harmCurOverDay = limitRateDPOS.stream().filter(t -> filterNotQualifiedIharmData(t)).count();
|
||||
// 间谐波电压含有率超标天数
|
||||
long intHarmOverDay = limitRateDPOS.stream().filter(t -> filterNotQualifiedInuharmData(t)).count();
|
||||
@@ -507,32 +510,32 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
||||
// return page;
|
||||
}
|
||||
|
||||
private boolean filterNotQualifiedHarmVolData(RStatLimitRateDPO t) {
|
||||
private boolean filterNotQualifiedHarmVolData(RStatLimitTargetDPO t) {
|
||||
// 电压畸变率+谐波电压含有率(2-25次)
|
||||
int i = t.getUaberranceOvertime() + t.getUharm2Overtime() + t.getUharm3Overtime() + t.getUharm4Overtime() + t.getUharm5Overtime() + t.getUharm6Overtime() + t.getUharm7Overtime() + t.getUharm8Overtime() + t.getUharm9Overtime() + t.getUharm10Overtime() + t.getUharm11Overtime() + t.getUharm12Overtime() + t.getUharm13Overtime() + t.getUharm14Overtime() + t.getUharm15Overtime() + t.getUharm16Overtime() + t.getUharm17Overtime() + t.getUharm18Overtime() + t.getUharm19Overtime() + t.getUharm20Overtime() + t.getUharm21Overtime() + t.getUharm22Overtime() + t.getUharm23Overtime() + t.getUharm24Overtime() + t.getUharm25Overtime();
|
||||
if (i>0){
|
||||
if (i > 0){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean filterNotQualifiedInuharmData(RStatLimitRateDPO t) {
|
||||
private boolean filterNotQualifiedInuharmData(RStatLimitTargetDPO t) {
|
||||
int i =t.getInuharm1Overtime()+ t.getInuharm2Overtime() + t.getInuharm3Overtime() + t.getInuharm4Overtime() + t.getInuharm5Overtime() + t.getInuharm6Overtime() + t.getInuharm7Overtime() + t.getInuharm8Overtime() + t.getInuharm9Overtime() + t.getInuharm10Overtime() + t.getInuharm11Overtime() + t.getInuharm12Overtime() + t.getInuharm13Overtime() + t.getInuharm14Overtime() + t.getInuharm15Overtime() + t.getInuharm16Overtime();
|
||||
if (i>0){
|
||||
if (i > 0){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean filterNotQualifiedIharmData(RStatLimitRateDPO t) {
|
||||
private boolean filterNotQualifiedIharmData(RStatLimitTargetDPO t) {
|
||||
int i = t.getIharm2Overtime() + t.getIharm3Overtime() + t.getIharm4Overtime() + t.getIharm5Overtime() + t.getIharm6Overtime() + t.getIharm7Overtime() + t.getIharm8Overtime() + t.getIharm9Overtime() + t.getIharm10Overtime() + t.getIharm11Overtime() + t.getIharm12Overtime() + t.getIharm13Overtime() + t.getIharm14Overtime() + t.getIharm15Overtime() + t.getIharm16Overtime() + t.getIharm17Overtime() + t.getIharm18Overtime() + t.getIharm19Overtime() + t.getIharm20Overtime() + t.getIharm21Overtime() + t.getIharm22Overtime() + t.getIharm23Overtime() + t.getIharm24Overtime() + t.getIharm25Overtime();
|
||||
if (i>0){
|
||||
if (i > 0){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean filterNotQualifiedUharmData(RStatLimitRateDPO t) {
|
||||
private boolean filterNotQualifiedUharmData(RStatLimitTargetDPO t) {
|
||||
int i = t.getUharm2Overtime() + t.getUharm3Overtime() + t.getUharm4Overtime() + t.getUharm5Overtime() + t.getUharm6Overtime() + t.getUharm7Overtime() + t.getUharm8Overtime() + t.getUharm9Overtime() + t.getUharm10Overtime() + t.getUharm11Overtime() + t.getUharm12Overtime() + t.getUharm13Overtime() + t.getUharm14Overtime() + t.getUharm15Overtime() + t.getUharm16Overtime() + t.getUharm17Overtime() + t.getUharm18Overtime() + t.getUharm19Overtime() + t.getUharm20Overtime() + t.getUharm21Overtime() + t.getUharm22Overtime() + t.getUharm23Overtime() + t.getUharm24Overtime() + t.getUharm25Overtime();
|
||||
|
||||
if (i>0){
|
||||
|
||||
Reference in New Issue
Block a user