|
@@ -639,6 +639,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
totalProgress = totalProgress/100/100;
|
|
|
projectVO.setProgress(totalProgress);
|
|
|
}
|
|
|
+ Optional<LocalDate> maxFillDate = reportList.stream().filter(report -> report.getCreateDate() != null && projectVO.getId().equals(report.getProjectId())).map(Report::getCreateDate).max(Comparator.comparing(date -> date.toEpochDay()));
|
|
|
+ Optional<LocalDate> minFillDate = reportList.stream().filter(report -> report.getCreateDate() != null && projectVO.getId().equals(report.getProjectId())).map(Report::getCreateDate).min(Comparator.comparing(date -> date.toEpochDay()));
|
|
|
+ maxFillDate.ifPresent(projectVO::setMaxFilingDate);
|
|
|
+ minFillDate.ifPresent(projectVO::setMinFilingDate);
|
|
|
|
|
|
list.add(projectVO);
|
|
|
}
|
|
@@ -2751,12 +2755,16 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
List<Project> projectList = projectMapper.selectList(queryWrapper);
|
|
|
List<User> userList = userMapper.selectList(new QueryWrapper<User>().eq("company_id", companyId));
|
|
|
+ List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().select("id, create_date, project_id, working_time").eq("company_id",companyId).and(wrapper -> wrapper.eq("state", 0).or().eq("state", 1).or().eq("state", 3)));
|
|
|
List<ProjectVO> list = new ArrayList<>();
|
|
|
//String[] statusNames = {"-","进行中","已完成","已撤销","暂停"};
|
|
|
String[] statusNames = {"-",MessageUtils.message("excel.onGoing"),MessageUtils.message("excel.complete"),MessageUtils.message("excel.revoke"),MessageUtils.message("excel.pause")};
|
|
|
List<List<String>> exportList = new ArrayList<>();
|
|
|
//String[] titles = {"项目编号", "项目名称", "负责人", "项目金额(元)", "状态","计划开始时间", "计划结束时间", "完成度"};
|
|
|
- String[] titles = {MessageUtils.message("entry.projectId"), MessageUtils.message("entry.projectName"), MessageUtils.message("excel.charge"), MessageUtils.message("excel.projectAmount")+"(元)", MessageUtils.message("leave.status"),MessageUtils.message("excel.planStart"), MessageUtils.message("excel.planEnd"), MessageUtils.message("excel.degree")};
|
|
|
+ String[] titles = {MessageUtils.message("entry.projectId"), MessageUtils.message("entry.projectName"),
|
|
|
+ MessageUtils.message("excel.charge"), MessageUtils.message("excel.projectAmount")+"(元)", MessageUtils.message("leave.status")
|
|
|
+ ,MessageUtils.message("excel.planStart"), MessageUtils.message("excel.planEnd"),
|
|
|
+ MessageUtils.message("excel.minFillDate"), MessageUtils.message("excel.maxFillDate"),MessageUtils.message("excel.degree")};
|
|
|
exportList.add(Lists.list(titles));
|
|
|
for (Project project : projectList) {
|
|
|
List<String> data = new ArrayList<>();
|
|
@@ -2779,6 +2787,12 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
data.add(project.getStatus()==null?"":statusNames[project.getStatus()]);
|
|
|
data.add(project.getPlanStartDate() != null?df.format(project.getPlanStartDate()):"");
|
|
|
data.add(project.getPlanEndDate() != null?df.format(project.getPlanEndDate()):"");
|
|
|
+
|
|
|
+ Optional<LocalDate> maxFillDate = reportList.stream().filter(report -> report.getCreateDate() != null && project.getId().equals(report.getProjectId())).map(Report::getCreateDate).max(Comparator.comparing(date -> date.toEpochDay()));
|
|
|
+ Optional<LocalDate> minFillDate = reportList.stream().filter(report -> report.getCreateDate() != null && project.getId().equals(report.getProjectId())).map(Report::getCreateDate).min(Comparator.comparing(date -> date.toEpochDay()));
|
|
|
+ data.add(minFillDate.map(String::valueOf).orElse(""));
|
|
|
+ data.add(maxFillDate.map(String::valueOf).orElse(""));
|
|
|
+
|
|
|
data.add(project.getProgress() != null?project.getProgress()+"%" :"");
|
|
|
exportList.add(data);
|
|
|
}
|