dzx 1 vuosi sitten
vanhempi
commit
a442f451b3

+ 8 - 8
src/main/java/com/xjrsoft/module/classtime/service/impl/ClassTimeStatisticsServiceImpl.java

@@ -166,9 +166,6 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
         //查询课程数据,排除开节假日的数据
         List<CourseListVo> allCourseList = this.baseMapper.getCourseList(statistics);
 
-        //查询补班日期
-
-
         //查询删除课时的数据,将每个班删除的具体日期统计出来
         List<ClassTimeDelete> deleteList = deleteService.list(
                 new QueryWrapper<ClassTimeDelete>().lambda()
@@ -383,7 +380,10 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                 ccksCost = BigDecimal.valueOf(costSetMap.get("cost10"));
             }
             //计算出总的超出课时并计算超课时费
-            BigDecimal allCcksTime = BigDecimal.valueOf(allClassTime).subtract(ccksTime.multiply(BigDecimal.valueOf(weekTimeRangeVos.size())));
+            BigDecimal allCcksTime = BigDecimal.ZERO;
+            if(allClassTime > ccksTime.multiply(BigDecimal.valueOf(weekTimeRangeVos.size())).doubleValue()){//如果总的课时超出规定课时
+                allCcksTime = BigDecimal.valueOf(allClassTime).subtract(ccksTime.multiply(BigDecimal.valueOf(weekTimeRangeVos.size())));
+            }
             beyondClassTimeAmount = allCcksTime.multiply(ccksCost).doubleValue();
             if(!"FB1601".equals(teacher.getEmployType())){
                 record.setBeyondClassTimeAmount(beyondClassTimeAmount);
@@ -407,10 +407,10 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
             }
         }
 
-        statistics.setAllClassTime(insertList.stream().mapToDouble(ClassTimeStatisticsRecord::getAllClassTime).sum());
-        statistics.setTotalAmount(insertList.stream().mapToDouble(ClassTimeStatisticsRecord::getTotalAmount).sum());
-        statistics.setBeyondClassTimeAmount(insertList.stream().mapToDouble(ClassTimeStatisticsRecord::getBeyondClassTimeAmount).sum());
-        statistics.setClassTimeAmount(insertList.stream().mapToDouble(ClassTimeStatisticsRecord::getClassTimeAmount).sum());
+        statistics.setAllClassTime(insertList.stream().filter(x -> x.getAllClassTime() != null).mapToDouble(ClassTimeStatisticsRecord::getAllClassTime).sum());
+        statistics.setTotalAmount(insertList.stream().filter(x -> x.getTotalAmount() != null).mapToDouble(ClassTimeStatisticsRecord::getTotalAmount).sum());
+        statistics.setBeyondClassTimeAmount(insertList.stream().filter(x -> x.getBeyondClassTimeAmount() != null).mapToDouble(ClassTimeStatisticsRecord::getBeyondClassTimeAmount).sum());
+        statistics.setClassTimeAmount(insertList.stream().filter(x -> x.getClassTimeAmount() != null).mapToDouble(ClassTimeStatisticsRecord::getClassTimeAmount).sum());
         statistics.setStatus(1);
         this.updateById(statistics);
         return true;