فهرست منبع

Merge branch 'master' into test

# Conflicts:
#	mec-common/audit-log/pom.xml
Joburgess 4 سال پیش
والد
کامیت
1ce0fcb567

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexErrorType.java

@@ -12,7 +12,7 @@ public enum IndexErrorType implements BaseEnum<String, IndexErrorType> {
     MUSIC_PATROL_ITEM("MUSIC_PATROL_ITEM", "乐团巡查事项异常"),
     MUSIC_PATROL_ITEM("MUSIC_PATROL_ITEM", "乐团巡查事项异常"),
 
 
     STUDENT_INFO("STUDENT_INFO", "学员处理"),
     STUDENT_INFO("STUDENT_INFO", "学员处理"),
-    STUDENT_NOT_PAYMENT("STUDENT_NOT_PAYMENT", "学员未缴费"),
+    STUDENT_NOT_PAYMENT("STUDENT_NOT_PAYMENT", "未缴费学员数"),
     STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP("STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP", "学员退团申请"),
     STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP("STUDENT_APPLY_FOR_QUIT_MUSIC_GROUP", "学员退团申请"),
     WAIT_CREATE_PAYMENT_CALENDER("WAIT_CREATE_PAYMENT_CALENDER", "待创建缴费项目"),
     WAIT_CREATE_PAYMENT_CALENDER("WAIT_CREATE_PAYMENT_CALENDER", "待创建缴费项目"),
     ATTENDANCE_ERR_STUDENT_NUM("COURSE_TRUANT_STUDENT_NUM", "学员考勤异常"),
     ATTENDANCE_ERR_STUDENT_NUM("COURSE_TRUANT_STUDENT_NUM", "学员考勤异常"),

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ProbationPeriodEnum.java

@@ -6,7 +6,8 @@ import com.ym.mec.common.enums.BaseEnum;
 public enum ProbationPeriodEnum implements BaseEnum<Integer, ProbationPeriodEnum> {
 public enum ProbationPeriodEnum implements BaseEnum<Integer, ProbationPeriodEnum> {
     NORMAL(0,"正式"),
     NORMAL(0,"正式"),
     TRY(1,"试用"),
     TRY(1,"试用"),
-    LEAVE(2,"离职");
+    LEAVE(2,"离职"),
+    INTERNSHIP(3,"实习");
 
 
     private Integer code;
     private Integer code;
 
 

+ 87 - 41
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -251,11 +251,22 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
 
 
-            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
-            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+//            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+//            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
 
 
-            //如果上课日期在转正日期之前的按80%结算
-            if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
+            //判断课程是否在试用期内
+            boolean trail = false;
+
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getEntryDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getEntryDate())>=0){
+                trail = true;
+            }
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())>=0){
+                trail = false;
+            }
+
+
+            //如果上课日期在试用期内按80%结算
+            if(trail){
                 expectSalary = expectSalary.multiply(new BigDecimal("0.8"));
                 expectSalary = expectSalary.multiply(new BigDecimal("0.8"));
                 deductReasons.add("未转正");
                 deductReasons.add("未转正");
             }
             }
