|
@@ -245,6 +245,8 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
private CompanyDingdingMapper companyDingdingMapper;
|
|
private CompanyDingdingMapper companyDingdingMapper;
|
|
@Resource
|
|
@Resource
|
|
private CompanyDingdingService companyDingdingService;
|
|
private CompanyDingdingService companyDingdingService;
|
|
|
|
+ @Resource
|
|
|
|
+ private TaskExecutorService taskExecutorService;
|
|
|
|
|
|
@Value(value = "${upload.path}")
|
|
@Value(value = "${upload.path}")
|
|
private String path;
|
|
private String path;
|
|
@@ -13794,18 +13796,19 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
resultList=projectMapper.projectExpendProcessList(startDate,endDate,projectId,categoryId,userId,companyId,null,start,size);
|
|
resultList=projectMapper.projectExpendProcessList(startDate,endDate,projectId,categoryId,userId,companyId,null,start,size);
|
|
total=projectMapper.projectExpendProcessListCount(startDate,endDate,projectId,categoryId,userId,companyId,null);
|
|
total=projectMapper.projectExpendProcessListCount(startDate,endDate,projectId,categoryId,userId,companyId,null);
|
|
}
|
|
}
|
|
|
|
+ List<Integer> projectList = resultList.stream().map(i -> (Integer) i.get("projectId")).distinct().collect(Collectors.toList());
|
|
|
|
+ List<TaskExecutor> taskExecutorList = taskExecutorService.list(new LambdaQueryWrapper<TaskExecutor>().in(TaskExecutor::getProjectId, projectList));
|
|
|
|
+ List<String> executorIds = taskExecutorList.stream().map(TaskExecutor::getExecutorId).distinct().collect(Collectors.toList());
|
|
|
|
+ List<Report> reportList = reportMapper.selectList(new LambdaQueryWrapper<Report>().eq(Report::getCompanyId,companyId).eq(Report::getState,1).in(Report::getProjectId, projectList).in(Report::getCreatorId, executorIds).between(Report::getCreateDate, startDate, endDate));
|
|
for (Map<String, Object> map : resultList) {
|
|
for (Map<String, Object> map : resultList) {
|
|
- if(StringUtils.isEmpty(String.valueOf(map.get("executorString")))){
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- String executorString = String.valueOf(map.get("executorString"));
|
|
|
|
- List<String> list = ListUtil.convertLongIdsArrayToList(executorString);
|
|
|
|
List<Map<String,Object>> itemList=new ArrayList<>();
|
|
List<Map<String,Object>> itemList=new ArrayList<>();
|
|
- for (String str : list) {
|
|
|
|
- String[] split = str.split("\\|");
|
|
|
|
|
|
+ List<TaskExecutor> executors = taskExecutorList.stream().filter(t -> t.getProjectId().equals((Integer) map.get("projectId"))).collect(Collectors.toList());
|
|
|
|
+ for (TaskExecutor taskExecutor : executors) {
|
|
|
|
+ List<Report> reports = reportList.stream().filter(r -> r.getCreatorId().equals(taskExecutor.getExecutorId())&&r.getProjectId().equals((Integer)map.get("projectId"))).collect(Collectors.toList());
|
|
|
|
+ double sum = reports.stream().mapToDouble(Report::getWorkingTime).sum();
|
|
Map<String,Object> item=new HashMap<>();
|
|
Map<String,Object> item=new HashMap<>();
|
|
- item.put("userName",split[0]);
|
|
|
|
- item.put("progress",split[1]);
|
|
|
|
|
|
+ item.put("userName",taskExecutor.getExecutorName());
|
|
|
|
+ item.put("progress",sum);
|
|
itemList.add(item);
|
|
itemList.add(item);
|
|
}
|
|
}
|
|
Map<String, List<Map<String, Object>>> listMapGroup = itemList.stream().collect(Collectors.groupingBy(i -> String.valueOf(i.get("userName"))));
|
|
Map<String, List<Map<String, Object>>> listMapGroup = itemList.stream().collect(Collectors.groupingBy(i -> String.valueOf(i.get("userName"))));
|