浏览代码

fix:课酬

Joburgess 4 年之前
父节点
当前提交
702c732fa2

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

@@ -600,16 +600,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 deductCost = deductCost.add(teacherSalary);
                 deductReasons.add("未签退或者未点名扣除全部课酬");
             }else if(YesOrNoEnum.NO.equals(teacherAttendance.getSignOutStatus())){
-                int signOutCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseSchedule.getSignOutTime());
+                int signOutCourseTimeBetweenSeconds = DateUtil.secondsBetween(teacherAttendance.getSignOutTime(), courseSchedule.getEndClassTime());
                 int signOutCourseTimeBetween = signOutCourseTimeBetweenSeconds/60;
                 if(signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0){
                     //早退
                     deductCost = deductCost.add(teacherSalary);
                     deductReasons.add("早退扣除全部课酬");
-                }if(isCallName){
+                }else if(isCallName){
                     //异常签退,但是正常点名扣除50元课酬
                     deductCost = deductCost.add(new BigDecimal(50));
-                    deductReasons.add("异常签退或者未签退,但是正常点名扣除50元课酬");
+                    deductReasons.add("异常签退,但是正常点名扣除50元课酬");
                 }
             }
 
@@ -617,7 +617,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
             if(BigDecimal.ZERO.compareTo(deductCost)<0){
                 deductReasons.add("扣除总费用:" + deductCost);
-                courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ";"));
+                courseScheduleTeacherSalary.setDeductionReason(org.apache.commons.lang3.StringUtils.join(deductReasons, ""));
             }
 
             //更新教师结算信息

+ 15 - 15
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -554,7 +554,7 @@
             LEFT JOIN school s ON cs.schoole_id_=s.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-        AND cs.new_course_id_ IS NULL
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         <if test="classGroupIds != null and organIdList!=null">
             AND cs.class_group_id_ IN
             <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
@@ -581,7 +581,7 @@
         LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-        AND cs.new_course_id_ IS NULL
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         AND cs.id_ IS NOT NULL
         <if test="type!=null">
             AND cg.group_type_ = #{type}
@@ -622,7 +622,7 @@
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
         AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-        AND cs.new_course_id_ IS NULL
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         AND cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
         AND cssp.user_id_ = #{studentId}
         <if test="quitClassGroupIds != null and quitClassGroupIds.size()>0">
@@ -666,7 +666,7 @@
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
         AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-        AND cs.new_course_id_ IS NULL
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         AND cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
         <if test="type!=null and type!=''">
             AND cs.type_=#{type}
@@ -753,7 +753,7 @@
                  LEFT JOIN teacher_attendance ta ON cs.id_ = ta.course_schedule_id_ AND ta.teacher_id_ = #{teacherId}
         WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
             AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-            AND cs.new_course_id_ IS NULL
