소스 검색

增加项目计划预算频繁请求校验,子计划显示任务类型,已开始的子计划不再请求时间

qianxb 2 년 전
부모
커밋
6f75911106
1개의 변경된 파일13개의 추가작업 그리고 2개의 파일을 삭제
  1. 13 2
      blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

+ 13 - 2
blade-service/blade-control/src/main/java/org/springblade/control/service/impl/ProjectCostBudgetServiceImpl.java

@@ -335,7 +335,11 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
 //                            }
 //                            vo2.setPlanDays(new BigDecimal(i));
                         }else {
-                            vo2.setPlanDays(new BigDecimal(CommonUtil.getWorkDays(startDate, endDate)));
+                            try {
+                                vo2.setPlanDays(new BigDecimal(CommonUtil.getWorkDays(startDate, endDate)));
+                            }catch (NullPointerException e){
+                                throw new ServiceException("请不要刷新这么快,请稍后再试");
+                            }
                         }
                     }
                     //如果计划已经完成,则不计算超预算
@@ -540,6 +544,9 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
         if (info.getDictValue().intValue() == 2){
             return new BigDecimal(startDate.until(endDate,ChronoUnit.DAYS)).intValue() + 1 ;
         }else {
+            if (startDate.until(endDate,ChronoUnit.DAYS) > 35){
+                throw new ServiceException("请不要制定超过一个月的固定计划");
+            }
             return CommonUtil.getWorkDays(startDate, endDate);
         }
     }
@@ -1123,10 +1130,14 @@ public class ProjectCostBudgetServiceImpl extends BaseServiceImpl<ProjectCostBud
                         if (l.getPlanStartTime().until(l.getPlanEndTime(), ChronoUnit.DAYS) > 35) {
                             throw new ServiceException("请不要制定超过一个月的固定计划");
                         }else {
-                            l.setPlanDays(new BigDecimal(CommonUtil.getWorkDays(budgetVO2.getPlanStartTime(), budgetVO2.getPlanEndTime())));
+                            if (l.getIsShowDelete() != 0) {
+                                l.setPlanDays(new BigDecimal(CommonUtil.getWorkDays(budgetVO2.getPlanStartTime(), budgetVO2.getPlanEndTime())));
+                            }
                         }
                     }
                 }
+                //设置子计划在父计划显示的任务类型
+                l.setPlanTaskTypeValue(task.getDictName());
                 //计算最大日期和最小日期
                 if (l.getPlanStartTime().isBefore(startDate)){
                     startDate = l.getPlanStartTime();