diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineController.java index 57bacf498..e19fca334 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LineController.java @@ -509,7 +509,6 @@ public class LineController extends BaseController { @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiOperation("根据装置部门和模糊搜索获取装置详情") - @ApiImplicitParam(name = "id", value = "装置id", required = true) @PostMapping("/getDeptDeviceDetailData") HttpResult> getDeptDeviceDetailData(@RequestBody DataParam param){ String methodDescribe = getMethodDescribe("getDeptDeviceDetailData"); diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/DeptLineMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/DeptLineMapper.xml index ffc9f5692..ca7e3341d 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/DeptLineMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/DeptLineMapper.xml @@ -98,11 +98,11 @@ + diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/ReportService.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/ReportService.java index 67795d509..e5d442ea9 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/ReportService.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/ReportService.java @@ -12,7 +12,7 @@ import java.util.List; public interface ReportService { /** - * + * 限值 * @param param * @return */ @@ -80,4 +80,18 @@ public interface ReportService { * @return */ List getVoltageRate(ReportQueryParam param); + + /** + * 间谐波 + * @param param + * @return + */ + List getInharmVeRate(ReportQueryParam param); + + /** + * 负序电流 + * @param param + * @return + */ + List getINegDataRate(ReportQueryParam param); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java index 77d9e83c4..5e2993012 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java @@ -3,6 +3,7 @@ package com.njcn.harmonic.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -51,12 +52,6 @@ import com.njcn.system.enums.DicDataEnum; import com.njcn.user.api.DeptFeignClient; import com.njcn.user.pojo.po.Dept; import com.njcn.web.utils.RequestUtil; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -66,8 +61,15 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + + /** - * * Description: * 接口文档访问地址:http://serverIP:port/swagger-ui.html * Date: 2022/10/13 8:56【需求编号】 @@ -123,66 +125,66 @@ public class PollutionSubstationServiceImpl extends ServiceImpl getPollutionSubstationData(PollutionSubstationQuryParam pollutionSubstationQuryParam) { - List pollutionSubstationVOList = new ArrayList<> (); + List pollutionSubstationVOList = new ArrayList<>(); /*根据部门获取变电站详情*/ HarmonicPublicParam harmonicPublicParam = new HarmonicPublicParam(); - BeanUtils.copyProperties (pollutionSubstationQuryParam, harmonicPublicParam); + BeanUtils.copyProperties(pollutionSubstationQuryParam, harmonicPublicParam); harmonicPublicParam.setServerName(generalInfo.getMicroServiceName()); List pollutionSubstationDTOList = new ArrayList<>(); List sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(harmonicPublicParam).getData(); - sub.forEach(item->{ + sub.forEach(item -> { PollutionSubstationDTO pollutionSubstationDTO = lineFeignClient.getSubstationInfo(item.getIndex()).getData(); pollutionSubstationDTOList.add(pollutionSubstationDTO); }); - List collect = pollutionSubstationDTOList.stream ( ).map (PollutionSubstationDTO::getId).collect (Collectors.toList ( )); - List locationData = substationFeignClient.getSubstationById (collect).getData ( ); + List collect = pollutionSubstationDTOList.stream().map(PollutionSubstationDTO::getId).collect(Collectors.toList()); + List locationData = substationFeignClient.getSubstationById(collect).getData(); /*todo 后期可以把locationData存入redis*/ /*把所有的变电站的污染指数查出来*/ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.in ("substation_id",collect). - eq ("pollution_type", pollutionSubstationQuryParam.getPollutionStatis ().getId ()). - eq("DATE_FORMAT( data_date ,'%Y-%m')",pollutionSubstationQuryParam.getLocalDate ()); - List rStatPollutionSubstationMList = pollutionSubstationMMapper.selectList (wrapper); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("substation_id", collect). + eq("pollution_type", pollutionSubstationQuryParam.getPollutionStatis().getId()). + eq("DATE_FORMAT( data_date ,'%Y-%m')", pollutionSubstationQuryParam.getLocalDate()); + List rStatPollutionSubstationMList = pollutionSubstationMMapper.selectList(wrapper); - pollutionSubstationDTOList.forEach (substationInfo ->{ + pollutionSubstationDTOList.forEach(substationInfo -> { - Integer lineCount = lineFeignClient.getLineCountBySubstation (substationInfo.getId ( )).getData ( ); - Integer deviceCount = lineFeignClient.getDeviceCountBySubstation (substationInfo.getId ()).getData (); - PollutionSubstationVO pollutionSubstationVO =new PollutionSubstationVO (); - pollutionSubstationVO.setSubstationId (substationInfo.getId ()); - pollutionSubstationVO.setSubstationName (substationInfo.getName ()); - pollutionSubstationVO.setDeviceCount (deviceCount); - pollutionSubstationVO.setLineCount (lineCount); + Integer lineCount = lineFeignClient.getLineCountBySubstation(substationInfo.getId()).getData(); + Integer deviceCount = lineFeignClient.getDeviceCountBySubstation(substationInfo.getId()).getData(); + PollutionSubstationVO pollutionSubstationVO = new PollutionSubstationVO(); + pollutionSubstationVO.setSubstationId(substationInfo.getId()); + pollutionSubstationVO.setSubstationName(substationInfo.getName()); + pollutionSubstationVO.setDeviceCount(deviceCount); + pollutionSubstationVO.setLineCount(lineCount); /*todo 添加经纬度接口返回数据暂时没有*/ - List substationDTOList = locationData.stream ( ) - .filter (temp -> Objects.equals (substationInfo.getId ( ), temp.getId ( ))) - .collect (Collectors.toList ( )); + List substationDTOList = locationData.stream() + .filter(temp -> Objects.equals(substationInfo.getId(), temp.getId())) + .collect(Collectors.toList()); - SubstationDTO substationDTO = new SubstationDTO (); - if(CollectionUtils.isEmpty (substationDTOList)){ - throw new BusinessException (CommonResponseEnum.INTERNAL_ERROR); - }else{ - substationDTO = substationDTOList.get (0); + SubstationDTO substationDTO = new SubstationDTO(); + if (CollectionUtils.isEmpty(substationDTOList)) { + throw new BusinessException(CommonResponseEnum.INTERNAL_ERROR); + } else { + substationDTO = substationDTOList.get(0); } - pollutionSubstationVO.setLatitude (substationDTO.getLat ()); - pollutionSubstationVO.setLongitude (substationDTO.getLng ()); + pollutionSubstationVO.setLatitude(substationDTO.getLat()); + pollutionSubstationVO.setLongitude(substationDTO.getLng()); - List rStatPollutionSubstationMS = rStatPollutionSubstationMList.stream ( ). - filter (temp -> Objects.equals (substationInfo.getId ( ), temp.getSubstationId ( ))) - .collect (Collectors.toList ( )); + List rStatPollutionSubstationMS = rStatPollutionSubstationMList.stream(). + filter(temp -> Objects.equals(substationInfo.getId(), temp.getSubstationId())) + .collect(Collectors.toList()); Double value = 3.14159; - if(!CollectionUtils.isEmpty (rStatPollutionSubstationMS)){ - value = rStatPollutionSubstationMS.get (0).getValue (); + if (!CollectionUtils.isEmpty(rStatPollutionSubstationMS)) { + value = rStatPollutionSubstationMS.get(0).getValue(); } - pollutionSubstationVO.setPollutionData (value); - pollutionSubstationVO.setPollutionStatis ( pollutionSubstationQuryParam.getStatisticalType ().getName ()); - pollutionSubstationVOList.add (pollutionSubstationVO); + pollutionSubstationVO.setPollutionData(value); + pollutionSubstationVO.setPollutionStatis(pollutionSubstationQuryParam.getStatisticalType().getName()); + pollutionSubstationVOList.add(pollutionSubstationVO); }); - List result = pollutionSubstationVOList.stream ( ).sorted (Comparator.comparing (PollutionSubstationVO::getPollutionData).reversed ( )).collect (Collectors.toList ( )); + List result = pollutionSubstationVOList.stream().sorted(Comparator.comparing(PollutionSubstationVO::getPollutionData).reversed()).collect(Collectors.toList()); return result; } @@ -197,8 +199,8 @@ public class PollutionSubstationServiceImpl extends ServiceImpl getDeptSubstationRelations(HarmonicPublicParam harmonicPublicParam) { List list = new ArrayList<>(); - String pollutionType = harmonicPublicParam.getStatisticalType ().getId (); - String searchBeginTime = harmonicPublicParam.getSearchBeginTime ().substring (0,10); + String pollutionType = harmonicPublicParam.getStatisticalType().getId(); + String searchBeginTime = harmonicPublicParam.getSearchBeginTime().substring(0, 10); if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { return list; } @@ -210,18 +212,18 @@ public class PollutionSubstationServiceImpl extends ServiceImpl orgList = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam).getData(); orgList.forEach(temp -> { - PollutionVO pollutionVO = new PollutionVO (); - String detpid = temp.getIndex (); - String name =temp.getName (); - List powers = temp.getPowerrIdList ( ); - pollutionVO.setId (detpid); - pollutionVO.setName (name+"\n("+temp.getMonitorIdList().size()+")"); - pollutionVO.setData (3.14159); - setData(harmonicPublicParam, pollutionType, searchBeginTime,harmonicPublicParam.getSearchEndTime(), pollutionVO, detpid); - if(CollectionUtil.isNotEmpty(powers)) { + PollutionVO pollutionVO = new PollutionVO(); + String detpid = temp.getIndex(); + String name = temp.getName(); + List powers = temp.getPowerrIdList(); + pollutionVO.setId(detpid); + pollutionVO.setName(name + "\n(" + temp.getMonitorIdList().size() + ")"); + pollutionVO.setData(3.14159); + setData(harmonicPublicParam, pollutionType, searchBeginTime, harmonicPublicParam.getSearchEndTime(), pollutionVO, detpid); + if (CollectionUtil.isNotEmpty(powers)) { //子集变电站 List powersVO = new ArrayList<>(); - PmsStatationStatInfoParam param=new PmsStatationStatInfoParam(); + PmsStatationStatInfoParam param = new PmsStatationStatInfoParam(); param.setPowerIds(powers); List data = statationStatClient.getStatationStatInfo(param).getData(); //去重解决重复数据 @@ -229,24 +231,24 @@ public class PollutionSubstationServiceImpl extends ServiceImpl new TreeSet<>(Comparator.comparing(o -> o.getPowerId()))), ArrayList::new)); Map stringDoubleMap = setPmsSubData(harmonicPublicParam, pollutionType, searchBeginTime, powers); - if(CollectionUtil.isNotEmpty(data)) { - dsData.forEach(power->{ - PollutionVO pollutionsubVO = new PollutionVO (); - pollutionsubVO.setId (power.getPowerId()); - pollutionsubVO.setName ( power.getPowerName ()); - pollutionsubVO.setPid (temp.getIndex ()); - if(CollectionUtil.isNotEmpty(stringDoubleMap)){ - if(stringDoubleMap.containsKey(power.getPowerId())){ + if (CollectionUtil.isNotEmpty(data)) { + dsData.forEach(power -> { + PollutionVO pollutionsubVO = new PollutionVO(); + pollutionsubVO.setId(power.getPowerId()); + pollutionsubVO.setName(power.getPowerName()); + pollutionsubVO.setPid(temp.getIndex()); + if (CollectionUtil.isNotEmpty(stringDoubleMap)) { + if (stringDoubleMap.containsKey(power.getPowerId())) { pollutionsubVO.setData(stringDoubleMap.get(power.getPowerId())); } } - powersVO.add (pollutionsubVO) ; + powersVO.add(pollutionsubVO); }); } powersVO.sort((item1, item2) -> item2.getData().compareTo(item1.getData())); - pollutionVO.setChildren (powersVO); + pollutionVO.setChildren(powersVO); } - list.add (pollutionVO); + list.add(pollutionVO); }); } else { @@ -254,7 +256,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl sub = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData(); for (GeneralDeviceDTO temp : sub) { List subIndexes = temp.getSubIndexes(); - if(CollectionUtil.isEmpty(subIndexes)){ + if (CollectionUtil.isEmpty(subIndexes)) { continue; } PollutionVO pollutionVO = new PollutionVO(); @@ -262,9 +264,9 @@ public class PollutionSubstationServiceImpl extends ServiceImpl subPollutionVO = new ArrayList<>(); subIndexes.forEach(subIndex -> { PollutionVO pollutionsubVO = new PollutionVO(); @@ -274,14 +276,14 @@ public class PollutionSubstationServiceImpl extends ServiceImpl listSort = list.stream().filter(x -> x.getData() != 3.14159).sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList()); listSort.addAll(list.stream().filter(x -> x.getData() == 3.14159).collect(Collectors.toList())); return listSort; @@ -289,125 +291,125 @@ public class PollutionSubstationServiceImpl extends ServiceImpl setPmsSubData(HarmonicPublicParam harmonicPublicParam, String pollutionType, String searchBeginTime, List id) { - if(Objects.equals (harmonicPublicParam.getReportFlag (), BizParamConstant.STAT_BIZ_YEAR) ){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.in ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); + private Map setPmsSubData(HarmonicPublicParam harmonicPublicParam, String pollutionType, String searchBeginTime, List id) { + if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_YEAR)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); List s = pollutionSubstationYPOMapper.selectList(wrapper); - return s.stream().collect(Collectors.toMap(RStatPollutionSubstationYPO::getSubstationId, RStatPollutionSubstationYPO::getValue)); - }else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.in ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); + return s.stream().collect(Collectors.toMap(RStatPollutionSubstationYPO::getSubstationId, RStatPollutionSubstationYPO::getValue)); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_QUARTER)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); List s = pollutionSubstationQPOMapper.selectList(wrapper); return s.stream().collect(Collectors.toMap(RStatPollutionSubstationQPO::getSubstationId, RStatPollutionSubstationQPO::getValue)); - }else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.in ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_MONTH)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); List s = pollutionSubstationMMapper.selectList(wrapper); return s.stream().collect(Collectors.toMap(RStatPollutionSubstationM::getSubstationId, RStatPollutionSubstationM::getValue)); - }else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.in ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_DAY)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); List s = pollutionSubstationDPOMapper.selectList(wrapper); return s.stream().collect(Collectors.toMap(RStatPollutionSubstationDPO::getSubstationId, RStatPollutionSubstationDPO::getValue)); } return null; } - private void setSubData(HarmonicPublicParam harmonicPublicParam, String pollutionType, String searchBeginTime,String searchEndTime, PollutionVO pollutionsubVO, String id) { - if(Objects.equals (harmonicPublicParam.getReportFlag (), BizParamConstant.STAT_BIZ_YEAR) ){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.eq ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionSubstationYPO rStatPollutionSubstationYPO = pollutionSubstationYPOMapper.selectOne (wrapper); + private void setSubData(HarmonicPublicParam harmonicPublicParam, String pollutionType, String searchBeginTime, String searchEndTime, PollutionVO pollutionsubVO, String id) { + if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_YEAR)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionSubstationYPO rStatPollutionSubstationYPO = pollutionSubstationYPOMapper.selectOne(wrapper); - Optional.ofNullable (rStatPollutionSubstationYPO).ifPresent (t->pollutionsubVO.setData (t.getValue ())); - }else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.eq ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionSubstationQPO rStatPollutionSubstationQPO = pollutionSubstationQPOMapper.selectOne (wrapper); + Optional.ofNullable(rStatPollutionSubstationYPO).ifPresent(t -> pollutionsubVO.setData(t.getValue())); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_QUARTER)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionSubstationQPO rStatPollutionSubstationQPO = pollutionSubstationQPOMapper.selectOne(wrapper); - Optional.ofNullable (rStatPollutionSubstationQPO).ifPresent (t->pollutionsubVO.setData (t.getValue ())); - }else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.eq ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionSubstationM rStatPollutionSubstationM = pollutionSubstationMMapper.selectOne (wrapper); + Optional.ofNullable(rStatPollutionSubstationQPO).ifPresent(t -> pollutionsubVO.setData(t.getValue())); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_MONTH)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionSubstationM rStatPollutionSubstationM = pollutionSubstationMMapper.selectOne(wrapper); - Optional.ofNullable (rStatPollutionSubstationM).ifPresent (t->pollutionsubVO.setData (t.getValue ())); + Optional.ofNullable(rStatPollutionSubstationM).ifPresent(t -> pollutionsubVO.setData(t.getValue())); - }else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.eq ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne (wrapper); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_DAY)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne(wrapper); - Optional.ofNullable (rStatPollutionSubstationDPO).ifPresent (t->pollutionsubVO.setData (t.getValue ())); - }else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_WEEK)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.eq ("substation_id",id). - eq ("pollution_type", pollutionType). - between("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime,searchEndTime) - .orderByDesc("value").last(" limit 1"); - RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne (wrapper); - Optional.ofNullable (rStatPollutionSubstationDPO).ifPresent (t->pollutionsubVO.setData (t.getValue ())); + Optional.ofNullable(rStatPollutionSubstationDPO).ifPresent(t -> pollutionsubVO.setData(t.getValue())); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_WEEK)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("substation_id", id). + eq("pollution_type", pollutionType). + between("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime, searchEndTime) + .orderByDesc("value").last(" limit 1"); + RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne(wrapper); + Optional.ofNullable(rStatPollutionSubstationDPO).ifPresent(t -> pollutionsubVO.setData(t.getValue())); } } - private void setData(HarmonicPublicParam harmonicPublicParam, String pollutionType, String searchBeginTime,String searchEndTime, PollutionVO pollutionVO, String detpid) { + private void setData(HarmonicPublicParam harmonicPublicParam, String pollutionType, String searchBeginTime, String searchEndTime, PollutionVO pollutionVO, String detpid) { - if(Objects.equals (harmonicPublicParam.getReportFlag (), BizParamConstant.STAT_BIZ_YEAR) ) { - QueryWrapper rStatPollutionOrgYPOQueryWrapper = new QueryWrapper<> (); - rStatPollutionOrgYPOQueryWrapper.eq ("org_id", detpid). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionOrgYPO rStatPollutionOrgYPO = rStatPollutionOrgYPOMapper.selectOne (rStatPollutionOrgYPOQueryWrapper); - Optional.ofNullable (rStatPollutionOrgYPO).ifPresent (a->pollutionVO.setData (BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); - } else if (Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)) { - QueryWrapper rStatPollutionOrgQPOQueryWrapper = new QueryWrapper<> (); - rStatPollutionOrgQPOQueryWrapper.eq ("org_id", detpid). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionOrgQPO rStatPollutionOrgQPO = rStatPollutionOrgQPOMapper.selectOne (rStatPollutionOrgQPOQueryWrapper); - Optional.ofNullable (rStatPollutionOrgQPO).ifPresent (a->pollutionVO.setData (BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); - } else if (Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)) { - QueryWrapper rStatPollutionOrgMPOQueryWrapper = new QueryWrapper<> (); - rStatPollutionOrgMPOQueryWrapper.eq ("org_id", detpid). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionOrgMPO rStatPollutionOrgMPO = rStatPollutionOrgMPOMapper.selectOne (rStatPollutionOrgMPOQueryWrapper); - Optional.ofNullable (rStatPollutionOrgMPO).ifPresent (a->pollutionVO.setData (BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); - } else if (Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)) { - QueryWrapper rStatPollutionOrgDPOQueryWrapper = new QueryWrapper<> (); - rStatPollutionOrgDPOQueryWrapper.eq ("org_id", detpid). - eq ("pollution_type", pollutionType). - between("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime,searchEndTime) + if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_YEAR)) { + QueryWrapper rStatPollutionOrgYPOQueryWrapper = new QueryWrapper<>(); + rStatPollutionOrgYPOQueryWrapper.eq("org_id", detpid). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionOrgYPO rStatPollutionOrgYPO = rStatPollutionOrgYPOMapper.selectOne(rStatPollutionOrgYPOQueryWrapper); + Optional.ofNullable(rStatPollutionOrgYPO).ifPresent(a -> pollutionVO.setData(BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_QUARTER)) { + QueryWrapper rStatPollutionOrgQPOQueryWrapper = new QueryWrapper<>(); + rStatPollutionOrgQPOQueryWrapper.eq("org_id", detpid). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionOrgQPO rStatPollutionOrgQPO = rStatPollutionOrgQPOMapper.selectOne(rStatPollutionOrgQPOQueryWrapper); + Optional.ofNullable(rStatPollutionOrgQPO).ifPresent(a -> pollutionVO.setData(BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_MONTH)) { + QueryWrapper rStatPollutionOrgMPOQueryWrapper = new QueryWrapper<>(); + rStatPollutionOrgMPOQueryWrapper.eq("org_id", detpid). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionOrgMPO rStatPollutionOrgMPO = rStatPollutionOrgMPOMapper.selectOne(rStatPollutionOrgMPOQueryWrapper); + Optional.ofNullable(rStatPollutionOrgMPO).ifPresent(a -> pollutionVO.setData(BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_DAY)) { + QueryWrapper rStatPollutionOrgDPOQueryWrapper = new QueryWrapper<>(); + rStatPollutionOrgDPOQueryWrapper.eq("org_id", detpid). + eq("pollution_type", pollutionType). + between("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime, searchEndTime) .orderByDesc("value").last(" limit 1"); - RStatPollutionOrgDPO rStatPollutionOrgDPO = rStatPollutionOrgDPOMapper.selectOne (rStatPollutionOrgDPOQueryWrapper); - Optional.ofNullable (rStatPollutionOrgDPO).ifPresent (a->pollutionVO.setData (BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); - }else if(Objects.equals (harmonicPublicParam.getReportFlag (),BizParamConstant.STAT_BIZ_WEEK)){ - QueryWrapper rStatPollutionOrgDPOQueryWrapper = new QueryWrapper<> (); - rStatPollutionOrgDPOQueryWrapper.eq ("org_id", detpid). - eq ("pollution_type", pollutionType). - between("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime,searchEndTime) + RStatPollutionOrgDPO rStatPollutionOrgDPO = rStatPollutionOrgDPOMapper.selectOne(rStatPollutionOrgDPOQueryWrapper); + Optional.ofNullable(rStatPollutionOrgDPO).ifPresent(a -> pollutionVO.setData(BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); + } else if (Objects.equals(harmonicPublicParam.getReportFlag(), BizParamConstant.STAT_BIZ_WEEK)) { + QueryWrapper rStatPollutionOrgDPOQueryWrapper = new QueryWrapper<>(); + rStatPollutionOrgDPOQueryWrapper.eq("org_id", detpid). + eq("pollution_type", pollutionType). + between("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime, searchEndTime) .orderByDesc("value").last(" limit 1"); - RStatPollutionOrgDPO rStatPollutionOrgDPO = rStatPollutionOrgDPOMapper.selectOne (rStatPollutionOrgDPOQueryWrapper); - Optional.ofNullable (rStatPollutionOrgDPO).ifPresent (a->pollutionVO.setData (BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); + RStatPollutionOrgDPO rStatPollutionOrgDPO = rStatPollutionOrgDPOMapper.selectOne(rStatPollutionOrgDPOQueryWrapper); + Optional.ofNullable(rStatPollutionOrgDPO).ifPresent(a -> pollutionVO.setData(BigDecimal.valueOf(a.getValue()).setScale(2, RoundingMode.UP).doubleValue())); } } @@ -422,15 +424,15 @@ public class PollutionSubstationServiceImpl extends ServiceImpl getSubstationInfoById(HarmonicPublicParam deptParam) { - String pollutionType = deptParam.getStatisticalType ( ).getId (); - String searchBeginTime = deptParam.getSearchBeginTime ( ).substring (0,10); + String pollutionType = deptParam.getStatisticalType().getId(); + String searchBeginTime = deptParam.getSearchBeginTime().substring(0, 10); List list = new ArrayList<>(); if (deptParam.getType() != 0) { PmsDeviceInfoParam pmsDeviceInfoParam = new PmsDeviceInfoParam(); //根据部门code获取部门id Dept dept = deptFeignClient.getDeptByCode(deptParam.getDeptIndex()).getData(); - if(ObjectUtil.isNull(dept)){ + if (ObjectUtil.isNull(dept)) { return list; } pmsDeviceInfoParam.setDeptIndex(dept.getId()); @@ -438,11 +440,11 @@ public class PollutionSubstationServiceImpl extends ServiceImpl deviceList = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam).getData(); - deviceList.forEach(temp->{ - List powers = temp.getPowerrIdList ( ); + deviceList.forEach(temp -> { + List powers = temp.getPowerrIdList(); //变电站不为空 - if(CollectionUtil.isNotEmpty(powers)){ - PmsStatationStatInfoParam param=new PmsStatationStatInfoParam(); + if (CollectionUtil.isNotEmpty(powers)) { + PmsStatationStatInfoParam param = new PmsStatationStatInfoParam(); param.setPowerIds(powers); List data = statationStatClient.getStatationStatInfo(param).getData(); //去重解决重复数据 @@ -450,68 +452,68 @@ public class PollutionSubstationServiceImpl extends ServiceImpl new TreeSet<>(Comparator.comparing(o -> o.getPowerId()))), ArrayList::new)); Map stringDoubleMap = setPmsSubData(deptParam, pollutionType, searchBeginTime, powers); - if(CollectionUtil.isNotEmpty(data)){ - dsData.forEach(power->{ - PollutionSubstationDTO dto=new PollutionSubstationDTO(); + if (CollectionUtil.isNotEmpty(data)) { + dsData.forEach(power -> { + PollutionSubstationDTO dto = new PollutionSubstationDTO(); dto.setId(power.getPowerId()); dto.setName(power.getPowerName()); dto.setVoltageLevel(power.getPowerVoltageLevel()); - if(CollectionUtil.isNotEmpty(stringDoubleMap)){ - if(stringDoubleMap.containsKey(power.getPowerId())){ + if (CollectionUtil.isNotEmpty(stringDoubleMap)) { + if (stringDoubleMap.containsKey(power.getPowerId())) { dto.setData(stringDoubleMap.get(power.getPowerId())); } } - list.add (dto) ; + list.add(dto); }); } } }); - }else{ + } else { deptParam.setServerName(generalInfo.getMicroServiceName()); List sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(deptParam).getData(); - sub.forEach(item->{ + sub.forEach(item -> { PollutionSubstationDTO pollutionSubstationDTO = lineFeignClient.getSubstationInfo(item.getIndex()).getData(); - String id = pollutionSubstationDTO.getId (); - if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_YEAR) ){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.eq ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionSubstationYPO rStatPollutionSubstationYPO = pollutionSubstationYPOMapper.selectOne (wrapper); + String id = pollutionSubstationDTO.getId(); + if (Objects.equals(deptParam.getReportFlag(), BizParamConstant.STAT_BIZ_YEAR)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionSubstationYPO rStatPollutionSubstationYPO = pollutionSubstationYPOMapper.selectOne(wrapper); - Optional.ofNullable (rStatPollutionSubstationYPO).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ())); - }else if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_QUARTER)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.eq ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionSubstationQPO rStatPollutionSubstationQPO = pollutionSubstationQPOMapper.selectOne (wrapper); + Optional.ofNullable(rStatPollutionSubstationYPO).ifPresent(t -> pollutionSubstationDTO.setData(t.getValue())); + } else if (Objects.equals(deptParam.getReportFlag(), BizParamConstant.STAT_BIZ_QUARTER)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionSubstationQPO rStatPollutionSubstationQPO = pollutionSubstationQPOMapper.selectOne(wrapper); - Optional.ofNullable (rStatPollutionSubstationQPO).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ())); - }else if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_MONTH)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.eq ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionSubstationM rStatPollutionSubstationM = pollutionSubstationMMapper.selectOne (wrapper); + Optional.ofNullable(rStatPollutionSubstationQPO).ifPresent(t -> pollutionSubstationDTO.setData(t.getValue())); + } else if (Objects.equals(deptParam.getReportFlag(), BizParamConstant.STAT_BIZ_MONTH)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionSubstationM rStatPollutionSubstationM = pollutionSubstationMMapper.selectOne(wrapper); - Optional.ofNullable (rStatPollutionSubstationM).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ())); + Optional.ofNullable(rStatPollutionSubstationM).ifPresent(t -> pollutionSubstationDTO.setData(t.getValue())); - }else if(Objects.equals (deptParam.getReportFlag (),BizParamConstant.STAT_BIZ_DAY)){ - QueryWrapper wrapper = new QueryWrapper<> (); - wrapper.eq ("substation_id",id). - eq ("pollution_type", pollutionType). - eq("DATE_FORMAT( data_date ,'%Y-%m-%d')",searchBeginTime); - RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne (wrapper); + } else if (Objects.equals(deptParam.getReportFlag(), BizParamConstant.STAT_BIZ_DAY)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("substation_id", id). + eq("pollution_type", pollutionType). + eq("DATE_FORMAT( data_date ,'%Y-%m-%d')", searchBeginTime); + RStatPollutionSubstationDPO rStatPollutionSubstationDPO = pollutionSubstationDPOMapper.selectOne(wrapper); - Optional.ofNullable (rStatPollutionSubstationDPO).ifPresent (t->pollutionSubstationDTO.setData (t.getValue ())); + Optional.ofNullable(rStatPollutionSubstationDPO).ifPresent(t -> pollutionSubstationDTO.setData(t.getValue())); } list.add(pollutionSubstationDTO); }); } - if (!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { return list.stream().sorted(Comparator.comparing(PollutionSubstationDTO::getData).reversed().thenComparing(PollutionSubstationDTO::getName)).collect(Collectors.toList()); } return list; @@ -529,54 +531,54 @@ public class PollutionSubstationServiceImpl extends ServiceImpl list = new ArrayList<>(); - String pollutionType = harmonicPublicParam.getStatisticalType ( ).getId (); + String pollutionType = harmonicPublicParam.getStatisticalType().getId(); PollutionParamDTO paramDTO = new PollutionParamDTO(); - if (StringUtils.isBlank(RequestUtil.getDeptIndex())){ + if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { return list; } if (harmonicPublicParam.getType() != 0) { - PmsStatationStatInfoParam param=new PmsStatationStatInfoParam(); + PmsStatationStatInfoParam param = new PmsStatationStatInfoParam(); param.setPowerIds(Arrays.asList(harmonicPublicParam.getId())); //获取变电站详情 List data = statationStatClient.getStatationStatInfo(param).getData(); - if(CollectionUtil.isNotEmpty(data)){ + if (CollectionUtil.isNotEmpty(data)) { List monitorId = data.stream().map(PmsStatationStatInfoDTO::getMonitorId).collect(Collectors.toList()); - List lineData = rMpPollutionDPOMapper.selectMaxList ( monitorId,pollutionType,harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()); + List lineData = rMpPollutionDPOMapper.selectMaxList(monitorId, pollutionType, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime()); Map lineMap = lineData.stream().collect(Collectors.toMap(RMpPollutionDPO::getLineId, RMpPollutionDPO::getValue)); PollutionLineDTO dto; for (PmsStatationStatInfoDTO power : data) { - dto=new PollutionLineDTO(); + dto = new PollutionLineDTO(); dto.setId(power.getMonitorId()); dto.setName(power.getMonitorName()); dto.setPowerCompany(power.getOrgName()); dto.setSubstation(power.getPowerName()); dto.setBusBar(power.getBusBarName()); dto.setSubstationId(power.getPowerId()); - if(CollectionUtil.isNotEmpty(lineMap)){ - if(lineMap.containsKey(power.getMonitorId())){ + if (CollectionUtil.isNotEmpty(lineMap)) { + if (lineMap.containsKey(power.getMonitorId())) { dto.setData(lineMap.get(power.getMonitorId())); } } - list.add (dto) ; + list.add(dto); } } - }else{ + } else { List line = new ArrayList<>(); List sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(harmonicPublicParam).getData(); - sub.forEach(item->{ - if (Objects.equals(harmonicPublicParam.getId(),item.getIndex())){ - if (!CollectionUtils.isEmpty(item.getLineIndexes())){ + sub.forEach(item -> { + if (Objects.equals(harmonicPublicParam.getId(), item.getIndex())) { + if (!CollectionUtils.isEmpty(item.getLineIndexes())) { line.addAll(item.getLineIndexes()); } } }); - if (!CollectionUtils.isEmpty(line)){ + if (!CollectionUtils.isEmpty(line)) { paramDTO.setLineList(line); list = lineFeignClient.getLineInfo(paramDTO).getData(); - List lineData = rMpPollutionDPOMapper.selectMaxList ( line,pollutionType,harmonicPublicParam.getSearchBeginTime(),harmonicPublicParam.getSearchEndTime()); - if (!CollectionUtils.isEmpty(lineData)){ - list.stream().map(list1->lineData.stream().filter(list2-> Objects.equals(list1.getId(),list2.getLineId ())).findAny().map(m->{ - list1.setData (m.getValue ()); + List lineData = rMpPollutionDPOMapper.selectMaxList(line, pollutionType, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime()); + if (!CollectionUtils.isEmpty(lineData)) { + list.stream().map(list1 -> lineData.stream().filter(list2 -> Objects.equals(list1.getId(), list2.getLineId())).findAny().map(m -> { + list1.setData(m.getValue()); return list1; })).collect(Collectors.toList()); } @@ -589,9 +591,9 @@ public class PollutionSubstationServiceImpl extends ServiceImpl getLineRankTop10 (HarmonicPublicParam param) { - List list= new ArrayList<>(); - if(param.getType()==0) { + public List getLineRankTop10(HarmonicPublicParam param) { + List list = new ArrayList<>(); + if (param.getType() == 0) { param.setServerName(generalInfo.getMicroServiceName()); List lineList = new ArrayList<>(); PollutionParamDTO paramDTO = new PollutionParamDTO(); @@ -607,7 +609,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl result =rMpPollutionDPOMapper.getTop10Line(lineList,DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())), param.getStatisticalType().getId()); + List result = rMpPollutionDPOMapper.getTop10Line(lineList, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())), param.getStatisticalType().getId()); if (!CollectionUtils.isEmpty(result)) { list.stream().map(list1 -> result.stream().filter(list2 -> Objects.equals(list1.getId(), list2.getId())).findAny().map(m -> { list1.setData(m.getData()); @@ -628,14 +630,15 @@ public class PollutionSubstationServiceImpl extends ServiceImpl deviceList = pmsGeneralDeviceInfoClient.getPmsDeviceInfoWithInOrg(pmsDeviceInfoParam).getData(); - List monitorIdList=new ArrayList<>(); + List monitorIdList = new ArrayList<>(); deviceList.forEach(dept -> { monitorIdList.addAll(dept.getMonitorIdList()); }); - if(CollectionUtil.isNotEmpty(monitorIdList)){ + if (CollectionUtil.isNotEmpty(monitorIdList)) { //获取监测点数据 - List lineData =rMpPollutionDPOMapper.getTop10Line(monitorIdList,DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())),DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())), param.getStatisticalType().getId()); if(CollectionUtil.isEmpty(lineData)){ + List lineData = rMpPollutionDPOMapper.getTop10Line(monitorIdList, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())), param.getStatisticalType().getId()); + if (CollectionUtil.isEmpty(lineData)) { return list; } //获取主网监测点信息 @@ -643,9 +646,9 @@ public class PollutionSubstationServiceImpl extends ServiceImpl monitorMap = data.stream().collect(Collectors.toMap(Monitor::getId, Function.identity(), (key1, kye2) -> key1)); PollutionLineDTO dto; for (PublicDTO lineDatum : lineData) { - if(monitorMap.containsKey(lineDatum.getId())){ + if (monitorMap.containsKey(lineDatum.getId())) { Monitor monitor = monitorMap.get(lineDatum.getId()); - dto=new PollutionLineDTO(); + dto = new PollutionLineDTO(); dto.setId(monitor.getId()); dto.setName(monitor.getName()); dto.setPowerCompany(monitor.getOrgName()); @@ -672,16 +675,16 @@ public class PollutionSubstationServiceImpl extends ServiceImpl subAll = collect.stream().map(SubGetBase::getId).distinct().collect(Collectors.toList()); //国网变电站 - List subGw = collect.stream().filter(x -> 1==x.getIsUpToGrid()).map(SubGetBase::getId).distinct().collect(Collectors.toList()); + List subGw = collect.stream().filter(x -> 1 == x.getIsUpToGrid()).map(SubGetBase::getId).distinct().collect(Collectors.toList()); - GridDiagramVO vo=new GridDiagramVO(); + GridDiagramVO vo = new GridDiagramVO(); List info = new ArrayList<>(); List gwInfo = new ArrayList<>(); - if(CollUtil.isNotEmpty(subAll)){ - switch (param.getType()){ + if (CollUtil.isNotEmpty(subAll)) { + switch (param.getType()) { case 1: List substationYlist = pollutionSubstationYPOMapper.selectList(new LambdaQueryWrapper() - .select(RStatPollutionSubstationYPO::getSubstationId,RStatPollutionSubstationYPO::getValue) + .select(RStatPollutionSubstationYPO::getSubstationId, RStatPollutionSubstationYPO::getValue) .in(CollUtil.isNotEmpty(subAll), RStatPollutionSubstationYPO::getSubstationId, subAll) .in(CollUtil.isNotEmpty(param.getIds()), RStatPollutionSubstationYPO::getPollutionType, param.getIds()) .ge(StrUtil.isNotBlank(param.getStartTime()), RStatPollutionSubstationYPO::getDataDate, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) @@ -689,12 +692,12 @@ public class PollutionSubstationServiceImpl extends ServiceImplsubGw.contains(x.getSubstationId())) - .map(RStatPollutionSubstationYPO::getValue).collect(Collectors.toList())); + .filter(x -> subGw.contains(x.getSubstationId())) + .map(RStatPollutionSubstationYPO::getValue).collect(Collectors.toList())); break; case 2: List substationQlist = pollutionSubstationQPOMapper.selectList(new LambdaQueryWrapper() - .select(RStatPollutionSubstationQPO::getSubstationId,RStatPollutionSubstationQPO::getValue) + .select(RStatPollutionSubstationQPO::getSubstationId, RStatPollutionSubstationQPO::getValue) .in(CollUtil.isNotEmpty(subAll), RStatPollutionSubstationQPO::getSubstationId, subAll) .in(CollUtil.isNotEmpty(param.getIds()), RStatPollutionSubstationQPO::getPollutionType, param.getIds()) .ge(StrUtil.isNotBlank(param.getStartTime()), RStatPollutionSubstationQPO::getDataDate, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) @@ -702,12 +705,12 @@ public class PollutionSubstationServiceImpl extends ServiceImplsubGw.contains(x.getSubstationId())) + .filter(x -> subGw.contains(x.getSubstationId())) .map(RStatPollutionSubstationQPO::getValue).collect(Collectors.toList())); break; case 3: List substationMlist = pollutionSubstationMMapper.selectList(new LambdaQueryWrapper() - .select(RStatPollutionSubstationM::getSubstationId,RStatPollutionSubstationM::getValue) + .select(RStatPollutionSubstationM::getSubstationId, RStatPollutionSubstationM::getValue) .in(CollUtil.isNotEmpty(subAll), RStatPollutionSubstationM::getSubstationId, subAll) .in(CollUtil.isNotEmpty(param.getIds()), RStatPollutionSubstationM::getPollutionType, param.getIds()) .ge(StrUtil.isNotBlank(param.getStartTime()), RStatPollutionSubstationM::getDataDate, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) @@ -715,12 +718,12 @@ public class PollutionSubstationServiceImpl extends ServiceImplsubGw.contains(x.getSubstationId())) + .filter(x -> subGw.contains(x.getSubstationId())) .map(RStatPollutionSubstationM::getValue).collect(Collectors.toList())); break; case 4: List substationDlist = pollutionSubstationDPOMapper.selectList(new LambdaQueryWrapper() - .select(RStatPollutionSubstationDPO::getSubstationId,RStatPollutionSubstationDPO::getValue) + .select(RStatPollutionSubstationDPO::getSubstationId, RStatPollutionSubstationDPO::getValue) .in(CollUtil.isNotEmpty(subAll), RStatPollutionSubstationDPO::getSubstationId, subAll) .in(CollUtil.isNotEmpty(param.getIds()), RStatPollutionSubstationDPO::getPollutionType, param.getIds()) .ge(StrUtil.isNotBlank(param.getStartTime()), RStatPollutionSubstationDPO::getDataDate, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) @@ -728,7 +731,7 @@ public class PollutionSubstationServiceImpl extends ServiceImplsubGw.contains(x.getSubstationId())) + .filter(x -> subGw.contains(x.getSubstationId())) .map(RStatPollutionSubstationDPO::getValue).collect(Collectors.toList())); break; @@ -741,9 +744,9 @@ public class PollutionSubstationServiceImpl extends ServiceImpl getPollutionAlarmPageData(StatSubstationBizBaseParam param) { - Map map=new HashMap<>(); - map.put("V",dicDataFeignClient.getDicDataByCode(DicDataEnum.V_HARMONIC.getCode()).getData().getId()); - map.put("I",dicDataFeignClient.getDicDataByCode(DicDataEnum.I_ALL.getCode()).getData().getId()); + Map map = new HashMap<>(); + map.put("V", dicDataFeignClient.getDicDataByCode(DicDataEnum.V_HARMONIC.getCode()).getData().getId()); + map.put("I", dicDataFeignClient.getDicDataByCode(DicDataEnum.I_ALL.getCode()).getData().getId()); DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); deptGetLineParam.setDeptId(param.getId()); deptGetLineParam.setPowerFlag(0); @@ -758,21 +761,21 @@ public class PollutionSubstationServiceImpl extends ServiceImpl substationMap = substationList.stream().collect(Collectors.toMap(SubGetBase::getId, Function.identity())); - List subIDS=new ArrayList<>(); - if(0==param.getType()){ + List subIDS = new ArrayList<>(); + if (0 == param.getType()) { //全部变电站 subIDS.addAll(collect.stream().map(SubGetBase::getId).distinct().collect(Collectors.toList())); - }else{ + } else { //国网变电站 - subIDS.addAll(collect.stream().filter(x -> 1==x.getIsUpToGrid()).map(SubGetBase::getId).distinct().collect(Collectors.toList())); + subIDS.addAll(collect.stream().filter(x -> 1 == x.getIsUpToGrid()).map(SubGetBase::getId).distinct().collect(Collectors.toList())); } Page pollutionPage = pollutionSubstationMMapper.selectBySubstationPage(new Page<>(param.getPageNum(), param.getPageSize()) , subIDS, map, param.getStartTime(), param.getEndTime()); List records = pollutionPage.getRecords(); - if(CollUtil.isNotEmpty(records)){ - records.forEach(x->{ - if(substationMap.containsKey(x.getId())){ + if (CollUtil.isNotEmpty(records)) { + records.forEach(x -> { + if (substationMap.containsKey(x.getId())) { SubGetBase subGetBase = substationMap.get(x.getId()); x.setName(subGetBase.getName()); x.setPowerCompany(subGetBase.getOrgName()); @@ -791,7 +794,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl data = generalDeviceInfoClient.getPracticalRunDeviceInfo(param.getDeviceInfoParam()).getData(); List subIds = data.stream().flatMap(x -> x.getSubIndexes().stream()).collect(Collectors.toList()); List substationMlist = pollutionSubstationMMapper.selectList(new LambdaQueryWrapper() - .select(RStatPollutionSubstationM::getSubstationId,RStatPollutionSubstationM::getValue) + .select(RStatPollutionSubstationM::getSubstationId, RStatPollutionSubstationM::getValue) .in(CollUtil.isNotEmpty(subIds), RStatPollutionSubstationM::getSubstationId, subIds) .in(CollUtil.isNotEmpty(param.getIds()), RStatPollutionSubstationM::getPollutionType, param.getIds()) .ge(StrUtil.isNotBlank(param.getSearchBeginTime()), RStatPollutionSubstationM::getDataDate, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime()))) @@ -800,7 +803,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl dept; for (GeneralDeviceDTO datum : data) { List collect = substationMlist.stream().filter(x -> datum.getSubIndexes().contains(x.getSubstationId())).collect(Collectors.toList()); - dept=new ArrayList<>(); + dept = new ArrayList<>(); dept.add(datum.getName()); dept.add(String.valueOf(datum.getSubIndexes().size())); dept.addAll(addList(collect)); @@ -817,47 +820,80 @@ public class PollutionSubstationServiceImpl extends ServiceImpl list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); + //获取所有监测信息 + List lineNameList = list.stream().flatMap(x -> x.getLineBaseList().stream()).distinct().collect(Collectors.toList()); + Map lineOrgName = lineNameList.stream().collect(Collectors.toMap(LineDevGetDTO::getPointId, LineDevGetDTO::getUnitName)); + //获取监测点集合 - Map> lineMap = this.getLineMap(list, searchValue); + Map> lineMap = this.getLineMap(list, searchValue); List lineList = lineMap.values().stream() .flatMap(List::stream) .distinct() .collect(Collectors.toList()); - if (CollUtil.isNotEmpty(lineList)){ + if (CollUtil.isNotEmpty(lineList)) { //获取监测点的超标数据 - List limitRateList = rStatLimitRateDMapper.getAllOverTimes(lineList,startTime,endTime); + List limitRateList = rStatLimitRateDMapper.getAllOverTimes(lineList, startTime, endTime); Map monitorMap = limitRateList.stream().collect(Collectors.toMap(RStatLimitRateDPO::getLineId, Function.identity())); //todo 获取监测点污染数据 + List lineData = rMpPollutionDPOMapper.selectList(new LambdaQueryWrapper() + .in(CollUtil.isNotEmpty(lineList), RMpPollutionDPO::getLineId, lineList) + .ge(StrUtil.isNotBlank(startTime), RMpPollutionDPO::getDataDate, DateUtil.beginOfDay(DateUtil.parse(startTime))) + .le(StrUtil.isNotBlank(endTime), RMpPollutionDPO::getDataDate, DateUtil.endOfDay(DateUtil.parse(endTime))) + ); + //谐波电压 + String v = dicDataFeignClient.getDicDataByCode(DicDataEnum.V_HARMONIC.getCode()).getData().getId(); + List harmonicV = lineData.stream().filter(x -> v.equals(x.getPollutionType())).collect(Collectors.toList()); + + //谐波电流 + String i = dicDataFeignClient.getDicDataByCode(DicDataEnum.I_ALL.getCode()).getData().getId(); + List harmonicI = lineData.stream().filter(x -> i.equals(x.getPollutionType())).collect(Collectors.toList()); //获取监测点详细信息 List lineDetailList = lineFeignClient.getLineDetail(lineList).getData(); - Map> lineDetailMap = lineDetailList.stream().collect(Collectors.groupingBy(LineDetail::getPowerSubstationName)); - lineDetailMap.forEach((k,v)->{ + if(StrUtil.isNotBlank(searchValue)){ + lineDetailList= lineDetailList.stream().filter(item -> item.getPowerSubstationName().contains(searchValue)).collect(Collectors.toList()); + } + Map> lineDetailMap = lineDetailList.stream().filter(x -> StrUtil.isNotBlank(x.getPowerSubstationName())).collect(Collectors.groupingBy(LineDetail::getPowerSubstationName)); + lineDetailMap.forEach((key, value) -> { AtomicInteger alarmTime = new AtomicInteger(); SubstationVo vo = new SubstationVo(); - vo.setDeptName(""); - vo.setSubstationName(k); - vo.setDwLineList(v.stream().filter(t->Objects.equals(t.getPowerFlag(),0)).map(LineDetail::getId).collect(Collectors.toList())); - vo.setYhLineList(v.stream().filter(t->Objects.equals(t.getPowerFlag(),1)).map(LineDetail::getId).collect(Collectors.toList())); - v.forEach(item->{ - alarmTime.set(alarmTime.get() + monitorMap.get(item.getId()).getAllTime()); + vo.setDeptName(lineOrgName.get(value.get(0).getId())); + vo.setSubstationName(key); + List gridSide = value.stream().filter(t -> Objects.equals(t.getPowerFlag(), 0)).map(LineDetail::getId).collect(Collectors.toList()); + List notGridSide = value.stream().filter(t -> Objects.equals(t.getPowerFlag(), 1)).map(LineDetail::getId).collect(Collectors.toList()); + vo.setDwLineList(lineNameList.stream().filter(x->gridSide.contains(x.getPointId())).map(LineDevGetDTO::getPointName).sorted().collect(Collectors.toList())); + vo.setYhLineList(lineNameList.stream().filter(x->notGridSide.contains(x.getPointId())).map(LineDevGetDTO::getPointName).sorted().collect(Collectors.toList())); + value.forEach(item -> { + if(monitorMap.containsKey(item.getId())){ + alarmTime.set(alarmTime.get() + monitorMap.get(item.getId()).getAllTime()); + } }); - vo.setAlarmFreq(alarmTime.get() * 1.0 / v.size()); + vo.setAlarmFreq(NumberUtil.round(alarmTime.get() * 1.0 / value.size(), 2).doubleValue()); + OptionalDouble maxV = harmonicV.stream().filter(x -> value.contains(x.getLineId())).mapToDouble(RMpPollutionDPO::getValue).max(); + vo.setVPollutionData(maxV.isPresent() ? maxV.getAsDouble() : 0.0D); + OptionalDouble maxI = harmonicI.stream().filter(x -> value.contains(x.getLineId())).mapToDouble(RMpPollutionDPO::getValue).max(); + vo.setIPollutionData(maxI.isPresent() ? maxV.getAsDouble() : 0.0D); result.add(vo); }); } return result; } - public Map> getLineMap(List list, String searchValue) { - Map> map = new HashMap<>(); - list.forEach(it->{ + /** + * 监测点名称筛选 + * @param list + * @param searchValue + * @return + */ + public Map> getLineMap(List list, String searchValue) { + Map> map = new HashMap<>(); + list.forEach(it -> { Predicate voltageFilter = item -> true; - if (!Objects.isNull(searchValue) && !Objects.equals(searchValue,"")) { + if (!Objects.isNull(searchValue) && !Objects.equals(searchValue, "")) { voltageFilter = item -> item.getPointName().contains(searchValue); } Predicate combinedFilter = voltageFilter; - map.put(it.getUnitName(),it.getLineBaseList().stream() + map.put(it.getUnitName(), it.getLineBaseList().stream() .filter(combinedFilter) .map(LineDevGetDTO::getPointId) .distinct() @@ -868,7 +904,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl addList(List substationMlist) { - List info=new ArrayList<>(); + List info = new ArrayList<>(); Integer num1 = 0; Integer num2 = 0; Integer num3 = 0; diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ReportServiceImpl.java index b7e64433a..e7aefcc99 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ReportServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/ReportServiceImpl.java @@ -5,10 +5,12 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.njcn.harmonic.mapper.RStatDataIDMapper; +import com.njcn.harmonic.mapper.RStatDataInharmVDMapper; import com.njcn.harmonic.mapper.ReportMapper; import com.njcn.harmonic.pojo.po.RStatDataVD; import com.njcn.harmonic.pojo.po.day.RStatDataIDPO; import com.njcn.harmonic.pojo.param.ReportQueryParam; +import com.njcn.harmonic.pojo.po.day.RStatDataInharmVDPO; import com.njcn.harmonic.pojo.po.report.OverLimitInfo; import com.njcn.harmonic.pojo.vo.ReportValue; import com.njcn.harmonic.service.IRStatDataVDService; @@ -28,6 +30,7 @@ public class ReportServiceImpl implements ReportService { private final ReportMapper reportMapper; private final IRStatDataVDService statDataVDService; private final RStatDataIDMapper rStatDataIDMapper; + private final RStatDataInharmVDMapper rStatDataInharmVDMapper; @Override public OverLimitInfo getOverLimitData(ReportQueryParam param) { @@ -166,9 +169,9 @@ public class ReportServiceImpl implements ReportService { public List getThreephase(ReportQueryParam param) { List list = new ArrayList<>(); //电压三相不平衡度 - List listV = dataV(param, Arrays.asList("T"),1, 5,true,0); + List listV = dataV(param, Arrays.asList("T"), 1, 5, true, 0); //电流三相不平衡度 - List listI = dataI(param, Arrays.asList("T"),1, 5,true,0); + List listI = dataI(param, Arrays.asList("T"), 1, 5, true, 0); if (CollUtil.isNotEmpty(listV)) { list.addAll(listV); @@ -189,7 +192,7 @@ public class ReportServiceImpl implements ReportService { List list = new ArrayList<>(); //获取电流幅值,包含基波 - List listI = dataI(param, Arrays.asList("A","B","C"),1, 51,false,0); + List listI = dataI(param, Arrays.asList("A", "B", "C"), 1, 51, false, 0); if (CollUtil.isEmpty(listI)) { for (int i = 0; i < 50; i++) { RegroupData.regroupData(list, true, true); @@ -205,7 +208,7 @@ public class ReportServiceImpl implements ReportService { List list = new ArrayList<>(); //获取基波电压幅值,单位kV - List listV = dataV(param, Arrays.asList("A","B","C"),0, 1,true,5); + List listV = dataV(param, Arrays.asList("A", "B", "C"), 0, 1, true, 5); if (CollUtil.isEmpty(listV)) { RegroupData.regroupData(list, true, true); @@ -214,7 +217,7 @@ public class ReportServiceImpl implements ReportService { } //获取电压含有率,不包含基波 - List listRate = dataV(param, Arrays.asList("A","B","C"),2, 51,false,1); + List listRate = dataV(param, Arrays.asList("A", "B", "C"), 2, 51, false, 1); if (CollUtil.isEmpty(listRate)) { for (int i = 0; i < 49; i++) { @@ -231,6 +234,73 @@ public class ReportServiceImpl implements ReportService { return list; } + @Override + public List getInharmVeRate(ReportQueryParam param) { + List inharm = rStatDataInharmVDMapper.selectList(new LambdaQueryWrapper() + .eq(RStatDataInharmVDPO::getLineId, param.getLineId()) + .in(RStatDataInharmVDPO::getPhaseType, Arrays.asList("A", "B", "C")) + .ge(StrUtil.isNotBlank(param.getStartTime()), RStatDataInharmVDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) + .le(StrUtil.isNotBlank(param.getEndTime()), RStatDataInharmVDPO::getTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))) + ); + String max = "MAX"; + String avg = "AVG"; + String min = "MIN"; + String cp95 = "CP95"; + List a = new ArrayList<>(); + Map> collect = inharm.stream().collect(Collectors.groupingBy(RStatDataInharmVDPO::getPhaseType)); + collect.forEach((key, value) -> { + Map> valueTypeMap = value.stream().collect(Collectors.groupingBy(RStatDataInharmVDPO::getValueType)); + + for (int i = 1; i < 17; i++) { + ReportValue reportValue = new ReportValue(); + String attribute = "v" + i; + + if (valueTypeMap.containsKey(max)) { + List aa = reflectDataInV(valueTypeMap.get(max), max, attribute); + reportValue.setPhaseType(key); + Float maxNum = aa.stream().distinct().max(Float::compareTo).get(); + reportValue.setFmaxValue(maxNum); + } + if (valueTypeMap.containsKey(avg)) { + List aa = reflectDataInV(valueTypeMap.get(avg), avg, attribute); + reportValue.setPhaseType(key); + Double avgNum = aa.stream().distinct().collect(Collectors.averagingDouble(Float::doubleValue)); + reportValue.setMeanValue(avgNum.floatValue()); + } + if (valueTypeMap.containsKey(min)) { + List aa = reflectDataInV(valueTypeMap.get(min), min, attribute); + reportValue.setPhaseType(key); + double minNum = aa.stream().distinct().min(Float::compareTo).get(); + reportValue.setMinValue((float) minNum); + } + if (valueTypeMap.containsKey(cp95)) { + List aa = reflectDataInV(valueTypeMap.get(cp95), cp95, attribute); + reportValue.setPhaseType(key); + List cp95Num = aa.stream().distinct().sorted(Comparator.comparing(Float::doubleValue).reversed()).collect(Collectors.toList()); + reportValue.setCp95Value(cp95Num.get(0).floatValue()); + } + a.add(reportValue); + } + }); + if (CollUtil.isEmpty(a)) { + for (int i = 1; i < 17; i++) { + RegroupData.regroupData(a, true, true); + } + } + return a; + } + + @Override + public List getINegDataRate(ReportQueryParam param) { + List list = new ArrayList<>(); + //负序电流 + List iNegData = reportMapper.getINegData(param); + RegroupData.regroupData(iNegData, true); + list.addAll(iNegData); + return list; + } + + //赋值默认值 private void regroupData(List list) { for (int i = 0; i < 4; i++) { List list1 = new ArrayList<>(); @@ -241,18 +311,19 @@ public class ReportServiceImpl implements ReportService { /** * 电压信息 - * @param param 查询条件 + * + * @param param 查询条件 * @param valueTypes 区分类别 例如"A","B","C" - * @param num 循环开始 - * @param size 循环结束 - * @param fly 否是启用获取属性电压 - * @param index 获取属性位置名称 + * @param num 循环开始 + * @param size 循环结束 + * @param fly 否是启用获取属性电压 + * @param index 获取属性位置名称 * @return */ - private List dataV(ReportQueryParam param,List valueTypes,Integer num,Integer size,Boolean fly,Integer index){ + private List dataV(ReportQueryParam param, List valueTypes, Integer num, Integer size, Boolean fly, Integer index) { List rStatDataVDS = statDataVDService.list(new LambdaQueryWrapper() .eq(RStatDataVD::getLineId, param.getLineId()) - .in(CollUtil.isNotEmpty(valueTypes),RStatDataVD::getPhasicType,valueTypes) + .in(CollUtil.isNotEmpty(valueTypes), RStatDataVD::getPhasicType, valueTypes) .ge(StrUtil.isNotBlank(param.getStartTime()), RStatDataVD::getTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) .le(StrUtil.isNotBlank(param.getEndTime()), RStatDataVD::getTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))) ); @@ -267,37 +338,37 @@ public class ReportServiceImpl implements ReportService { for (int i = num; i < size; i++) { ReportValue reportValue = new ReportValue(); - String attribute=""; - if(fly){ - if (index==0){ + String attribute = ""; + if (fly) { + if (index == 0) { attribute = attributeV(i); - }else{ + } else { attribute = attributeV(index); } - }else{ - attribute = "v"+i; + } else { + attribute = "v" + i; } if (valueTypeMap.containsKey(max)) { - List aa = reflectDataV(valueTypeMap.get(max), max,attribute); + List aa = reflectDataV(valueTypeMap.get(max), max, attribute); reportValue.setPhaseType(key); Float maxNum = aa.stream().distinct().max(Float::compareTo).get(); reportValue.setFmaxValue(maxNum); } if (valueTypeMap.containsKey(avg)) { - List aa = reflectDataV(valueTypeMap.get(avg), avg,attribute); + List aa = reflectDataV(valueTypeMap.get(avg), avg, attribute); reportValue.setPhaseType(key); Double avgNum = aa.stream().distinct().collect(Collectors.averagingDouble(Float::doubleValue)); reportValue.setMeanValue(avgNum.floatValue()); } if (valueTypeMap.containsKey(min)) { - List aa = reflectDataV(valueTypeMap.get(min), min,attribute); + List aa = reflectDataV(valueTypeMap.get(min), min, attribute); reportValue.setPhaseType(key); double minNum = aa.stream().distinct().min(Float::compareTo).get(); reportValue.setMinValue((float) minNum); } if (valueTypeMap.containsKey(cp95)) { - List aa = reflectDataV(valueTypeMap.get(cp95), cp95,attribute); + List aa = reflectDataV(valueTypeMap.get(cp95), cp95, attribute); reportValue.setPhaseType(key); List cp95Num = aa.stream().distinct().sorted(Comparator.comparing(Float::doubleValue).reversed()).collect(Collectors.toList()); reportValue.setCp95Value(cp95Num.get(0).floatValue()); @@ -315,7 +386,36 @@ public class ReportServiceImpl implements ReportService { * @param name * @return */ - private List reflectDataV(List value, String name,String attribute) { + private List reflectDataV(List value, String name, String attribute) { + Field field = null; + try { + field = RStatDataVD.class.getDeclaredField(attribute); + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } + field.setAccessible(true); + + Field finalField = field; + return value.stream().filter(x -> x.getValueType().equals(name)).map(temp -> { + BigDecimal o = null; + try { + o = (BigDecimal) finalField.get(temp); + } catch (IllegalAccessException e) { + throw new RuntimeException(e); + } + + return o.floatValue(); + }).collect(Collectors.toList()); + } + + /** + * 电压反射取属性值 + * + * @param value + * @param name + * @return + */ + private List reflectDataInV(List value, String name, String attribute) { Field field = null; try { field = RStatDataVD.class.getDeclaredField(attribute); @@ -339,13 +439,14 @@ public class ReportServiceImpl implements ReportService { /** * 电流信息 + * * @param param * @return */ - private List dataI(ReportQueryParam param,List valueTypes,Integer num,Integer size,Boolean fly,Integer index){ + private List dataI(ReportQueryParam param, List valueTypes, Integer num, Integer size, Boolean fly, Integer index) { List rStatDataVDS = rStatDataIDMapper.selectList(new LambdaQueryWrapper() .eq(RStatDataIDPO::getLineId, param.getLineId()) - .in(CollUtil.isNotEmpty(valueTypes),RStatDataIDPO::getPhaseType,valueTypes) + .in(CollUtil.isNotEmpty(valueTypes), RStatDataIDPO::getPhaseType, valueTypes) .ge(StrUtil.isNotBlank(param.getStartTime()), RStatDataIDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(param.getStartTime()))) .le(StrUtil.isNotBlank(param.getEndTime()), RStatDataIDPO::getTime, DateUtil.endOfDay(DateUtil.parse(param.getEndTime()))) ); @@ -360,36 +461,36 @@ public class ReportServiceImpl implements ReportService { for (int i = num; i < size; i++) { ReportValue reportValue = new ReportValue(); - String attribute=""; - if(fly){ - if (index==0){ + String attribute = ""; + if (fly) { + if (index == 0) { attribute = attributeI(i); - }else{ + } else { attribute = attributeI(index); } - }else{ - attribute = "i"+i; + } else { + attribute = "i" + i; } if (valueTypeMap.containsKey(max)) { - List aa = reflectDataI(valueTypeMap.get(max), max,attribute); + List aa = reflectDataI(valueTypeMap.get(max), max, attribute); reportValue.setPhaseType(key); Float maxNum = aa.stream().distinct().max(Float::compareTo).get(); reportValue.setFmaxValue(maxNum); } if (valueTypeMap.containsKey(avg)) { - List aa = reflectDataI(valueTypeMap.get(avg), avg,attribute); + List aa = reflectDataI(valueTypeMap.get(avg), avg, attribute); reportValue.setPhaseType(key); Double avgNum = aa.stream().distinct().collect(Collectors.averagingDouble(Float::doubleValue)); reportValue.setMeanValue(avgNum.floatValue()); } if (valueTypeMap.containsKey(min)) { - List aa = reflectDataI(valueTypeMap.get(min), min,attribute); + List aa = reflectDataI(valueTypeMap.get(min), min, attribute); reportValue.setPhaseType(key); double minNum = aa.stream().distinct().min(Float::compareTo).get(); reportValue.setMinValue((float) minNum); } if (valueTypeMap.containsKey(cp95)) { - List aa = reflectDataI(valueTypeMap.get(cp95), cp95,attribute); + List aa = reflectDataI(valueTypeMap.get(cp95), cp95, attribute); reportValue.setPhaseType(key); List cp95Num = aa.stream().distinct().sorted(Comparator.comparing(Float::doubleValue).reversed()).collect(Collectors.toList()); reportValue.setCp95Value(cp95Num.get(0).floatValue()); @@ -430,11 +531,12 @@ public class ReportServiceImpl implements ReportService { /** * 获取属性电压 + * * @param i * @return */ private String attributeV(Integer i) { - String str=null; + String str = null; switch (i) { case 1: str = "vUnbalance"; @@ -456,13 +558,15 @@ public class ReportServiceImpl implements ReportService { } return str; } + /** * 获取属性电流 + * * @param i * @return */ private String attributeI(Integer i) { - String str=null; + String str = null; switch (i) { case 1: str = "iUnbalance"; diff --git a/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelJB.docx b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelJB.docx new file mode 100644 index 000000000..d96b3aac4 Binary files /dev/null and b/pqs-harmonic/harmonic-boot/src/main/resources/file/reportModelJB.docx differ diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineDebugPOServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineDebugPOServiceImpl.java index 5dab009fc..deb8fdbbc 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineDebugPOServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineDebugPOServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.LocalDateTimeUtil; import cn.hutool.core.text.StrPool; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -83,7 +84,6 @@ public class SupervisionTempLineDebugPOServiceImpl extends ServiceImpl list = userReportNormalMapper.selectList(new LambdaQueryWrapper() + .eq(UserReportNormalPO::getUserReportId, temp.getId()) + .eq(UserReportNormalPO::getState, DataStateEnum.ENABLE.getCode()) + .ne(UserReportNormalPO::getStatus, BpmTaskStatusEnum.CANCEL.getStatus()) + .orderByDesc(UserReportNormalPO::getCreateTime) + ); + if (CollUtil.isNotEmpty(list)) { + Optional netInReport = list.stream().filter(x -> 0 == x.getType()).findFirst(); + if(netInReport.isPresent()){ + if(netInReport.get().getStatus()!=2){ + throw new BusinessException("最新入网验收方案流程,暂未审核通过!"); + } + }else{ + throw new BusinessException("请填写入网验收方案流程,审核通过后方可操作!"); + } + if (needGovernance == 1) { + Optional governReport = list.stream().filter(x -> 1 == x.getType()).findFirst(); + if(governReport.isPresent()){ + if(governReport.get().getStatus()!=2){ + throw new BusinessException("最新治理工程验收方案流程,暂未审核通过!"); + } + }else{ + throw new BusinessException("请填写治理工程验收方案流程,审核通过后方可操作!"); + } + } + } else { + throw new BusinessException("请上传,入网设计方案或者治理工程验收方案"); + } -// SupervisionTempLineDebugPO byId = this.getById(supervisionTempLineReportParam.getId()); -// if(Objects.nonNull(byId)){ -// if(byId.getState() == 1) { -// throw new BusinessException("该监测点已申请联调"); -// } -// } SupervisionTempLineDebugPO supervisionTempLineDebugPO = new SupervisionTempLineDebugPO(); BeanUtils.copyProperties(supervisionTempLineReportParam,supervisionTempLineDebugPO); //设置状态 @@ -128,9 +178,6 @@ public class SupervisionTempLineDebugPOServiceImpl extends ServiceImpl list = userReportNormalMapper.selectList(new LambdaQueryWrapper() - .eq(UserReportNormalPO::getUserReportId, temp.getId()) - .eq(UserReportNormalPO::getState, DataStateEnum.ENABLE.getCode()) - .ne(UserReportNormalPO::getStatus, BpmTaskStatusEnum.CANCEL.getStatus()) - .orderByDesc(UserReportNormalPO::getCreateTime) - ); - if (CollUtil.isNotEmpty(list)) { - Optional netInReport = list.stream().filter(x -> 0 == x.getType()).findFirst(); - if(netInReport.isPresent()){ - if(netInReport.get().getStatus()!=2){ - throw new BusinessException("最新入网验收方案流程,暂未审核通过!"); - } - }else{ - throw new BusinessException("请填写入网验收方案流程,审核通过后方可操作!"); - } - if (needGovernance == 1) { - Optional governReport = list.stream().filter(x -> 1 == x.getType()).findFirst(); - if(governReport.isPresent()){ - if(governReport.get().getStatus()!=2){ - throw new BusinessException("最新治理工程验收方案流程,暂未审核通过!"); - } - }else{ - throw new BusinessException("请填写治理工程验收方案流程,审核通过后方可操作!"); - } - } - } else { - throw new BusinessException("请上传,入网设计方案或者治理工程验收方案"); - } - //获取关联的设备信息 SupervisionTempDeviceReport tempDevice = supervisionTempDeviceReportService.getById(tempLine.getMonitoringTerminalCode()); SyncTerminalParam syncTerminalParam = new SyncTerminalParam(); @@ -379,10 +379,10 @@ public class SupervisionTempLineDebugPOServiceImpl extends ServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper .eq(SupervisionTempLineReport::getMonitoringTerminalCode, supervisionTempLineReportParam.getMonitoringTerminalCode()) - .and(wrapper -> wrapper.eq(SupervisionTempLineReport::getNum, supervisionTempLineReportParam.getNum()).or() + .and(wrapper -> wrapper.eq(SupervisionTempLineReport::getNum, supervisionTempLineReportParam.getNum()) + .or() .eq(SupervisionTempLineReport::getLineName, supervisionTempLineReportParam.getLineName()) ) .eq(SupervisionTempLineReport::getState, DataStateEnum.ENABLE.getCode()); diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineRunTestServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineRunTestServiceImpl.java index 73446249e..04d74778f 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineRunTestServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/device/impl/SupervisionTempLineRunTestServiceImpl.java @@ -294,7 +294,7 @@ public class SupervisionTempLineRunTestServiceImpl extends ServiceImpl