根据代码1“@Component @Slf4j public class ApplicationServicePlatformClientProxy { @Autowired private IApplicationServicePlatformClient applicationServicePlatformClient; public List<QueryAllProject> listUserProject() { QueryOut<Page<QueryAllProject>> result = null; try { String bspToken = RequestHeaderHolder.getBspToken(); String bspUserId = RequestHeaderHolder.getUserId(); String bspUserEnvId = RequestHeaderHolder.getCompanyId(); String bspUserTenant = RequestHeaderHolder.getCompanyId(); String companyId = RequestHeaderHolder.getCompanyId(); ProjectCondition queryProjectDto = new ProjectCondition(); queryProjectDto.setAppId(queryProjectDto.getAppId()); queryProjectDto.setCompanyId(companyId); queryProjectDto.setDesignStatusList(Arrays.asList(2,3)); queryProjectDto.setPageSize(-1); queryProjectDto.setUserId(bspUserId); result = applicationServicePlatformClient.listUserProject(bspToken, bspUserId, bspUserEnvId, bspUserTenant, queryProjectDto); log.info("result={}", JSON.toJSONString(result)); } catch (Exception e) { log.error("调用IApplicationServicePlatformClient获取项目名称失败:", e); throw new BimdcException("调用IApplicationServicePlatformClient获取项目名称失败"); } if (result == null || result.getData() == null) { log.error("调用IApplicationServicePlatformClient获取项目名称失败:result={}", result); throw new BimdcException("调用IApplicationServicePlatformClient获取项目名称失败"); } return result.getData().getData(); } }”,修改代码2“public List<ProjectCountVO> projectCount(String beginTime, String endTime, Integer forceType) { // 查询任务列表 List<TaskTask> taskTaskList = this.listStatisticsTask(beginTime, endTime, forceType,null); if (CollectionUtil.isEmpty(taskTaskList)) { return Collections.emptyList(); } List<ProjectCountVO> result = new ArrayList<>(); // 将任务按照项目ID分组 Map<String, List<TaskTask>> projectTaskMap = taskTaskList.stream().collect(Collectors.groupingBy(TaskTask::getProjectId)); //查询项目名称 List<QueryAllProject> queryAllProject = applicationServicePlatformClientProxy.listUserProject(bspToken, bspUserId, bspUserEnvId, bspUserTenant, queryProjectDto);”
时间: 2024-02-18 17:01:54 浏览: 123
在代码2中,需要将获取项目信息的代码移到方法内部,并且需要添加获取请求头信息的代码,代码修改如下:
```
public List<ProjectCountVO> projectCount(String beginTime, String endTime, Integer forceType) {
// 查询任务列表
List<TaskTask> taskTaskList = this.listStatisticsTask(beginTime, endTime, forceType,null);
if (CollectionUtil.isEmpty(taskTaskList)) {
return Collections.emptyList();
}
List<ProjectCountVO> result = new ArrayList<>();
// 将任务按照项目ID分组
Map<String, List<TaskTask>> projectTaskMap = taskTaskList.stream().collect(Collectors.groupingBy(TaskTask::getProjectId));
// 查询项目信息
List<QueryAllProject> queryAllProject;
try {
String bspToken = RequestHeaderHolder.getBspToken();
String bspUserId = RequestHeaderHolder.getUserId();
String bspUserEnvId = RequestHeaderHolder.getCompanyId();
String bspUserTenant = RequestHeaderHolder.getCompanyId();
String companyId = RequestHeaderHolder.getCompanyId();
ProjectCondition queryProjectDto = new ProjectCondition();
queryProjectDto.setAppId(queryProjectDto.getAppId());
queryProjectDto.setCompanyId(companyId);
queryProjectDto.setDesignStatusList(Arrays.asList(2,3));
queryProjectDto.setPageSize(-1);
queryProjectDto.setUserId(bspUserId);
queryAllProject = applicationServicePlatformClient.listUserProject(bspToken, bspUserId, bspUserEnvId, bspUserTenant, queryProjectDto);
} catch (Exception e) {
log.error("调用IApplicationServicePlatformClient获取项目信息失败:", e);
throw new BimdcException("调用IApplicationServicePlatformClient获取项目信息失败");
}
// 将项目信息转为Map,方便后面通过ID获取
Map<String, QueryAllProject> projectMap = queryAllProject.stream().collect(Collectors.toMap(QueryAllProject::getId, Function.identity()));
// 统计每个项目的任务数
for (Map.Entry<String, List<TaskTask>> entry : projectTaskMap.entrySet()) {
String projectId = entry.getKey();
List<TaskTask> tasks = entry.getValue();
QueryAllProject project = projectMap.get(projectId);
if (project != null) {
ProjectCountVO vo = new ProjectCountVO();
vo.setProjectName(project.getName());
vo.setProjectCode(project.getCode());
vo.setTaskCount(tasks.size());
result.add(vo);
}
}
return result;
}
```
阅读全文