Browse Source

新增多项合并筛选,层级重新划分

master
Jinyuanyuan 1 week ago
parent
commit
8bb03a9763
  1. 1
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java
  2. 11
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml
  3. 80
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java
  4. 1
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectSummaryOV.java

1
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouProjectinfoMapper.java

@ -80,6 +80,7 @@ public interface HuzhouProjectinfoMapper extends BaseMapper<HuzhouProjectinfo> {
Page<HuzhouProjectinfoOV>getUnitedTechnicalReviewList(Page page, @Param("info") ProjectInfoAuthSelect info);
List<ProjectSummaryOV> getProjectSummaryPageListByDuty(@Param("projectIds") List<String> projectIds);
List<ProjectSummaryOV> getProjectSummaryPageListByAdminDivision(@Param("projectIds") List<String> projectIds);
List<ProjectSummaryOV> getProjectSummaryPageListByTask(@Param("projectIds") List<String> projectIds);
List<String> listIdsByDutyWorkplace(@Param("dutyWorkplace") String dutyWorkplace);

11
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouProjectinfoMapper.xml

@ -89,6 +89,7 @@
<result property="contractMoney" column="contractMoney" jdbcType="NUMERIC"/>
<result property="contractCentralMoney" column="contractCentralMoney" jdbcType="NUMERIC"/>
<result property="projectProgress" column="projectProgress" jdbcType="VARCHAR"/>
<result property="adminDivision" column="adminDivision" jdbcType="VARCHAR"/>
</resultMap>
<sql id="selectAuthSql">
(1=1
@ -523,6 +524,16 @@ order by create_date desc
</foreach>
group by u.duty_workplace
</select>
<select id="getProjectSummaryPageListByAdminDivision" resultMap="ProjectSummaryPageMap" parameterType="com.easy.admin.modules.huzhou.vo.ProjectSummaryOV">
select u.admin_division as adminDivision,count(*) as projectNum,
sum(u.total_money) as totalMoney, sum(u.urt_estimated_amount) as estimateMoney,sum(central_money) as centralMoney,
sum(m.contract_total_money) as contractMoney,sum(m.contract_central_money) as contractCentralMoney
from huzhou_projectinfo u left join huzhou_projectinfo_money m on u.id=m.id where u.id in
<foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")">
#{projectId}
</foreach>
group by u.admin_division
</select>
<select id="getProjectSummaryPageListByTask" resultMap="ProjectSummaryPageMap" parameterType="com.easy.admin.modules.huzhou.vo.ProjectSummaryOV">
select u.reform_name as reformName,u.super_leader as superLeader,count(*) as projectNum,
sum(u.total_money) as totalMoney, sum(u.urt_estimated_amount) as estimateMoney,sum(central_money) as centralMoney,

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

@ -1408,19 +1408,43 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Override
public IPage<ProjectSummaryOV> getProjectSummaryPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir){
IPage<ProjectSummaryOV> result = new Page<>();
List<String> dutyWorkplaceList=List.of("湖州市第一人民医院","湖州市中心医院","湖州市第三人民医院","湖州市妇幼保健院", "湖州市中医院",
"医政处","妇幼处","科教处","体改处","规信处","中医处","财审处","机关党委","人事处");
List<String> adminDivisionList=List.of("吴兴区","南浔区","德清县","长兴县","安吉县");
//只要入库项目
projectInfo.setType("1");
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
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());
List<ProjectSummaryOV> projectSummaryPageList = projectinfoMapper.getProjectSummaryPageListByDuty(ids);
for(ProjectSummaryOV p:projectSummaryPageList){
List<HuzhouProjectinfoOV> groupByDuty = projectAndChildInfoPageList.getRecords().stream().filter(x -> x.getDutyWorkplace().equals(p.getDutyWorkplace())).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);
@ -1438,6 +1462,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
return result;
}
@Override
public IPage<ProjectSummaryOV> getProjectSummaryPageByTask(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir){
IPage<ProjectSummaryOV> result = new Page<>();
@ -1579,13 +1605,41 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
List<ProjectDetailOV> filteredList=new ArrayList<>();
for(String condition:conditionList){
if(condition.equals("projectStage")){
filteredList = tempList.stream().filter(x -> x.getProjectStage().equals(stageMap.get(projectStage))).collect(Collectors.toList());
String[] splitArray = projectStage.split(",");
if(splitArray.length>1){
List<String> spiltList = new ArrayList<>(Arrays.asList(splitArray));
List<String> paramsList = spiltList.stream().map(stageMap::get).collect(Collectors.toList());
filteredList = tempList.stream().filter(x -> paramsList.contains(x.getProjectStage())).collect(Collectors.toList());
}else {
filteredList = tempList.stream().filter(x -> x.getProjectStage().equals(stageMap.get(projectStage))).collect(Collectors.toList());
}
}else if (condition.equals("stepName")){
filteredList = tempList.stream().filter(x -> x.getStepName().equals(stepName)).collect(Collectors.toList());
String[] splitArray = stepName.split(",");
if(splitArray.length>1){
List<String> paramsList = new ArrayList<>(Arrays.asList(splitArray));
filteredList = tempList.stream().filter(x -> paramsList.contains(x.getStepName())).collect(Collectors.toList());
}else {
filteredList = tempList.stream().filter(x -> x.getStepName().equals(stepName)).collect(Collectors.toList());
}
} else if (condition.equals("isUpload")) {
filteredList = tempList.stream().filter(x -> x.getIsUpload().equals(isUpload)).collect(Collectors.toList());
String[] splitArray = isUpload.split(",");
if(splitArray.length>1){
List<String> paramsList = new ArrayList<>(Arrays.asList(splitArray));
filteredList = tempList.stream().filter(x -> paramsList.contains(x.getIsUpload())).collect(Collectors.toList());
}else {
filteredList = tempList.stream().filter(x -> x.getIsUpload().equals(isUpload)).collect(Collectors.toList());
}
} else if (condition.equals("isOffline")) {
filteredList = tempList.stream().filter(x -> x.getIsOffline().equals(isOffline)).collect(Collectors.toList());
String[] splitArray = isOffline.split(",");
if(splitArray.length>1){
List<String> paramsList = new ArrayList<>(Arrays.asList(splitArray));
filteredList = tempList.stream().filter(x -> paramsList.contains(x.getIsOffline())).collect(Collectors.toList());
}else {
filteredList = tempList.stream().filter(x -> x.getIsOffline().equals(isOffline)).collect(Collectors.toList());
}
}
tempList.clear();
tempList.addAll(filteredList);
@ -1629,12 +1683,12 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
empList = originalList.stream().filter(x -> x.getTotalMoney() == null).collect(Collectors.toList());
sortedList.addAll(empList);
}else if (Objects.equals(orderBy, "centralMoney")&& Objects.equals(orderDir, "descend")){
sortedList=centralMoneyList.isEmpty()?originalList:originalList.stream().filter(x->x.getContractMoney()!=null).sorted(Comparator.comparing(ProjectSummaryOV::getCentralMoney).reversed()).collect(Collectors.toList());
empList = originalList.stream().filter(x -> x.getContractMoney() == null).collect(Collectors.toList());
sortedList=centralMoneyList.isEmpty()?originalList:originalList.stream().filter(x->x.getCentralMoney()!=null).sorted(Comparator.comparing(ProjectSummaryOV::getCentralMoney).reversed()).collect(Collectors.toList());
empList = originalList.stream().filter(x -> x.getCentralMoney() == null).collect(Collectors.toList());
sortedList.addAll(empList);
}else if (Objects.equals(orderBy, "centralMoney")&& Objects.equals(orderDir, "ascend")){
sortedList=centralMoneyList.isEmpty()?originalList:originalList.stream().filter(x->x.getContractMoney()!=null).sorted(Comparator.comparing(ProjectSummaryOV::getCentralMoney).reversed()).collect(Collectors.toList());
empList = originalList.stream().filter(x -> x.getContractMoney() == null).collect(Collectors.toList());
sortedList=centralMoneyList.isEmpty()?originalList:originalList.stream().filter(x->x.getCentralMoney()!=null).sorted(Comparator.comparing(ProjectSummaryOV::getCentralMoney).reversed()).collect(Collectors.toList());
empList = originalList.stream().filter(x -> x.getCentralMoney() == null).collect(Collectors.toList());
sortedList.addAll(empList);
}else if (Objects.equals(orderBy, "estimateMoney")&& Objects.equals(orderDir, "descend")){
sortedList=estimateMoneyList.isEmpty()?originalList:originalList.stream().filter(x->x.getEstimateMoney()!=null).sorted(Comparator.comparing(ProjectSummaryOV::getEstimateMoney).reversed()).collect(Collectors.toList());
@ -1795,6 +1849,10 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
projectInfo.setProjectName(request.getName());
String s = typeMap.get(request.getType());
projectInfo.setType(s);
//根据项目名称获取id,
LambdaUpdateWrapper<HuzhouProjectinfo> updateWrapper=new LambdaUpdateWrapper<>();
updateWrapper.set(null,projectInfo);
projectinfoMapper.updateById(projectInfo);

1
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectSummaryOV.java

@ -28,6 +28,7 @@ public class ProjectSummaryOV {
private BigDecimal contractCentralMoney;
private String projectProgress;
private String adminDivision;

Loading…
Cancel
Save