|
@@ -84,22 +84,22 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
if (plan.getOneInvest() != null){
|
|
|
all = all.add(plan.getOneInvest());
|
|
|
}
|
|
|
- if (plan.getOneInvest() != null){
|
|
|
+ if (plan.getTwoInvest() != null){
|
|
|
all = all.add(plan.getTwoInvest());
|
|
|
}
|
|
|
- if (plan.getOneInvest() != null){
|
|
|
+ if (plan.getThreeInvest() != null){
|
|
|
all = all.add(plan.getThreeInvest());
|
|
|
}
|
|
|
- if (plan.getOneInvest() != null){
|
|
|
+ if (plan.getFourInvest() != null){
|
|
|
all = all.add(plan.getFourInvest());
|
|
|
}
|
|
|
- if ((plan.getYearlyInvest() == null && !all.equals(BigDecimal.ZERO)) || (plan.getYearlyInvest() != null && !all.equals(plan.getYearlyInvest()))){
|
|
|
+ if ((plan.getYearlyInvest() == null && !all.equals(BigDecimal.ZERO)) || (plan.getYearlyInvest() != null && all.compareTo(plan.getYearlyInvest()) != 0)){
|
|
|
throw new ServiceException(plan.getPlanYear()+"年全年计划投资与每季度总和不对");
|
|
|
}
|
|
|
projectAll = projectAll.add(all);
|
|
|
}
|
|
|
- if ((info.getAllInvestMoney() == null && !projectAll.equals(BigDecimal.ZERO) || (info.getAllInvestMoney() != null && !info.getAllInvestMoney().equals(projectAll)) )){
|
|
|
- throw new ServiceException("所有年计划投资之和不等于总投资,请修改后重新保存");
|
|
|
+ if (info.getAllInvestMoney() != null && info.getAllInvestMoney().compareTo(projectAll) == -1){
|
|
|
+ throw new ServiceException("所有年计划投资之和不能大于总投资,请修改后重新保存");
|
|
|
}
|
|
|
investPlanService.saveBatch(list);
|
|
|
}
|
|
@@ -367,6 +367,9 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
if (years == null || years.size() == 0){
|
|
|
return;
|
|
|
}
|
|
|
+ //删除所有年的详情
|
|
|
+ planProgressService.remove(new LambdaQueryWrapper<ProjectPlanProgress>()
|
|
|
+ .eq(ProjectPlanProgress::getProjectId,dto.getId()));
|
|
|
List<ProjectInvestPlan> updateYearPlan = new ArrayList<>();
|
|
|
for (ProjectInvestPlanDTO year : years) {
|
|
|
//如果此年不能填写,则直接跳过
|
|
@@ -396,6 +399,7 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
|
|
|
List<ProjectPlanProgress> monthList = year.getList();
|
|
|
for (ProjectPlanProgress progress : monthList) {
|
|
|
+ progress.setId(null);
|
|
|
progress.setInvestMoneyAll(null);
|
|
|
//设置当前行已经填写字段
|
|
|
Integer fillField = 0;
|
|
@@ -611,8 +615,8 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
}
|
|
|
progress.setFillField(fillField);
|
|
|
}
|
|
|
- //直接保存或修改月计划集合
|
|
|
- planProgressService.saveOrUpdateBatch(monthList);
|
|
|
+ //直接保存月计划集合
|
|
|
+ planProgressService.saveBatch(monthList);
|
|
|
//添加要修改年计划
|
|
|
yearPlan.setYearFinishInvest(allInvestFinished);
|
|
|
yearPlan.setYearUnfinishedInvest(year.getYearlyInvest().subtract(allInvestFinished));
|
|
@@ -691,8 +695,8 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
}
|
|
|
//判断项目进程类型
|
|
|
if (plan.getOneInvest() == null || plan.getTwoInvest() == null || plan.getThreeInvest() == null || plan.getFourInvest() == null ||
|
|
|
- plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 ||
|
|
|
- plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0) {
|
|
|
+ plan.getIsOneInvestFinish() == 0 || plan.getIsTwoInvestFinish() == 0 || plan.getIsThreeInvestFinish() == 0 || plan.getIsFourInvestFinish() == 0 ||
|
|
|
+ plan.getIsOnePlanFinish() == 0 || plan.getIsTwoPlanFinish() == 0 || plan.getIsThreePlanFinish() == 0 || plan.getIsFourPlanFinish() == 0) {
|
|
|
vo2.setScheduleType(3);
|
|
|
} else {
|
|
|
if (plan.getOneInvest().compareTo(plan.getOneInvestFinish()) <= 0 &&
|
|
@@ -804,8 +808,8 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
vo2.setFourUnFinished(plan.getFourInvest() == null?BigDecimal.ZERO:plan.getFourInvest().subtract(vo2.getFourFinished()));
|
|
|
//判断项目进程类型
|
|
|
if (plan.getOneInvest() == null || plan.getTwoInvest() == null || plan.getThreeInvest() == null || plan.getFourInvest() == null ||
|
|
|
- plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 ||
|
|
|
- plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0) {
|
|
|
+ plan.getIsOneInvestFinish() == 0 || plan.getIsTwoInvestFinish() == 0 || plan.getIsThreeInvestFinish() == 0 || plan.getIsFourInvestFinish() == 0 ||
|
|
|
+ plan.getIsOnePlanFinish() == 0 || plan.getIsTwoPlanFinish() == 0 || plan.getIsThreePlanFinish() == 0 || plan.getIsFourPlanFinish() == 0) {
|
|
|
vo2.setScheduleType(3);
|
|
|
} else {
|
|
|
if (plan.getOneInvest().compareTo(plan.getOneInvestFinish()) <= 0 &&
|
|
@@ -996,8 +1000,8 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
}
|
|
|
//判断项目进程类型
|
|
|
if (plan.getOneInvest() == null || plan.getTwoInvest() == null || plan.getThreeInvest() == null || plan.getFourInvest() == null ||
|
|
|
- plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 ||
|
|
|
- plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0 || plan.getIsOneInvestFinish() == 0) {
|
|
|
+ plan.getIsOneInvestFinish() == 0 || plan.getIsTwoInvestFinish() == 0 || plan.getIsThreeInvestFinish() == 0 || plan.getIsFourInvestFinish() == 0 ||
|
|
|
+ plan.getIsOnePlanFinish() == 0 || plan.getIsTwoPlanFinish() == 0 || plan.getIsThreePlanFinish() == 0 || plan.getIsFourPlanFinish() == 0) {
|
|
|
vo2.setScheduleType(3);
|
|
|
} else {
|
|
|
if (plan.getOneInvest().compareTo(plan.getOneInvestFinish()) <= 0 &&
|
|
@@ -1110,9 +1114,37 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
return dto;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void repealWarning(ProjectRepealDTO dto) {
|
|
|
+ //判断是否已经撤销过
|
|
|
+ RepealRecord one = repealRecordService.getOne(new LambdaQueryWrapper<RepealRecord>()
|
|
|
+ .eq(RepealRecord::getProjectId, dto.getProjectId())
|
|
|
+ .eq(RepealRecord::getPlanYear, dto.getPlanYear())
|
|
|
+ .eq(RepealRecord::getPlanQuarter, dto.getQuarter())
|
|
|
+ .eq(RepealRecord::getPlanType, dto.getWarningType())
|
|
|
+ );
|
|
|
+ if (one != null){
|
|
|
+ throw new ServiceException("请勿重复撤销");
|
|
|
+ }
|
|
|
+ if (dto.getRepealEndDate().compareTo(LocalDate.now()) == -1){
|
|
|
+ throw new ServiceException("结束日期不能小于今天");
|
|
|
+ }
|
|
|
+ RepealRecord record = new RepealRecord();
|
|
|
+ record.setProjectId(dto.getProjectId());
|
|
|
+ record.setPlanYear(dto.getPlanYear());
|
|
|
+ record.setPlanQuarter(dto.getQuarter());
|
|
|
+ record.setPlanType(dto.getWarningType());
|
|
|
+ record.setStartDate(LocalDate.now());
|
|
|
+ record.setEndDate(dto.getRepealEndDate());
|
|
|
+ repealRecordService.save(record);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<pageWarningVO> pageWarning(pageWarningDTO dto) {
|
|
|
- IPage<pageWarningVO> iPage = new Page<>(dto.getCurrent(),dto.getCurrent());
|
|
|
+ Integer current = dto.getCurrent();
|
|
|
+ Integer size = dto.getSize();
|
|
|
+ IPage<pageWarningVO> iPage = new Page<>(current,size);
|
|
|
/*查询出所有数据,手动筛选,手动分页*/
|
|
|
//1 获取所有项目 所有年的计划
|
|
|
List<InvestPlanWarningVO> planList = baseMapper.getAllYearPlan();
|
|
@@ -1138,36 +1170,106 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
//4 循环所有年计划
|
|
|
List<pageWarningVO> vos = new ArrayList<>();
|
|
|
for (InvestPlanWarningVO plan : planList) {
|
|
|
- // 季度计划没有填写 和 实际完成没有填写 则不统计
|
|
|
+ /*季度计划没有填写 和 实际完成没有填写 则不统计*/
|
|
|
+ /*-------------投资-------------*/
|
|
|
+ //一季度
|
|
|
if (plan.getOneInvest() != null && plan.getIsOneInvestFinish() == 1){
|
|
|
+ Boolean isWarning = false;
|
|
|
+ Integer warningGrade = 0;
|
|
|
+ String warningGradeName = "";
|
|
|
// 填写了则每个季度直接对比数值,从1到3
|
|
|
if (investWarning.getOneOne() != null && plan.getOneInvestRatio().compareTo(investWarning.getOneOne()) == -1){
|
|
|
- pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),1,"项目投资异常",1,"第一季度",LocalDate.of(2022, 4, 1),1,"一级");
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 1;
|
|
|
+ warningGradeName = "一级";
|
|
|
+ }else if (investWarning.getOneTwo() != null && plan.getOneInvestRatio().compareTo(investWarning.getOneTwo()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 2;
|
|
|
+ warningGradeName = "二级";
|
|
|
+ }else if (investWarning.getOneThree() != null && plan.getOneInvestRatio().compareTo(investWarning.getOneThree()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 3;
|
|
|
+ warningGradeName = "三级";
|
|
|
+ }
|
|
|
+ // 如果异常则添加到异常集合中
|
|
|
+ if (isWarning){
|
|
|
+ pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),1,"项目投资异常",1,"第一季度",LocalDate.of(plan.getPlanYear(), 4, 1),warningGrade,warningGradeName);
|
|
|
//判断是否撤销
|
|
|
+ vo.setPlanYear(plan.getPlanYear());
|
|
|
RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 1, 1));
|
|
|
- // 如果异常则添加到异常集合中,添加前判断是否撤销
|
|
|
if (record != null){
|
|
|
vo.setIsRepeal("是");
|
|
|
vo.setRepealStartDate(record.getStartDate());
|
|
|
vo.setRepealEndDate(record.getEndDate());
|
|
|
}
|
|
|
vos.add(vo);
|
|
|
- }else if (investWarning.getOneTwo() != null && plan.getOneInvestRatio().compareTo(investWarning.getOneTwo()) == -1){
|
|
|
- pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),1,"项目投资异常",1,"第一季度",LocalDate.of(2022, 4, 1),2,"二级");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //二季度
|
|
|
+ if (plan.getTwoInvest() != null && plan.getIsTwoInvestFinish() == 1){
|
|
|
+ Boolean isWarning = false;
|
|
|
+ Integer warningGrade = 0;
|
|
|
+ String warningGradeName = "";
|
|
|
+ // 填写了则每个季度直接对比数值,从1到3
|
|
|
+ if ((investWarning.getTwoOne() != null && plan.getTwoInvestRatio().compareTo(investWarning.getTwoOne()) == -1) ||
|
|
|
+ (investWarning.getTwoOneAll() != null && plan.getTwoAggregateRatio().compareTo(investWarning.getTwoOneAll()) == -1)){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 1;
|
|
|
+ warningGradeName = "一级";
|
|
|
+ }else if ((investWarning.getTwoTwo() != null && plan.getTwoInvestRatio().compareTo(investWarning.getTwoTwo()) == -1) ||
|
|
|
+ (investWarning.getTwoTwoAll() != null && plan.getTwoAggregateRatio().compareTo(investWarning.getTwoTwoAll()) == -1)){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 2;
|
|
|
+ warningGradeName = "二级";
|
|
|
+ }else if ((investWarning.getTwoThree() != null && plan.getTwoInvestRatio().compareTo(investWarning.getTwoThree()) == -1) ||
|
|
|
+ (investWarning.getTwoThreeAll() != null && plan.getTwoAggregateRatio().compareTo(investWarning.getTwoThreeAll()) == -1)){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 3;
|
|
|
+ warningGradeName = "三级";
|
|
|
+ }
|
|
|
+ // 如果异常则添加到异常集合中
|
|
|
+ if (isWarning){
|
|
|
+ pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),1,"项目投资异常",2,"第二季度",LocalDate.of(plan.getPlanYear(), 7, 1),warningGrade,warningGradeName);
|
|
|
+ vo.setPlanYear(plan.getPlanYear());
|
|
|
//判断是否撤销
|
|
|
- RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 1, 1));
|
|
|
- // 如果异常则添加到异常集合中,添加前判断是否撤销
|
|
|
+ RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 2, 1));
|
|
|
if (record != null){
|
|
|
vo.setIsRepeal("是");
|
|
|
vo.setRepealStartDate(record.getStartDate());
|
|
|
vo.setRepealEndDate(record.getEndDate());
|
|
|
}
|
|
|
vos.add(vo);
|
|
|
- }else if (investWarning.getOneThree() != null && plan.getOneInvestRatio().compareTo(investWarning.getOneThree()) == -1){
|
|
|
- pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),1,"项目投资异常",1,"第一季度",LocalDate.of(2022, 4, 1),3,"三级");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //三季度
|
|
|
+ if (plan.getThreeInvest() != null && plan.getIsThreeInvestFinish() == 1){
|
|
|
+ Boolean isWarning = false;
|
|
|
+ Integer warningGrade = 0;
|
|
|
+ String warningGradeName = "";
|
|
|
+ // 填写了则每个季度直接对比数值,从1到3
|
|
|
+ if ((investWarning.getThreeOne() != null && plan.getThreeInvestRatio().compareTo(investWarning.getThreeOne()) == -1) ||
|
|
|
+ (investWarning.getThreeOneAll() != null && plan.getThreeAggregateRatio().compareTo(investWarning.getThreeOneAll()) == -1)){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 1;
|
|
|
+ warningGradeName = "一级";
|
|
|
+ }else if ((investWarning.getThreeTwo() != null && plan.getThreeInvestRatio().compareTo(investWarning.getThreeTwo()) == -1) ||
|
|
|
+ (investWarning.getThreeTwoAll() != null && plan.getThreeAggregateRatio().compareTo(investWarning.getThreeTwoAll()) == -1)){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 2;
|
|
|
+ warningGradeName = "二级";
|
|
|
+ }else if ((investWarning.getThreeThree() != null && plan.getThreeInvestRatio().compareTo(investWarning.getThreeThree()) == -1) ||
|
|
|
+ (investWarning.getThreeThreeAll() != null && plan.getThreeAggregateRatio().compareTo(investWarning.getThreeThreeAll()) == -1)){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 3;
|
|
|
+ warningGradeName = "三级";
|
|
|
+ }
|
|
|
+ // 如果异常则添加到异常集合中
|
|
|
+ if (isWarning){
|
|
|
+ pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),1,"项目投资异常",3,"第三季度",LocalDate.of(plan.getPlanYear(), 10, 1),warningGrade,warningGradeName);
|
|
|
+ vo.setPlanYear(plan.getPlanYear());
|
|
|
//判断是否撤销
|
|
|
- RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 1, 1));
|
|
|
- // 如果异常则添加到异常集合中,添加前判断是否撤销
|
|
|
+ RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 3, 1));
|
|
|
if (record != null){
|
|
|
vo.setIsRepeal("是");
|
|
|
vo.setRepealStartDate(record.getStartDate());
|
|
@@ -1177,10 +1279,196 @@ public class ProjectInfoServiceImpl extends BaseServiceImpl<ProjectInfoMapper, P
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ //四季度
|
|
|
+ if (plan.getFourInvest() != null && plan.getIsFourInvestFinish() == 1){
|
|
|
+ Boolean isWarning = false;
|
|
|
+ Integer warningGrade = 0;
|
|
|
+ String warningGradeName = "";
|
|
|
+ // 填写了则每个季度直接对比数值,从1到3
|
|
|
+ if ((investWarning.getFourOne() != null && plan.getFourInvestRatio().compareTo(investWarning.getFourOne()) == -1) ||
|
|
|
+ (investWarning.getFourOneAll() != null && plan.getFourAggregateRatio().compareTo(investWarning.getFourOneAll()) == -1)){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 1;
|
|
|
+ warningGradeName = "一级";
|
|
|
+ }else if ((investWarning.getFourTwo() != null && plan.getFourInvestRatio().compareTo(investWarning.getFourTwo()) == -1) ||
|
|
|
+ (investWarning.getFourTwoAll() != null && plan.getFourAggregateRatio().compareTo(investWarning.getFourTwoAll()) == -1)){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 2;
|
|
|
+ warningGradeName = "二级";
|
|
|
+ }else if ((investWarning.getFourThree() != null && plan.getFourInvestRatio().compareTo(investWarning.getFourThree()) == -1) ||
|
|
|
+ (investWarning.getFourThreeAll() != null && plan.getFourAggregateRatio().compareTo(investWarning.getFourThreeAll()) == -1)){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 3;
|
|
|
+ warningGradeName = "三级";
|
|
|
+ }
|
|
|
+ // 如果异常则添加到异常集合中
|
|
|
+ if (isWarning){
|
|
|
+ pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),1,"项目投资异常",4,"第四季度",LocalDate.of(plan.getPlanYear()+1, 1, 1),warningGrade,warningGradeName);
|
|
|
+ vo.setPlanYear(plan.getPlanYear());
|
|
|
+ //判断是否撤销
|
|
|
+ RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 4, 1));
|
|
|
+ if (record != null){
|
|
|
+ vo.setIsRepeal("是");
|
|
|
+ vo.setRepealStartDate(record.getStartDate());
|
|
|
+ vo.setRepealEndDate(record.getEndDate());
|
|
|
+ }
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /*-------------进度-------------*/
|
|
|
+ //一季度
|
|
|
+ if (StringUtils.isNotBlank(plan.getOnePlan()) && plan.getIsOnePlanFinish() == 1){
|
|
|
+ Boolean isWarning = false;
|
|
|
+ Integer warningGrade = 0;
|
|
|
+ String warningGradeName = "";
|
|
|
+ // 填写了则每个季度直接对比数值,从1到3
|
|
|
+ if (planWarning.getOneOne() != null && plan.getOnePlanRatio().compareTo(planWarning.getOneOne()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 1;
|
|
|
+ warningGradeName = "一级";
|
|
|
+ }else if (planWarning.getOneTwo() != null && plan.getOnePlanRatio().compareTo(planWarning.getOneTwo()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 2;
|
|
|
+ warningGradeName = "二级";
|
|
|
+ }else if (planWarning.getOneThree() != null && plan.getOnePlanRatio().compareTo(planWarning.getOneThree()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 3;
|
|
|
+ warningGradeName = "三级";
|
|
|
+ }
|
|
|
+ // 如果异常则添加到异常集合中
|
|
|
+ if (isWarning){
|
|
|
+ pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),2,"项目进度异常",1,"第一季度",LocalDate.of(plan.getPlanYear(), 4, 1),warningGrade,warningGradeName);
|
|
|
+ vo.setPlanYear(plan.getPlanYear());
|
|
|
+ //判断是否撤销
|
|
|
+ RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 1, 2));
|
|
|
+ if (record != null){
|
|
|
+ vo.setIsRepeal("是");
|
|
|
+ vo.setRepealStartDate(record.getStartDate());
|
|
|
+ vo.setRepealEndDate(record.getEndDate());
|
|
|
+ }
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //二季度
|
|
|
+ if (StringUtils.isNotBlank(plan.getOnePlan()) && plan.getIsOnePlanFinish() == 1){
|
|
|
+ Boolean isWarning = false;
|
|
|
+ Integer warningGrade = 0;
|
|
|
+ String warningGradeName = "";
|
|
|
+ // 填写了则每个季度直接对比数值,从1到3
|
|
|
+ if (planWarning.getTwoOne() != null && plan.getTwoPlanRatio().compareTo(planWarning.getTwoOne()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 1;
|
|
|
+ warningGradeName = "一级";
|
|
|
+ }else if (planWarning.getTwoTwo() != null && plan.getTwoPlanRatio().compareTo(planWarning.getTwoTwo()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 2;
|
|
|
+ warningGradeName = "二级";
|
|
|
+ }else if (planWarning.getTwoThree() != null && plan.getTwoPlanRatio().compareTo(planWarning.getTwoThree()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 3;
|
|
|
+ warningGradeName = "三级";
|
|
|
+ }
|
|
|
+ // 如果异常则添加到异常集合中
|
|
|
+ if (isWarning){
|
|
|
+ pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),2,"项目进度异常",2,"第二季度",LocalDate.of(plan.getPlanYear(), 7, 1),warningGrade,warningGradeName);
|
|
|
+ vo.setPlanYear(plan.getPlanYear());
|
|
|
+ //判断是否撤销
|
|
|
+ RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 2, 2));
|
|
|
+ if (record != null){
|
|
|
+ vo.setIsRepeal("是");
|
|
|
+ vo.setRepealStartDate(record.getStartDate());
|
|
|
+ vo.setRepealEndDate(record.getEndDate());
|
|
|
+ }
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //三季度
|
|
|
+ if (StringUtils.isNotBlank(plan.getThreePlan()) && plan.getIsThreePlanFinish() == 1){
|
|
|
+ Boolean isWarning = false;
|
|
|
+ Integer warningGrade = 0;
|
|
|
+ String warningGradeName = "";
|
|
|
+ // 填写了则每个季度直接对比数值,从1到3
|
|
|
+ if (planWarning.getThreeOne() != null && plan.getThreePlanRatio().compareTo(planWarning.getThreeOne()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 1;
|
|
|
+ warningGradeName = "一级";
|
|
|
+ }else if (planWarning.getThreeTwo() != null && plan.getThreePlanRatio().compareTo(planWarning.getThreeTwo()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 2;
|
|
|
+ warningGradeName = "二级";
|
|
|
+ }else if (planWarning.getThreeThree() != null && plan.getThreePlanRatio().compareTo(planWarning.getThreeThree()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 3;
|
|
|
+ warningGradeName = "三级";
|
|
|
+ }
|
|
|
+ // 如果异常则添加到异常集合中
|
|
|
+ if (isWarning){
|
|
|
+ pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),2,"项目进度异常",3,"第三季度",LocalDate.of(plan.getPlanYear(), 10, 1),warningGrade,warningGradeName);
|
|
|
+ vo.setPlanYear(plan.getPlanYear());
|
|
|
+ //判断是否撤销
|
|
|
+ RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 3, 2));
|
|
|
+ if (record != null){
|
|
|
+ vo.setIsRepeal("是");
|
|
|
+ vo.setRepealStartDate(record.getStartDate());
|
|
|
+ vo.setRepealEndDate(record.getEndDate());
|
|
|
+ }
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //四季度
|
|
|
+ if (StringUtils.isNotBlank(plan.getFourPlan()) && plan.getIsFourPlanFinish() == 1){
|
|
|
+ Boolean isWarning = false;
|
|
|
+ Integer warningGrade = 0;
|
|
|
+ String warningGradeName = "";
|
|
|
+ // 填写了则每个季度直接对比数值,从1到3
|
|
|
+ if (planWarning.getFourOne() != null && plan.getFourPlanRatio().compareTo(planWarning.getFourOne()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 1;
|
|
|
+ warningGradeName = "一级";
|
|
|
+ }else if (planWarning.getFourTwo() != null && plan.getFourPlanRatio().compareTo(planWarning.getFourTwo()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 2;
|
|
|
+ warningGradeName = "二级";
|
|
|
+ }else if (planWarning.getFourThree() != null && plan.getFourPlanRatio().compareTo(planWarning.getFourThree()) == -1){
|
|
|
+ isWarning = true;
|
|
|
+ warningGrade = 3;
|
|
|
+ warningGradeName = "三级";
|
|
|
+ }
|
|
|
+ // 如果异常则添加到异常集合中
|
|
|
+ if (isWarning){
|
|
|
+ pageWarningVO vo = new pageWarningVO(plan.getProjectId(),plan.getProjectName(),2,"项目进度异常",4,"第四季度",LocalDate.of(plan.getPlanYear()+1, 1, 1),warningGrade,warningGradeName);
|
|
|
+ vo.setPlanYear(plan.getPlanYear());
|
|
|
+ //判断是否撤销
|
|
|
+ RepealRecord record = recordMap.get(new RepealRecordVO(plan.getProjectId(), plan.getPlanYear(), 4, 2));
|
|
|
+ if (record != null){
|
|
|
+ vo.setIsRepeal("是");
|
|
|
+ vo.setRepealStartDate(record.getStartDate());
|
|
|
+ vo.setRepealEndDate(record.getEndDate());
|
|
|
+ }
|
|
|
+ vos.add(vo);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
//5 异常集合先按照搜索条件过滤,再手动分组
|
|
|
-
|
|
|
+ if (dto.getType() != null){
|
|
|
+ vos = vos.stream().filter(l->dto.getType().equals(l.getWarningType())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (dto.getGrade() != null){
|
|
|
+ vos = vos.stream().filter(l->dto.getGrade().equals(l.getWarningGrade())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (dto.getIsAnnul() != null){
|
|
|
+ String str = dto.getIsAnnul() == 1? "是" : "否";
|
|
|
+ vos = vos.stream().filter(l->str.equals(l.getIsRepeal())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(dto.getSearchValue())){
|
|
|
+ vos = vos.stream().filter(l->l.getProjectName().contains(dto.getSearchValue())).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ int start = (current-1)*size;
|
|
|
+ int end = current*size > vos.size() ? vos.size() : current*size;
|
|
|
+ List<pageWarningVO> subList = vos.subList(start, end);
|
|
|
+ iPage.setRecords(subList);
|
|
|
+ iPage.setTotal(vos.size());
|
|
|
return iPage;
|
|
|
}
|
|
|
|