瀏覽代碼

Merge remote-tracking branch 'origin/master'

周箭河 4 年之前
父節點
當前提交
d26b165a9d

+ 35 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -222,8 +222,19 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             return;
         }
 
+        //获取课程对应教学点补贴
+        List<Map<Long, BigDecimal>> courseSubsidyByCourses = courseScheduleTeacherSalaryDao.findCourseSubsidyByCourses(new ArrayList<>(courseScheduleIds));
+        Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertIntegerMap(courseSubsidyByCourses);
+
         someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
 
+            BigDecimal subsidy = courseSubsidyMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
+            if (Objects.isNull(subsidy)) {
+                subsidy = new BigDecimal(0);
+            }
+            courseScheduleTeacherSalary.setSubsidy(subsidy);
+            courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().add(subsidy));
+
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
             if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                 courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().multiply(new BigDecimal("0.8")));
@@ -340,9 +351,20 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         List<TeacherAttendance> allTeacherAttendances = teacherAttendanceDao.findByCourseSchedules(courseScheduleIds);
         Map<String, List<TeacherAttendance>> teacherCourseAttendanceMap = allTeacherAttendances.stream().collect(Collectors.groupingBy(ta -> org.apache.commons.lang3.StringUtils.joinWith(":", ta.getCourseScheduleId(), ta.getTeacherId())));
 
+        //获取课程对应教学点补贴
+        List<Map<Long, BigDecimal>> courseSubsidyByCourses = courseScheduleTeacherSalaryDao.findCourseSubsidyByCourses(courseScheduleIds);
+        Map<Integer, BigDecimal> courseSubsidyMap = MapUtil.convertIntegerMap(courseSubsidyByCourses);
+
         //处理课酬信息
         someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
 
+            BigDecimal subsidy = courseSubsidyMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
+            if (Objects.isNull(subsidy)) {
+                subsidy = new BigDecimal(0);
+            }
+            courseScheduleTeacherSalary.setSubsidy(subsidy);
+            courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().add(subsidy));
+
             Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
             if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                 courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().multiply(new BigDecimal("0.8")));
@@ -542,6 +564,12 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     teacherSalary = BigDecimal.ZERO;
                 }
 
+                BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getId());
+                if (Objects.isNull(subsidy)) {
+                    subsidy = new BigDecimal(0);
+                }
+                teacherSalary = teacherSalary.add(subsidy);
+
                 //如果上课日期在转正日期之前的按80%结算
                 if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
                     teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
@@ -601,6 +629,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
 
                 //更新教师结算信息
+                courseScheduleTeacherSalary.setSubsidy(subsidy);
                 courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
                 courseScheduleTeacherSalary.setSettlementTime(now);
                 courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
@@ -645,16 +674,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 teacherSalary=courseScheduleTeacherSalary.getExpectSalary();
             }
 
-            if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
-                teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
-            }
-
-            BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getSchoolId());
+            BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getId());
             if (Objects.isNull(subsidy)) {
                 subsidy = new BigDecimal(0);
             }
             teacherSalary = teacherSalary.add(subsidy);
 
+            if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
+                teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
+            }
+
             //扣除费用
             BigDecimal deductCost = BigDecimal.ZERO;
             List<String> deductReasons = new ArrayList<>();
@@ -760,6 +789,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }
 
             //更新教师结算信息
+            courseScheduleTeacherSalary.setSubsidy(subsidy);
             courseScheduleTeacherSalary.setActualSalary(finalSalary.compareTo(BigDecimal.ZERO)<0?BigDecimal.ZERO:finalSalary);
             courseScheduleTeacherSalary.setSettlementTime(now);
             courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);

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

@@ -27,6 +27,7 @@
 		<result column="class_date_" property="courseSchedule.classDate" />
 		<result column="start_class_time_" property="courseSchedule.startClassTime" />
 		<result column="end_class_time_" property="courseSchedule.endClassTime" />
+		<result column="schoole_id_" property="courseSchedule.schoolId" />
 		<result column="reduce_salary" property="reduceSalary" />
 		<result column="confirm_status_" property="confirmStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="memo_" property="memo" />
@@ -270,6 +271,7 @@
 			CONCAT(cs.class_date_	,' ',cs.start_class_time_) start_class_time_,
 			CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) end_class_time_,
 			cs.teach_mode_,
+		    cs.schoole_id_,
 			csts.*
 		FROM
 		course_schedule_teacher_salary csts
@@ -300,6 +302,7 @@
 		cs.class_date_,
 		CONCAT(cs.class_date_	,' ',cs.start_class_time_) start_class_time_,
 		CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) end_class_time_,
+		cs.schoole_id_,
 		csts.*
 		FROM
 		course_schedule_teacher_salary csts
@@ -359,8 +362,8 @@
 	</select>
 	<select id="findCourseSubsidyByCourses" resultType="map">
 		SELECT
-			cs.id_,
-			s.subsidy_
+			cs.id_ AS 'key',
+			s.subsidy_ AS 'value'
 		FROM
 			course_schedule cs
 			LEFT JOIN school s ON cs.schoole_id_=s.id_