换一种方式获取项目名称的代码:@Override public List<ProjectCountVO> projectCount(String beginTime, String endTime, Integer forceType, String projectId) { // 查询任务列表 List<TaskTask> taskTaskList = this.listStatisticsTask(beginTime, endTime, forceType, projectId); 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)); //查询项目名称 String bspToken = RequestHeaderHolder.getBspToken(); String bspUserId = RequestHeaderHolder.getUserId(); String bspUserEnvId = RequestHeaderHolder.getCompanyId(); String bspUserTenant = RequestHeaderHolder.getCompanyId(); String companyId = RequestHeaderHolder.getCompanyId(); ProjectCondition projectCondition = new ProjectCondition(); projectCondition.setAppId("23031408164321600"); projectCondition.setCompanyId(companyId); projectCondition.setDesignStatusList(Arrays.asList(2,3)); projectCondition.setPageSize(-1); projectCondition.setUserId(bspUserId); QueryAllProject queryAllProject = applicationServicePlatformClientProxy.listUserProject(bspToken, bspUserId, bspUserEnvId, bspUserTenant, projectCondition); for (Map.Entry<String, List<TaskTask>> projectTaskEntry : projectTaskMap.entrySet()) { projectId = projectTaskEntry.getKey(); ProjectCountVO projectCountVO = new ProjectCountVO(); projectCountVO.setId(projectId); String projectName = queryAllProject.getProjectList().stream() .filter(project -> project.getId().equals(projectId)) .findFirst() .map(Project::getName) .orElse(""); projectCountVO.setName(projectName); List<TaskTask> taskList = projectTaskEntry.getValue(); projectCountVO.setTaskCount(taskList.size()); Integer problemCount = CollectionUtil.isEmpty(taskList) ? 0 : taskList.stream() .collect(Collectors.summingInt(task -> Optional.ofNullable(task.getProblemNum()).orElse(0))); projectCountVO.setProblemCount(problemCount); result.add(projectCountVO); }
时间: 2024-01-24 12:19:55 浏览: 71
获取整个项目代码行数
这段代码是一个Java方法,名为 `projectCount`,接收四个参数:`beginTime`、`endTime`、`forceType`、`projectId`。该方法的作用是统计一段时间内某个项目的任务数量和问题数量,并将结果返回。
具体实现过程如下:
1. 首先调用方法 `listStatisticsTask` 查询任务列表。如果查询结果为空,则直接返回空列表。
2. 将查询到的任务按照项目ID分组,存储到一个Map中。
3. 调用第三方接口查询所有项目,并筛选出需要的项目名称。注意,这里使用了一个名为 `QueryAllProject` 的类,以及一个名为 `ProjectCondition` 的类,这两个类的具体实现并未在代码中给出。
4. 遍历之前分组得到的Map,对于每一个项目,统计其任务数量和问题数量,并将结果封装到一个 `ProjectCountVO` 对象中,最后将所有 `ProjectCountVO` 对象存储到一个列表中,并返回该列表。
阅读全文