临时提交

This commit is contained in:
lin
2025-10-16 15:20:15 +08:00
parent d2ffc867e6
commit ac92237e08
6 changed files with 49 additions and 20 deletions

View File

@@ -108,8 +108,7 @@ public class CameraChannelController {
@ResponseBody
@Operation(summary = "查询摄像机列表的总数和在线数", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "groupAlias", description = "分组别名")
public CameraCont queryCountWithChild(String groupAlias){
public List<CameraCount> queryCountWithChild(String groupAlias){
return channelService.queryCountWithChild(groupAlias);
}

View File

@@ -1,11 +0,0 @@
package com.genersoft.iot.vmp.web.custom.bean;
import lombok.Data;
@Data
public class CameraCont {
private Long total;
private Long online;
}

View File

@@ -0,0 +1,13 @@
package com.genersoft.iot.vmp.web.custom.bean;
import lombok.Data;
@Data
public class CameraCount {
private String groupAlias;
private String deviceId;
private Long allCount;
private Long onlineCount;
}

View File

@@ -158,16 +158,34 @@ public class CameraChannelService implements CommandLineRunner {
}
}
public CameraCont queryCountWithChild(String groupAlias) {
public List<CameraCount> queryCountWithChild(String groupAlias) {
// 构建组织结构信息
CameraGroup group = groupMapper.queryGroupByAlias(groupAlias);
Assert.notNull(group, "组织结构不存在");
String groupDeviceId = group.getDeviceId();
// 获取所有子节点
List<CameraGroup> groupList = queryAllGroupChildren(group.getId(), group.getBusinessGroup());
groupList.add(group);
return null;
// TODO 此处整理可优化尽量让sql直接返回对应的结构 无需二次整理
List<CameraCount> cameraCounts = groupMapper.queryCountWithChild(groupList);
if (cameraCounts.isEmpty()) {
return Collections.emptyList();
}else {
Map<String, String> cameraGroupMap = new HashMap<>();
for (CameraGroup cameraGroup : groupList) {
cameraGroupMap.put(cameraGroup.getDeviceId(), cameraGroup.getAlias());
}
List<CameraCount> result = new ArrayList<>();
for (CameraCount cameraCount : cameraCounts) {
String alias = cameraGroupMap.get(cameraCount.getDeviceId());
if (alias == null) {
continue;
}
cameraCount.setGroupAlias(alias);
result.add(cameraCount);
}
return result;
}
}
/**