Kaynağa Gözat

后台消息推送修改

zouxuan 3 yıl önce
ebeveyn
işleme
434396ddc9

+ 4 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DeductReasonEnum.java

@@ -9,8 +9,10 @@ import com.ym.mec.common.enums.BaseEnum;
 public enum DeductReasonEnum implements BaseEnum<String,DeductReasonEnum> {
     SIGN_IN_TIME_ERR("SIGN_IN_TIME_ERR", "签到时间异常", ""),
     SIGN_OUT_TIME_ERR("SIGN_OUT_TIME_ERR", "签退时间异常", ""),
-    GPS_ERR_IN("GPS_ERR", "签到位置异常", ""),
-    GPS_ERR_OUT("GPS_ERR", "签退位置异常", ""),
+    GPS_ERR_IN("GPS_ERR_IN", "签到位置异常", ""),
+    GPS_ERR_OUT("GPS_ERR_OUT", "签退位置异常", ""),
+    NO_GPS("NO_GPS", "未点名", ""),
+    GPS_ERR("GPS_ERR", "点名位置异常", ""),
     NOT_SETTLEMENT("NOT_SETTLEMENT", "不结算课酬", "特殊老师不结算课酬"),
     TRAIL("TRAIL", "试用期扣减", "试用期老师课酬按系统配置的折扣计算"),
 

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -105,6 +105,15 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
     String OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY = "offline_sign_out_gps_error_cut_salary";
     //线下课签退定位异常扣除金额
     String OFFLINE_SIGN_OUT_GPS_ERROR_CUT_SALARY_UNIT = "offline_sign_out_gps_error_cut_salary_unit";
+    //vip线下课点名定位异常扣除金额
+    String VIP_OFFLINE_GPS_ERROR_CUT_SALARY = "vip_offline_gps_error_cut_salary";
+    //vip线下课点名定位异常扣除金额单位
+    String VIP_OFFLINE_GPS_ERROR_CUT_SALARY_UNIT = "vip_offline_gps_error_cut_salary_unit";
+    //vip线下课未点名扣除金额
+    String VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY = "vip_offline_no_gps_error_cut_salary";
+    //vip线下课未点名扣除金额单位
+    String VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY_UNIT = "vip_offline_no_gps_error_cut_salary_unit";
+
     //试用期老师课酬发放百分比
     String PROBATION_TEACHER_SALARY = "probation_teacher_salary";
 

+ 25 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -411,22 +411,23 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             CourseSchedule courseSchedule = courseScheduleTeacherSalary.getCourseSchedule();
             TeachModeEnum teachMode = courseScheduleTeacherSalary.getCourseSchedule().getTeachMode();
             if(TeachModeEnum.OFFLINE == teachMode){
-                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);
+                //如果没签到也没签退,那么就是未点名
+                if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignOutStatus() == null){
+                    String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY, tenantId);
+                    String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
                     BigDecimal signInGpsCutAmount = getCutAmount(c, c1, expectSalary);
                     if(signInGpsCutAmount.compareTo(BigDecimal.ZERO) > 0){
                         deductCost = deductCost.add(signInGpsCutAmount);
-                        deductReasons.add("签到经纬度异常扣除" + signInGpsCutAmount);
+                        deductReasons.add("VIP线下课未点名扣除" + signInGpsCutAmount);
                     }
                 }
-                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);
+                if(teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
+                    String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_GPS_ERROR_CUT_SALARY, tenantId);
+                    String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
                     BigDecimal signOutGpsCutAmount = getCutAmount(c, c1, expectSalary);
                     if(signOutGpsCutAmount.compareTo(BigDecimal.ZERO) > 0){
                         deductCost = deductCost.add(signOutGpsCutAmount);
-                        deductReasons.add("签退经纬度异常扣除" + signOutGpsCutAmount);
+                        deductReasons.add("VIP线下课点名经纬度异常扣除" + signOutGpsCutAmount);
                     }
                 }
             }else {
@@ -1783,33 +1784,34 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //扣除费用
         BigDecimal deductCost = BigDecimal.ZERO;
         TeachModeEnum teachMode = courseSchedule.getTeachMode();
+        TeacherAttendance teacherAttendance = null;
+        if(teacherAttendances != null && teacherAttendances.size() > 0){
+            teacherAttendance = teacherAttendances.get(0);
+        }
+        if(teacherAttendance == null){
+            teacherAttendance = new TeacherAttendance();
+        }
         if(TeachModeEnum.OFFLINE == teachMode){
-            if(true){
-                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);
+            //如果没签到也没签退,那么就是未点名
+            if(teacherAttendance.getSignInStatus() == null || teacherAttendance.getSignOutStatus() == null){
+                String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY, tenantId);
+                String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_NO_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
                 BigDecimal signInGpsCutAmount = getCutAmount(c, c1, expectSalary);
                 if(signInGpsCutAmount.compareTo(BigDecimal.ZERO) > 0){
                     deductCost = deductCost.add(signInGpsCutAmount);
-                    deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.GPS_ERR_IN, signInGpsCutAmount));
+                    deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.NO_GPS, signInGpsCutAmount));
                 }
             }
-            if(true){
-                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);
+            if(teacherAttendance.getSignOutStatus() == YesOrNoEnum.NO || teacherAttendance.getSignInStatus() == YesOrNoEnum.NO){
+                String c = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_GPS_ERROR_CUT_SALARY, tenantId);
+                String c1 = sysTenantConfigService.getTenantConfigValue(SysConfigService.VIP_OFFLINE_GPS_ERROR_CUT_SALARY_UNIT, tenantId);
                 BigDecimal signOutGpsCutAmount = getCutAmount(c, c1, expectSalary);
                 if(signOutGpsCutAmount.compareTo(BigDecimal.ZERO) > 0){
                     deductCost = deductCost.add(signOutGpsCutAmount);
-                    deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.GPS_ERR_OUT, signOutGpsCutAmount));
+                    deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.GPS_ERR, signOutGpsCutAmount));
                 }
             }
         }else {
-            TeacherAttendance teacherAttendance = null;
-            if(teacherAttendances != null && teacherAttendances.size() > 0){
-                teacherAttendance = teacherAttendances.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);