Explorar o código

Merge remote-tracking branch 'origin/master'

Joe %!s(int64=5) %!d(string=hai) anos
pai
achega
618ca724e3

+ 10 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -361,14 +361,14 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }
 
             //当前课程缴费学生数量
-            BigDecimal courseStudentNum = new BigDecimal(studentPaymentsWithCourse.size());
+//            BigDecimal courseStudentNum = new BigDecimal(studentPaymentsWithCourse.size());
 
             //教师预计课酬
-            BigDecimal expectSalary = courseScheduleTeacherSalary.getExpectSalary();
+            BigDecimal expectSalary = courseScheduleTeacherSalary.getTeacherActualSalary();
             //当前课程每个学生平均课酬
-            BigDecimal avgSalary = expectSalary.divide(courseStudentNum, CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+//            BigDecimal avgSalary = expectSalary.divide(courseStudentNum, CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
             //教师当前课程责任总占比,当前课程应得课酬
-            BigDecimal teacherLiabilityAllratio;
+//            BigDecimal teacherLiabilityAllratio;
 
             //当前课程学生投诉记录
             List<CourseScheduleComplaints> courseStudentComplaints = complaintsGroupByCourse.get(courseScheduleTeacherSalary.getCourseScheduleId());
@@ -382,15 +382,15 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     return;
                 }
                 //计算教师责任总占比
-                double teacherLiabilityRatioSum = courseStudentComplaints.stream().mapToDouble(courseScheduleComplaint -> Objects.isNull(courseScheduleComplaint.getTeacherLiabilityRatio()) ? 0 : courseScheduleComplaint.getTeacherLiabilityRatio()).sum();
-                teacherLiabilityAllratio = new BigDecimal(teacherLiabilityRatioSum).divide(percent,CommonConstants.DECIMAL_PLACE,BigDecimal.ROUND_DOWN);
+//                double teacherLiabilityRatioSum = courseStudentComplaints.stream().mapToDouble(courseScheduleComplaint -> Objects.isNull(courseScheduleComplaint.getTeacherLiabilityRatio()) ? 0 : courseScheduleComplaint.getTeacherLiabilityRatio()).sum();
+//                teacherLiabilityAllratio = new BigDecimal(teacherLiabilityRatioSum).divide(percent,CommonConstants.DECIMAL_PLACE,BigDecimal.ROUND_DOWN);
             } else {
                 //如果没有投诉,则教师和学生的责任占比为0
-                teacherLiabilityAllratio = new BigDecimal(0);
+//                teacherLiabilityAllratio = new BigDecimal(0);
             }
 
             //教师应扣除费用
-            BigDecimal deductPrice = avgSalary.multiply(teacherLiabilityAllratio);
+            /*BigDecimal deductPrice = avgSalary.multiply(teacherLiabilityAllratio);
             //教师实际课酬
             BigDecimal schoolSubsidy = new BigDecimal(0);
             if (Objects.nonNull(courseScheduleTeacherSalary.getSubsidy())) {
@@ -399,7 +399,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             BigDecimal actualSalary = expectSalary.subtract(deductPrice).add(schoolSubsidy);
 
             //更新教师结算信息
-            courseScheduleTeacherSalary.setActualSalary(actualSalary);
+            courseScheduleTeacherSalary.setActualSalary(actualSalary);*/
+            courseScheduleTeacherSalary.setActualSalary(expectSalary);
             courseScheduleTeacherSalary.setSettlementTime(now);
             courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
             updateTeacherSalarys.add(courseScheduleTeacherSalary);

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -936,7 +936,7 @@
         FROM
         course_schedule cs
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
-        WHERE cs.id_=#{courseScheduleId}
+        WHERE cs.id_ = #{courseScheduleId}
         <if test="delFlag != null">
             AND cg.del_flag_ = #{delFlag}
         </if>

+ 4 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -264,11 +264,14 @@
     <select id="findSomeDayAgoTeacherCourseSalaryNoSettlement" resultMap="CourseScheduleTeacherSalary">
 		SELECT
 		cs.class_date_,
-		csts.*
+		csts.*,csts.expect_salary_ * (CASE WHEN (ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0) AND (ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0) THEN 0
+		WHEN ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0 THEN 0.5
+		WHEN ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0 THEN 0.5 ELSE 1 END) teacher_actual_salary_
 		FROM
 		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_attendance ta ON ta.course_schedule_id_ = cs.id_
 		WHERE 1=1
 		<if test="days!=null">
 			AND cs.class_date_ &lt;= DATE_FORMAT(DATE_ADD( NOW( ), INTERVAL - #{days} DAY ),'%Y-%m-%d')