|
|
@@ -141,7 +141,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
// 1、查询教师
|
|
|
List<TeacherListVo> teacherList = this.baseMapper.getTeacherList();
|
|
|
// 2、查询补课课时
|
|
|
- List<WfTeacherCourseTime> courseTimeList = this.baseMapper.getWfTeacherCourseTimeList();
|
|
|
+ List<WfTeacherCourseTime> courseTimeList = this.baseMapper.getWfTeacherCourseTimeList(statistics);
|
|
|
//按照课时补充类型分类统计
|
|
|
Map<String, List<WfTeacherCourseTime>> courseTimeMap = courseTimeList.stream().collect(Collectors.groupingBy(WfTeacherCourseTime::getCourseTimeType));
|
|
|
JsonParser parser = new JsonParser();
|
|
|
@@ -257,7 +257,6 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
record.setClassTime7(classTime7);
|
|
|
record.setClassTime8(classTime8);
|
|
|
record.setClassTime9(classTime9);
|
|
|
- record.setClassTime10(classTime10);
|
|
|
record.setClassTime11(classTime11);
|
|
|
JsonObject weekDataJson = new JsonObject();
|
|
|
Double allTimes = 0d;
|
|
|
@@ -305,12 +304,8 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
weekDataJson.addProperty("allTimes", allTimes);
|
|
|
record.setWeekData(weekDataJson.toString());
|
|
|
|
|
|
- //计算总课时
|
|
|
- allClassTime = allClassTime + classTime7 + classTime8 + classTime9;
|
|
|
- record.setAllClassTime(allClassTime);
|
|
|
-
|
|
|
//计算该老师发起的事假、病假顶课数据
|
|
|
- List<CourseListVo> substituteList = allSubstituteList.stream().filter(x -> x.getTeacherId().equals(teacher.getId().toString()))
|
|
|
+ List<CourseListVo> substituteList = allSubstituteList.stream().filter(x -> x.getExchangeTeacherId().equals(teacher.getId()))
|
|
|
.collect(Collectors.toList());
|
|
|
Double reduceTime = 0d;
|
|
|
for (CourseListVo courseListVo : substituteList) {
|
|
|
@@ -321,6 +316,21 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
reduceTime += weightSetMap.get(courseListVo.getShortName());
|
|
|
}
|
|
|
|
|
|
+ substituteList = allSubstituteList.stream().filter(x -> x.getTeacherId().equals(teacher.getId().toString()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ for (CourseListVo courseListVo : substituteList) {
|
|
|
+ Set<LocalDate> deleteDates = deleteMap.get(courseListVo.getClassId());
|
|
|
+ if(deleteDates !=null && deleteDates.contains(courseListVo.getScheduleDate())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ reduceTime = reduceTime - weightSetMap.get(courseListVo.getShortName());
|
|
|
+ }
|
|
|
+
|
|
|
+ record.setClassTime10(reduceTime);
|
|
|
+ //计算总课时
|
|
|
+ allClassTime = allClassTime + classTime7 + classTime8 + classTime9;
|
|
|
+ record.setAllClassTime(allClassTime);
|
|
|
+
|
|
|
//计算费用,根据聘用类型判断费用问题
|
|
|
Double classTimeAmount = 0d;
|
|
|
Double beyondClassTimeAmount = 0d;
|
|
|
@@ -358,13 +368,17 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
}
|
|
|
classTimeAmount += BigDecimal.valueOf(classTime9).multiply(wzxCost).doubleValue();
|
|
|
|
|
|
+ BigDecimal reduceTimeAmount = BigDecimal.ZERO;
|
|
|
BigDecimal dkCost = BigDecimal.ZERO;//顶课费用,顶课老师加钱
|
|
|
if("FB1601".equals(teacher.getEmployType())){
|
|
|
dkCost = BigDecimal.valueOf(costSetMap.get("cost11"));
|
|
|
}else{//外聘FB1605、合作人员FB1609
|
|
|
dkCost = BigDecimal.valueOf(costSetMap.get("cost12"));
|
|
|
}
|
|
|
- classTimeAmount += BigDecimal.valueOf(classTime10).multiply(dkCost).doubleValue();
|
|
|
+ if(record.getClassTime10() != null && record.getClassTime10() > 0){
|
|
|
+ reduceTimeAmount = BigDecimal.valueOf(record.getClassTime10()).multiply(dkCost);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
BigDecimal bdkCost = BigDecimal.ZERO;//顶课费用,被顶课老师扣钱
|
|
|
if("FB1601".equals(teacher.getEmployType())){
|
|
|
@@ -373,10 +387,9 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
bdkCost = BigDecimal.valueOf(costSetMap.get("cost14")==null?0:costSetMap.get("cost14"));
|
|
|
}
|
|
|
//计算被扣除的费用
|
|
|
- BigDecimal reduceTimeAmount = bdkCost.multiply(BigDecimal.valueOf(reduceTime));
|
|
|
-
|
|
|
- //计算总课时费用
|
|
|
- classTimeAmount = BigDecimal.valueOf(classTimeAmount).subtract(reduceTimeAmount).doubleValue();
|
|
|
+ if(record.getClassTime10() != null && record.getClassTime10() < 0){
|
|
|
+ reduceTimeAmount = bdkCost.multiply(BigDecimal.valueOf(record.getClassTime10()));
|
|
|
+ }
|
|
|
record.setClassTimeAmount(classTimeAmount);
|
|
|
//计算超出的课时,需要先计算出每个周的开始结束时间
|
|
|
BigDecimal ccksTime = BigDecimal.ZERO;//超出课时标准(每周)
|
|
|
@@ -403,7 +416,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
}
|
|
|
|
|
|
//计算总金额,课时费+超课时费
|
|
|
- Double totalAmount = classTimeAmount + beyondClassTimeAmount - reduceTimeAmount.doubleValue();
|
|
|
+ Double totalAmount = classTimeAmount + beyondClassTimeAmount + reduceTimeAmount.doubleValue();
|
|
|
record.setTotalAmount(totalAmount);
|
|
|
|
|
|
insertList.add(record);
|