1.代码调整

This commit is contained in:
wr
2023-12-20 15:19:09 +08:00
parent d7c76d52e4
commit cb84120c9e
2 changed files with 17 additions and 15 deletions

View File

@@ -60,7 +60,6 @@ public class PmsSummaryStatisticsServiceImpl implements PmsSummaryStatisticsServ
List<String> deptIds = data.stream().map(DeptDTO::getCode).collect(Collectors.toList());
//获得部门下面的数据集合
List<Monitor> monitors = monitorMapper.selectList(new LambdaQueryWrapper<Monitor>()
.in(CollectionUtil.isNotEmpty(deptIds), Monitor::getOrgId, deptIds)
@@ -69,22 +68,17 @@ public class PmsSummaryStatisticsServiceImpl implements PmsSummaryStatisticsServ
);
//根据干扰源类型进行分组统计当前部门下有多少监测点
Map<String, List<Monitor>> monitorsMonitorCount = monitors.stream().collect(Collectors.groupingBy(Monitor::getMonitorTag));
//根据部门统计终端数量
ArrayList<Monitor> monitorsCount = monitors.stream().collect(Collectors.collectingAndThen
(Collectors.toCollection(() ->
new TreeSet<>(Comparator.comparing(o -> o.getOrgId() + ";" + o.getTerminalId()))), ArrayList::new));
Map<String, Long> monitorsNum = monitorsCount.stream().collect(Collectors.groupingBy(Monitor::getMonitorTag, Collectors.counting()));
PmsSummaryStatisticsVO.SummaryVO vo;
for (String monitorTag : param.getMonitorTags()) {
vo = new PmsSummaryStatisticsVO.SummaryVO();
if (monitorsNum.containsKey(monitorTag)) {
if (monitorsMonitorCount.containsKey(monitorTag)) {
List<Monitor> monitorsTag = monitorsMonitorCount.get(monitorTag);
long count = monitorsTag.stream().map(Monitor::getTerminalId).distinct().count();
vo.setName(monitorTag);
//监测点数量
vo.setMonitorCount(monitorsMonitorCount.get(monitorTag).size());
vo.setMonitorCount(monitorsTag.size());
//设备数量
vo.setTerminalCount(Math.toIntExact(monitorsNum.get(monitorTag)));
vo.setTerminalCount(Math.toIntExact(count));
} else {
vo.setName(monitorTag);
//监测点数量
@@ -94,6 +88,11 @@ public class PmsSummaryStatisticsServiceImpl implements PmsSummaryStatisticsServ
}
vos.add(vo);
}
PmsSummaryStatisticsVO.SummaryVO count = new PmsSummaryStatisticsVO.SummaryVO();
count.setName("总数");
count.setMonitorCount(Math.toIntExact(monitors.stream().map(Monitor::getId).distinct().count()));
count.setTerminalCount(Math.toIntExact(monitors.stream().map(Monitor::getTerminalId).distinct().count()));
vos.add(count);
}
return vos;
}