@@ -265,10 +276,13 @@ 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()));
 
 
-            TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
+            TeacherAttendance teacherAttendance = null;
+            if(!CollectionUtils.isEmpty(courseTeacherAttendances)){
+                teacherAttendance = courseTeacherAttendances.get(0);
+            }
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())){
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())){
                 //未签到扣除全部课酬
                 //未签到扣除全部课酬
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("未签到扣除全部课酬");
                 deductReasons.add("未签到扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
                 //异常签到
                 //异常签到
@@ -276,18 +290,18 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 float signCourseTimeBetween = (float)signCourseTimeBetweenSeconds/(float)60;
                 float signCourseTimeBetween = (float)signCourseTimeBetweenSeconds/(float)60;
                 if(signCourseTimeBetween<=1&&signCourseTimeBetween>-3){
                 if(signCourseTimeBetween<=1&&signCourseTimeBetween>-3){
                     //课程开始前1分钟至开始后3分钟进入教室
                     //课程开始前1分钟至开始后3分钟进入教室
-                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除一半课酬");
                     deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除一半课酬");
                 }else if(signCourseTimeBetween<=-3){
                 }else if(signCourseTimeBetween<=-3){
                     //课程开始后3分钟后进入教室
                     //课程开始后3分钟后进入教室
-                    deductCost = deductCost.add(expectSalary);
+                    deductCost = deductCost.add(expectSalary.abs());
                     deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
                     deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
                 }
                 }
             }
             }
 
 
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())){
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())){
                 //未签退扣除全部课酬
                 //未签退扣除全部课酬
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("未签退扣除全部课酬");
                 deductReasons.add("未签退扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
                 //异常签退
                 //异常签退
@@ -296,11 +310,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
 
                 if(signOutCourseTimeBetween>3){
                 if(signOutCourseTimeBetween>3){
                     //课程开始前20分钟至开始后3分钟退出教室
                     //课程开始前20分钟至开始后3分钟退出教室
-                    deductCost = deductCost.add(expectSalary);
+                    deductCost = deductCost.add(expectSalary.abs());
                     deductReasons.add("课程结束前3分钟之前退出教室扣除全部课酬");
                     deductReasons.add("课程结束前3分钟之前退出教室扣除全部课酬");
                 }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                 }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                     //课程结束前3分钟后至课程结束前退出教室
                     //课程结束前3分钟后至课程结束前退出教室
-                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除一半课酬");
                     deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除一半课酬");
                 }
                 }
             }
             }
@@ -368,10 +382,21 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
 
 
-            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
-            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+//            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+//            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
 
 
-            if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
+            //判断课程是否在试用期内
+            boolean trail = false;
+
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getEntryDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getEntryDate())>=0){
+                trail = true;
+            }
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())>=0){
+                trail = false;
+            }
+
+            //如果上课日期在试用期内按80%结算
+            if(trail){
                 expectSalary = expectSalary.multiply(new BigDecimal("0.8"));
                 expectSalary = expectSalary.multiply(new BigDecimal("0.8"));
                 deductReasons.add("未转正");
                 deductReasons.add("未转正");
             }
             }
@@ -383,7 +408,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 //            TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
 //            TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(courseTeacherAttendances.get(0).getSignInStatus())){
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(courseTeacherAttendances.get(0).getSignInStatus())){
                 //未签到扣除全部课酬
                 //未签到扣除全部课酬
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("未签到扣除全部课酬");
                 deductReasons.add("未签到扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignInStatus())&&TeachModeEnum.ONLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignInStatus())&&TeachModeEnum.ONLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
                 //异常签到
                 //异常签到
@@ -391,21 +416,21 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 float signCourseTimeBetween = (float)signCourseTimeBetweenSeconds/(float)60;
                 float signCourseTimeBetween = (float)signCourseTimeBetweenSeconds/(float)60;
                 if(signCourseTimeBetween<=1&&signCourseTimeBetween>-3){
                 if(signCourseTimeBetween<=1&&signCourseTimeBetween>-3){
                     //课程开始前1分钟至开始后3分钟进入教室
                     //课程开始前1分钟至开始后3分钟进入教室
-                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除一半课酬");
                     deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除一半课酬");
                 }else if(signCourseTimeBetween<=-3){
                 }else if(signCourseTimeBetween<=-3){
                     //课程开始后3分钟后进入教室
                     //课程开始后3分钟后进入教室
-                    deductCost = deductCost.add(expectSalary);
+                    deductCost = deductCost.add(expectSalary.abs());
                     deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
                     deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
                 }
                 }
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignInStatus())&&TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignInStatus())&&TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
                 deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
             }
             }
 
 
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(courseTeacherAttendances.get(0).getSignOutStatus())){
             if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(courseTeacherAttendances.get(0).getSignOutStatus())){
                 //未签退扣除全部课酬
                 //未签退扣除全部课酬
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("未签退扣除全部课酬");
                 deductReasons.add("未签退扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignOutStatus())&&TeachModeEnum.ONLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignOutStatus())&&TeachModeEnum.ONLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
                 //异常签退
                 //异常签退
@@ -414,15 +439,15 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
 
                 if(signOutCourseTimeBetween>3){
                 if(signOutCourseTimeBetween>3){
                     //课程开始前20分钟至开始后3分钟退出教室
                     //课程开始前20分钟至开始后3分钟退出教室
-                    deductCost = deductCost.add(expectSalary);
+                    deductCost = deductCost.add(expectSalary.abs());
                     deductReasons.add("课程结束前3分钟之前退出教室扣除全部课酬");
                     deductReasons.add("课程结束前3分钟之前退出教室扣除全部课酬");
                 }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                 }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                     //课程结束前3分钟后至课程结束前退出教室
                     //课程结束前3分钟后至课程结束前退出教室
-                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(expectSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除一半课酬");
                     deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除一半课酬");
                 }
                 }
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignInStatus())&&TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
             }else if(YesOrNoEnum.NO.equals(courseTeacherAttendances.get(0).getSignInStatus())&&TeachModeEnum.OFFLINE.equals(courseScheduleTeacherSalary.getCourseSchedule().getTeachMode())){
-                deductCost = deductCost.add(expectSalary);
+                deductCost = deductCost.add(expectSalary.abs());
                 deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
                 deductReasons.add("点名时经纬度不在范围内扣除全部课酬");
             }
             }
 
 
