|
@@ -287,10 +287,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
|
|
List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
|
|
CourseSchedule courseSchedule = courseScheduleTeacherSalary.getCourseSchedule();
|
|
CourseSchedule courseSchedule = courseScheduleTeacherSalary.getCourseSchedule();
|
|
- TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
|
|
|
|
//获取签到状态
|
|
//获取签到状态
|
|
TeachModeEnum teachMode = courseScheduleTeacherSalary.getCourseSchedule().getTeachMode();
|
|
TeachModeEnum teachMode = courseScheduleTeacherSalary.getCourseSchedule().getTeachMode();
|
|
- if(teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
|
|
|
|
|
|
+ TeacherAttendance teacherAttendance = null;
|
|
|
|
+ if(courseTeacherAttendances != null && courseTeacherAttendances.size() > 0){
|
|
|
|
+ teacherAttendance = courseTeacherAttendances.get(0);
|
|
|
|
+ }
|
|
|
|
+ if(teacherAttendance == null){
|
|
|
|
+ teacherAttendance = new TeacherAttendance();
|
|
|
|
+ }
|
|
|
|
+ if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
|
|
SalarySettlementSignEnum signInStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
SalarySettlementSignEnum signInStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
BigDecimal signInDeductCost = getSignInDeduce(expectSalary, signInStatus, teachMode,tenantId);
|
|
BigDecimal signInDeductCost = getSignInDeduce(expectSalary, signInStatus, teachMode,tenantId);
|
|
if(signInDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
if(signInDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
@@ -298,7 +304,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
deductReasons.add("签到状态异常扣除课酬" + signInDeductCost);
|
|
deductReasons.add("签到状态异常扣除课酬" + signInDeductCost);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
|
|
|
+ if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
BigDecimal signOutDeductCost = getSignInDeduce(expectSalary, signOutStatus, teachMode,tenantId);
|
|
BigDecimal signOutDeductCost = getSignInDeduce(expectSalary, signOutStatus, teachMode,tenantId);
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
@@ -419,7 +425,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
if(courseTeacherAttendances != null && courseTeacherAttendances.size() > 0){
|
|
if(courseTeacherAttendances != null && courseTeacherAttendances.size() > 0){
|
|
teacherAttendance = courseTeacherAttendances.get(0);
|
|
teacherAttendance = courseTeacherAttendances.get(0);
|
|
}
|
|
}
|
|
- if(teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
|
|
|
|
|
|
+ if(teacherAttendance == null){
|
|
|
|
+ teacherAttendance = new TeacherAttendance();
|
|
|
|
+ }
|
|
|
|
+ if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
|
|
SalarySettlementSignEnum signInStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
SalarySettlementSignEnum signInStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
BigDecimal signInDeductCost = getSignInDeduce(expectSalary, signInStatus, teachMode,tenantId);
|
|
BigDecimal signInDeductCost = getSignInDeduce(expectSalary, signInStatus, teachMode,tenantId);
|
|
if(signInDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
if(signInDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
@@ -427,7 +436,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
deductReasons.add("签到状态异常扣除课酬" + signInDeductCost);
|
|
deductReasons.add("签到状态异常扣除课酬" + signInDeductCost);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
|
|
|
+ if(teacherAttendance.getSignOutStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
BigDecimal signOutDeductCost = getSignInDeduce(expectSalary, signOutStatus, teachMode,tenantId);
|
|
BigDecimal signOutDeductCost = getSignInDeduce(expectSalary, signOutStatus, teachMode,tenantId);
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
@@ -737,16 +746,17 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
|
|
|
//扣除费用
|
|
//扣除费用
|
|
BigDecimal deductCost = BigDecimal.ZERO;
|
|
BigDecimal deductCost = BigDecimal.ZERO;
|
|
-
|
|
|
|
|
|
+ //获取签到状态
|
|
|
|
+ TeachModeEnum teachMode = courseScheduleTeacherSalary.getCourseSchedule().getTeachMode();
|
|
List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
|
|
List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
|
|
TeacherAttendance teacherAttendance = null;
|
|
TeacherAttendance teacherAttendance = null;
|
|
if(courseTeacherAttendances != null && courseTeacherAttendances.size() > 0){
|
|
if(courseTeacherAttendances != null && courseTeacherAttendances.size() > 0){
|
|
teacherAttendance = courseTeacherAttendances.get(0);
|
|
teacherAttendance = courseTeacherAttendances.get(0);
|
|
}
|
|
}
|
|
-
|
|
|
|
- //获取签到状态
|
|
|
|
- TeachModeEnum teachMode = courseScheduleTeacherSalary.getCourseSchedule().getTeachMode();
|
|
|
|
- if(teacherAttendance == null || teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
|
|
|
|
|
|
+ if(teacherAttendance == null){
|
|
|
|
+ teacherAttendance = new TeacherAttendance();
|
|
|
|
+ }
|
|
|
|
+ if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
|
|
SalarySettlementSignEnum signInStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
SalarySettlementSignEnum signInStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
BigDecimal signInDeductCost = getSignInDeduce(teacherSalary, signInStatus, teachMode,tenantId);
|
|
BigDecimal signInDeductCost = getSignInDeduce(teacherSalary, signInStatus, teachMode,tenantId);
|
|
if(signInDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
if(signInDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
@@ -754,7 +764,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
deductReasons.add("签到状态异常扣除课酬" + signInDeductCost);
|
|
deductReasons.add("签到状态异常扣除课酬" + signInDeductCost);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if(teacherAttendance == null || teacherAttendance.getSignOutStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
|
|
|
+ if(teacherAttendance.getSignOutStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
BigDecimal signOutDeductCost = getSignInDeduce(teacherSalary, signOutStatus, teachMode,tenantId);
|
|
BigDecimal signOutDeductCost = getSignInDeduce(teacherSalary, signOutStatus, teachMode,tenantId);
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
@@ -768,11 +778,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
School school = idSchoolMap.get(courseSchedule.getSchoolId());
|
|
School school = idSchoolMap.get(courseSchedule.getSchoolId());
|
|
if(school != null){
|
|
if(school != null){
|
|
Boolean signInRange = false;
|
|
Boolean signInRange = false;
|
|
- if(teacherAttendance == null || StringUtils.isEmpty(teacherAttendance.getSignInLongitudeLatitude())){
|
|
|
|
|
|
+ if(teacherAttendance != null && StringUtils.isNotEmpty(teacherAttendance.getSignInLongitudeLatitude())){
|
|
signInRange = getSignRange(school.getLongitudeLatitude(),teacherAttendance.getSignInLongitudeLatitude(),attendanceRange);
|
|
signInRange = getSignRange(school.getLongitudeLatitude(),teacherAttendance.getSignInLongitudeLatitude(),attendanceRange);
|
|
}
|
|
}
|
|
Boolean signOutRange = false;
|
|
Boolean signOutRange = false;
|
|
- if(teacherAttendance == null || StringUtils.isEmpty(teacherAttendance.getSignOutLongitudeLatitude())){
|
|
|
|
|
|
+ if(teacherAttendance != null || StringUtils.isNotEmpty(teacherAttendance.getSignOutLongitudeLatitude())){
|
|
signOutRange = getSignRange(school.getLongitudeLatitude(),teacherAttendance.getSignOutLongitudeLatitude(),attendanceRange);
|
|
signOutRange = getSignRange(school.getLongitudeLatitude(),teacherAttendance.getSignOutLongitudeLatitude(),attendanceRange);
|
|
}
|
|
}
|
|
if(!signInRange){
|
|
if(!signInRange){
|