周箭河 5 лет назад
Родитель
Сommit
f4f6242729

+ 16 - 14
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
 import com.ym.mec.common.dal.BaseDAO;
@@ -22,10 +23,10 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     TeacherAttendanceDto getCurrentCourseDetail(@Param("courseID") Long courseID);
 
     /**
+     * @return com.ym.mec.biz.dal.dto.TeacherAttendanceDto
      * @Author: Joburgess
      * @Date: 2019/10/16
      * @params [startTime, endTime, teacherId]
-     * @return com.ym.mec.biz.dal.dto.TeacherAttendanceDto
      * @describe 根据时间区间获取教师上课的课程
      */
     TeacherAttendanceDto getTeacherCourseByDateSpeed(@Param("startTime") Date startTime,
@@ -49,10 +50,10 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseScheduleDto> getCourseSchedulesWithDate(@Param("classDate") Date classDate);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @Author: Joburgess
      * @Date: 2019/10/14
      * @params [classDates, classGroupId]
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 根据班级和上课日期获取课程计划
      */
     List<CourseSchedule> findByClassGroupAndDate(@Param("classDates") List<Date> classDates,
@@ -67,10 +68,10 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                                               @Param("studentId") Long studentId);
 
     /**
+     * @return java.util.List<java.lang.String>
      * @Author: Joburgess
      * @Date: 2019/10/11
      * @params [courseScheduleId]
-     * @return java.util.List<java.lang.String>
      * @describe 获取课程签到学生姓名
      */
     List<String> findStudentNamesByCourseSchedule(Long courseScheduleId);
@@ -84,14 +85,15 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                                               @Param("teacherId") Long teacherId);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
      * @Author: Joburgess
      * @Date: 2019/10/11
      * @params [params]
-     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
      * @describe 根据
      */