@@ -558,12 +583,22 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 }
                 }
 
 
                 //未转正
                 //未转正
-                boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+//                boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0;
                 //试用期
                 //试用期
-                boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+//                boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+
+                //判断课程是否在试用期内
+                boolean trail = false;
+
+                if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getEntryDate())&&courseSchedule.getClassDate().compareTo(teacher.getEntryDate())>=0){
+                    trail = true;
+                }
+                if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())>=0){
+                    trail = false;
+                }
 
 
-                //如果上课日期在转正日期之前的按80%结算
-                if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
+                //如果上课日期在试用期内按80%结算
+                if(trail){
                     teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
                     teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
                     deductReasons.add("未转正");
                     deductReasons.add("未转正");
                 }
                 }
@@ -576,7 +611,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
                 TeacherAttendance teacherAttendance = courseTeacherAttendances.get(0);
                 if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())){
                 if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignInStatus())){
                     //未签到扣除全部课酬
                     //未签到扣除全部课酬
-                    deductCost = deductCost.add(teacherSalary);
+                    deductCost = deductCost.add(teacherSalary.abs());
                     deductReasons.add("未签到扣除全部课酬");
                     deductReasons.add("未签到扣除全部课酬");
                 }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
                 }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
                     //异常签到
                     //异常签到
@@ -584,18 +619,18 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     float signCourseTimeBetween = (float)signCourseTimeBetweenSeconds/(float)60;
                     float signCourseTimeBetween = (float)signCourseTimeBetweenSeconds/(float)60;
                     if(signCourseTimeBetween<=1&&signCourseTimeBetween>-3){
                     if(signCourseTimeBetween<=1&&signCourseTimeBetween>-3){
                         //课程开始前1分钟至开始后3分钟进入教室
                         //课程开始前1分钟至开始后3分钟进入教室
-                        deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                        deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)).abs());
                         deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除一半课酬");
                         deductReasons.add("课程开始前1分钟至开始后3分钟进入教室扣除一半课酬");
                     }else if(signCourseTimeBetween<=-3){
                     }else if(signCourseTimeBetween<=-3){
                         //课程开始后3分钟后进入教室
                         //课程开始后3分钟后进入教室
-                        deductCost = deductCost.add(teacherSalary);
+                        deductCost = deductCost.add(teacherSalary.abs());
                         deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
                         deductReasons.add("课程开始后3分钟进入教室扣除全部课酬");
                     }
                     }
                 }
                 }
 
 
                 if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())){
                 if(CollectionUtils.isEmpty(courseTeacherAttendances)||Objects.isNull(teacherAttendance.getSignOutStatus())){
                     //未签退扣除一半课酬
                     //未签退扣除一半课酬
-                    deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("未签退扣除一半课酬");
                     deductReasons.add("未签退扣除一半课酬");
                 }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
                 }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
                     //异常签退
                     //异常签退
