diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyQualifyServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyQualifyServiceImpl.java index ee9d9f75d..cb7350e7f 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyQualifyServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyQualifyServiceImpl.java @@ -81,33 +81,56 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService { @Override public SteadyQualifyCensusVO getSteadyQualifyCensus(DeviceInfoParam.BusinessParam steadyCensusParam) { + List steadyQualifyList = getSteadyQualifyData(steadyCensusParam); SteadyQualifyCensusVO steadyQualifyCensusVO = new SteadyQualifyCensusVO(); List type = new ArrayList<>(); - //按照条件获取实际运行终端综合信息 - List deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyCensusParam).getData(); List harmonicVoltage = new ArrayList<>(), voltageOffset = new ArrayList<>(), VoltageUnbalance = new ArrayList<>(), interHarmonic = new ArrayList<>(), harmonicCurrent = new ArrayList<>(), negativeCurrent = new ArrayList<>(), freqOffset = new ArrayList<>(), flicker = new ArrayList<>(); - if (!CollectionUtils.isEmpty(deviceDataList)) { - for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) { - List lineIndexes = generalDeviceDTO.getLineIndexes(); - if (CollectionUtils.isEmpty(lineIndexes)) { - continue; - } - type.add(generalDeviceDTO.getName() + "\n(" + generalDeviceDTO.getLineIndexes().size() + ")"); - List qualifiesRate = getQualifiesRate(lineIndexes, steadyCensusParam.getSearchBeginTime(), steadyCensusParam.getSearchEndTime()); - SteadyQualifyVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate); - harmonicVoltage.add(dataMoreMonitorMoreDay.getHarmonicVoltage()); - voltageOffset.add(dataMoreMonitorMoreDay.getVoltageOffset()); - VoltageUnbalance.add(dataMoreMonitorMoreDay.getVoltageUnbalance()); - interHarmonic.add(dataMoreMonitorMoreDay.getInterHarmonic()); - harmonicCurrent.add(dataMoreMonitorMoreDay.getHarmonicCurrent()); - negativeCurrent.add(dataMoreMonitorMoreDay.getNegativeCurrent()); - freqOffset.add(dataMoreMonitorMoreDay.getFreqOffset()); - flicker.add(dataMoreMonitorMoreDay.getFlicker()); + if (CollUtil.isNotEmpty(steadyQualifyList)) { + for (SteadyQualifyVO steadyQualifyVO : steadyQualifyList) { + // 还需要递归出有多少个测点 + int lineNum = seekLineNum(steadyQualifyVO); + type.add(steadyQualifyVO.getName() + "\n(" + lineNum + ")"); + harmonicVoltage.add(steadyQualifyVO.getHarmonicVoltage()); + voltageOffset.add(steadyQualifyVO.getVoltageOffset()); + VoltageUnbalance.add(steadyQualifyVO.getVoltageUnbalance()); + interHarmonic.add(steadyQualifyVO.getInterHarmonic()); + harmonicCurrent.add(steadyQualifyVO.getHarmonicCurrent()); + negativeCurrent.add(steadyQualifyVO.getNegativeCurrent()); + freqOffset.add(steadyQualifyVO.getFreqOffset()); + flicker.add(steadyQualifyVO.getFlicker()); } } + + +// List type = new ArrayList<>(); +// //按照条件获取实际运行终端综合信息 +// List deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyCensusParam).getData(); +// List harmonicVoltage = new ArrayList<>(), voltageOffset = new ArrayList<>(), +// VoltageUnbalance = new ArrayList<>(), interHarmonic = new ArrayList<>(), +// harmonicCurrent = new ArrayList<>(), negativeCurrent = new ArrayList<>(), +// freqOffset = new ArrayList<>(), flicker = new ArrayList<>(); +// if (!CollectionUtils.isEmpty(deviceDataList)) { +// for (GeneralDeviceDTO generalDeviceDTO : deviceDataList) { +// List lineIndexes = generalDeviceDTO.getLineIndexes(); +// if (CollectionUtils.isEmpty(lineIndexes)) { +// continue; +// } +// type.add(generalDeviceDTO.getName() + "\n(" + generalDeviceDTO.getLineIndexes().size() + ")"); +// List qualifiesRate = getQualifiesRate(lineIndexes, steadyCensusParam.getSearchBeginTime(), steadyCensusParam.getSearchEndTime()); +// SteadyQualifyVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate); +// harmonicVoltage.add(dataMoreMonitorMoreDay.getHarmonicVoltage()); +// voltageOffset.add(dataMoreMonitorMoreDay.getVoltageOffset()); +// VoltageUnbalance.add(dataMoreMonitorMoreDay.getVoltageUnbalance()); +// interHarmonic.add(dataMoreMonitorMoreDay.getInterHarmonic()); +// harmonicCurrent.add(dataMoreMonitorMoreDay.getHarmonicCurrent()); +// negativeCurrent.add(dataMoreMonitorMoreDay.getNegativeCurrent()); +// freqOffset.add(dataMoreMonitorMoreDay.getFreqOffset()); +// flicker.add(dataMoreMonitorMoreDay.getFlicker()); +// } +// } steadyQualifyCensusVO.setHarmonicVoltage(harmonicVoltage); steadyQualifyCensusVO.setVoltageOffset(voltageOffset); steadyQualifyCensusVO.setVoltageUnbalance(VoltageUnbalance); @@ -121,6 +144,25 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService { return steadyQualifyCensusVO; } + /** + * 递归出有多少个测点 + * + * @param steadyQualifyVO 最上层的信息 + */ + private int seekLineNum(SteadyQualifyVO steadyQualifyVO) { + List children = steadyQualifyVO.getChildren(); + // 如果没有子节点,说明当前就是最底层节点,计数1 + if (children == null || children.isEmpty()) { + return 1; + } + // 如果有子节点,递归计算所有子节点的最底层节点总数 + int total = 0; + for (SteadyQualifyVO child : children) { + total += seekLineNum(child); + } + return total; + } + @Override public List getEnterpriseSteadyQualify(DeviceInfoParam.BusinessParam steadyParam) { List steadyQualifyList = new ArrayList<>(); @@ -365,7 +407,7 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService { steadyQualifyDTO.getIharm24Overtime() + steadyQualifyDTO.getIharm25Overtime()))); //间谐波电压含有率 - steadyQualifyVO.setInterHarmonic(calculateIN(steadyQualifyDTO.getAllTime()*16, (steadyQualifyDTO.getInuharm1Overtime() + + steadyQualifyVO.setInterHarmonic(calculateIN(steadyQualifyDTO.getAllTime() * 16, (steadyQualifyDTO.getInuharm1Overtime() + steadyQualifyDTO.getInuharm2Overtime() + steadyQualifyDTO.getInuharm3Overtime() + steadyQualifyDTO.getInuharm4Overtime() + @@ -497,7 +539,7 @@ public class SteadyQualifyServiceImpl implements SteadyQualifyService { return 3.14159; } else { if (allTime >= overTime) { - return NumberUtil.round((1 - ((double) overTime /allTime)) * 100, 2).doubleValue(); + return NumberUtil.round((1 - ((double) overTime / allTime)) * 100, 2).doubleValue(); } return 0.0; } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/THDistortionServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/THDistortionServiceImpl.java index 1c5dfa051..3e6080d3f 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/THDistortionServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/THDistortionServiceImpl.java @@ -20,6 +20,7 @@ import com.njcn.harmonic.mapper.THDistortionMapper; import com.njcn.harmonic.pojo.dto.PublicDTO; import com.njcn.harmonic.pojo.po.RMpVThd; import com.njcn.harmonic.pojo.vo.RMpVThdVO; +import com.njcn.harmonic.pojo.vo.SteadyQualifyVO; import com.njcn.harmonic.pojo.vo.THDistortionCensusVO; import com.njcn.harmonic.pojo.vo.THDistortionVO; import com.njcn.harmonic.service.THDistortionService; @@ -102,20 +103,23 @@ public class THDistortionServiceImpl implements THDistortionService { @Override public THDistortionCensusVO getTHDistortionCensus(DeviceInfoParam.BusinessParam thDistortionCensusParam) { + List thDistortionVOS = getTHDistortionData(thDistortionCensusParam, 0); + THDistortionCensusVO distortionCensusVO = new THDistortionCensusVO(); - thDistortionCensusParam.setServerName(generalInfo.getMicroServiceName()); - List generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(thDistortionCensusParam).getData(); +// thDistortionCensusParam.setServerName(generalInfo.getMicroServiceName()); +// List generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(thDistortionCensusParam).getData(); List type = new ArrayList<>(); List single = new ArrayList<>(); - if (!CollectionUtils.isEmpty(generalDeviceDTOList)) { - for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { - List lineIndexes = generalDeviceDTO.getLineIndexes(); - if (CollectionUtils.isEmpty(lineIndexes)) { - continue; - } - type.add(generalDeviceDTO.getName() + "\n(" + generalDeviceDTO.getLineIndexes().size() + ")"); - List condition = getCondition(lineIndexes, thDistortionCensusParam.getSearchBeginTime(), thDistortionCensusParam.getSearchEndTime()); - single.add(roundHalfUp(condition.stream().mapToDouble(PublicDTO::getData).average().orElse(3.14159))); + if (!CollectionUtils.isEmpty(thDistortionVOS)) { + for (THDistortionVO thDistortionVO : thDistortionVOS) { +// List lineIndexes = generalDeviceDTO.getLineIndexes(); +// if (CollectionUtils.isEmpty(lineIndexes)) { +// continue; +// } +// type.add(thDistortionVO.getName() + "\n(" + seekLineNum(thDistortionVO) + ")"); + type.add(thDistortionVO.getName() ); +// List condition = getCondition(lineIndexes, thDistortionCensusParam.getSearchBeginTime(), thDistortionCensusParam.getSearchEndTime()); + single.add(thDistortionVO.getDistortion()); } distortionCensusVO.setType(type); distortionCensusVO.setSingle(single); @@ -123,6 +127,25 @@ public class THDistortionServiceImpl implements THDistortionService { return distortionCensusVO; } + /** + * 递归出有多少个测点 + * + * @param thDistortionVO 最上层的信息 + */ + private int seekLineNum(THDistortionVO thDistortionVO) { + List children = thDistortionVO.getChildren(); + // 如果没有子节点,说明当前就是最底层节点,计数1 + if (children == null || children.isEmpty()) { + return 1; + } + // 如果有子节点,递归计算所有子节点的最底层节点总数 + int total = 0; + for (THDistortionVO child : children) { + total += seekLineNum(child); + } + return total; + } + /** * @param statisticsBizBaseParam * @Description: 谐波总畸变率前十列表