|
|
@@ -958,6 +958,10 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
allClassTime = allClassTime + classTime7 + classTime8 + classTime9;
|
|
|
record.setAllClassTime(allClassTime);
|
|
|
|
|
|
+ double _classTime7 = insertCourseList.stream().filter(x -> Objects.equals(x.getUserId(), teacher.getId())).mapToDouble(ClassCourseTimeStatisticsRecord::getClassTime7).sum();
|
|
|
+ double _classTime8 = insertCourseList.stream().filter(x -> Objects.equals(x.getUserId(), teacher.getId())).mapToDouble(ClassCourseTimeStatisticsRecord::getClassTime8).sum();
|
|
|
+ double _classTime9 = insertCourseList.stream().filter(x -> Objects.equals(x.getUserId(), teacher.getId())).mapToDouble(ClassCourseTimeStatisticsRecord::getClassTime9).sum();
|
|
|
+
|
|
|
//计算费用,根据聘用类型判断费用问题
|
|
|
Double classTimeAmount = 0d;
|
|
|
Double beyondClassTimeAmount = 0d;
|
|
|
@@ -969,7 +973,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
zzxCost = BigDecimal.valueOf(costSetMap.get("cost2"));
|
|
|
}
|
|
|
|
|
|
- classTimeAmount += BigDecimal.valueOf(classTime7).multiply(zzxCost).doubleValue();
|
|
|
+ classTimeAmount += BigDecimal.valueOf(classTime7-_classTime7).multiply(zzxCost).doubleValue();
|
|
|
|
|
|
BigDecimal zkCost = BigDecimal.ZERO;//正课费用
|
|
|
if ("FB1601".equals(teacher.getEmployType())) {
|
|
|
@@ -979,7 +983,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
}
|
|
|
|
|
|
double classTime = classTime8
|
|
|
- + courseTimeTypeTime;
|
|
|
+ + courseTimeTypeTime-_classTime8;
|
|
|
classTimeAmount += BigDecimal.valueOf(classTime).multiply(zkCost).doubleValue();
|
|
|
|
|
|
BigDecimal wzxCost = BigDecimal.ZERO;//晚自习费用
|
|
|
@@ -988,7 +992,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
} else {//外聘FB1605、合作人员FB1609
|
|
|
wzxCost = BigDecimal.valueOf(costSetMap.get("cost6"));
|
|
|
}
|
|
|
- classTimeAmount += BigDecimal.valueOf(classTime9).multiply(wzxCost).doubleValue();
|
|
|
+ classTimeAmount += BigDecimal.valueOf(classTime9-_classTime9).multiply(wzxCost).doubleValue();
|
|
|
/**
|
|
|
* 顶课:
|
|
|
* 1、流程发起人(被顶老师)的课被顶课老师上了,那么被顶老师的课时就会-1,顶课老师课时就会+1
|
|
|
@@ -1072,6 +1076,72 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
reduceTimeAmount = reduceTimeAmount.subtract(bdkCost.multiply(BigDecimal.valueOf(bdkClassTime)));
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ // 计算费用
|
|
|
+ for (ClassCourseTimeStatisticsRecord recordCourse : insertCourseList.stream().filter(item-> Objects.equals(item.getUserId(), teacher.getId())).collect(Collectors.toList())) {
|
|
|
+
|
|
|
+ recordCourse.setClassTimeStatisticsId(statistics.getId());
|
|
|
+
|
|
|
+ //费用设置jsonArray
|
|
|
+ JsonArray _costSetArray = parser.parse(recordCourse.getCostSetJson()).getAsJsonArray();
|
|
|
+ Map<String, Double> _costSetMap = new LinkedHashMap<>();
|
|
|
+ for (JsonElement jsonElement : _costSetArray) {
|
|
|
+ JsonObject object = jsonElement.getAsJsonObject();
|
|
|
+ _costSetMap.put(object.get("field").getAsString(), object.get("value").getAsDouble());
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal _zzxCost = BigDecimal.ZERO;//早自习费用
|
|
|
+ BigDecimal _zkCost = BigDecimal.ZERO;//正课费用
|
|
|
+ BigDecimal _wzxCost = BigDecimal.ZERO;//晚自习费用
|
|
|
+ BigDecimal _dkCost = BigDecimal.ZERO;//顶课费用,顶课老师加钱
|
|
|
+ BigDecimal _bdkCost = BigDecimal.ZERO;//顶课费用,被顶课老师扣钱
|
|
|
+ //计算超出的课时,需要先计算出每个周的开始结束时间
|
|
|
+ BigDecimal _ccksCost = BigDecimal.ZERO;
|
|
|
+ if ("FB1601".equals(recordCourse.getEmployType())) {
|
|
|
+ _zzxCost = BigDecimal.valueOf(_costSetMap.get("cost1"));
|
|
|
+ _zkCost = BigDecimal.valueOf(_costSetMap.get("cost3"));
|
|
|
+ _wzxCost = BigDecimal.valueOf(_costSetMap.get("cost5"));
|
|
|
+ _dkCost = BigDecimal.valueOf(_costSetMap.get("cost11"));
|
|
|
+ _bdkCost = BigDecimal.valueOf(_costSetMap.get("cost13") == null ? 0 : _costSetMap.get("cost13"));
|
|
|
+ _ccksCost = BigDecimal.valueOf(_costSetMap.get("cost9"));
|
|
|
+ } else {//外聘FB1605、合作人员FB1609
|
|
|
+ _zzxCost = BigDecimal.valueOf(_costSetMap.get("cost2"));
|
|
|
+ _zkCost = BigDecimal.valueOf(_costSetMap.get("cost4"));
|
|
|
+ _wzxCost = BigDecimal.valueOf(_costSetMap.get("cost6"));
|
|
|
+ _dkCost = BigDecimal.valueOf(_costSetMap.get("cost12"));
|
|
|
+ _bdkCost = BigDecimal.valueOf(_costSetMap.get("cost14") == null ? 0 : _costSetMap.get("cost14"));
|
|
|
+ _ccksCost = BigDecimal.valueOf(_costSetMap.get("cost10"));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ double _classTimeAmount = BigDecimal.valueOf(recordCourse.getClassTime7()).multiply(_zzxCost).doubleValue();
|
|
|
+ _classTimeAmount += BigDecimal.valueOf(recordCourse.getClassTime8()).multiply(_zkCost).doubleValue();
|
|
|
+ _classTimeAmount += BigDecimal.valueOf(recordCourse.getClassTime9()).multiply(_wzxCost).doubleValue();
|
|
|
+ recordCourse.setClassTimeAmount(_classTimeAmount);
|
|
|
+
|
|
|
+
|
|
|
+ BigDecimal _reduceTimeAmount = BigDecimal.valueOf(recordCourse.getClassTime20()).multiply(_dkCost);
|
|
|
+ //计算被扣除的费用
|
|
|
+ _reduceTimeAmount = _reduceTimeAmount.subtract(_bdkCost.multiply(BigDecimal.valueOf(recordCourse.getClassTime21())));
|
|
|
+
|
|
|
+// //计算出总的超出课时并计算超课时费
|
|
|
+// double _beyondClassTimeAmount = BigDecimal.valueOf(allCcksTime).multiply(_ccksCost).doubleValue();
|
|
|
+//
|
|
|
+// if (!"FB1601".equals(record.getEmployType())) {
|
|
|
+// recordCourse.setBeyondClassTimeAmount(_beyondClassTimeAmount);
|
|
|
+// }
|
|
|
+
|
|
|
+ //计算总金额,课时费+超课时费
|
|
|
+// Double totalAmount = _classTimeAmount + _beyondClassTimeAmount + _reduceTimeAmount.doubleValue();
|
|
|
+ Double totalAmount = _classTimeAmount + _reduceTimeAmount.doubleValue();
|
|
|
+ recordCourse.setTotalAmount(totalAmount);
|
|
|
+ }
|
|
|
+
|
|
|
+ double _classTimeAmount = insertCourseList.stream().filter(x -> Objects.equals(x.getUserId(), teacher.getId())).mapToDouble(ClassCourseTimeStatisticsRecord::getClassTimeAmount).sum();
|
|
|
+
|
|
|
+ classTimeAmount+=_classTimeAmount;
|
|
|
+
|
|
|
record.setClassTimeAmount(classTimeAmount);
|
|
|
//计算超出的课时,需要先计算出每个周的开始结束时间
|
|
|
BigDecimal ccksCost = BigDecimal.ZERO;
|
|
|
@@ -1095,65 +1165,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
insertList.add(record);
|
|
|
}
|
|
|
|
|
|
- // 计算费用
|
|
|
- for (ClassCourseTimeStatisticsRecord record : insertCourseList) {
|
|
|
-
|
|
|
- record.setClassTimeStatisticsId(statistics.getId());
|
|
|
-
|
|
|
- //费用设置jsonArray
|
|
|
- JsonArray _costSetArray = parser.parse(record.getCostSetJson()).getAsJsonArray();
|
|
|
- Map<String, Double> _costSetMap = new LinkedHashMap<>();
|
|
|
- for (JsonElement jsonElement : _costSetArray) {
|
|
|
- JsonObject object = jsonElement.getAsJsonObject();
|
|
|
- _costSetMap.put(object.get("field").getAsString(), object.get("value").getAsDouble());
|
|
|
- }
|
|
|
-
|
|
|
- BigDecimal _zzxCost = BigDecimal.ZERO;//早自习费用
|
|
|
- BigDecimal _zkCost = BigDecimal.ZERO;//正课费用
|
|
|
- BigDecimal _wzxCost = BigDecimal.ZERO;//晚自习费用
|
|
|
- BigDecimal _dkCost = BigDecimal.ZERO;//顶课费用,顶课老师加钱
|
|
|
- BigDecimal _bdkCost = BigDecimal.ZERO;//顶课费用,被顶课老师扣钱
|
|
|
- //计算超出的课时,需要先计算出每个周的开始结束时间
|
|
|
- BigDecimal _ccksCost = BigDecimal.ZERO;
|
|
|
- if ("FB1601".equals(record.getEmployType())) {
|
|
|
- _zzxCost = BigDecimal.valueOf(_costSetMap.get("cost1"));
|
|
|
- _zkCost = BigDecimal.valueOf(_costSetMap.get("cost3"));
|
|
|
- _wzxCost = BigDecimal.valueOf(_costSetMap.get("cost5"));
|
|
|
- _dkCost = BigDecimal.valueOf(_costSetMap.get("cost11"));
|
|
|
- _bdkCost = BigDecimal.valueOf(_costSetMap.get("cost13") == null ? 0 : _costSetMap.get("cost13"));
|
|
|
- _ccksCost = BigDecimal.valueOf(_costSetMap.get("cost9"));
|
|
|
- } else {//外聘FB1605、合作人员FB1609
|
|
|
- _zzxCost = BigDecimal.valueOf(_costSetMap.get("cost2"));
|
|
|
- _zkCost = BigDecimal.valueOf(_costSetMap.get("cost4"));
|
|
|
- _wzxCost = BigDecimal.valueOf(_costSetMap.get("cost6"));
|
|
|
- _dkCost = BigDecimal.valueOf(_costSetMap.get("cost12"));
|
|
|
- _bdkCost = BigDecimal.valueOf(_costSetMap.get("cost14") == null ? 0 : _costSetMap.get("cost14"));
|
|
|
- _ccksCost = BigDecimal.valueOf(_costSetMap.get("cost10"));
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
- double _classTimeAmount = BigDecimal.valueOf(record.getClassTime7()).multiply(_zzxCost).doubleValue();
|
|
|
- _classTimeAmount += BigDecimal.valueOf(record.getClassTime8()).multiply(_zkCost).doubleValue();
|
|
|
- _classTimeAmount += BigDecimal.valueOf(record.getClassTime9()).multiply(_wzxCost).doubleValue();
|
|
|
- record.setClassTimeAmount(_classTimeAmount);
|
|
|
-
|
|
|
-
|
|
|
- BigDecimal _reduceTimeAmount = BigDecimal.valueOf(record.getClassTime20()).multiply(_dkCost);
|
|
|
- //计算被扣除的费用
|
|
|
- _reduceTimeAmount = _reduceTimeAmount.subtract(_bdkCost.multiply(BigDecimal.valueOf(record.getClassTime21())));
|
|
|
-
|
|
|
-// //计算出总的超出课时并计算超课时费
|
|
|
-// double _beyondClassTimeAmount = BigDecimal.valueOf(allCcksTime).multiply(_ccksCost).doubleValue();
|
|
|
-//
|
|
|
-// if (!"FB1601".equals(record.getEmployType())) {
|
|
|
-// record.setBeyondClassTimeAmount(_beyondClassTimeAmount);
|
|
|
-// }
|
|
|
-
|
|
|
- //计算总金额,课时费+超课时费
|
|
|
-// Double totalAmount = _classTimeAmount + _beyondClassTimeAmount + _reduceTimeAmount.doubleValue();
|
|
|
- Double totalAmount = _classTimeAmount + _reduceTimeAmount.doubleValue();
|
|
|
- record.setTotalAmount(totalAmount);
|
|
|
- }
|
|
|
|
|
|
if (!insertList.isEmpty()) {
|
|
|
//先删除
|
|
|
@@ -1185,6 +1197,11 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
|
|
|
|
|
|
// 检查数据
|
|
|
private ClassCourseTimeStatisticsRecord checkCourseSet(List<ClassCourseTimeStatisticsSet> classCourseTimeStatisticsSetList,List<ClassCourseTimeStatisticsRecord> insertCourseList,Long classId,Long courseId,TeacherListVo teacher) {
|
|
|
+
|
|
|
+ if(classId==null|| courseId==null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
// 课程明细统计
|
|
|
ClassCourseTimeStatisticsSet classCourseTimeStatisticsSet = classCourseTimeStatisticsSetList.stream()
|
|
|
.filter(item -> classId.equals(item.getClassId()) && courseId.equals(item.getCourseId()))
|