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;
}