@@ -604,11 +639,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
 
                     if(signOutCourseTimeBetween>3){
                     if(signOutCourseTimeBetween>3){
                         //课程开始前20分钟至开始后3分钟退出教室
                         //课程开始前20分钟至开始后3分钟退出教室
-                        deductCost = deductCost.add(teacherSalary);
+                        deductCost = deductCost.add(teacherSalary.abs());
                         deductReasons.add("课程结束前3分钟之前退出教室扣除全部课酬");
                         deductReasons.add("课程结束前3分钟之前退出教室扣除全部课酬");
                     }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                     }else if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                         //课程结束前3分钟后至课程结束前退出教室
                         //课程结束前3分钟后至课程结束前退出教室
-                        deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                        deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)).abs());
                         deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除一半课酬");
                         deductReasons.add("课程结束前3分钟后至课程结束前退出教室扣除一半课酬");
                     }
                     }
                 }
                 }
@@ -643,10 +678,21 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 deductReasons.add("教学点补贴:" + subsidy);
                 deductReasons.add("教学点补贴:" + subsidy);
             }
             }
 
 
-            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0;
-            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+//            boolean notPositive = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0;
+//            boolean isProbationPeriod = Objects.nonNull(teacher)&&Objects.nonNull(teacher.getIsProbationPeriod())&&ProbationPeriodEnum.TRY.equals(teacher.getIsProbationPeriod());
+
+            //判断课程是否在试用期内
+            boolean trail = false;
+
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getEntryDate())&&courseSchedule.getClassDate().compareTo(teacher.getEntryDate())>=0){
+                trail = true;
+            }
+            if(Objects.nonNull(teacher)&&Objects.nonNull(teacher.getFormalStaffDate())&&courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())>=0){
+                trail = false;
+            }
 
 
-            if(Objects.isNull(teacher)||notPositive||isProbationPeriod){
+            //如果上课日期在试用期内按80%结算
+            if(trail){
                 teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
                 teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
                 deductReasons.add("未转正");
                 deductReasons.add("未转正");
             }
             }
