diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/DistributionMonitorMapper.xml b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/DistributionMonitorMapper.xml index 9732aafa8..3cb1e6a2b 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/DistributionMonitorMapper.xml +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/mapper/majornetwork/mapping/DistributionMonitorMapper.xml @@ -524,7 +524,7 @@ #{item} - and pms_power_client.name like CONCAT('%', #{param.userName}, '%') + and pms_power_client.name like CONCAT('%', #{param.userName}, '%') or pms_power_client.id like CONCAT('%', #{param.userName}, '%') ) t where 1 = 1 diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PwUserMonitorDataServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PwUserMonitorDataServiceImpl.java index 36bdad095..a835af42a 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PwUserMonitorDataServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/PwUserMonitorDataServiceImpl.java @@ -66,7 +66,7 @@ public class PwUserMonitorDataServiceImpl implements PwUserMonitorDataService { page.getRecords().forEach(item->{ if(map.containsKey(item.getLineIndex())){ PwUserMonitorDataVO pwUserMonitorDataVO = map.get(item.getLineIndex()); - pwUserMonitorDataVO.setIntegrityRate(item.getIntegrityData()); + pwUserMonitorDataVO.setIntegrityRate(item.getIntegrityData() > 100 ?100:item.getIntegrityData()); voList.add(pwUserMonitorDataVO); } }); diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java index ed69d3051..78a72f542 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java @@ -466,11 +466,11 @@ public class RStatLimitServiceImpl implements RStatLimitService { monitorLimitRateVO.setUbalanceOvertime(BigDecimal.valueOf(3.14159)); monitorLimitRateVO.setVoltageDevOvertime(BigDecimal.valueOf(3.14159)); }else { - monitorLimitRateVO.setFlickerOvertime(BigDecimal.valueOf((double) item.getFlickerOvertime()/item.getFlickerAllTime()*100).setScale(2, RoundingMode.HALF_UP)); - monitorLimitRateVO.setFreqDevOvertime(BigDecimal.valueOf((double) item.getFreqDevOvertime()/item.getAllTime()*100).setScale(2, RoundingMode.HALF_UP)); - monitorLimitRateVO.setUaberranceOvertime(BigDecimal.valueOf((double) item.getUaberranceOvertime()/item.getAllTime()*100).setScale(2, RoundingMode.HALF_UP)); - monitorLimitRateVO.setUbalanceOvertime(BigDecimal.valueOf((double) item.getUbalanceOvertime()/item.getAllTime()*100).setScale(2, RoundingMode.HALF_UP)); - monitorLimitRateVO.setVoltageDevOvertime(BigDecimal.valueOf((double) item.getVoltageDevOvertime()/item.getAllTime()*100).setScale(2, RoundingMode.HALF_UP)); + monitorLimitRateVO.setFlickerOvertime(calculatePercentage(item.getFlickerOvertime(),item.getFlickerAllTime())); + monitorLimitRateVO.setFreqDevOvertime(calculatePercentage(item.getFreqDevOvertime(),item.getAllTime())); + monitorLimitRateVO.setUaberranceOvertime(calculatePercentage(item.getUaberranceOvertime(),item.getAllTime())); + monitorLimitRateVO.setUbalanceOvertime(calculatePercentage(item.getUbalanceOvertime(),item.getAllTime())); + monitorLimitRateVO.setVoltageDevOvertime(calculatePercentage(item.getVoltageDevOvertime(),item.getAllTime())); } setUharmOvertimeRatios(item,monitorLimitRateVO); resultList.add(monitorLimitRateVO); @@ -480,6 +480,32 @@ public class RStatLimitServiceImpl implements RStatLimitService { return pageResult; } + + /** + * 计算百分比,结果不超过100 + * + * @param flickerOvertime 闪烁超时时间 + * @param flickerAllTime 总闪烁时间 + * @return 计算的百分比(如果结果超过100,则返回100) + */ + public BigDecimal calculatePercentage(Integer flickerOvertime, Integer flickerAllTime) { + // 检查参数是否为null + if (flickerOvertime == null || flickerAllTime == null) { + throw new IllegalArgumentException("方法遇到不合法参数"); + } + // 将Integer转换为BigDecimal进行计算 + BigDecimal overtime = BigDecimal.valueOf(flickerOvertime); + BigDecimal allTime = BigDecimal.valueOf(flickerAllTime); + + // 计算百分比 + BigDecimal percentage = overtime.divide(allTime, 10, RoundingMode.HALF_UP) + .multiply(BigDecimal.valueOf(100)) + .setScale(2, RoundingMode.HALF_UP); + + // 如果百分比超过100,则调整为100 + return percentage.compareTo(BigDecimal.valueOf(100)) > 0 ? BigDecimal.valueOf(100) : percentage; + } + @Override public List pwMonitorLimitDataRange(PwUserMonitorParam pwUserMonitorParam) { List result = new ArrayList<>(); @@ -637,6 +663,7 @@ public class RStatLimitServiceImpl implements RStatLimitService { } else { BigDecimal ratio = BigDecimal.valueOf((double) uharmOvertime / allTime*100) .setScale(2, RoundingMode.HALF_UP); + ratio = ratio.compareTo(BigDecimal.valueOf(100)) > 0 ? BigDecimal.valueOf(100) : ratio; monitorLimitRateVO.getClass().getMethod(setterName, BigDecimal.class) .invoke(monitorLimitRateVO, ratio); } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java index 545292b29..beb50f30b 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java @@ -124,7 +124,10 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl list = calculatedParam.getIdList(); list.forEach(item -> { - if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())) { + if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel()) + //县数据 + || Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()),item.getDeptLevel()) + ) { return; }