|
@@ -404,7 +404,7 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
//删除所有年的详情
|
|
|
baseMapper.deleteProgressByProjectId(dto.getId());
|
|
|
List<ProjectInvestPlan> updateYearPlan = new ArrayList<>();
|
|
|
- //整年累计完成投资
|
|
|
+ //开工累计完成投资
|
|
|
BigDecimal projectInvestFinished = BigDecimal.ZERO;
|
|
|
for (ProjectInvestPlanVO year : years) {
|
|
|
//如果此年不能填写,则直接跳过
|
|
@@ -419,7 +419,7 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
yearPlan.setWorkAdvise(year.getWorkAdvise());
|
|
|
yearPlan.setWriteUnit(year.getWriteUnit());
|
|
|
yearPlan.setLinkman(year.getLinkman());
|
|
|
- //整年累计完成投资
|
|
|
+ //当年累计完成投资
|
|
|
BigDecimal allInvestFinished = BigDecimal.ZERO;
|
|
|
//季度已投资
|
|
|
BigDecimal investFinished = BigDecimal.ZERO;
|
|
@@ -662,7 +662,8 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
planProgressService.saveBatch(progresses);
|
|
|
//添加要修改年计划
|
|
|
projectInvestFinished = projectInvestFinished.add(allInvestFinished);
|
|
|
- yearPlan.setYearFinishInvest(projectInvestFinished);
|
|
|
+ yearPlan.setYearFinishInvest(allInvestFinished);
|
|
|
+ yearPlan.setStartFinishInvest(projectInvestFinished);
|
|
|
if (year.getYearlyInvest() != null) {
|
|
|
yearPlan.setYearUnfinishedInvest(year.getYearlyInvest().subtract(allInvestFinished));
|
|
|
}
|
|
@@ -1356,13 +1357,13 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
throw new ServiceException(year+"年没有投资计划,请重新选择时间");
|
|
|
}
|
|
|
//市交通运输委完成金额
|
|
|
- BigDecimal trafficMoney = projectList.stream().filter(l -> l.getDutyUnit().contains("市交通运输委") && ObjectUtil.isNotEmpty(l.getYearlyInvest()))
|
|
|
- .map(ProjectInvestPlan::getYearlyInvest).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal trafficMoney = projectList.stream().filter(l -> l.getDutyUnit().contains("市交通运输委") && ObjectUtil.isNotEmpty(l.getYearFinishInvest()))
|
|
|
+ .map(ProjectInvestPlan::getYearFinishInvest).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//铁路公路等项目个数
|
|
|
long trafficTotal = projectList.stream().filter(l -> l.getDutyUnit().contains("市交通运输委") && "1,2,3,4,7".contains(l.getProjectType()+"")).count();
|
|
|
//市住房城乡建委完成金额
|
|
|
- BigDecimal houseMoney = projectList.stream().filter(l -> l.getDutyUnit().contains("市住房城乡建委") && ObjectUtil.isNotEmpty(l.getYearlyInvest()))
|
|
|
- .map(ProjectInvestPlan::getYearlyInvest).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ BigDecimal houseMoney = projectList.stream().filter(l -> l.getDutyUnit().contains("市住房城乡建委") && ObjectUtil.isNotEmpty(l.getYearFinishInvest()))
|
|
|
+ .map(ProjectInvestPlan::getYearFinishInvest).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
//城市轨道和城市项目个数
|
|
|
long houseTotal = projectList.stream().filter(l -> l.getDutyUnit().contains("市住房城乡建委") && "5,6".contains(l.getProjectType()+"")).count();
|
|
|
//一季度计划完成投资
|
|
@@ -1381,7 +1382,9 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
|
|
|
/** 投资完成情况表*/
|
|
|
//总计
|
|
|
- ReportVO1 vo1 = this.calculateTableOne(projectList, quarter);
|
|
|
+ ReportVO1 vo1 = this.calculateTableOne(projectList.stream().filter(l -> (l.getDutyUnit().contains("市交通运输委") ||
|
|
|
+ l.getDutyUnit().contains("市住房城乡建委")) && ObjectUtil.isNotEmpty(l.getYearlyInvest()))
|
|
|
+ .collect(Collectors.toList()), quarter);
|
|
|
Map<String,ReportVO1> reportVOMap1 = new HashMap<>();
|
|
|
Map<String,ReportVO1> reportVOMap2 = new HashMap<>();
|
|
|
//当前季度完成投资
|
|
@@ -1773,72 +1776,125 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
list.add(v1);
|
|
|
//正常
|
|
|
ReportVO3 v2 = new ReportVO3();
|
|
|
- v2.setOneProjectTotal((int) projectList.stream().filter(l->l.getIsOneInvestFinish() == 1 && l.getOneInvestRatio().compareTo(oneHundred) == 0).count());
|
|
|
- v2.setTwoProjectTotal((int) projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1 && l.getTwoInvestRatio().compareTo(oneHundred) == 0).count());
|
|
|
- v2.setThreeProjectTotal((int) projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1 && l.getThreeInvestRatio().compareTo(oneHundred) == 0).count());
|
|
|
- v2.setFourProjectTotal((int) projectList.stream().filter(l->l.getIsFourInvestFinish() == 1 && l.getFourInvestRatio().compareTo(oneHundred) == 0).count());
|
|
|
+ v2.setOneProjectTotal((int) projectList.stream().filter(l->l.getIsOneInvestFinish() == 1 &&
|
|
|
+ l.getOneInvestRatio().compareTo(oneHundred) == 0).count());
|
|
|
+ v2.setTwoProjectTotal((int) projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1 &&
|
|
|
+ l.getTwoInvestRatio().compareTo(oneHundred) == 0 && l.getTwoAggregateRatio().compareTo(oneHundred) == 0).count());
|
|
|
+ v2.setThreeProjectTotal((int) projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1 &&
|
|
|
+ l.getThreeInvestRatio().compareTo(oneHundred) == 0 && l.getThreeAggregateRatio().compareTo(oneHundred) == 0).count());
|
|
|
+ v2.setFourProjectTotal((int) projectList.stream().filter(l->l.getIsFourInvestFinish() == 1 &&
|
|
|
+ l.getFourInvestRatio().compareTo(oneHundred) == 0 && l.getFourAggregateRatio().compareTo(oneHundred) == 0).count());
|
|
|
list.add(v2);
|
|
|
//超前
|
|
|
ReportVO3 v3 = new ReportVO3();
|
|
|
- v3.setOneProjectTotal((int) projectList.stream().filter(l->l.getIsOneInvestFinish() == 1 && l.getOneInvestRatio().compareTo(oneHundred) > 0).count());
|
|
|
- v3.setTwoProjectTotal((int) projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1 && l.getTwoInvestRatio().compareTo(oneHundred) > 0).count());
|
|
|
- v3.setThreeProjectTotal((int) projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1 && l.getThreeInvestRatio().compareTo(oneHundred) > 0).count());
|
|
|
- v3.setFourProjectTotal((int) projectList.stream().filter(l->l.getIsFourInvestFinish() == 1 && l.getFourInvestRatio().compareTo(oneHundred) > 0).count());
|
|
|
+ v3.setOneProjectTotal((int) projectList.stream().filter(l->l.getIsOneInvestFinish() == 1 &&
|
|
|
+ l.getOneInvestRatio().compareTo(oneHundred) > 0).count());
|
|
|
+ v3.setTwoProjectTotal((int) projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1 &&
|
|
|
+ l.getTwoInvestRatio().compareTo(oneHundred) > 0 && l.getTwoAggregateRatio().compareTo(oneHundred) > 0).count());
|
|
|
+ v3.setThreeProjectTotal((int) projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1 &&
|
|
|
+ l.getThreeInvestRatio().compareTo(oneHundred) > 0 && l.getThreeAggregateRatio().compareTo(oneHundred) > 0).count());
|
|
|
+ v3.setFourProjectTotal((int) projectList.stream().filter(l->l.getIsFourInvestFinish() == 1 &&
|
|
|
+ l.getFourInvestRatio().compareTo(oneHundred) > 0 && l.getFourAggregateRatio().compareTo(oneHundred) > 0).count());
|
|
|
list.add(v3);
|
|
|
+
|
|
|
+ //过滤每个季度已经统计过的
|
|
|
+ List<Long> oneIds = new ArrayList<>();
|
|
|
+ List<Long> twoIds = new ArrayList<>();
|
|
|
+ List<Long> threeIds = new ArrayList<>();
|
|
|
+ List<Long> fourIds = new ArrayList<>();
|
|
|
+ List<Long> one = new ArrayList<>();
|
|
|
+ List<Long> two = new ArrayList<>();
|
|
|
+ List<Long> three = new ArrayList<>();
|
|
|
+ List<Long> four = new ArrayList<>();
|
|
|
+ //严重滞后
|
|
|
+ ReportVO3 v6 = new ReportVO3();
|
|
|
+ v6.setOneInvestRatio(projectWarning.getOneOne());
|
|
|
+ one = projectList.stream().filter(l -> l.getIsOneInvestFinish() == 1
|
|
|
+ && l.getOneInvestRatio().compareTo(projectWarning.getOneOne()) < 0).map(ProjectInvestPlanVO2::getId).collect(Collectors.toList());
|
|
|
+ v6.setOneProjectTotal(one.size());
|
|
|
+ v6.setTwoInvestRatio(projectWarning.getTwoOne());
|
|
|
+ two = projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1
|
|
|
+ && (l.getTwoInvestRatio().compareTo(projectWarning.getTwoOne()) < 0 || l.getTwoAggregateRatio().compareTo(projectWarning.getTwoOneAll()) < 0))
|
|
|
+ .map(ProjectInvestPlanVO2::getId).collect(Collectors.toList());
|
|
|
+ v6.setTwoProjectTotal(two.size());
|
|
|
+ v6.setTwoAggregateRatio(projectWarning.getTwoOneAll());
|
|
|
+ v6.setThreeInvestRatio(projectWarning.getThreeOne());
|
|
|
+ three = projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1
|
|
|
+ && (l.getThreeInvestRatio().compareTo(projectWarning.getThreeOne()) < 0 || l.getThreeAggregateRatio().compareTo(projectWarning.getThreeOneAll()) < 0))
|
|
|
+ .map(ProjectInvestPlanVO2::getId).collect(Collectors.toList());
|
|
|
+ v6.setThreeProjectTotal(three.size());
|
|
|
+ v6.setThreeAggregateRatio(projectWarning.getThreeOneAll());
|
|
|
+ v6.setFourInvestRatio(projectWarning.getFourOne());
|
|
|
+ four = projectList.stream().filter(l->l.getIsFourInvestFinish() == 1
|
|
|
+ && (l.getFourInvestRatio().compareTo(projectWarning.getFourOne()) < 0 || l.getFourAggregateRatio().compareTo(projectWarning.getFourOneAll()) < 0))
|
|
|
+ .map(ProjectInvestPlanVO2::getId).collect(Collectors.toList());
|
|
|
+ v6.setFourProjectTotal(four.size());
|
|
|
+ v6.setFourAggregateRatio(projectWarning.getFourOneAll());
|
|
|
+
|
|
|
+
|
|
|
+ oneIds.addAll(one);
|
|
|
+ twoIds.addAll(two);
|
|
|
+ threeIds.addAll(three);
|
|
|
+ fourIds.addAll(four);
|
|
|
+
|
|
|
+ //中度滞后
|
|
|
+ ReportVO3 v5 = new ReportVO3();
|
|
|
+ v5.setOneInvestRatio(projectWarning.getOneTwo());
|
|
|
+ one = projectList.stream().filter(l->l.getIsOneInvestFinish() == 1 && !oneIds.contains(l.getId())
|
|
|
+ && (l.getOneInvestRatio().compareTo(projectWarning.getOneOne()) > 0 && l.getOneInvestRatio().compareTo(projectWarning.getOneTwo()) < 0))
|
|
|
+ .map(ProjectInvestPlanVO2::getId).collect(Collectors.toList());
|
|
|
+ v5.setOneProjectTotal(one.size());
|
|
|
+ v5.setTwoInvestRatio(projectWarning.getTwoTwo());
|
|
|
+ two = projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1 && !twoIds.contains(l.getId())
|
|
|
+ && ((l.getTwoInvestRatio().compareTo(projectWarning.getTwoOne()) > 0 && l.getTwoInvestRatio().compareTo(projectWarning.getTwoTwo()) < 0)
|
|
|
+ || (l.getTwoAggregateRatio().compareTo(projectWarning.getTwoOneAll()) > 0 && l.getTwoAggregateRatio().compareTo(projectWarning.getTwoTwoAll()) < 0)))
|
|
|
+ .map(ProjectInvestPlanVO2::getId).collect(Collectors.toList());
|
|
|
+ v5.setTwoProjectTotal(two.size());
|
|
|
+ v5.setTwoAggregateRatio(projectWarning.getTwoTwoAll());
|
|
|
+ v5.setThreeInvestRatio(projectWarning.getThreeTwo());
|
|
|
+ three = projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1 && !threeIds.contains(l.getId())
|
|
|
+ && ((l.getThreeInvestRatio().compareTo(projectWarning.getThreeOne()) > 0 && l.getThreeInvestRatio().compareTo(projectWarning.getThreeTwo()) < 0)
|
|
|
+ || (l.getThreeAggregateRatio().compareTo(projectWarning.getThreeOneAll()) > 0 && l.getThreeAggregateRatio().compareTo(projectWarning.getThreeTwoAll()) < 0)))
|
|
|
+ .map(ProjectInvestPlanVO2::getId).collect(Collectors.toList());
|
|
|
+ v5.setThreeProjectTotal(three.size());
|
|
|
+ v5.setThreeAggregateRatio(projectWarning.getThreeTwoAll());
|
|
|
+ v5.setFourInvestRatio(projectWarning.getFourTwo());
|
|
|
+ four = projectList.stream().filter(l->l.getIsFourInvestFinish() == 1 && !fourIds.contains(l.getId())
|
|
|
+ && ((l.getFourInvestRatio().compareTo(projectWarning.getFourOne()) > 0 && l.getFourInvestRatio().compareTo(projectWarning.getFourTwo()) < 0)
|
|
|
+ || (l.getFourAggregateRatio().compareTo(projectWarning.getFourOneAll()) > 0 && l.getFourAggregateRatio().compareTo(projectWarning.getFourTwoAll()) < 0)))
|
|
|
+ .map(ProjectInvestPlanVO2::getId).collect(Collectors.toList());
|
|
|
+ v5.setFourProjectTotal(four.size());
|
|
|
+ v5.setFourAggregateRatio(projectWarning.getFourTwoAll());
|
|
|
+
|
|
|
+ oneIds.addAll(one);
|
|
|
+ twoIds.addAll(two);
|
|
|
+ threeIds.addAll(three);
|
|
|
+ fourIds.addAll(four);
|
|
|
+
|
|
|
//轻微滞后
|
|
|
ReportVO3 v4 = new ReportVO3();
|
|
|
v4.setOneInvestRatio(projectWarning.getOneThree());
|
|
|
- v4.setOneProjectTotal((int) projectList.stream().filter(l->l.getIsOneInvestFinish() == 1
|
|
|
- && l.getOneInvestRatio().compareTo(projectWarning.getOneThree()) > 0 && l.getOneInvestRatio().compareTo(oneHundred) < 0).count());
|
|
|
+ v4.setOneProjectTotal((int) projectList.stream().filter(l->l.getIsOneInvestFinish() == 1 && !oneIds.contains(l.getId())
|
|
|
+ && l.getOneInvestRatio().compareTo(projectWarning.getOneTwo()) > 0 && l.getOneInvestRatio().compareTo(projectWarning.getOneThree()) < 0).count());
|
|
|
v4.setTwoInvestRatio(projectWarning.getTwoThree());
|
|
|
- v4.setTwoProjectTotal((int) projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1
|
|
|
- && l.getTwoInvestRatio().compareTo(projectWarning.getTwoThree()) > 0 && l.getTwoInvestRatio().compareTo(oneHundred) < 0).count());
|
|
|
+ v4.setTwoProjectTotal((int) projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1 && !twoIds.contains(l.getId())
|
|
|
+ && ((l.getTwoInvestRatio().compareTo(projectWarning.getTwoTwo()) > 0 && l.getTwoInvestRatio().compareTo(projectWarning.getTwoThree()) < 0)
|
|
|
+ || (l.getTwoAggregateRatio().compareTo(projectWarning.getTwoTwoAll()) > 0 && l.getTwoAggregateRatio().compareTo(projectWarning.getTwoThreeAll()) < 0))).count());
|
|
|
v4.setTwoAggregateRatio(projectWarning.getTwoThreeAll());
|
|
|
v4.setThreeInvestRatio(projectWarning.getThreeThree());
|
|
|
- v4.setThreeProjectTotal((int) projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1
|
|
|
- && l.getThreeInvestRatio().compareTo(projectWarning.getThreeThree()) > 0 && l.getThreeInvestRatio().compareTo(oneHundred) < 0).count());
|
|
|
+ v4.setThreeProjectTotal((int) projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1 && !threeIds.contains(l.getId())
|
|
|
+ && ((l.getThreeInvestRatio().compareTo(projectWarning.getThreeTwo()) > 0 && l.getThreeInvestRatio().compareTo(projectWarning.getThreeThree()) < 0)
|
|
|
+ || (l.getTwoAggregateRatio().compareTo(projectWarning.getThreeTwoAll()) > 0 && l.getTwoAggregateRatio().compareTo(projectWarning.getThreeThreeAll()) < 0))).count());
|
|
|
v4.setThreeAggregateRatio(projectWarning.getThreeThreeAll());
|
|
|
v4.setFourInvestRatio(projectWarning.getFourThree());
|
|
|
- v4.setFourProjectTotal((int) projectList.stream().filter(l->l.getIsFourInvestFinish() == 1
|
|
|
- && l.getFourInvestRatio().compareTo(projectWarning.getFourThree()) > 0 && l.getFourInvestRatio().compareTo(oneHundred) < 0).count());
|
|
|
+ v4.setFourProjectTotal((int) projectList.stream().filter(l->l.getIsFourInvestFinish() == 1 && !fourIds.contains(l.getId())
|
|
|
+ && ((l.getFourInvestRatio().compareTo(projectWarning.getFourTwo()) > 0 && l.getFourInvestRatio().compareTo(projectWarning.getFourThree()) < 0)
|
|
|
+ || (l.getTwoAggregateRatio().compareTo(projectWarning.getFourTwoAll()) > 0 && l.getTwoAggregateRatio().compareTo(projectWarning.getFourThreeAll()) < 0))).count());
|
|
|
v4.setFourAggregateRatio(projectWarning.getFourThreeAll());
|
|
|
list.add(v4);
|
|
|
- //中度滞后
|
|
|
- ReportVO3 v5 = new ReportVO3();
|
|
|
- v5.setOneInvestRatio(projectWarning.getOneTwo());
|
|
|
- v5.setOneProjectTotal((int) projectList.stream().filter(l->l.getIsOneInvestFinish() == 1
|
|
|
- && l.getOneInvestRatio().compareTo(projectWarning.getOneTwo()) > 0 && l.getOneInvestRatio().compareTo(projectWarning.getOneThree()) < 0).count());
|
|
|
- v5.setTwoInvestRatio(projectWarning.getTwoTwo());
|
|
|
- v5.setTwoProjectTotal((int) projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1
|
|
|
- && l.getTwoInvestRatio().compareTo(projectWarning.getTwoTwo()) > 0 && l.getTwoInvestRatio().compareTo(projectWarning.getTwoThree()) < 0).count());
|
|
|
- v5.setTwoAggregateRatio(projectWarning.getTwoTwoAll());
|
|
|
- v5.setThreeInvestRatio(projectWarning.getThreeTwo());
|
|
|
- v5.setThreeProjectTotal((int) projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1
|
|
|
- && l.getThreeInvestRatio().compareTo(projectWarning.getThreeTwo()) > 0 && l.getThreeInvestRatio().compareTo(projectWarning.getThreeThree()) < 0).count());
|
|
|
- v5.setThreeAggregateRatio(projectWarning.getThreeTwoAll());
|
|
|
- v5.setFourInvestRatio(projectWarning.getFourTwo());
|
|
|
- v5.setFourProjectTotal((int) projectList.stream().filter(l->l.getIsFourInvestFinish() == 1
|
|
|
- && l.getFourInvestRatio().compareTo(projectWarning.getFourTwo()) > 0 && l.getFourInvestRatio().compareTo(projectWarning.getFourThree()) < 0).count());
|
|
|
- v5.setFourAggregateRatio(projectWarning.getFourTwoAll());
|
|
|
list.add(v5);
|
|
|
- //严重滞后
|
|
|
- ReportVO3 v6 = new ReportVO3();
|
|
|
- v6.setOneInvestRatio(projectWarning.getOneOne());
|
|
|
- v6.setOneProjectTotal((int) projectList.stream().filter(l->l.getIsOneInvestFinish() == 1
|
|
|
- && l.getOneInvestRatio().compareTo(projectWarning.getOneOne()) < 0).count());
|
|
|
- v6.setTwoInvestRatio(projectWarning.getTwoOne());
|
|
|
- v6.setTwoProjectTotal((int) projectList.stream().filter(l->l.getIsTwoInvestFinish() == 1
|
|
|
- && l.getTwoInvestRatio().compareTo(projectWarning.getTwoOne()) > 0).count());
|
|
|
- v6.setTwoAggregateRatio(projectWarning.getTwoOneAll());
|
|
|
- v6.setThreeInvestRatio(projectWarning.getThreeOne());
|
|
|
- v6.setThreeProjectTotal((int) projectList.stream().filter(l->l.getIsThreeInvestFinish() == 1
|
|
|
- && l.getThreeInvestRatio().compareTo(projectWarning.getThreeOne()) > 0).count());
|
|
|
- v6.setThreeAggregateRatio(projectWarning.getThreeOneAll());
|
|
|
- v6.setFourInvestRatio(projectWarning.getFourOne());
|
|
|
- v6.setFourProjectTotal((int) projectList.stream().filter(l->l.getIsFourInvestFinish() == 1
|
|
|
- && l.getFourInvestRatio().compareTo(projectWarning.getFourOne()) > 0).count());
|
|
|
- v6.setFourAggregateRatio(projectWarning.getFourOneAll());
|
|
|
list.add(v6);
|
|
|
+
|
|
|
return list;
|
|
|
}
|
|
|
|