|
@@ -306,7 +306,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
}
|
|
|
if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
- SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
|
+ SalarySettlementSignEnum signOutStatus = getSignOutStatus(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime(), teachMode,tenantId);
|
|
|
BigDecimal signOutDeductCost = getSignInDeduce(expectSalary, signOutStatus, teachMode,tenantId);
|
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
|
deductCost = deductCost.add(signOutDeductCost);
|
|
@@ -401,11 +401,17 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
//扣除费用
|
|
|
BigDecimal deductCost = BigDecimal.ZERO;
|
|
|
List<TeacherAttendance> courseTeacherAttendances = teacherCourseAttendanceMap.get(org.apache.commons.lang3.StringUtils.joinWith(":", courseScheduleTeacherSalary.getCourseScheduleId(), courseScheduleTeacherSalary.getUserId()));
|
|
|
-
|
|
|
+ TeacherAttendance teacherAttendance = null;
|
|
|
+ if(courseTeacherAttendances != null && courseTeacherAttendances.size() > 0){
|
|
|
+ teacherAttendance = courseTeacherAttendances.get(0);
|
|
|
+ }
|
|
|
+ if(teacherAttendance == null){
|
|
|
+ teacherAttendance = new TeacherAttendance();
|
|
|
+ }
|
|
|
CourseSchedule courseSchedule = courseScheduleTeacherSalary.getCourseSchedule();
|
|
|
TeachModeEnum teachMode = courseScheduleTeacherSalary.getCourseSchedule().getTeachMode();
|
|
|
if(TeachModeEnum.OFFLINE == teachMode){
|
|
|
- if(true){
|
|
|
+ if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
|
|
|
String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_IN_GPS_ERROR_CUT_SALARY, tenantId);
|
|
|
String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_IN_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
|
|
|
BigDecimal signInGpsCutAmount = getCutAmount(c, c1, expectSalary);
|
|
@@ -413,7 +419,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
deductReasons.add("签到经纬度异常扣除" + signInGpsCutAmount);
|
|
|
}
|
|
|
}
|
|
|
- if(true){
|
|
|
+ if(teacherAttendance.getSignOutStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY, tenantId);
|
|
|
String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
|
|
|
BigDecimal signOutGpsCutAmount = getCutAmount(c, c1, expectSalary);
|
|
@@ -422,13 +428,6 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
}
|
|
|
}else {
|
|
|
- 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);
|
|
|
BigDecimal signInDeductCost = getSignInDeduce(expectSalary, signInStatus, teachMode,tenantId);
|
|
@@ -438,7 +437,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
}
|
|
|
if(teacherAttendance.getSignOutStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
- SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
|
+ SalarySettlementSignEnum signOutStatus = getSignOutStatus(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime(), teachMode,tenantId);
|
|
|
BigDecimal signOutDeductCost = getSignInDeduce(expectSalary, signOutStatus, teachMode,tenantId);
|
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
|
deductCost = deductCost.add(signOutDeductCost);
|
|
@@ -479,7 +478,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
|
|
|
//获取签退状态
|
|
|
- public SalarySettlementSignEnum getSignOutStatus(Date signOutTime,Date courseEndTime,TeachModeEnum teachModeEnum){
|
|
|
+ public SalarySettlementSignEnum getSignOutStatus(Date signOutTime,Date courseEndTime,TeachModeEnum teachModeEnum,Integer tenantId){
|
|
|
if(signOutTime == null){
|
|
|
return SalarySettlementSignEnum.NOT_OUT;
|
|
|
}
|
|
@@ -490,7 +489,6 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
if(signOutCourseTimeBetween <= 0){
|
|
|
return SalarySettlementSignEnum.NORMAL_OUT;
|
|
|
}
|
|
|
- Integer tenantId = TenantContextHolder.getTenantId();
|
|
|
//异常签退规则
|
|
|
String configValue = null;
|
|
|
if(teachModeEnum == TeachModeEnum.ONLINE){
|
|
@@ -768,7 +766,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
}
|
|
|
if(teacherAttendance.getSignOutStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
- SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
|
+ SalarySettlementSignEnum signOutStatus = getSignOutStatus(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime(), teachMode,tenantId);
|
|
|
BigDecimal signOutDeductCost = getSignInDeduce(teacherSalary, signOutStatus, teachMode,tenantId);
|
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
|
deductCost = deductCost.add(signOutDeductCost);
|
|
@@ -1662,7 +1660,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
}
|
|
|
if(teacherAttendance.getSignOutStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
- SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
|
+ SalarySettlementSignEnum signOutStatus = getSignOutStatus(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime(), teachMode,tenantId);
|
|
|
BigDecimal signOutDeductCost = getSignInDeduce(teacherSalary, signOutStatus, teachMode,tenantId);
|
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
|
deductCost = deductCost.add(signOutDeductCost);
|
|
@@ -1782,7 +1780,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
}
|
|
|
if(teacherAttendance.getSignOutStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
- SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
|
+ SalarySettlementSignEnum signOutStatus = getSignOutStatus(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime(), teachMode,tenantId);
|
|
|
BigDecimal signOutDeductCost = getSignInDeduce(expectSalary, signOutStatus, teachMode,tenantId);
|
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
|
deductCost = deductCost.add(signOutDeductCost);
|
|
@@ -1857,7 +1855,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
}
|
|
|
}
|
|
|
if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO){
|
|
|
- SalarySettlementSignEnum signOutStatus = getSignInStatus(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime(), teachMode,tenantId);
|
|
|
+ SalarySettlementSignEnum signOutStatus = getSignOutStatus(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime(), teachMode,tenantId);
|
|
|
BigDecimal signOutDeductCost = getSignInDeduce(expectSalary, signOutStatus, teachMode,tenantId);
|
|
|
if(signOutDeductCost.compareTo(BigDecimal.ZERO) > 0){
|
|
|
deductCost = deductCost.add(signOutDeductCost);
|