@@ -690,7 +736,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
 
             if(Objects.isNull(teacherAttendance)||Objects.isNull(teacherAttendance.getSignInStatus())){
             if(Objects.isNull(teacherAttendance)||Objects.isNull(teacherAttendance.getSignInStatus())){
                 //无签到记录扣除全部课酬
                 //无签到记录扣除全部课酬
-                deductCost = deductCost.add(teacherSalary);
+                deductCost = deductCost.add(teacherSalary.abs());
                 deductReasons.add("未签到扣除全部课酬");
                 deductReasons.add("未签到扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignInStatus())){
                 int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime());
                 int signCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignInTime(), courseSchedule.getStartClassTime());
@@ -701,11 +747,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     deductReasons.add("未提前20分钟打卡扣除50元");
                     deductReasons.add("未提前20分钟打卡扣除50元");
                 }else if(signCourseTimeBetween<=0&&signCourseTimeBetween>-30){
                 }else if(signCourseTimeBetween<=0&&signCourseTimeBetween>-30){
                     //迟到30分钟内扣除一半课酬
                     //迟到30分钟内扣除一半课酬
-                    deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)));
+                    deductCost = deductCost.add(teacherSalary.divide(new BigDecimal(2)).abs());
                     deductReasons.add("迟到30分钟内扣除一半课酬");
                     deductReasons.add("迟到30分钟内扣除一半课酬");
                 }else if(signCourseTimeBetween<=-30){
                 }else if(signCourseTimeBetween<=-30){
                     //迟到30分钟及以上扣除全部课酬
                     //迟到30分钟及以上扣除全部课酬
-                    deductCost = deductCost.add(teacherSalary);
+                    deductCost = deductCost.add(teacherSalary.abs());
                     deductReasons.add("迟到30分钟及以上扣除全部课酬");
                     deductReasons.add("迟到30分钟及以上扣除全部课酬");
                 }
                 }
                 if(!signInInRange){
                 if(!signInInRange){
@@ -719,14 +765,14 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
 
             if(Objects.isNull(teacherAttendance)||Objects.isNull(teacherAttendance.getSignOutStatus())){
             if(Objects.isNull(teacherAttendance)||Objects.isNull(teacherAttendance.getSignOutStatus())){
                 //未签退扣除全部课酬
                 //未签退扣除全部课酬
-                deductCost = deductCost.add(teacherSalary);
+                deductCost = deductCost.add(teacherSalary.abs());
                 deductReasons.add("未签退扣除全部课酬");
                 deductReasons.add("未签退扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
                 int signOutCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime());
                 int signOutCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime());
                 float signOutCourseTimeBetween = (float)signOutCourseTimeBetweenSeconds/(float) 60;
                 float signOutCourseTimeBetween = (float)signOutCourseTimeBetweenSeconds/(float) 60;
                 if(signOutCourseTimeBetween>3){
                 if(signOutCourseTimeBetween>3){
                     //早退
                     //早退
-                    deductCost = deductCost.add(teacherSalary);
+                    deductCost = deductCost.add(teacherSalary.abs());
                     deductReasons.add("早退扣除全部课酬");
                     deductReasons.add("早退扣除全部课酬");
                 }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween<=3600){
                 }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween<=3600){
                     //异常签退,扣除50元
                     //异常签退,扣除50元
@@ -743,7 +789,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
 
             if(!signInInRange&&!signOutInRange){
             if(!signInInRange&&!signOutInRange){
                 //签到签退GPS定位在指定距离外
                 //签到签退GPS定位在指定距离外
-                deductCost = deductCost.add(teacherSalary);
+                deductCost = deductCost.add(teacherSalary.abs());
                 deductReasons.add("签到签退GPS定位在指定距离外,扣除全部课酬");
                 deductReasons.add("签到签退GPS定位在指定距离外,扣除全部课酬");
             }
             }
 
 

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentInstrumentServiceImpl.java

@@ -111,6 +111,17 @@ public class StudentInstrumentServiceImpl extends BaseServiceImpl<Long, StudentI
         studentPaymentOrder.setCreateTime(date);
         studentPaymentOrder.setCreateTime(date);
         studentPaymentOrder.setUpdateTime(date);
         studentPaymentOrder.setUpdateTime(date);
         studentPaymentOrderService.insert(studentPaymentOrder);
         studentPaymentOrderService.insert(studentPaymentOrder);
+
+        StudentPaymentOrderDetail maintenanceOrderDetail = new StudentPaymentOrderDetail();
+        maintenanceOrderDetail.setType(OrderDetailTypeEnum.MAINTENANCE);
+        maintenanceOrderDetail.setPrice(orderAmount);
+        maintenanceOrderDetail.setRemitFee(BigDecimal.ZERO);
+        maintenanceOrderDetail.setCreateTime(date);
+        maintenanceOrderDetail.setUpdateTime(date);
+        maintenanceOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
+        maintenanceOrderDetail.setStudentInstrumentId(maintenancePayDto.getId());
+        studentPaymentOrderDetailDao.insert(maintenanceOrderDetail);
+
         studentPaymentOrder.setVersion(0);
         studentPaymentOrder.setVersion(0);
 
 
         if (amount.compareTo(BigDecimal.ZERO) == 0) {
         if (amount.compareTo(BigDecimal.ZERO) == 0) {

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -587,7 +587,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             BigDecimal reduce = repairGoodsDtos.stream().map(e -> e.getGroupPurchasePrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
             BigDecimal reduce = repairGoodsDtos.stream().map(e -> e.getGroupPurchasePrice()).reduce(BigDecimal.ZERO, BigDecimal::add);
             amount = amount.add(reduce);
             amount = amount.add(reduce);
         }
         }
-        amount = amount.subtract(repairInfo.getExemptionAmount());
+        amount = amount.subtract(studentRepair.getExemptionAmount());
 
 
         String orderNo = idGeneratorService.generatorId("payment") + "";
         String orderNo = idGeneratorService.generatorId("payment") + "";
         studentRepair.setIsUseBalancePayment(repairInfo.getIsUseBalancePayment());
         studentRepair.setIsUseBalancePayment(repairInfo.getIsUseBalancePayment());

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -65,7 +65,7 @@
         <if test="operatingTag != null">
         <if test="operatingTag != null">
             operating_tag_,
             operating_tag_,
         </if>
         </if>
-        teacher_id_,care_package_,come_on_package_,create_time_,update_time_,service_tag_update_time_)
+        teacher_id_,create_time_,update_time_,service_tag_update_time_)
         VALUES
         VALUES
         (#{userId},#{subjectIdList},
         (#{userId},#{subjectIdList},
         <if test="serviceTag != null">
         <if test="serviceTag != null">
@@ -74,7 +74,7 @@
         <if test="operatingTag != null">
         <if test="operatingTag != null">
             #{operatingTag},
             #{operatingTag},
         </if>
         </if>
-        #{teacherId},#{carePackage},#{comeOnPackage},NOW(),NOW(),NOW())
+        #{teacherId},NOW(),NOW(),NOW())
     </insert>
     </insert>
 
 
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.Student">
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.Student">

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -138,8 +138,8 @@
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Teacher" useGeneratedKeys="true" keyColumn="id"
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Teacher" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
             keyProperty="id">
         INSERT INTO teacher
         INSERT INTO teacher
-        (id_,organ_id_,job_type_,job_nature_,is_probation_period_,education_background_,graduate_school_,technical_titles_,work_unit_,subject_id_,entry_date_,demission_date_,formal_staff_date_,certificate_type_,certificate_num_,flow_organ_range_,introduction_,update_time_,create_time_,is_support_extra_practice_lesson_,is_support_course_schedule_rewards_rules_,idcard_front_img_,idcard_back_img_,idcard_hand_img_,memo_)
-        VALUES(#{id},#{organId},#{jobType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{jobNature},#{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationBackground},#{graduateSchool},#{technicalTitles},#{workUnit},#{subjectId},#{entryDate},#{demissionDate},#{formalStaffDate},#{certificateType},#{certificateNum},#{flowOrganRange},#{introduction},now(),now(),#{isSupportExtraPracticeLesson},#{isSupportCourseScheduleRewardsRules},#{idcardFrontImg},#{idcardBackImg},#{idcardHandImg},#{memo})
+        (id_,organ_id_,job_type_,job_nature_,is_probation_period_,education_background_,graduate_school_,technical_titles_,work_unit_,subject_id_,entry_date_,demission_date_,formal_staff_date_,certificate_type_,certificate_num_,flow_organ_range_,introduction_,update_time_,create_time_,is_support_course_schedule_rewards_rules_,idcard_front_img_,idcard_back_img_,idcard_hand_img_,memo_)
+        VALUES(#{id},#{organId},#{jobType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{jobNature},#{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationBackground},#{graduateSchool},#{technicalTitles},#{workUnit},#{subjectId},#{entryDate},#{demissionDate},#{formalStaffDate},#{certificateType},#{certificateNum},#{flowOrganRange},#{introduction},now(),now(),#{isSupportCourseScheduleRewardsRules},#{idcardFrontImg},#{idcardBackImg},#{idcardHandImg},#{memo})
     </insert>
     </insert>
 
 
     <insert id="addSysUser" parameterType="com.ym.mec.auth.api.entity.SysUser" useGeneratedKeys="true" keyColumn="id"
     <insert id="addSysUser" parameterType="com.ym.mec.auth.api.entity.SysUser" useGeneratedKeys="true" keyColumn="id"

+ 7 - 7
mec-common/audit-log/pom.xml

@@ -21,11 +21,11 @@
 			<groupId>com.yonge.mongodb</groupId>
 			<groupId>com.yonge.mongodb</groupId>
 			<artifactId>mongo-db</artifactId>
 			<artifactId>mongo-db</artifactId>
 		</dependency>
 		</dependency>
-		<dependency>
-			<groupId>io.swagger</groupId>
-			<artifactId>swagger-annotations</artifactId>
-			<version>1.5.20</version>
-			<scope>compile</scope>
-		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-annotations</artifactId>
+            <version>1.5.20</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
 </project>
 </project>