|
@@ -511,7 +511,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
|
|
|
+ SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
|
|
|
double attendanceRange = 0;
|
|
|
if(Objects.nonNull(sysConfig)){
|
|
|
attendanceRange = Double.valueOf(sysConfig.getParanValue());
|
|
@@ -782,7 +782,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
//早退
|
|
|
deductCost = deductCost.add(teacherSalary.abs());
|
|
|
deductReasons.add("早退扣除全部课酬");
|
|
|
- }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween<=3600){
|
|
|
+ }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween>=3600){
|
|
|
//异常签退,扣除50元
|
|
|
deductCost = deductCost.add(new BigDecimal(50));
|
|
|
deductReasons.add("异常签退,扣除50元");
|
|
@@ -1749,7 +1749,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
deductCost = deductCost.add(teacherSalary.abs());
|
|
|
// deductReasons.add("早退扣除全部课酬");
|
|
|
deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.SIGN_OUT_TIME_ERR, teacherSalary.abs()));
|
|
|
- }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween<=3600){
|
|
|
+ }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween>=3600){
|
|
|
//异常签退,扣除50元
|
|
|
deductCost = deductCost.add(new BigDecimal(50));
|
|
|
// deductReasons.add("异常签退,扣除50元");
|
|
@@ -2018,13 +2018,20 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
idSchoolMap = schools.stream().collect(Collectors.toMap(School::getId, s->s, (s1, s2)->s1));
|
|
|
}
|
|
|
|
|
|
- //签到时间范围
|
|
|
- SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
|
|
|
+ //签到GPS范围
|
|
|
+ SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
|
|
|
double attendanceRange = 0;
|
|
|
if(Objects.nonNull(sysConfig)){
|
|
|
attendanceRange = Double.valueOf(sysConfig.getParanValue());
|
|
|
}
|
|
|
|
|
|
+ //签到GPS范围VIP
|
|
|
+ SysConfig vipSysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
|
|
|
+ double vipAttendanceRange = 0;
|
|
|
+ if(Objects.nonNull(vipSysConfig)){
|
|
|
+ vipAttendanceRange = Double.valueOf(vipSysConfig.getParanValue());
|
|
|
+ }
|
|
|
+
|
|
|
//教师签到记录
|
|
|
List<TeacherAttendance> allTeacherAttendances = teacherAttendanceDao.findByCourseSchedules(courseIds);
|
|
|
Map<Long, List<TeacherAttendance>> teacherCourseAttendanceMap = allTeacherAttendances.stream().filter(c->teacherId.equals(c.getTeacherId())).collect(Collectors.groupingBy(TeacherAttendance::getCourseScheduleId));
|
|
@@ -2049,9 +2056,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
calMusicCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
|
|
|
break;
|
|
|
case VIP:
|
|
|
- calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
|
|
|
+ calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, vipAttendanceRange);
|
|
|
break;
|
|
|
-
|
|
|
case PRACTICE:
|
|
|
calPracticeTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher);
|
|
|
break;
|
|
@@ -2075,6 +2081,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
|
|
|
teacherSalaryOverview.setAttendanceRange(attendanceRange);
|
|
|
+ teacherSalaryOverview.setVipAttendanceRange(vipAttendanceRange);
|
|
|
|
|
|
return teacherSalaryOverview;
|
|
|
}
|
|
@@ -2108,13 +2115,20 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
idSchoolMap = schools.stream().collect(Collectors.toMap(School::getId, s->s, (s1, s2)->s1));
|
|
|
}
|
|
|
|
|
|
- //签到时间范围
|
|
|
- SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
|
|
|
+ //签到GPS范围
|
|
|
+ SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
|
|
|
double attendanceRange = 0;
|
|
|
if(Objects.nonNull(sysConfig)){
|
|
|
attendanceRange = Double.valueOf(sysConfig.getParanValue());
|
|
|
}
|
|
|
|
|
|
+ //签到GPS范围VIP
|
|
|
+ SysConfig vipSysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
|
|
|
+ double vipAttendanceRange = 0;
|
|
|
+ if(Objects.nonNull(vipSysConfig)){
|
|
|
+ vipAttendanceRange = Double.valueOf(vipSysConfig.getParanValue());
|
|
|
+ }
|
|
|
+
|
|
|
//教师签到记录
|
|
|
List<TeacherAttendance> allTeacherAttendances = teacherAttendanceDao.findByCourseSchedules(courseIds);
|
|
|
Map<Long, List<TeacherAttendance>> teacherCourseAttendanceMap = allTeacherAttendances.stream().filter(c->queryInfo.getTeacherId().equals(c.getTeacherId())).collect(Collectors.groupingBy(TeacherAttendance::getCourseScheduleId));
|
|
@@ -2146,7 +2160,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
calMusicCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
|
|
|
break;
|
|
|
case VIP:
|
|
|
- calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
|
|
|
+ calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, vipAttendanceRange);
|
|
|
break;
|
|
|
case PRACTICE:
|
|
|
calPracticeTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher);
|
|
@@ -2183,10 +2197,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
teacherIncomeInfo.getTeacherAttendance().setSchoolLongitudeLatitude(school.getLongitudeLatitude());
|
|
|
}
|
|
|
teacherIncomeInfo.setBelongToDaya(teacherSalary.getBelongToDaya());
|
|
|
+ teacherIncomeInfo.setSortNum(courseSchedule.getStartClassTime().getTime()+courseSchedule.getId());
|
|
|
dataList.add(teacherIncomeInfo);
|
|
|
}
|
|
|
}
|
|
|
- dataList.sort(Comparator.comparing(TeacherIncomeDto::getId).reversed());
|
|
|
+ dataList.sort(Comparator.comparing(TeacherIncomeDto::getSortNum).reversed());
|
|
|
pageInfo.setRows(dataList);
|
|
|
return pageInfo;
|
|
|
}
|
|
@@ -2208,19 +2223,25 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
startDate = startDate.withMonth(3);
|
|
|
}
|
|
|
|
|
|
+ result.put("total", BigDecimal.ZERO);
|
|
|
+ result.put("salary", BigDecimal.ZERO);
|
|
|
+ result.put("data", Collections.emptyList());
|
|
|
+
|
|
|
if(startDate.compareTo(minDate)<0){
|
|
|
- result.put("total", BigDecimal.ZERO);
|
|
|
- result.put("salary", BigDecimal.ZERO);
|
|
|
- result.put("data", Collections.emptyList());
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
List<LocalDateBigDecimalMapDto> monthIncomeMapList = courseScheduleTeacherSalaryDao.teacherIncomeStat(teacherId, year, month);
|
|
|
|
|
|
+ if(CollectionUtils.isEmpty(monthIncomeMapList)){
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
if(Objects.isNull(month)){
|
|
|
Set<String> months = monthIncomeMapList.stream().map(e -> DateUtil.dateToString(e.getDate(), "yyyy-MM")).collect(Collectors.toSet());
|
|
|
|
|
|
LocalDate now = LocalDate.now();
|
|
|
+ now = now.plusMonths(-1);
|
|
|
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM");
|
|
|
while (startDate.compareTo(now)<=0&&year.equals(startDate.get(ChronoField.YEAR))){
|
|
|
String dateStr = dateFormatter.format(startDate);
|
|
@@ -2264,6 +2285,6 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
userMap.put(teacherId, teacherId.toString());
|
|
|
}
|
|
|
sysMessageService.batchPushMessage(MessageTypeEnum.TEACHER_INCOME_REMIND,
|
|
|
- userMap, null, 0, "12", "TEACHER","income_remind.mp3");
|
|
|
+ userMap, null, 0, "12", "TEACHER","income_remind.mp3","income_remind_channel");
|
|
|
}
|
|
|
}
|