-    List<CourseScheduleDto> getCourseSchedulesWithDate(Map<String,Object> params);
-    int countCourseSchedulesWithDate(Map<String,Object> params);
+    List<CourseScheduleDto> getCourseSchedulesWithDate(Map<String, Object> params);
+
+    int countCourseSchedulesWithDate(Map<String, Object> params);
 
     /**
      * @Author: Joburgess
@@ -126,10 +128,10 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                             @Param("month") Date month);
 
     /**
+     * @return java.util.List<java.util.Date>
      * @Author: Joburgess
      * @Date: 2019/10/11
      * @params [month, organId]
-     * @return java.util.List<java.util.Date>
      * @describe 获取当月有课的日期
      */
     List<Date> getCourseScheduleDate(@Param("month") Date month,
@@ -182,24 +184,25 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 获取班级的课程计划
+     *
      * @param classGroupList
      * @return
      */
-    List<CourseSchedule> findClassGroupCourseSchedules(@Param("classGroupList") List classGroupList);
+    List<CourseSchedule> findClassGroupNoStartCourseSchedules(@Param("classGroupTeacherMapperList") List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/30
      * 获取学生上课记录
      */
-    List<StudentCourseScheduleRecordDto> findStudentCourseScheduleRecords(Map<String,Object> params);
+    List<StudentCourseScheduleRecordDto> findStudentCourseScheduleRecords(Map<String, Object> params);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/30
      * 统计学生上课记录
      */
-    int countStudentCourseScheduleRecords(Map<String,Object> params);
+    int countStudentCourseScheduleRecords(Map<String, Object> params);
 
     /**
      * @Author: Joburgess
@@ -210,10 +213,10 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
                                                                                   @Param("date") Date date);
 
     /**
+     * @return int
      * @Author: Joburgess
      * @Date: 2019/10/8
      * @params [classGroupId]
-     * @return int
      * @describe 统计已上课次
      */
     int countClassTimes(Long classGroupId);
@@ -226,23 +229,22 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     CourseScheduleDto getCourseSchedules(@Param("courseScheduleId") Long courseScheduleId);
 
     /**
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @Author: Joburgess
      * @Date: 2019/10/14
      * @params [vipGroupId]
-     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 获取vip课排课计划
      */
     List<CourseSchedule> findVipGroupCourseSchedules(@Param("vipGroupId") Long vipGroupId);
 
     /**
+     * @return java.lang.String
      * @Author: Joburgess
      * @Date: 2019/10/16
      * @params [courseScheduleId]
-     * @return java.lang.String
      * @describe 获取课程关联班级类型
      */
     String findClassTypeByCourse(@Param("courseScheduleId") Long courseScheduleId);
 
 
-
 }

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
@@ -129,12 +130,12 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
     void courseSwapWithDay(Date day1,Date day2);
 
     /**
-     * 获取班级的课程计划
+     * 获取班级未开始的课程计划
      *
-     * @param classGroupList
+     * @param classGroupTeacherMapperList
      * @return
      */
-    List<CourseSchedule> findClassGroupCourseSchedules(List classGroupList);
+    List<CourseSchedule> findClassGroupNoStartCourseSchedules(List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
 
 
     /**

+ 73 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -1,16 +1,25 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
 import java.util.List;
 
 @Service
@@ -18,6 +27,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
     @Autowired
     private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
+    @Autowired
+    private CourseScheduleService courseScheduleService;
+    @Autowired
+    private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
 
     @Override
     public BaseDAO<Long, ClassGroupTeacherMapper> getDAO() {
@@ -39,14 +52,67 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     }
 
     public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
-        for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
-            List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaryList = classGroupTeacherMapper.getTeacherDefaultMusicGroupSalaryList();
-            for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherDefaultMusicGroupSalaryList) {
-                
+        Date date = new Date();
+
+        List<ClassGroupTeacherSalary> classGroupTeacherSalaryList = new ArrayList<>();
+        List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+
+        List<CourseSchedule> classGroupNoStartCourseSchedules = courseScheduleService.findClassGroupNoStartCourseSchedules(classGroupTeacherMapperList);
+        for (CourseSchedule classGroupNoStartCourseSchedule : classGroupNoStartCourseSchedules) {
+
+            if (!classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.SINGLE) &&
+                    !classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.MIX) &&
+                    !classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH)
+            ) {
+                continue;
             }
+            //课时长度
+            int duration = DateUtil.minutesBetween(classGroupNoStartCourseSchedule.getEndClassTime(), classGroupNoStartCourseSchedule.getStartClassTime());
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+                if (!classGroupTeacherMapper.getClassGroupId().equals(classGroupNoStartCourseSchedule.getClassGroupId())) {
+                    continue;
+                }
+                BigDecimal salary = new BigDecimal("0");
+                List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaryList = classGroupTeacherMapper.getTeacherDefaultMusicGroupSalaryList();
+                for (TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary : teacherDefaultMusicGroupSalaryList) {
+                    //对应基准课酬
+                    BigDecimal baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacherSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacherSalary();
+                    //基准课酬
+                    if (teacherDefaultMusicGroupSalary.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                        salary = new BigDecimal(duration).divide(new BigDecimal(30)).multiply(baseSalary).setScale(2, BigDecimal.ROUND_HALF_UP);
+                        break;
+                    }
+                    //阶梯课酬
+                    if (duration >= teacherDefaultMusicGroupSalary.getDurationMin() && duration <= teacherDefaultMusicGroupSalary.getDurationMin()) {
+                        salary = baseSalary;
+                        break;
+                    }
+                }
+
+                //班级与老师课酬表
+//                ClassGroupTeacherSalary classGroupTeacherSalary = new ClassGroupTeacherSalary();
+//                classGroupTeacherSalary.setMusicGroupId(classGroupTeacherMapper.getMusicGroupId());
+//                classGroupTeacherSalary.setClassGroupId(classGroupTeacherMapper.getClassGroupId());
+//                classGroupTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
+//                classGroupTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
+//                classGroupTeacherSalary.setDuration(duration);
+//                classGroupTeacherSalary.setSalary(salary);
+//                classGroupTeacherSalary.setCreateTime(date);
+//                classGroupTeacherSalary.setUpdateTime(date);
+//                classGroupTeacherSalaryList.add(classGroupTeacherSalary);
 
-            classGroupTeacherMapperDao.update(classGroupTeacherMapper);
+                //课程与老师薪水表
+                CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+                courseScheduleTeacherSalary.setCourseScheduleId(classGroupNoStartCourseSchedule.getId());
+                courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
+                courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
+                courseScheduleTeacherSalary.setExpectSalary(salary);
+                courseScheduleTeacherSalary.setCreateTime(date);
+                courseScheduleTeacherSalary.setCreateUpdate(date);
+                courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+            }
         }
+        courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList);
         return true;
     }
 

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

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.biz.dal.entity.SysConfig;
@@ -389,8 +390,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-    public List<CourseSchedule> findClassGroupCourseSchedules(List classGroupList) {
-		return courseScheduleDao.findClassGroupCourseSchedules(classGroupList);
+    public List<CourseSchedule> findClassGroupNoStartCourseSchedules(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) {
+		return courseScheduleDao.findClassGroupNoStartCourseSchedules(classGroupTeacherMapperList);
     }
 
     /**

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

@@ -96,7 +96,7 @@
         (id_,music_group_id_,class_group_id_,teacher_role_,user_id_,salary_,create_time_,update_time_)
         VALUES
         <foreach collection="classGroupTeacherMapperList" item="item" index="index" separator=",">
-            (#{item.id},#{item.musicGroupId},#{item.classGroupId},#{item.teacherRole},#{item.userId},#{item.salary},#{item.createTime},#{item.updateTime})
+            (#{item.id},#{item.musicGroupId},#{item.classGroupId},#{item.teacherRole},#{item.userId},#{item.salary},NOW(),NOW())
         </foreach>
     </insert>
 

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

@@ -53,13 +53,15 @@
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="CourseSchedule">
-		SELECT * FROM course_schedule WHERE id_ = #{id} 
-	</select>
+        SELECT * FROM course_schedule WHERE id_ = #{id}
+    </select>
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="CourseSchedule">
-		SELECT * FROM course_schedule ORDER BY id_
-	</select>
+        SELECT *
+        FROM course_schedule
+        ORDER BY id_
+    </select>
 
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" useGeneratedKeys="true" keyColumn="id"
@@ -74,7 +76,8 @@
         VALUES(#{id},#{classGroupId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subsidy},#{classDate},#{startClassTime},#{endClassTime},#{teacherId},#{teacherId},now(),now(),#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{name},#{teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{studentNum},#{leaveStudentNum})
     </insert>
 
-    <insert id="batchAddCourseSchedules" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+    <insert id="batchAddCourseSchedules" parameterType="java.util.List" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
         INSERT INTO course_schedule
         (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,type_,name_,teach_mode_,student_num_,leave_student_num_)
         VALUE
@@ -129,14 +132,14 @@
 
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">
-		DELETE FROM course_schedule WHERE id_ = #{id}
-	</delete>
+        DELETE FROM course_schedule WHERE id_ = #{id}
+    </delete>
 
     <delete id="deleteCourseSchedulesByMusicGroupID">
         DELETE
-          cs
+        cs
         FROM
-            course_schedule cs
+        course_schedule cs
         INNER JOIN class_group cg ON cs.class_group_id_=cg.id_
         WHERE cg.music_group_id_=#{musicGroupID}
     </delete>
@@ -149,8 +152,9 @@
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM course_schedule
-	</select>
+        SELECT COUNT(*)
+        FROM course_schedule
+    </select>
 
     <resultMap type="com.ym.mec.biz.dal.dto.TeacherAttendanceDto" id="TeacherAttendanceViewUtilEntity">
         <result property="courseScheduleId" column="id_"/>
@@ -158,7 +162,8 @@
         <result property="classDate" column="class_date_"/>
         <result property="startClassTime" column="start_class_time_"/>
         <result property="endClassTime" column="end_class_time_"/>
-        <result property="courseStatus" column="course_status_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="courseStatus" column="course_status_"
+                typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result property="classId" column="class_id"/>
         <result property="className" column="class_name"/>
         <result property="classType" column="class_type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -174,24 +179,24 @@
     <select id="getCurrentCourseDetail"
             resultMap="TeacherAttendanceViewUtilEntity">
         SELECT
-            cs.id_ ,
-            cs.name_ course_schedule_name_,
-            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.status_ course_status_,
-            cg.id_ class_id,
-            cg.name_ class_name,
-            cs.type_ class_type,
-            mg.id_ music_group_id,
-            mg.name_ music_group_name,
-            s.id_ school_id_,
-            s.address_,
-            s.longitude_latitude_,
-            su.username_ teacher_name_,
-            ta.sign_in_time_
+        cs.id_ ,
+        cs.name_ course_schedule_name_,
+        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.status_ course_status_,
+        cg.id_ class_id,
+        cg.name_ class_name,
+        cs.type_ class_type,
+        mg.id_ music_group_id,
+        mg.name_ music_group_name,
+        s.id_ school_id_,
+        s.address_,
+        s.longitude_latitude_,
+        su.username_ teacher_name_,
+        ta.sign_in_time_
         FROM
-            course_schedule cs
+        course_schedule cs
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
         LEFT JOIN school s ON mg.school_id_=s.id_
@@ -203,24 +208,24 @@
     <select id="getTeacherCourseByDateSpeed"
             resultMap="TeacherAttendanceViewUtilEntity">
         SELECT
-            cs.id_ ,
-            cs.name_ course_schedule_name_,
-            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.status_ course_status_,
-            cg.id_ class_id,
-            cg.name_ class_name,
-            cs.type_ class_type,
-            mg.id_ music_group_id,
-            mg.name_ music_group_name,
-            s.id_ school_id_,
-            s.address_,
-            s.longitude_latitude_,
-            su.username_ teacher_name_,
-            ta.sign_in_time_
+        cs.id_ ,
+        cs.name_ course_schedule_name_,
+        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.status_ course_status_,
+        cg.id_ class_id,
+        cg.name_ class_name,
+        cs.type_ class_type,
+        mg.id_ music_group_id,
+        mg.name_ music_group_name,
+        s.id_ school_id_,
+        s.address_,
+        s.longitude_latitude_,
+        su.username_ teacher_name_,
+        ta.sign_in_time_
         FROM
-            course_schedule cs
+        course_schedule cs
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
         LEFT JOIN school s ON mg.school_id_=s.id_
@@ -243,15 +248,15 @@
 
     <select id="getCurrentCourseStudents" resultMap="studentAttendanceViewUtilEntity">
         SELECT
-            cgsm.class_group_id_,
-            su.id_ student_id_,
-            su.username_,
-            mg.id_ music_group_id_,
-            s.id_ subject_id_,
-            s.name_ subject_name_,
-            cgsm.status_
+        cgsm.class_group_id_,
+        su.id_ student_id_,
+        su.username_,
+        mg.id_ music_group_id_,
+        s.id_ subject_id_,
+        s.name_ subject_name_,
+        cgsm.status_
         FROM
-            class_group cg
+        class_group cg
         LEFT JOIN class_group_student_mapper cgsm ON cg.id_=cgsm.class_group_id_
         LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
         LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
@@ -273,29 +278,29 @@
 
     <select id="getCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
-            cg.id_ seal_class_id_,
-            cs.name_,
-            cs.type_,
-            cs.id_,
-            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.status_,
-            cs.student_num_,
-            cs.leave_student_num_,
-            cg.student_num_ total_student_num_,
-	        su.username_ teacher_name_,
-	        ta.sign_in_status_ attendance_status_
+        cg.id_ seal_class_id_,
+        cs.name_,
+        cs.type_,
+        cs.id_,
+        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.status_,
+        cs.student_num_,
+        cs.leave_student_num_,
+        cg.student_num_ total_student_num_,
+        su.username_ teacher_name_,
+        ta.sign_in_status_ attendance_status_
         FROM
-            music_group mg
-            LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
-            LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
-            LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
-	        LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=cs.teacher_id_
+        music_group mg
+        LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
+        LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
+        LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
+        LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=cs.teacher_id_
         WHERE
-            mg.organ_id_ = #{organId}
-            AND cs.id_ IS NOT NULL
-            AND cs.class_date_ = DATE_FORMAT(#{date},'%Y-%m-%d')
+        mg.organ_id_ = #{organId}
+        AND cs.id_ IS NOT NULL
+        AND cs.class_date_ = DATE_FORMAT(#{date},'%Y-%m-%d')
         <include refid="global.limit"/>
     </select>
 
@@ -314,65 +319,66 @@
 
     <select id="getStudentCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
-            cgsm.class_group_id_ seal_class_id_,
-            cs.name_,
-            cs.type_,
-            cs.id_,
-            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.status_,
-	        su.username_ teacher_name_,
-	        cgsm.status_ attendance_status_,
-	        cs.teach_mode_
+        cgsm.class_group_id_ seal_class_id_,
+        cs.name_,
+        cs.type_,
+        cs.id_,
+        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.status_,
+        su.username_ teacher_name_,
+        cgsm.status_ attendance_status_,
+        cs.teach_mode_
         FROM
-            course_schedule cs
-            LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
-            LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cs.class_group_id_
+        course_schedule cs
+        LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
+        LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cs.class_group_id_
         WHERE
-            cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
-            AND cgsm.user_id_ = #{studentId}
+        cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
+        AND cgsm.user_id_ = #{studentId}
     </select>
 
     <select id="getTeacherCourseSchedulesWithDate" resultMap="courseScheduleDto">
         SELECT
-            cg.id_ seal_class_id_,
-            cg.name_,
-            su.username_ teacher_name_,
-            cs.type_,
-            cs.id_,
-            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.status_,
-	        s.name_ school_name_,
-	        if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
-	        if(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
-	        cs.teach_mode_
+        cg.id_ seal_class_id_,
+        cg.name_,
+        su.username_ teacher_name_,
+        cs.type_,
+        cs.id_,
+        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.status_,
+        s.name_ school_name_,
+        if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
+        if(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
+        cs.teach_mode_
         FROM
-            course_schedule cs
-            LEFT JOIN sys_user su ON cs.actual_teacher_id_=su.id_
-            LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
-            LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
-            LEFT JOIN school s ON mg.school_id_=s.id_
-	        LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
+        course_schedule cs
+        LEFT JOIN sys_user su ON cs.actual_teacher_id_=su.id_
+        LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+        LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
+        LEFT JOIN school s ON mg.school_id_=s.id_
+        LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
         WHERE
-            cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
-            AND cs.actual_teacher_id_ = #{teacherId}
+        cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
+        AND cs.actual_teacher_id_ = #{teacherId}
     </select>
 
     <select id="getCourseScheduleDateByMonth" resultType="java.util.Date">
         SELECT
-            cs.class_date_
+        cs.class_date_
         FROM
-            course_schedule cs
+        course_schedule cs
         LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         WHERE DATE_FORMAT(cs.class_date_,'%Y%m')=DATE_FORMAT(#{month},'%Y%m')
         AND cg.music_group_id_=#{musicGroupID}
         GROUP BY cs.class_date_
     </select>
 
-    <select id="countTeacherCourseInOnDayRepeats" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" resultType="int">
+    <select id="countTeacherCourseInOnDayRepeats" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule"
+            resultType="int">
         SELECT
         COUNT( * )
         FROM
@@ -430,8 +436,8 @@
             DATE_FORMAT(#{date},'%Y-%m-%d')
         </foreach>
         AND (
-          DATE_FORMAT(cs.start_class_time_,"%H:%i:%s") &gt; DATE_FORMAT(#{endClassTime}, '%H:%i:%s' )
-          OR DATE_FORMAT(cs.end_class_time_,"%H:%i:%s") &lt; DATE_FORMAT( #{endClassTime}, '%H:%i:%s' )
+        DATE_FORMAT(cs.start_class_time_,"%H:%i:%s") &gt; DATE_FORMAT(#{endClassTime}, '%H:%i:%s' )
+        OR DATE_FORMAT(cs.end_class_time_,"%H:%i:%s") &lt; DATE_FORMAT( #{endClassTime}, '%H:%i:%s' )
         )=0
     </select>
 
@@ -447,34 +453,36 @@
         </foreach>
     </select>
 
-    <!-- 获取班级的课程 -->
-    <select id="findClassGroupCourseSchedules" resultMap="CourseSchedule">
+    <!-- 获取班级未开始的课程 -->
+    <select id="findClassGroupNoStartCourseSchedules" resultMap="CourseSchedule">
         SELECT * FROM course_schedule
-        WHERE class_group_id_ IN
-        <foreach collection="classGroupList" item="classGroup" index="index" open="(" close=")" separator=",">
-            #{classGroup.id}
+        WHERE status_ = 'NOT_START'
+        AND class_group_id_ IN
+        <foreach collection="classGroupTeacherMapperList" item="classGroupTeacherMapper" index="index" open="("
+                 close=")" separator=",">
+            #{classGroupTeacherMapper.classGroupId}
         </foreach>
     </select>
 
     <select id="getStudentCourseScheduleDate" resultType="java.util.Date">
         SELECT
-            cs.class_date_
+        cs.class_date_
         FROM
-            class_group_student_mapper cgsm
-            LEFT JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
+        class_group_student_mapper cgsm
+        LEFT JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
         WHERE
-            cgsm.user_id_ = #{studentId}
-            <if test="month==null">
-                AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
-            </if>
-            <if test="month!=null">
-                AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
-            </if>
-            <if test="isAttend!=null">
-                AND cs.status_='NOT_START'
-            </if>
+        cgsm.user_id_ = #{studentId}
+        <if test="month==null">
+            AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
+        <if test="month!=null">
+            AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
+        <if test="isAttend!=null">
+            AND cs.status_='NOT_START'
+        </if>
         GROUP BY
-            cs.class_date_
+        cs.class_date_
     </select>
 
     <select id="getTeacherCourseScheduleDate" resultType="java.util.Date">
@@ -496,29 +504,29 @@
 
     <select id="getCourseScheduleDate" resultType="java.util.Date">
         SELECT
-            cs.class_date_
+        cs.class_date_
         FROM
-            music_group mg
-            LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
-            LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
+        music_group mg
+        LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
+        LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
         WHERE
-            mg.organ_id_ = #{organId} AND cs.id_ IS NOT NULL
-            <if test="month==null">
-                AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
-            </if>
-            <if test="month!=null">
-                AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
-            </if>
+        mg.organ_id_ = #{organId} AND cs.id_ IS NOT NULL
+        <if test="month==null">
+            AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
+        <if test="month!=null">
+            AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
         GROUP BY
-            cs.class_date_
+        cs.class_date_
     </select>
 
     <select id="findClassSubjects" resultType="string">
         SELECT
-            CONCAT(cg.id_,'-',IF(GROUP_CONCAT(s.name_) IS NULL,'',GROUP_CONCAT(s.name_)))
+        CONCAT(cg.id_,'-',IF(GROUP_CONCAT(s.name_) IS NULL,'',GROUP_CONCAT(s.name_)))
         FROM
-            class_group cg
-            LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
+        class_group cg
+        LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,cg.subject_id_list_)
         WHERE cg.id_ IN
         <foreach collection="list" item="id" open="(" close=")" separator=",">
             #{id}
@@ -543,21 +551,21 @@
 
     <select id="findStudentCourseScheduleRecords" resultMap="studentCourseScheduleRecord">
         SELECT
-            sa.id_,
-            sa.status_,
-            sa.teacher_id_,
-            su.username_,
-            cs.id_ course_schedule_id_,
-            cs.name_,
-            cs.class_date_,
-            cs.start_class_time_,
-            cs.end_class_time_,
-            cs.teacher_id_,
-            cs.teach_mode_
+        sa.id_,
+        sa.status_,
+        sa.teacher_id_,
+        su.username_,
+        cs.id_ course_schedule_id_,
+        cs.name_,
+        cs.class_date_,
+        cs.start_class_time_,
+        cs.end_class_time_,
+        cs.teacher_id_,
+        cs.teach_mode_
         FROM
-            student_attendance sa
-            LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
-            LEFT JOIN sys_user su ON sa.teacher_id_=su.id_
+        student_attendance sa
+        LEFT JOIN course_schedule cs ON sa.course_schedule_id_=cs.id_
+        LEFT JOIN sys_user su ON sa.teacher_id_=su.id_
         <include refid="queryStudentCourseScheduleRecordCondition"/>
         ORDER BY sa.id_
         <include refid="global.limit"/>
@@ -573,68 +581,68 @@
     </select>
     <select id="findStudentCourseScheduleNotStartRecords" resultMap="studentCourseScheduleRecord">
         SELECT
-            cs.teacher_id_,
-            su.username_ teacher_name_,
-            cs.id_ course_schedule_id_,
-            cs.name_,
-            cs.class_date_,
-            cs.start_class_time_,
-            cs.end_class_time_,
-            cs.teach_mode_,
-	        (cg.total_class_times_-cg.current_class_times_) rest_of_class_
+        cs.teacher_id_,
+        su.username_ teacher_name_,
+        cs.id_ course_schedule_id_,
+        cs.name_,
+        cs.class_date_,
+        cs.start_class_time_,
+        cs.end_class_time_,
+        cs.teach_mode_,
+        (cg.total_class_times_-cg.current_class_times_) rest_of_class_
         FROM
-            class_group_student_mapper cgsm
-            LEFT JOIN course_schedule cs ON cs.class_group_id_=cgsm.class_group_id_
-            LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
-            LEFT JOIN class_group cg ON cgsm.class_group_id_=cg.id_
+        class_group_student_mapper cgsm
+        LEFT JOIN course_schedule cs ON cs.class_group_id_=cgsm.class_group_id_
+        LEFT JOIN sys_user su ON cs.teacher_id_ = su.id_
+        LEFT JOIN class_group cg ON cgsm.class_group_id_=cg.id_
         WHERE cs.status_='NOT_START' AND cgsm.user_id_=#{userId} AND cs.class_date_=DATE_FORMAT(#{date},'%Y%m%d')
     </select>
     <select id="findCourseScheduleByMusicGroup" resultMap="CourseSchedule">
         SELECT
-            cs.*
+        cs.*
         FROM
-            class_group cg
-            LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
-            WHERE  cg.music_group_id_=#{musicGroupId}
+        class_group cg
+        LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
+        WHERE cg.music_group_id_=#{musicGroupId}
     </select>
     <select id="countClassTimes" resultType="int">
         SELECT
-            COUNT(*)
+        COUNT(*)
         FROM
-            course_schedule cs
-            WHERE cs.class_group_id_=#{classGroupId} AND cs.status_!="NOT_START"
+        course_schedule cs
+        WHERE cs.class_group_id_=#{classGroupId} AND cs.status_!="NOT_START"
     </select>
     <select id="getCourseSchedules" resultMap="courseScheduleDto">
         SELECT
-            cs.type_,
-            cs.id_,
-            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_,
-			sc.paran_value_
+        cs.type_,
+        cs.id_,
+        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_,
+        sc.paran_value_
         FROM
-            course_schedule cs
-			LEFT JOIN sys_config sc ON sc.param_name_="vip_appeal_days_range"
+        course_schedule cs
+        LEFT JOIN sys_config sc ON sc.param_name_="vip_appeal_days_range"
         WHERE
-            cs.id_=#{courseScheduleId}
+        cs.id_=#{courseScheduleId}
     </select>
 
     <select id="findStudentNamesByCourseSchedule" resultType="string">
         SELECT
-            su.username_
+        su.username_
         FROM
-            student_attendance sa
-            LEFT JOIN sys_user su ON sa.user_id_=su.id_
-            WHERE sa.course_schedule_id_=#{courseScheduleId}
+        student_attendance sa
+        LEFT JOIN sys_user su ON sa.user_id_=su.id_
+        WHERE sa.course_schedule_id_=#{courseScheduleId}
     </select>
     <select id="findVipGroupCourseSchedules" resultMap="CourseSchedule">
-      SELECT
-            cs.*
+        SELECT
+        cs.*
         FROM
-            vip_group_class_group_mapper vgcgm
-            LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
+        vip_group_class_group_mapper vgcgm
+        LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
         WHERE
-            vgcgm.vip_group_id_ =#{vipGroupId}
+        vgcgm.vip_group_id_ =#{vipGroupId}
     </select>
     <select id="findByClassGroupAndDate" resultMap="CourseSchedule">
         SELECT
@@ -652,7 +660,7 @@
         type_,name_,
         teach_mode_
         FROM
-            course_schedule
+        course_schedule
         <where>
             <if test="classGroupId!=null">
                 AND class_group_id_ = #{classGroupId}
@@ -667,10 +675,10 @@
     </select>
     <select id="findClassTypeByCourse" resultType="string">
         SELECT
-            cg.type_
+        cg.type_
         FROM
-            course_schedule cs
-            LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
-            WHERE cs.id_=#{courseScheduleId}
+        course_schedule cs
+        LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
+        WHERE cs.id_=#{courseScheduleId}
     </select>
 </mapper>

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

@@ -40,7 +40,7 @@
 	</insert>
     <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
 		INSERT INTO course_schedule_teacher_salary (id_,course_schedule_id_,teacher_role_,user_id_,expect_salary_,create_time_,create_update_,subsidy_,actual_salary_,settlement_time_)
-		VALUE
+		VALUES
 		<foreach collection="list" item="data" separator=",">
 			(#{data.id},#{data.courseScheduleId},#{data.teacherRole},#{data.userId},#{data.expectSalary},now(),now(),#{data.subsidy},#{data.actualSalary},#{data.settlementTime})
 		</foreach>