فهرست منبع

Merge remote-tracking branch 'origin/master'

Joburgess 5 سال پیش
والد
کامیت
89ab80f1f8

+ 10 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -11,10 +11,7 @@ import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseScheduleTeacherSalary> {
 
@@ -311,9 +308,16 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 					  @Param("groupType")GroupType groupType);
 
 	/**
-	 * 教师课酬列表
+	 * 教师乐团课酬列表
 	 * @param params
 	 * @return
 	 */
-    List<ExportTeacherSalaryDto> exportTeacherSalary(Map<String, Object> params);
+    List<ExportTeacherSalaryDto> exportMusicTeacherSalary(Map<String, Object> params);
+
+	/**
+	 * 教师vip课课酬
+	 * @param params
+	 * @return
+	 */
+	List<ExportTeacherSalaryDto> exportVipTeacherSalary(Map<String, Object> params);
 }

+ 36 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportTeacherSalaryDto.java

@@ -29,37 +29,70 @@ public class ExportTeacherSalaryDto{
     //活动名称
     private String activeName;
 
-    //线上课/线下课	线上课单价	线下课单价	课程类别	课时时长	上课日期	上课时间	签到状态	签退状态	签到时间	签退时间
+    //线上课/线下课
     private String teachMode;
 
-    //课程单价
+    //课
     private String price;
 
+    //课酬类型
     private String courseScheduleType;
 
+    //单课时时长
     private int signCourseScheduleTime;
 
+    //实际上课时间
+    private int currentTime;
+
+    //上课日期
     private String classDate;
 
+    //课程开始时间
     private String courseScheduleStartTime;
 
+    //课程结算时间
     private String courseScheduleEndTime;
 
+    //签退状态
     private String signOutStatus;
 
+    //签到状态
     private String signInStatus;
 
+    //签到时间
     private String signInTime;
 
+    //签退时间
     private String signOutTime;
 
-    //课时课酬	主辅	上课地点	应到学员
+    //主辅	上课地点	应到学员
     private String teacherRole;
 
+    //上课地点
     private String address;
 
+    //奖励金额
+    private String rewards;
+
+    //应到学员
     private int studentNum;
 
+    public String getRewards() {
+        return rewards;
+    }
+
+    public void setRewards(String rewards) {
+        this.rewards = rewards;
+    }
+
+    public int getCurrentTime() {
+        return currentTime;
+    }
+
+    public void setCurrentTime(int currentTime) {
+        this.currentTime = currentTime;
+    }
+
     public String getCourseScheduleEndTime() {
         return courseScheduleEndTime;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TaskRewardsRulesDto.java

@@ -13,6 +13,17 @@ public class TaskRewardsRulesDto{
     @ApiModelProperty(value = "活动编号",required = false)
     private Integer activeId;
 
+    //课程编号列表
+    private String courseScheduleIds;
+
+    public String getCourseScheduleIds() {
+        return courseScheduleIds;
+    }
+
+    public void setCourseScheduleIds(String courseScheduleIds) {
+        this.courseScheduleIds = courseScheduleIds;
+    }
+
     public Integer getTimes() {
         return times;
     }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ExportTeacherSalaryQueryInfo.java

@@ -2,10 +2,22 @@ package com.ym.mec.biz.dal.page;
 
 import com.ym.mec.common.page.QueryInfo;
 
+import javax.xml.crypto.Data;
+
 public class ExportTeacherSalaryQueryInfo extends QueryInfo {
 
     private Boolean isExport = false;
 
+    private Data month;
+
+    public Data getMonth() {
+        return month;
+    }
+
+    public void setMonth(Data month) {
+        this.month = month;
+    }
+
     public Boolean getIsExport() {
         return isExport;
     }

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.ExportTeacherSalaryDto;
+import com.ym.mec.biz.dal.dto.TaskRewardsRulesDto;
 import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
@@ -65,6 +66,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     @Autowired
     private TeacherDefaultVipGroupSalaryDao teacherDefaultVipGroupSalaryDao;
     @Autowired
+    private CourseScheduleRewardsRulesService courseScheduleRewardsRulesService;
+    @Autowired
     private VipGroupCategoryDao vipGroupCategoryDao;
     @Autowired
     private StudentAttendanceDao studentAttendanceDao;
@@ -689,9 +692,18 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //签退状态	签到时间	签退时间	课时课酬	主辅	上课地点	应到学员
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
-        List<ExportTeacherSalaryDto> exportTeacherSalaryDtos = courseScheduleTeacherSalaryDao.exportTeacherSalary(params);
+        Date months = DateUtil.addMonths(new Date(), -1);
+        String firstDayOfMonth = DateUtil.format(DateUtil.getFirstDayOfMonth(months),DateUtil.ISO_EXPANDED_DATE_FORMAT);
+        String lastDayOfMonth =  DateUtil.format(DateUtil.getLastDayOfMonth(months),DateUtil.ISO_EXPANDED_DATE_FORMAT);
+        params.put("firstDayOfMonth",firstDayOfMonth);
+        params.put("lastDayOfMonth",lastDayOfMonth);
         //乐团课
+        List<ExportTeacherSalaryDto> exportMusicTeacherSalaryDtos = courseScheduleTeacherSalaryDao.exportMusicTeacherSalary(params);
         //vip课
+        List<ExportTeacherSalaryDto> exportVipTeacherSalaryDtos = courseScheduleTeacherSalaryDao.exportVipTeacherSalary(params);
+        //获取有奖励的vip课
+        List<TaskRewardsRulesDto> rewardsRulesDtos = courseScheduleRewardsRulesService.queryVipGroupTeacherClassTimesByMonth(firstDayOfMonth,lastDayOfMonth);
+        //vip课(梯度课酬)
         //陪练课
         return null;
     }

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

@@ -505,18 +505,24 @@
 		<result property="courseScheduleStartTime" column="courseScheduleStartTime"/>
 		<result property="courseScheduleEndTime" column="courseScheduleEndTime"/>
 		<result property="signCourseScheduleTime" column="signCourseScheduleTime"/>
+		<result property="currentTime" column="currentTime"/>
 		<result property="teacherOrganName" column="teacherOrganName"/>
  	</resultMap>
-    <select id="exportTeacherSalary" resultType="com.ym.mec.biz.dal.dto.ExportTeacherSalaryDto">
-		SELECT cs.`id_` courseScheduleId ,mg.name_ groupName,ct.name_ changeType,u.real_name_ teacherName,o.name_ teacherOrganName,
+    <select id="exportMusicTeacherSalary" resultMap="ExportTeacherSalaryDtoMap">
+		SELECT cs.`id_` courseScheduleId,u.id_ teacherId,mgo.name_ courseOrganName,mg.name_ groupName,
+		ct.name_ changeType,u.real_name_ teacherName,o.name_ teacherOrganName,
+		CASE WHEN cs.teach_mode_ = 'OFFLINE' THEN '线下' WHEN cs.teach_mode_ = 'ONLINE' THEN '线上' END teach_mode_,
 		CASE WHEN t.job_nature_ = 'PART_TIME' THEN '兼职' WHEN t.job_nature_ = 'FULL_TIME' THEN '全职' ELSE '零时工' END jobType,
 		CASE WHEN cs.type_ = 'SINGLE' THEN '单技课' WHEN cs.type_ = 'MIX' THEN '合奏课' WHEN cs.type_ = 'HIGH' THEN '小班课'  WHEN cs.type_ = 'VIP' THEN 'vip课'
 		WHEN cs.type_ = 'DEMO' THEN '试听课'  WHEN cs.type_ = 'COMPREHENSIVE' THEN '综合课'  WHEN cs.type_ = 'PRACTICE' THEN '练习课'  WHEN cs.type_ = 'ENLIGHTENMENT' THEN '启蒙课'
 		WHEN cs.type_ = 'TRAINING_SINGLE' THEN '集训单技课'  WHEN cs.type_ = 'TRAINING_MIX' THEN '集训合奏课'  ELSE '课堂课' END courseScheduleType,
-		cs.class_date_ classDate,cs.start_class_time_ courseScheduleStartTime,cs.end_class_time_ courseScheduleEndTime,ts.expect_salary_ price,s.name_ address,
+		cs.class_date_ classDate,cs.start_class_time_ courseScheduleStartTime,cs.end_class_time_ courseScheduleEndTime,
+		ROUND((UNIX_TIMESTAMP(cs.end_class_time_)-UNIX_TIMESTAMP(cs.start_class_time_))/60) signCourseScheduleTime,
+		ts.actual_salary_ price,s.name_ address,
 		CASE WHEN ts.teacher_role_ = 'TEACHING' THEN '助教' ELSE '主教' END teacherRole,
 		CASE WHEN ta.sign_in_status_ = 0 THEN '异常' WHEN ta.sign_in_status_ = 1 THEN '正常' END signInStatus,
 		CASE WHEN ta.sign_out_status_=0 THEN '异常' WHEN ta.sign_out_status_ = 1 THEN '正常' END signOutStatus,
+		ROUND((UNIX_TIMESTAMP(ta.sign_out_time_)-UNIX_TIMESTAMP(ta.sign_in_time_))/60) currentTime,
 		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,COUNT(sp.id_) studentNum
 		FROM course_schedule_teacher_salary ts
 		LEFT JOIN course_schedule cs ON ts.course_schedule_id_ = cs.id_
@@ -528,8 +534,37 @@
 		LEFT JOIN school s ON s.id_ = cs.schoole_id_
 		LEFT JOIN course_schedule_student_payment sp ON sp.course_schedule_id_ = ts.course_schedule_id_
 		LEFT JOIN music_group mg ON (mg.id_ = ts.music_group_id_ AND ts.group_type_ = 'MUSIC')
+		LEFT JOIN organization mgo ON mgo.id_ = mg.organ_id_
 		LEFT JOIN charge_type ct ON ct.id_ = mg.charge_type_id_
-		WHERE cs.class_date_ BETWEEN '2020-01-01' AND '2020-01-31' AND (cs.`del_flag_` != 1 OR cs.`del_flag_` IS NULL ) AND cs.group_type_ = 'MUSIC'
+		WHERE cs.class_date_ BETWEEN #{firstDayOfMonth} AND #{lastDayOfMonth} AND cs.`del_flag_` != 1 AND cs.group_type_ = 'MUSIC'
+		GROUP BY ts.course_schedule_id_,ts.`user_id_`
+	</select>
+	<select id="exportVipTeacherSalary" resultMap="ExportTeacherSalaryDtoMap">
+		SELECT cs.`id_` courseScheduleId,u.id_ teacherId,vgo.name_ courseOrganName,vg.name_ groupName,
+		u.real_name_ teacherName,o.name_ teacherOrganName,
+		CASE WHEN cs.teach_mode_ = 'OFFLINE' THEN '线下' WHEN cs.teach_mode_ = 'ONLINE' THEN '线上' END teach_mode_,
+		CASE WHEN t.job_nature_ = 'PART_TIME' THEN '兼职' WHEN t.job_nature_ = 'FULL_TIME' THEN '全职' ELSE '零时工' END jobType,
+		'vip课' courseScheduleType,
+		cs.class_date_ classDate,cs.start_class_time_ courseScheduleStartTime,cs.end_class_time_ courseScheduleEndTime,
+		ROUND((UNIX_TIMESTAMP(cs.end_class_time_)-UNIX_TIMESTAMP(cs.start_class_time_))/60) signCourseScheduleTime,
+		ts.actual_salary_ price,s.name_ address,
+		CASE WHEN ts.teacher_role_ = 'TEACHING' THEN '助教' ELSE '主教' END teacherRole,
+		CASE WHEN ta.sign_in_status_ = 0 THEN '异常' WHEN ta.sign_in_status_ = 1 THEN '正常' END signInStatus,
+		CASE WHEN ta.sign_out_status_=0 THEN '异常' WHEN ta.sign_out_status_ = 1 THEN '正常' END signOutStatus,
+		ROUND((UNIX_TIMESTAMP(ta.sign_out_time_)-UNIX_TIMESTAMP(ta.sign_in_time_))/60) currentTime,
+		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,COUNT(sp.id_) studentNum
+		FROM course_schedule_teacher_salary ts
+		LEFT JOIN course_schedule cs ON ts.course_schedule_id_ = cs.id_
+		LEFT JOIN `teacher_attendance` ta ON ta.`teacher_id_` = ts.`user_id_` AND ta.`course_schedule_id_` = ts.`course_schedule_id_`
+		LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+		LEFT JOIN sys_user u ON ts.user_id_= u.id_
+		LEFT JOIN teacher t ON t.id_ = ts.user_id_
+		LEFT JOIN organization o ON o.id_ = t.organ_id_
+		LEFT JOIN school s ON s.id_ = cs.schoole_id_
+		LEFT JOIN course_schedule_student_payment sp ON sp.course_schedule_id_ = ts.course_schedule_id_
+		LEFT JOIN vip_group vg ON (vg.id_ = ts.music_group_id_ AND ts.group_type_ = 'VIP')
+		LEFT JOIN organization vgo ON vgo.id_ = vg.organ_id_
+		WHERE cs.class_date_ BETWEEN #{firstDayOfMonth} AND #{lastDayOfMonth} AND cs.`del_flag_` != 1 AND cs.group_type_ = 'VIP'
 		GROUP BY ts.course_schedule_id_,ts.`user_id_`
 	</select>
 </mapper>

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

@@ -173,7 +173,7 @@
         DELETE FROM student_attendance WHERE music_group_id_=#{groupId} AND group_type_=#{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
     </delete>
     <delete id="batchCleanCourseStudentSign">
-        DELETE FROM student_attendance WHERE course_schedule_id_ FIND_IN_SET(#{courseScheduleIds})
+        DELETE FROM student_attendance WHERE FIND_IN_SET(course_schedule_id_,#{courseScheduleIds})
     </delete>
 
     <resultMap id="studentAttendanceViewUtilEntity" type="com.ym.mec.biz.dal.dto.StudentAttendanceViewDto">

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

@@ -379,7 +379,7 @@
     <update id="batchCleanCourseTeacherSign">
         UPDATE teacher_attendance
         SET sign_in_time_ = NULL,sign_in_status_=NULL,sign_out_status_ = NULL,sign_out_time_= NULL
-        WHERE course_schedule_id_ FIND_IN_SET(#{courseScheduleIds})
+        WHERE FIND_IN_SET(course_schedule_id_,#{courseScheduleIds})
     </update>
 
     <delete id="deleteByMusicGroupId" parameterType="map" >