Bladeren bron

Merge remote-tracking branch 'origin/master'

Joe 5 jaren geleden
bovenliggende
commit
40a3eb2e2b

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleTeacherSalary.java

@@ -48,6 +48,9 @@ public class CourseScheduleTeacherSalary {
 	
 	/** 实际薪水 */
 	private java.math.BigDecimal actualSalary;
+
+	/** 课酬结算时计算的课酬 */
+	private java.math.BigDecimal teacherActualSalary;
 	
 	/** 结算时间 */
 	private java.util.Date settlementTime;
@@ -62,6 +65,14 @@ public class CourseScheduleTeacherSalary {
 
 	private String memo;
 
+	public BigDecimal getTeacherActualSalary() {
+		return teacherActualSalary;
+	}
+
+	public void setTeacherActualSalary(BigDecimal teacherActualSalary) {
+		this.teacherActualSalary = teacherActualSalary;
+	}
+
 	public CourseScheduleTeacherSalary() {
 	}
 

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

@@ -644,7 +644,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         for (ClassGroupTeachersDto classGroupAndTeacher : classGroupAndTeachers) {
             Long studentNum = classGroupStudentNumMap.get(classGroupAndTeacher.getId());
             studentNum = Objects.isNull(studentNum) ? 0 : studentNum;
-            if(classGroupAndTeacher.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum < 3 || studentNum >5){
+            if(classGroupAndTeacher.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && (studentNum < 3 || studentNum > 5)){
                 String numWaring = studentNum < 3 ? "人数不能小于3\r\n" : "人数不能大于5\r\n";
                 waringStr += classGroupAndTeacher.getName()+numWaring;
             }

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

@@ -208,7 +208,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         List<CourseScheduleTeacherSalary> someDayAgoTeacherCourseSalaryNoSettlement = courseScheduleTeacherSalaryDao.findTeacherCourseSalaryNoSettlement(days,GroupType.PRACTICE.getCode());
         if (!CollectionUtils.isEmpty(someDayAgoTeacherCourseSalaryNoSettlement)) {
             someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
-                courseScheduleTeacherSalary.setActualSalary(courseScheduleTeacherSalary.getExpectSalary());
+                courseScheduleTeacherSalary.setActualSalary(courseScheduleTeacherSalary.getTeacherActualSalary());
                 courseScheduleTeacherSalary.setSettlementTime(now);
                 courseScheduleTeacherSalaryDao.update(courseScheduleTeacherSalary);
             });
@@ -666,7 +666,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     teacherSalary = teacherDefaultSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
                 }
             }else{
-                teacherSalary=courseScheduleTeacherSalary.getExpectSalary();
+                teacherSalary=courseScheduleTeacherSalary.getTeacherActualSalary();
             }
 
             BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getSchoolId());

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

@@ -19,6 +19,7 @@
 		<result column="update_time_" property="updateTime" />
 		<result column="subsidy_" property="subsidy" />
 		<result column="actual_salary_" property="actualSalary" />
+		<result column="teacher_actual_salary_" property="teacherActualSalary" />
 		<result column="settlement_time_" property="settlementTime" />
 		<result column="class_group_id_" property="classGroupId" />
 		<result column="type_" property="courseSchedule.type" />
@@ -291,12 +292,14 @@
     <select id="findTeacherCourseSalaryNoSettlement" 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 teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
-		WHERE (ta.sign_in_status_ IS NOT NULL OR ta.sign_out_status_ IS NOT NULL)
+		WHERE ta.id_ IS NOT NULL
 		<if test="days!=null">
 			AND cs.class_date_ &lt;= DATE_FORMAT(DATE_ADD( NOW( ), INTERVAL - #{days} DAY ),'%Y-%m-%d')
 		</if>
@@ -386,11 +389,17 @@
 		SELECT * FROM  course_schedule_teacher_salary WHERE course_schedule_id_=#{courseScheduleId}
 	</select>
 	<select id="findByCourseSchedulesWithNoSettlement" resultMap="CourseScheduleTeacherSalary">
-		SELECT * FROM  course_schedule_teacher_salary WHERE course_schedule_id_ IN
+		SELECT csts.*,CASE WHEN cs.teach_mode_ = 'ONLINE' THEN 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) ELSE csts.expect_salary_ END teacher_actual_salary_
+		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_
+		WHERE csts.course_schedule_id_ IN
 		<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
 			#{courseScheduleId}
 		</foreach>
-		AND settlement_time_ IS NULL
+		AND csts.settlement_time_ IS NULL
 	</select>
 
     <select id="countTeacherOnlineOfflineSalaryByClass" resultType="map">