Browse Source

顶课计算规则调整

dzx 5 months ago
parent
commit
f0d2d88ea2

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

@@ -361,7 +361,6 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                 for (WeekTimeRangeVo timeRangeVo : weekTimeRangeVos) {
                     Double zkTimes = 0d;
                     Double wzxTimes = 0d;
-                    Double dkTimes = 0d;
                     Double tkTimes = 0d;
                     for (CourseListVo courseListVo : courseList) {
                         LocalDate scheduleDate = courseListVo.getScheduleDate();
@@ -385,16 +384,44 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                         }
 
                         if(courseListVo.getAdjustType() != null && !courseListVo.getAdjustType().isEmpty()){
-                            if(CourseAdjustTypeEnum.courseSubstitute.getCode().equals(courseListVo.getAdjustType())){
-                                dkTimes += weightSetMap.get(courseListVo.getShortName());
-                            }else if(CourseAdjustTypeEnum.courseExchange.getCode().equals(courseListVo.getAdjustType())){
+                            if(CourseAdjustTypeEnum.courseExchange.getCode().equals(courseListVo.getAdjustType())){
                                 tkTimes += weightSetMap.get(courseListVo.getShortName());
                             }
                         }
                     }
+                    //计算该老师发起的事假、病假顶课数据
+                    List<CourseListVo> substituteList = allSubstituteList.stream().filter(x -> x.getExchangeTeacherId().equals(teacher.getId()))
+                            .collect(Collectors.toList());
+                    Double reduceTime = 0d;//顶课课时
+                    for (CourseListVo courseListVo : substituteList) {
+                        Set<LocalDate> deleteDates = deleteMap.get(courseListVo.getClassId());
+                        if(deleteDates !=null && deleteDates.contains(courseListVo.getScheduleDate())){
+                            continue;
+                        }
+                        if(!( (courseListVo.getScheduleDate().equals(timeRangeVo.getMondayDate()) || courseListVo.getScheduleDate().isAfter(timeRangeVo.getMondayDate()))
+                                && (courseListVo.getScheduleDate().equals(timeRangeVo.getSundayDate()) || courseListVo.getScheduleDate().isBefore(timeRangeVo.getSundayDate())))){
+                            continue;
+                        }
+                        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;
+                        }
+                        if(!( (courseListVo.getScheduleDate().equals(timeRangeVo.getMondayDate()) || courseListVo.getScheduleDate().isAfter(timeRangeVo.getMondayDate()))
+                                && (courseListVo.getScheduleDate().equals(timeRangeVo.getSundayDate()) || courseListVo.getScheduleDate().isBefore(timeRangeVo.getSundayDate())))){
+                            continue;
+                        }
+                        reduceTime = reduceTime - weightSetMap.get(courseListVo.getShortName());
+                    }
+
                     timeRangeVo.setZkTimes(zkTimes);
                     timeRangeVo.setWzxTimes(wzxTimes);
-                    timeRangeVo.setDkTimes(dkTimes);
+                    timeRangeVo.setDkTimes(reduceTime);
                     timeRangeVo.setTkTimes(tkTimes);
                     allTimes += (zkTimes + wzxTimes);
                     if(zkTimes > ccksTime.doubleValue()){
@@ -479,7 +506,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
                         if("sick _leave".equals(courseListVo.getReason()) || "leave_absence".equals(courseListVo.getReason())){
                             bdkClassTime += weightSetMap.get(courseListVo.getShortName());
                         }
-                     }
+                    }
                     record.setClassTime10(reduceTime);
 
                     BigDecimal dkCost = BigDecimal.ZERO;//顶课费用,顶课老师加钱
@@ -847,7 +874,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
 
     /**
      * 生成第四行表头
-     * 表头内容:总课时(含调顶课节)、顶课(节)、课(节)、晚辅(节)、课时晚辅合计
+     * 表头内容:总课时(含调顶课节)、顶课(节)、课(节)、晚辅(节)、课时晚辅合计
      *
      * @param workbook
      * @param sheet
@@ -879,7 +906,7 @@ public class ClassTimeStatisticsServiceImpl extends MPJBaseServiceImpl<ClassTime
 
             index ++;
             Cell row1cell3 = row2.createCell(index);
-            row1cell3.setCellValue("课(节)");
+            row1cell3.setCellValue("课(节)");
             row1cell3.setCellStyle(cellStyle);
             index ++;
             Cell row1cell4 = row2.createCell(index);