fix(service): 修复设备名称获取和统计计算问题
- 修正设备名称字段从 getName() 改为 getDeviceName() - 修正完整性计算逻辑从 Math.max 改为 Math.min - 修正在线率计算逻辑从 Math.max 改为 Math.min - 确保统计数据不会超过100%的最大限制
This commit is contained in:
@@ -736,7 +736,7 @@ public class CsEventPOServiceImpl extends ServiceImpl<CsEventPOMapper, CsEventPO
|
|||||||
vo.setLineName(lineMap.get(item.getLineId()).getName());
|
vo.setLineName(lineMap.get(item.getLineId()).getName());
|
||||||
}
|
}
|
||||||
if (!Objects.isNull(item.getDeviceId())) {
|
if (!Objects.isNull(item.getDeviceId())) {
|
||||||
vo.setDeviceName(devMap.get(item.getDeviceId()).get(0).getName());
|
vo.setDeviceName(devMap.get(item.getDeviceId()).get(0).getDeviceName());
|
||||||
}
|
}
|
||||||
vo.setEvent(item.getTag());
|
vo.setEvent(item.getTag());
|
||||||
voRecords.add(vo);
|
voRecords.add(vo);
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ public class StatisticsDataDataServiceImpl implements IStatisticsDataDataService
|
|||||||
BigDecimal.valueOf(l1.stream().mapToDouble(RStatIntegrityD::getDueTime).sum()),
|
BigDecimal.valueOf(l1.stream().mapToDouble(RStatIntegrityD::getDueTime).sum()),
|
||||||
2, RoundingMode.HALF_UP
|
2, RoundingMode.HALF_UP
|
||||||
).doubleValue();
|
).doubleValue();
|
||||||
vo.setIntegrity(Math.max(ratio,100.0));
|
vo.setIntegrity(Math.min(ratio,100.0));
|
||||||
} else {
|
} else {
|
||||||
vo.setIntegrity(0.0);
|
vo.setIntegrity(0.0);
|
||||||
}
|
}
|
||||||
@@ -163,7 +163,7 @@ public class StatisticsDataDataServiceImpl implements IStatisticsDataDataService
|
|||||||
if (CollectionUtil.isNotEmpty(l2)) {
|
if (CollectionUtil.isNotEmpty(l2)) {
|
||||||
int onlineMin = l2.stream().mapToInt(RStatOnlineRateD::getOnlineMin).sum();
|
int onlineMin = l2.stream().mapToInt(RStatOnlineRateD::getOnlineMin).sum();
|
||||||
double ratio = new BigDecimal(onlineMin * 100.0 / (1440 * l2.size())).setScale(2,RoundingMode.HALF_UP).doubleValue();
|
double ratio = new BigDecimal(onlineMin * 100.0 / (1440 * l2.size())).setScale(2,RoundingMode.HALF_UP).doubleValue();
|
||||||
vo.setOnlineRate(Math.max(ratio,100.0));
|
vo.setOnlineRate(Math.min(ratio,100.0));
|
||||||
} else {
|
} else {
|
||||||
vo.setOnlineRate(0.0);
|
vo.setOnlineRate(0.0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user