zouxuan 3 år sedan
förälder
incheckning
aee2443d52

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/OrganizationDao.java

@@ -3,8 +3,6 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
-import sun.jvm.hotspot.opto.HaltNode;
-
 import java.util.List;
 import java.util.Map;
 import java.util.Set;

+ 16 - 18
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -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);