|
@@ -608,7 +608,6 @@ public class ReportServiceImpl implements ReportService {
|
|
|
if (StrUtil.isNotBlank(reportWorkloadStatisticReqDTO.getUserId())) {
|
|
|
queryWrapper.eq("USER_ID", reportWorkloadStatisticReqDTO.getUserId());
|
|
|
}
|
|
|
-
|
|
|
//根据项目名称模糊查询项目ID
|
|
|
ProjectDto projectDto = new ProjectDto();
|
|
|
projectDto.setPageNo(1);
|
|
@@ -622,24 +621,26 @@ public class ReportServiceImpl implements ReportService {
|
|
|
return new PageResult<>();
|
|
|
}
|
|
|
}
|
|
|
- List<String> projectIdList = projectList.stream().map(ProjectVO::getId).collect(Collectors.toList());
|
|
|
- // 每1000个元素分一个List (oracle的in最多接收1000)
|
|
|
- int chunkSize = 1000;
|
|
|
- List<List<String>> chunkedProjectIdList = IntStream.range(0, (projectIdList.size() + chunkSize - 1) / chunkSize)
|
|
|
- .mapToObj(i -> projectIdList.subList(i * chunkSize, Math.min((i + 1) * chunkSize, projectIdList.size())))
|
|
|
- .collect(Collectors.toList());
|
|
|
- int lastIndex = chunkedProjectIdList.size() - 1;
|
|
|
-
|
|
|
- queryWrapper.and(qw -> {
|
|
|
- for (int i = 0; i <= lastIndex; i++) {
|
|
|
- List<String> idList = chunkedProjectIdList.get(i);
|
|
|
- qw.in("project_id", idList);
|
|
|
- // 判断是否是最后一个元素
|
|
|
- if (i != lastIndex) {
|
|
|
- qw.or();
|
|
|
+ if (StrUtil.isNotBlank(reportWorkloadStatisticReqDTO.getProjectName())) {
|
|
|
+ List<String> projectIdList = projectList.stream().map(ProjectVO::getId).collect(Collectors.toList());
|
|
|
+ // 每1000个元素分一个List (oracle的in最多接收1000)
|
|
|
+ int chunkSize = 1000;
|
|
|
+ List<List<String>> chunkedProjectIdList = IntStream.range(0, (projectIdList.size() + chunkSize - 1) / chunkSize)
|
|
|
+ .mapToObj(i -> projectIdList.subList(i * chunkSize, Math.min((i + 1) * chunkSize, projectIdList.size())))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ int lastIndex = chunkedProjectIdList.size() - 1;
|
|
|
+ queryWrapper.and(qw -> {
|
|
|
+ for (int i = 0; i <= lastIndex; i++) {
|
|
|
+ List<String> idList = chunkedProjectIdList.get(i);
|
|
|
+ qw.in("project_id", idList);
|
|
|
+ // 判断是否是最后一个元素
|
|
|
+ if (i != lastIndex) {
|
|
|
+ qw.or();
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
List<ReportRelationWorkloadVO> reportWorkloadRelationList = reportWorkloadMapper.getReportWrokloadList(queryWrapper);
|
|
|
|
|
|
|
|
@@ -740,7 +741,7 @@ public class ReportServiceImpl implements ReportService {
|
|
|
QueryWrapper<ReportWorkloadDO> queryWrapper = new QueryWrapper<>();
|
|
|
queryWrapper.eq("REPORT.DELETED", 0);
|
|
|
queryWrapper.eq("WORKLOAD.DELETED", 0);
|
|
|
- queryWrapper.eq("IS_TEMP", 0);
|
|
|
+ queryWrapper.eq("REPORT.IS_TEMP", 0);
|
|
|
if (StrUtil.isNotBlank(rep.getStartDate()) && StrUtil.isNotBlank(rep.getEndDate())) {
|
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
LocalDateTime startDateTime = LocalDate.parse(rep.getStartDate(),formatter).atStartOfDay();
|
|
@@ -765,12 +766,14 @@ public class ReportServiceImpl implements ReportService {
|
|
|
if (StrUtil.isNotBlank(rep.getDeptId())) {
|
|
|
queryWrapper.eq("DEPT_ID", rep.getDeptId());
|
|
|
}
|
|
|
+ //获取项目map
|
|
|
Map<String, String> projectMap = businessService.getProjectMap();
|
|
|
+ //统计项目工时
|
|
|
Map<String, BigDecimal> totalTimeByProjectId = new HashMap<>();
|
|
|
List<ReportRelationWorkloadVO> reportWorkloadRelationList = reportWorkloadMapper.getReportWrokloadList(queryWrapper);
|
|
|
for (ReportRelationWorkloadVO reportRelationWorkloadVO : reportWorkloadRelationList) {
|
|
|
reportRelationWorkloadVO.setXmmc(projectMap.get(reportRelationWorkloadVO.getProjectId()));
|
|
|
- totalTimeByProjectId.put(reportRelationWorkloadVO.getXmmc(), totalTimeByProjectId.getOrDefault(reportRelationWorkloadVO.getProjectId(), BigDecimal.ZERO).add(reportRelationWorkloadVO.getWorkTime()));
|
|
|
+ totalTimeByProjectId.put(reportRelationWorkloadVO.getXmmc(), totalTimeByProjectId.getOrDefault(projectMap.get(reportRelationWorkloadVO.getProjectId()), BigDecimal.ZERO).add(reportRelationWorkloadVO.getWorkTime()));
|
|
|
}
|
|
|
|
|
|
List<ReportWorkloadIndexStatisticVO> result = new ArrayList<>();
|