Browse Source

优化

master
Jinyuanyuan 1 week ago
parent
commit
c7dc070a2d
  1. 125
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

125
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

@ -1417,46 +1417,50 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
Page page = new Page(1, 10000);
Page<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page, projectInfoAuthSelect);
List<HuzhouProjectinfoOV> projectAndChildInfoList = projectAndChildInfoPageList.getRecords();
List<String> ids = projectAndChildInfoPageList.getRecords().stream().map(x -> x.getId()).collect(Collectors.toList());
//1、获取带权限的所有数据2、过滤出含有特定责任单位的数据3、针对这些数据去统计
//两个records最后合在一起,合完再排序
//责任单位
List<HuzhouProjectinfoOV> dutyWorkplaceGroup = projectAndChildInfoList.stream().filter(x -> dutyWorkplaceList.contains(x.getDutyWorkplace())).collect(Collectors.toList());
List<String> dutyWorkplaceGroupIds = dutyWorkplaceGroup.stream().map(x -> x.getId()).collect(Collectors.toList());
List<ProjectSummaryOV> projectSummaryPageListByDuty = projectinfoMapper.getProjectSummaryPageListByDuty(dutyWorkplaceGroupIds);
for(ProjectSummaryOV p:projectSummaryPageListByDuty){
List<HuzhouProjectinfoOV> groupByDuty = dutyWorkplaceGroup.stream().filter(x -> x.getDutyWorkplace().equals(p.getDutyWorkplace())).collect(Collectors.toList());
List<String> projectIds = groupByDuty.stream().map(x -> x.getId()).collect(Collectors.toList());
String progress = this.countProgress(projectIds);
p.setProjectProgress(progress);
}
//区县
List<HuzhouProjectinfoOV> adminDivisionGroup = projectAndChildInfoList.stream().filter(x -> adminDivisionList.contains(x.getAdminDivision())).collect(Collectors.toList());
List<String> adminDivisionGroupIds = adminDivisionGroup.stream().map(x -> x.getId()).collect(Collectors.toList());
List<ProjectSummaryOV> projectSummaryPageListByDivision = projectinfoMapper.getProjectSummaryPageListByAdminDivision(adminDivisionGroupIds);
for(ProjectSummaryOV p:projectSummaryPageListByDivision){
List<HuzhouProjectinfoOV> groupByDuty = adminDivisionGroup.stream().filter(x -> x.getAdminDivision().equals(p.getAdminDivision())).collect(Collectors.toList());
List<String> projectIds = groupByDuty.stream().map(x -> x.getId()).collect(Collectors.toList());
String progress = this.countProgress(projectIds);
p.setProjectProgress(progress);
p.setDutyWorkplace(p.getAdminDivision());
}
if(projectAndChildInfoList.size()>0){
List<String> ids = projectAndChildInfoPageList.getRecords().stream().map(x -> x.getId()).collect(Collectors.toList());
//1、获取带权限的所有数据2、过滤出含有特定责任单位的数据3、针对这些数据去统计
//两个records最后合在一起,合完再排序
//责任单位
List<HuzhouProjectinfoOV> dutyWorkplaceGroup = projectAndChildInfoList.stream().filter(x -> dutyWorkplaceList.contains(x.getDutyWorkplace())).collect(Collectors.toList());
List<String> dutyWorkplaceGroupIds = dutyWorkplaceGroup.stream().map(x -> x.getId()).collect(Collectors.toList());
List<ProjectSummaryOV> projectSummaryPageListByDuty = projectinfoMapper.getProjectSummaryPageListByDuty(dutyWorkplaceGroupIds);
for(ProjectSummaryOV p:projectSummaryPageListByDuty){
List<HuzhouProjectinfoOV> groupByDuty = dutyWorkplaceGroup.stream().filter(x -> x.getDutyWorkplace().equals(p.getDutyWorkplace())).collect(Collectors.toList());
List<String> projectIds = groupByDuty.stream().map(x -> x.getId()).collect(Collectors.toList());
String progress = this.countProgress(projectIds);
p.setProjectProgress(progress);
}
//区县
List<HuzhouProjectinfoOV> adminDivisionGroup = projectAndChildInfoList.stream().filter(x -> adminDivisionList.contains(x.getAdminDivision())).collect(Collectors.toList());
List<String> adminDivisionGroupIds = adminDivisionGroup.stream().map(x -> x.getId()).collect(Collectors.toList());
List<ProjectSummaryOV> projectSummaryPageListByDivision = projectinfoMapper.getProjectSummaryPageListByAdminDivision(adminDivisionGroupIds);
for(ProjectSummaryOV p:projectSummaryPageListByDivision){
List<HuzhouProjectinfoOV> groupByDuty = adminDivisionGroup.stream().filter(x -> x.getAdminDivision().equals(p.getAdminDivision())).collect(Collectors.toList());
List<String> projectIds = groupByDuty.stream().map(x -> x.getId()).collect(Collectors.toList());
String progress = this.countProgress(projectIds);
p.setProjectProgress(progress);
p.setDutyWorkplace(p.getAdminDivision());
}
List<ProjectSummaryOV> projectSummaryPageList=new ArrayList<>();
projectSummaryPageList.addAll(projectSummaryPageListByDuty);
projectSummaryPageList.addAll(projectSummaryPageListByDivision);
//排序
if(!orderBy.equals("")&&!orderDir.equals("")){
List<ProjectSummaryOV> summarySortedList = this.getSummarySortedList(projectSummaryPageList, orderBy, orderDir);
//手动分页
int fromIndex = (pageNo - 1) * pageSize;
List<ProjectSummaryOV> currentPageData = summarySortedList.subList(fromIndex, Math.min(fromIndex + pageSize, summarySortedList.size()));
result.setSize(pageSize).setCurrent(pageNo).setRecords(currentPageData).setTotal(summarySortedList.size());
List<ProjectSummaryOV> projectSummaryPageList=new ArrayList<>();
projectSummaryPageList.addAll(projectSummaryPageListByDuty);
projectSummaryPageList.addAll(projectSummaryPageListByDivision);
//排序
if(!orderBy.equals("")&&!orderDir.equals("")){
List<ProjectSummaryOV> summarySortedList = this.getSummarySortedList(projectSummaryPageList, orderBy, orderDir);
//手动分页
int fromIndex = (pageNo - 1) * pageSize;
List<ProjectSummaryOV> currentPageData = summarySortedList.subList(fromIndex, Math.min(fromIndex + pageSize, summarySortedList.size()));
result.setSize(pageSize).setCurrent(pageNo).setRecords(currentPageData).setTotal(summarySortedList.size());
}else {
//手动分页
int fromIndex = (pageNo - 1) * pageSize;
List<ProjectSummaryOV> currentPageData = projectSummaryPageList.subList(fromIndex, Math.min(fromIndex + pageSize, projectSummaryPageList.size()));
result.setSize(pageSize).setCurrent(pageNo).setRecords(currentPageData).setTotal(projectSummaryPageList.size());
}
}else {
//手动分页
int fromIndex = (pageNo - 1) * pageSize;
List<ProjectSummaryOV> currentPageData = projectSummaryPageList.subList(fromIndex, Math.min(fromIndex + pageSize, projectSummaryPageList.size()));
result.setSize(pageSize).setCurrent(pageNo).setRecords(currentPageData).setTotal(projectSummaryPageList.size());
result.setSize(pageSize).setCurrent(pageNo).setRecords(Collections.emptyList()).setTotal(0);
}
return result;
@ -1472,28 +1476,33 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
Page page = new Page(1, 10000);
Page<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page, projectInfoAuthSelect);
List<String> ids = projectAndChildInfoPageList.getRecords().stream().map(x -> x.getId()).collect(Collectors.toList());
List<ProjectSummaryOV> projectSummaryPageList = projectinfoMapper.getProjectSummaryPageListByTask(ids);
for(ProjectSummaryOV p:projectSummaryPageList){
List<HuzhouProjectinfoOV> groupByTask = projectAndChildInfoPageList.getRecords().stream().filter(x -> x.getReformName().equals(p.getReformName()) && x.getSuperLeader().equals(p.getSuperLeader())).collect(Collectors.toList());
List<String> projectIds = groupByTask.stream().map(x -> x.getId()).collect(Collectors.toList());
String progress = this.countProgress(projectIds);
p.setProjectProgress(progress);
}
//排序
if(!orderBy.equals("")&&!orderDir.equals("")){
List<ProjectSummaryOV> summarySortedList = this.getSummarySortedList(projectSummaryPageList, orderBy, orderDir);
//手动分页
int fromIndex = (pageNo - 1) * pageSize;
List<ProjectSummaryOV> currentPageData = summarySortedList.subList(fromIndex, Math.min(fromIndex + pageSize, summarySortedList.size()));
result.setSize(pageSize).setCurrent(pageNo).setRecords(currentPageData).setTotal(summarySortedList.size());
}else {
//手动分页
int fromIndex = (pageNo - 1) * pageSize;
List<ProjectSummaryOV> currentPageData = projectSummaryPageList.subList(fromIndex, Math.min(fromIndex + pageSize, projectSummaryPageList.size()));
result.setSize(pageSize).setCurrent(pageNo).setRecords(currentPageData).setTotal(projectSummaryPageList.size());
if(projectAndChildInfoPageList.getRecords().size()>0){
List<String> ids = projectAndChildInfoPageList.getRecords().stream().map(x -> x.getId()).collect(Collectors.toList());
List<ProjectSummaryOV> projectSummaryPageList = projectinfoMapper.getProjectSummaryPageListByTask(ids);
for(ProjectSummaryOV p:projectSummaryPageList){
List<HuzhouProjectinfoOV> groupByTask = projectAndChildInfoPageList.getRecords().stream().filter(x -> x.getReformName().equals(p.getReformName()) && x.getSuperLeader().equals(p.getSuperLeader())).collect(Collectors.toList());
List<String> projectIds = groupByTask.stream().map(x -> x.getId()).collect(Collectors.toList());
String progress = this.countProgress(projectIds);
p.setProjectProgress(progress);
}
//排序
if(!orderBy.equals("")&&!orderDir.equals("")){
List<ProjectSummaryOV> summarySortedList = this.getSummarySortedList(projectSummaryPageList, orderBy, orderDir);
//手动分页
int fromIndex = (pageNo - 1) * pageSize;
List<ProjectSummaryOV> currentPageData = summarySortedList.subList(fromIndex, Math.min(fromIndex + pageSize, summarySortedList.size()));
result.setSize(pageSize).setCurrent(pageNo).setRecords(currentPageData).setTotal(summarySortedList.size());
}else {
//手动分页
int fromIndex = (pageNo - 1) * pageSize;
List<ProjectSummaryOV> currentPageData = projectSummaryPageList.subList(fromIndex, Math.min(fromIndex + pageSize, projectSummaryPageList.size()));
result.setSize(pageSize).setCurrent(pageNo).setRecords(currentPageData).setTotal(projectSummaryPageList.size());
}
}else {
result.setSize(pageSize).setCurrent(pageNo).setRecords(Collections.emptyList()).setTotal(0);
}
return result;
}

Loading…
Cancel
Save