Browse Source

feat:不结算课酬的老师课酬实际结算时为0

Joburgess 4 years ago
parent
commit
2017d728f4

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

@@ -260,6 +260,15 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
 
+            if(Objects.isNull(teacher)||(Objects.nonNull(teacher.getIsSettlementSalary())&&!teacher.getIsSettlementSalary())){
+                courseScheduleTeacherSalary.setDeductionReason("不结算课酬");
+
+                courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
+                courseScheduleTeacherSalary.setSettlementTime(now);
+                courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
+                return;
+            }
+
 //            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());
 
@@ -390,6 +399,15 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
 
+            if(Objects.isNull(teacher)||(Objects.nonNull(teacher.getIsSettlementSalary())&&!teacher.getIsSettlementSalary())){
+                courseScheduleTeacherSalary.setDeductionReason("不结算课酬");
+
+                courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
+                courseScheduleTeacherSalary.setSettlementTime(now);
+                courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
+                return;
+            }
+
 //            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());
 
@@ -570,6 +588,15 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
 
+            if(Objects.isNull(teacher)||(Objects.nonNull(teacher.getIsSettlementSalary())&&!teacher.getIsSettlementSalary())){
+                courseScheduleTeacherSalary.setDeductionReason("不结算课酬");
+
+                courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
+                courseScheduleTeacherSalary.setSettlementTime(now);
+                courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
+                continue;
+            }
+
             if(CourseSchedule.CourseScheduleType.MUSIC_NETWORK.equals(courseSchedule.getType())||CourseSchedule.CourseScheduleType.HIGH_ONLINE.equals(courseSchedule.getType())){
                 Long normalStudentNum = courseNormalStudentsMap.get(courseSchedule.getId());
                 if(Objects.isNull(normalStudentNum)){
@@ -1558,6 +1585,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     public void calMusicCourseTeacherActualSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary,
                                                   List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange) {
 
+        if(Objects.isNull(teacher)||(Objects.nonNull(teacher.getIsSettlementSalary())&&!teacher.getIsSettlementSalary())){
+            courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
+            return;
+        }
+
         BigDecimal teacherSalary = courseScheduleTeacherSalary.getExpectSalary();
 
         if(CourseSchedule.CourseScheduleType.MUSIC_NETWORK.equals(courseSchedule.getType())||CourseSchedule.CourseScheduleType.HIGH_ONLINE.equals(courseSchedule.getType())){
@@ -1788,7 +1820,12 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     public void calVipCourseTeacherActualSalary(CourseSchedule courseSchedule, CourseScheduleTeacherSalary courseScheduleTeacherSalary,
                                                 List<TeacherAttendance> teacherAttendances, School school, Teacher teacher, double attendanceRange) {
         List<TeacherSalaryDeductReasonDto> deductReasons = new ArrayList<>();
-
+        
+        if(Objects.isNull(teacher)||(Objects.nonNull(teacher.getIsSettlementSalary())&&!teacher.getIsSettlementSalary())){
+            courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
+            return;
+        }
+        
         BigDecimal expectSalary = courseScheduleTeacherSalary.getExpectSalary();
 
         BigDecimal subsidy = new BigDecimal(0);
@@ -1891,6 +1928,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                                                List<TeacherAttendance> teacherAttendances, School school, Teacher teacher) {
         List<TeacherSalaryDeductReasonDto> deductReasons = new ArrayList<>();
 
+        if(Objects.isNull(teacher)||(Objects.nonNull(teacher.getIsSettlementSalary())&&!teacher.getIsSettlementSalary())){
+            courseScheduleTeacherSalary.setActualSalary(BigDecimal.ZERO);
+            return;
+        }
+        
         BigDecimal expectSalary = courseScheduleTeacherSalary.getExpectSalary();
 
         BigDecimal subsidy = new BigDecimal(0);

+ 0 - 6
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -296,12 +296,10 @@
 			course_schedule_teacher_salary csts
 			LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
 			LEFT JOIN vip_group vg ON vg.id_ = cs.music_group_id_
-			LEFT JOIN teacher tea ON csts.user_id_=tea.id_
 		WHERE 1=1
 		<if test="startDate != null">
 			AND cs.class_date_ BETWEEN #{startDate} AND #{endDate}
 		</if>
-		AND tea.is_settlement_salary_ = 1
 		AND cs.group_type_ = 'VIP' AND vg.organ_id_ != 41
 		AND csts.settlement_time_ IS NULL
 		AND (cs.del_flag_ IS NULL OR cs.del_flag_=0)
@@ -328,12 +326,10 @@
 		FROM
 			course_schedule_teacher_salary csts
 			LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
-			LEFT JOIN teacher tea ON csts.user_id_=tea.id_
 		WHERE 1=1
 		<if test="startDate != null">
 			AND cs.class_date_ BETWEEN #{startDate} AND #{endDate}
 		</if>
-		AND tea.is_settlement_salary_ = 1
 		AND cs.type_ = 'PRACTICE'
 		AND csts.settlement_time_ IS NULL
 		AND (cs.del_flag_ IS NULL OR cs.del_flag_=0)
@@ -446,12 +442,10 @@
 		FROM course_schedule_teacher_salary csts
 			LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = csts.course_schedule_id_
 			LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
-			LEFT JOIN teacher tea ON csts.user_id_=tea.id_
 		WHERE csts.course_schedule_id_ IN
 		<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
 			#{courseScheduleId}
 		</foreach>
-		AND tea.is_settlement_salary_=1
 		AND csts.settlement_time_ IS NULL
 	</select>