+            AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
           AND cs.class_date_ = DATE_FORMAT(#{classDate}, '%Y%m%d')
           AND csts.user_id_ = #{teacherId}
           AND CONCAT(cs.class_date_, ' ', cs.end_class_time_) &lt; NOW()
@@ -884,7 +884,7 @@
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
         AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-        AND cs.new_course_id_ IS NULL
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         AND cssp.user_id_ = #{studentId}
         <if test="month==null">
             AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
@@ -909,7 +909,7 @@
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
         AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-        AND cs.new_course_id_ IS NULL
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         AND csts.user_id_ = #{teacherId}
         <if test="month==null">
             AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
@@ -961,7 +961,7 @@
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
         AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-        AND cs.new_course_id_ IS NULL
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         AND CONCAT(cs.class_date_,' ',cs.start_class_time_) &lt; NOW()
         AND csts.user_id_ = #{teacherId}
         AND cg.del_flag_ = 0
@@ -982,7 +982,7 @@
             LEFT JOIN teacher t ON cs.actual_teacher_id_=t.id_
         WHERE
             (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
-            AND cs.new_course_id_ IS NULL
+            AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
             AND cs.class_group_id_ IN
             <foreach collection="classGroupIds" item="classGroupId" separator="," open="(" close=")">
                 #{classGroupId}
@@ -1019,7 +1019,7 @@
             AND cs.status_ != 'NOT_START'
             AND cs.del_flag_ = 0
             AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-            AND cs.new_course_id_ IS NULL
+            AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
             <if test="teachMode!=null and teachMode!=''">
                 AND cs.teach_mode_=#{teachMode}
             </if>
@@ -1082,7 +1082,7 @@
                  LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
         WHERE (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
             AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-            AND cs.new_course_id_ IS NULL
+            AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
             AND cs.status_ = 'NOT_START'
             AND cgsm.user_id_ = #{userId}
             AND cs.class_date_ = DATE_FORMAT(#{date}, '%Y%m%d')
@@ -1362,7 +1362,7 @@
         <where>
             (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
             AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-            AND cs.new_course_id_ IS NULL
+            AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
             AND cs.class_group_id_ = #{classGroupId}
             <if test="userId != null">
                 AND csts.user_id_ = #{userId}
@@ -1790,7 +1790,7 @@
         from course_schedule cs
                  right join course_schedule_teacher_salary cssp on cs.id_ = cssp.course_schedule_id_
                  left join sys_user u on u.id_ = cssp.user_id_
-        where cs.new_course_id_ IS NULL AND class_date_ = date(DATE_ADD(now(), INTERVAL 1 DAY))
+        where (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_) AND class_date_ = date(DATE_ADD(now(), INTERVAL 1 DAY))
         group by cssp.user_id_
     </select>
 
@@ -1857,7 +1857,7 @@
                cs.leave_student_num_,
                cs.schoole_id_
         FROM course_schedule cs
-        WHERE cs.new_course_id_ IS NULL
+        WHERE (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
           AND cs.class_date_ BETWEEN #{startDate} AND #{endDate}
           AND cs.group_type_ = 'MUSIC'
           AND (cs.del_flag_ IS NULL OR cs.del_flag_ = 0)
@@ -2234,7 +2234,7 @@
         <if test="teacherId != null">
             AND cs.actual_teacher_id_ = #{teacherId}
         </if>
-        AND cs.status_ = 'NOT_START' AND cs.del_flag_ = 0 AND cs.new_course_id_ IS NULL
+        AND cs.status_ = 'NOT_START' AND cs.del_flag_ = 0 AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         GROUP BY cs.class_group_id_
     </select>
 

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

@@ -929,7 +929,7 @@
 		WHERE
 			( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
 			AND (cs.is_lock_=0 OR cs.is_lock_ IS NULL)
-			AND cs.new_course_id_ IS NULL
+			AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 			AND csts.settlement_time_ IS NOT NULL
 			AND csts.user_id_ = #{teacherId}
 			AND DATE_FORMAT( cs.class_date_, '%Y' ) = #{year}

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

@@ -430,7 +430,7 @@
         FROM course_schedule cs RIGHT JOIN teacher_attendance ta on ta.course_schedule_id_ = cs.id_
         LEFT JOIN sys_user u on ta.teacher_id_ = u.id_
         WHERE ta.sign_out_status_ IS NULL
-        AND cs.new_course_id_ IS NULL
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         AND CONCAT( cs.class_date_, ' ', cs.end_class_time_ ) &lt;= DATE_SUB(now(),INTERVAL #{minutes} MINUTE) AND cs.del_flag_ = 0
         AND cs.group_type_ = 'MUSIC'
     </select>
@@ -489,7 +489,7 @@
         SELECT DISTINCT ta.teacher_id_ FROM teacher_attendance ta
         LEFT JOIN course_schedule cs ON cs.id_ = ta.course_schedule_id_
         WHERE cs.class_date_ = #{format}
-        AND cs.new_course_id_ IS NULL
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         AND ta.teacher_id_ = cs.actual_teacher_id_ AND CONCAT(cs.class_date_,' ',cs.end_class_time_) &lt; NOW()
         AND (ta.sign_in_status_ IS NULL OR ta.sign_in_status_ = 0 OR ta.sign_out_status_ IS NULL OR ta.sign_out_status_ = 0)
     </select>