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

Loading…
Cancel
Save