稳态指标超标明细接口优化
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.harmonic.mapper;
|
package com.njcn.harmonic.mapper;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
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.RStatLimitRateDPO;
|
||||||
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
|
import com.njcn.harmonic.pojo.vo.MonitorOverLimitVO;
|
||||||
import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
|
import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO;
|
||||||
@@ -28,4 +29,9 @@ public interface RStatLimitRateDMapper extends BaseMapper<RStatLimitRateDPO> {
|
|||||||
@Param("ids") List<String> lineIndexes,
|
@Param("ids") List<String> lineIndexes,
|
||||||
@Param("statTime") String searchBeginTime,
|
@Param("statTime") String searchBeginTime,
|
||||||
@Param("endTime") String searchEndTime);
|
@Param("endTime") String searchEndTime);
|
||||||
|
|
||||||
|
Page<MonitorOverLimitVO> getSumLimitRatePage(Page<RStatLimitRateDPO> p,
|
||||||
|
@Param("ids") List<String> lineIndexes,
|
||||||
|
@Param("statTime") String searchBeginTime,
|
||||||
|
@Param("endTime") String searchEndTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,4 +107,80 @@
|
|||||||
</where>
|
</where>
|
||||||
GROUP BY my_index
|
GROUP BY my_index
|
||||||
</select>
|
</select>
|
||||||
|
<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>
|
||||||
|
<if test=" ids != null and ids.size > 0">
|
||||||
|
AND my_index IN
|
||||||
|
<foreach collection='ids' item='item' index="index" open='(' separator=',' close=')'>
|
||||||
|
#{item}
|
||||||
|
</foreach>
|
||||||
|
</if>
|
||||||
|
<if test=" statTime != null and statTime !=''">
|
||||||
|
AND time_id >= #{statTime}
|
||||||
|
</if>
|
||||||
|
<if test="endTime != null and endTime != ''">
|
||||||
|
AND time_id <= #{endTime}
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
GROUP BY my_index
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -296,39 +296,49 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
p.setSize(param.getPageSize());
|
p.setSize(param.getPageSize());
|
||||||
p.setCurrent(param.getPageNum());
|
p.setCurrent(param.getPageNum());
|
||||||
if (CollectionUtil.isNotEmpty(lineList)) {
|
if (CollectionUtil.isNotEmpty(lineList)) {
|
||||||
QueryWrapper<RStatLimitRateDPO> queryWrapper = new QueryWrapper<>();
|
Page<MonitorOverLimitVO> sumLimitRatePage = rateDMapper.getSumLimitRatePage(p, lineList, param.getSearchBeginTime(), param.getSearchEndTime());
|
||||||
queryWrapper.in("r_stat_limit_rate_d.my_index",lineList)
|
List<MonitorOverLimitVO> pageRecords = sumLimitRatePage.getRecords();
|
||||||
.between("r_stat_limit_rate_d.time_id",
|
Map<String, List<MonitorOverLimitVO>> monMap = pageRecords.stream().collect(Collectors.groupingBy(MonitorOverLimitVO::getId));
|
||||||
DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),
|
|
||||||
DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())));
|
|
||||||
Page<RStatLimitRateDPO> rateDPOPage = rateDMapper.selectPage(p,queryWrapper);
|
|
||||||
List<RStatLimitRateDPO> records = rateDPOPage.getRecords();
|
|
||||||
Map<String, List<RStatLimitRateDPO>> lineMap = records.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId));
|
|
||||||
ArrayList<String> list = new ArrayList<>();
|
ArrayList<String> list = new ArrayList<>();
|
||||||
list.addAll(lineMap.keySet());
|
list.addAll(monMap.keySet());
|
||||||
PollutionParamDTO pollutionParamDTO = new PollutionParamDTO();
|
PollutionParamDTO pollutionParamDTO = new PollutionParamDTO();
|
||||||
pollutionParamDTO.setLineList(list);
|
pollutionParamDTO.setLineList(list);
|
||||||
List<OverLimitLineDTO> overLimitLineList = lineFeignClient.getOverLimitLineInfo(pollutionParamDTO).getData();
|
List<OverLimitLineDTO> overLimitLineList = lineFeignClient.getOverLimitLineInfo(pollutionParamDTO).getData();
|
||||||
List<MonitorOverLimitVO> groupList = rateDMapper.getSumLimitRateByLineIndexes(list, param.getSearchBeginTime(), param.getSearchEndTime());
|
List<RStatLimitRateDPO> rStatLimitRateDPOS = rateDMapper.selectList(new QueryWrapper<RStatLimitRateDPO>()
|
||||||
Map<String, List<MonitorOverLimitVO>> groupMap = groupList.stream().collect(Collectors.groupingBy(MonitorOverLimitVO::getId));
|
.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));
|
||||||
for (OverLimitLineDTO vo : overLimitLineList) {
|
for (OverLimitLineDTO vo : overLimitLineList) {
|
||||||
MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO();
|
MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO();
|
||||||
BeanUtil.copyProperties(vo,monitorOverLimitVO);
|
BeanUtil.copyProperties(vo,monitorOverLimitVO);
|
||||||
List<RStatLimitRateDPO> limitRateDPOS = lineMap.get(vo.getId());
|
MonitorOverLimitVO source = monMap.get(vo.getId()).get(0);
|
||||||
MonitorOverLimitVO overLimitVO = groupMap.get(vo.getId()).get(0);
|
monitorOverLimitVO.setOverDay(source.getOverDay());
|
||||||
BeanUtil.copyProperties(overLimitVO,monitorOverLimitVO);
|
monitorOverLimitVO.setVolDevOverDay(source.getVolDevOverDay());
|
||||||
|
monitorOverLimitVO.setFreqOverDay(source.getFreqOverDay());
|
||||||
System.out.println(monitorOverLimitVO);
|
monitorOverLimitVO.setFlickerOverDay(source.getFlickerOverDay());
|
||||||
|
monitorOverLimitVO.setNegativeOverDay(source.getNegativeOverDay());
|
||||||
|
monitorOverLimitVO.setThreeUnbalance(source.getThreeUnbalance());
|
||||||
// 超标天数
|
monitorOverLimitVO.setVolDisOverDay(source.getVolDisOverDay());
|
||||||
// long allTimeCount = limitRateDPOS.stream().filter(t -> t.getAllTime() != 0).count();
|
monitorOverLimitVO.setOverVolThreeTimes(source.getOverVolThreeTimes());
|
||||||
// 频率偏差超标天数
|
monitorOverLimitVO.setOverVolFiveTimes(source.getOverVolFiveTimes());
|
||||||
// long freqDevOverCount = limitRateDPOS.stream().filter(t -> t.getFreqDevOvertime() != 0).count();
|
monitorOverLimitVO.setOverVolSevenTimes(source.getOverVolSevenTimes());
|
||||||
// 电压偏差超标天数
|
monitorOverLimitVO.setOverVolElevenTimes(source.getOverVolElevenTimes());
|
||||||
// long voltageDevOverCount = limitRateDPOS.stream().filter(t -> t.getVoltageDevOvertime() != 0).count();
|
monitorOverLimitVO.setOverVolThirteenTimes(source.getOverVolThirteenTimes());
|
||||||
// 电压谐波畸变率越限次数
|
monitorOverLimitVO.setOverVolTwentyThreeTimes(source.getOverVolTwentyThreeTimes());
|
||||||
// long UaberranceOverCount = limitRateDPOS.stream().filter(t -> t.getUaberranceOvertime() != 0).count();
|
monitorOverLimitVO.setOverVolTwentyFiveTimes(source.getOverVolTwentyFiveTimes());
|
||||||
|
monitorOverLimitVO.setOverVolOtherTimes(source.getOverVolOtherTimes());
|
||||||
|
monitorOverLimitVO.setOverCurThreeTimes(source.getOverCurThreeTimes());
|
||||||
|
monitorOverLimitVO.setOverCurFiveTimes(source.getOverCurFiveTimes());
|
||||||
|
monitorOverLimitVO.setOverCurSevenTimes(source.getOverCurSevenTimes());
|
||||||
|
monitorOverLimitVO.setOverCurElevenTimes(source.getOverCurElevenTimes());
|
||||||
|
monitorOverLimitVO.setOverCurThirteenTimes(source.getOverCurThirteenTimes());
|
||||||
|
monitorOverLimitVO.setOverCurTwentyThreeTimes(source.getOverCurTwentyThreeTimes());
|
||||||
|
monitorOverLimitVO.setOverCurTwentyFiveTimes(source.getOverCurTwentyFiveTimes());
|
||||||
|
monitorOverLimitVO.setOverCurOtherTimes(source.getOverCurOtherTimes());
|
||||||
|
List<RStatLimitRateDPO> limitRateDPOS = rsMap.get(vo.getId());
|
||||||
// 谐波电压含有率超标天数
|
// 谐波电压含有率超标天数
|
||||||
long volContainOverDay = limitRateDPOS.stream().filter(t -> FilterNotQualifiedUharmData(t)).count();
|
long volContainOverDay = limitRateDPOS.stream().filter(t -> FilterNotQualifiedUharmData(t)).count();
|
||||||
// 谐波电流超标天数
|
// 谐波电流超标天数
|
||||||
@@ -350,41 +360,6 @@ public class AnalyzeServiceImpl implements IAnalyzeService {
|
|||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
return page;
|
return page;
|
||||||
// if (CollectionUtil.isNotEmpty (lineList)) {
|
|
||||||
// page.setTotal(lineList.size());
|
|
||||||
// int pages = (int)Math.ceil(lineList.size()*1.0/param.getPageSize());
|
|
||||||
// page.setPages(pages);
|
|
||||||
// List<List<String>> pageList = Lists.partition(lineList,param.getPageSize());
|
|
||||||
// List<String> temList = pageList.get(param.getPageNum()-1);
|
|
||||||
// List<MonitorOverLimitVO> list = rateDMapper.getSumLimitRateByLineIndexes(lineList, param.getSearchBeginTime(), param.getSearchEndTime());
|
|
||||||
// Map<String, List<MonitorOverLimitVO>> mapperMap = list.stream().collect(Collectors.groupingBy(MonitorOverLimitVO::getId));
|
|
||||||
// PollutionParamDTO pollutionParamDTO = new PollutionParamDTO();
|
|
||||||
// pollutionParamDTO.setLineList(temList);
|
|
||||||
// List<OverLimitLineDTO> overLimitLineList = lineFeignClient.getOverLimitLineInfo(pollutionParamDTO).getData();
|
|
||||||
// for (OverLimitLineDTO overLimitLineDTO : overLimitLineList) {
|
|
||||||
// MonitorOverLimitVO vo = mapperMap.get(overLimitLineDTO.getId()).get(0);
|
|
||||||
// if (Objects.isNull(vo)) {
|
|
||||||
// continue;
|
|
||||||
// }
|
|
||||||
// vo.setProvinceCompany(overLimitLineDTO.getProvinceCompany());
|
|
||||||
// vo.setCityCompany(overLimitLineDTO.getCityCompany());
|
|
||||||
// vo.setLineName(overLimitLineDTO.getLineName());
|
|
||||||
// vo.setLoadType(overLimitLineDTO.getLoadType());
|
|
||||||
// vo.setLineObjectName(overLimitLineDTO.getLineObjectName());
|
|
||||||
// vo.setLineScale(overLimitLineDTO.getLineScale());
|
|
||||||
// vo.setSubName(overLimitLineDTO.getSubName());
|
|
||||||
// vo.setSubScale(overLimitLineDTO.getSubScale());
|
|
||||||
// result.add(vo);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if (!CollectionUtils.isEmpty(result)){
|
|
||||||
// List<MonitorOverLimitVO> recordList = new ArrayList<>();
|
|
||||||
// //默认 根据在线监测点个数 倒叙排序
|
|
||||||
// recordList = result.stream().sorted(Comparator.comparing(MonitorOverLimitVO::getOverDay).reversed()).collect(Collectors.toList());
|
|
||||||
// page.setRecords(recordList);
|
|
||||||
// return page;
|
|
||||||
// }
|
|
||||||
// return page;
|
|
||||||
// if (!CollectionUtils.isEmpty(lineList)){
|
// if (!CollectionUtils.isEmpty(lineList)){
|
||||||
// page.setTotal(lineList.size());
|
// page.setTotal(lineList.size());
|
||||||
// int pages = (int)Math.ceil(lineList.size()*1.0/param.getPageSize());
|
// int pages = (int)Math.ceil(lineList.size()*1.0/param.getPageSize());
|
||||||
|
|||||||
Reference in New Issue
Block a user