diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitRateDMapper.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitRateDMapper.java index 943e9424f..2ba594935 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitRateDMapper.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/RStatLimitRateDMapper.java @@ -1,6 +1,7 @@ package com.njcn.harmonic.mapper; 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.vo.MonitorOverLimitVO; import com.njcn.harmonic.pojo.vo.RStatLimitRateDVO; @@ -28,4 +29,9 @@ public interface RStatLimitRateDMapper extends BaseMapper { @Param("ids") List lineIndexes, @Param("statTime") String searchBeginTime, @Param("endTime") String searchEndTime); + + Page getSumLimitRatePage(Page p, + @Param("ids") List lineIndexes, + @Param("statTime") String searchBeginTime, + @Param("endTime") String searchEndTime); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitRateDMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitRateDMapper.xml index 0c7875077..885ea675a 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitRateDMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/RStatLimitRateDMapper.xml @@ -107,4 +107,80 @@ GROUP BY my_index + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java index e9a015151..e0cb375ea 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java @@ -296,39 +296,49 @@ public class AnalyzeServiceImpl implements IAnalyzeService { p.setSize(param.getPageSize()); p.setCurrent(param.getPageNum()); if (CollectionUtil.isNotEmpty(lineList)) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.in("r_stat_limit_rate_d.my_index",lineList) - .between("r_stat_limit_rate_d.time_id", - DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), - DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime()))); - Page rateDPOPage = rateDMapper.selectPage(p,queryWrapper); - List records = rateDPOPage.getRecords(); - Map> lineMap = records.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId)); + Page sumLimitRatePage = rateDMapper.getSumLimitRatePage(p, lineList, param.getSearchBeginTime(), param.getSearchEndTime()); + List pageRecords = sumLimitRatePage.getRecords(); + Map> monMap = pageRecords.stream().collect(Collectors.groupingBy(MonitorOverLimitVO::getId)); ArrayList list = new ArrayList<>(); - list.addAll(lineMap.keySet()); + list.addAll(monMap.keySet()); PollutionParamDTO pollutionParamDTO = new PollutionParamDTO(); pollutionParamDTO.setLineList(list); List overLimitLineList = lineFeignClient.getOverLimitLineInfo(pollutionParamDTO).getData(); - List groupList = rateDMapper.getSumLimitRateByLineIndexes(list, param.getSearchBeginTime(), param.getSearchEndTime()); - Map> groupMap = groupList.stream().collect(Collectors.groupingBy(MonitorOverLimitVO::getId)); + List rStatLimitRateDPOS = rateDMapper.selectList(new QueryWrapper() + .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> rsMap = rStatLimitRateDPOS.stream().collect(Collectors.groupingBy(RStatLimitRateDPO::getLineId)); for (OverLimitLineDTO vo : overLimitLineList) { MonitorOverLimitVO monitorOverLimitVO = new MonitorOverLimitVO(); BeanUtil.copyProperties(vo,monitorOverLimitVO); - List limitRateDPOS = lineMap.get(vo.getId()); - MonitorOverLimitVO overLimitVO = groupMap.get(vo.getId()).get(0); - BeanUtil.copyProperties(overLimitVO,monitorOverLimitVO); - - System.out.println(monitorOverLimitVO); - - - // 超标天数 -// long allTimeCount = limitRateDPOS.stream().filter(t -> t.getAllTime() != 0).count(); - // 频率偏差超标天数 -// long freqDevOverCount = limitRateDPOS.stream().filter(t -> t.getFreqDevOvertime() != 0).count(); - // 电压偏差超标天数 -// long voltageDevOverCount = limitRateDPOS.stream().filter(t -> t.getVoltageDevOvertime() != 0).count(); - // 电压谐波畸变率越限次数 -// long UaberranceOverCount = limitRateDPOS.stream().filter(t -> t.getUaberranceOvertime() != 0).count(); + MonitorOverLimitVO source = monMap.get(vo.getId()).get(0); + monitorOverLimitVO.setOverDay(source.getOverDay()); + monitorOverLimitVO.setVolDevOverDay(source.getVolDevOverDay()); + monitorOverLimitVO.setFreqOverDay(source.getFreqOverDay()); + monitorOverLimitVO.setFlickerOverDay(source.getFlickerOverDay()); + monitorOverLimitVO.setNegativeOverDay(source.getNegativeOverDay()); + monitorOverLimitVO.setThreeUnbalance(source.getThreeUnbalance()); + monitorOverLimitVO.setVolDisOverDay(source.getVolDisOverDay()); + monitorOverLimitVO.setOverVolThreeTimes(source.getOverVolThreeTimes()); + monitorOverLimitVO.setOverVolFiveTimes(source.getOverVolFiveTimes()); + monitorOverLimitVO.setOverVolSevenTimes(source.getOverVolSevenTimes()); + monitorOverLimitVO.setOverVolElevenTimes(source.getOverVolElevenTimes()); + monitorOverLimitVO.setOverVolThirteenTimes(source.getOverVolThirteenTimes()); + monitorOverLimitVO.setOverVolTwentyThreeTimes(source.getOverVolTwentyThreeTimes()); + 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 limitRateDPOS = rsMap.get(vo.getId()); // 谐波电压含有率超标天数 long volContainOverDay = limitRateDPOS.stream().filter(t -> FilterNotQualifiedUharmData(t)).count(); // 谐波电流超标天数 @@ -350,41 +360,6 @@ public class AnalyzeServiceImpl implements IAnalyzeService { 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> pageList = Lists.partition(lineList,param.getPageSize()); -// List temList = pageList.get(param.getPageNum()-1); -// List list = rateDMapper.getSumLimitRateByLineIndexes(lineList, param.getSearchBeginTime(), param.getSearchEndTime()); -// Map> mapperMap = list.stream().collect(Collectors.groupingBy(MonitorOverLimitVO::getId)); -// PollutionParamDTO pollutionParamDTO = new PollutionParamDTO(); -// pollutionParamDTO.setLineList(temList); -// List 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 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)){ // page.setTotal(lineList.size()); // int pages = (int)Math.ceil(lineList.size()*1.0/param.getPageSize());