Browse Source

老师课酬导出新增“申诉处理状态”、"处理意见"、“实际上课人数”
课表列表新增合并课程查询

zouxuan 4 years ago
parent
commit
73384a9394

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ExportTeacherSalaryDto.java

@@ -79,6 +79,12 @@ public class ExportTeacherSalaryDto{
     //签退时间
     private String studentSignOutTime;
 
+    //申述处理状态
+    private String complaintsStatus;
+
+    //申述处理结果
+    private String disposeContent;
+
     //主辅	上课地点	应到学员
     private String teacherRole;
 
@@ -97,6 +103,33 @@ public class ExportTeacherSalaryDto{
     //应到学员
     private int studentNum;
 
+    //实际上课学员
+    private int realStudentNum;
+
+    public String getComplaintsStatus() {
+        return complaintsStatus;
+    }
+
+    public void setComplaintsStatus(String complaintsStatus) {
+        this.complaintsStatus = complaintsStatus;
+    }
+
+    public String getDisposeContent() {
+        return disposeContent;
+    }
+
+    public void setDisposeContent(String disposeContent) {
+        this.disposeContent = disposeContent;
+    }
+
+    public int getRealStudentNum() {
+        return realStudentNum;
+    }
+
+    public void setRealStudentNum(int realStudentNum) {
+        this.realStudentNum = realStudentNum;
+    }
+
     public String getGroupId() {
         return groupId;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java

@@ -72,6 +72,17 @@ public class EndCourseScheduleQueryInfo extends QueryInfo {
 
     private boolean isExport = false;
 
+    @ApiModelProperty(value = "合并课程类型,MASTER 主课,ASSIST 副课,ALL 全部")
+    private String mergeCourseType;
+
+    public String getMergeCourseType() {
+        return mergeCourseType;
+    }
+
+    public void setMergeCourseType(String mergeCourseType) {
+        this.mergeCourseType = mergeCourseType;
+    }
+
     public TeachModeEnum getTeachMode() {
         return teachMode;
     }

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

@@ -4441,7 +4441,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			Map<Long, String> coursesSettlementTimeMap = MapUtil.convertIntegerMap(coursesSettlementTimeMaps);
 
 			List<Long> practiceIds = results.stream().filter(e -> PRACTICE.equals(e.getGroupType())).map(e -> Long.valueOf(e.getMusicGroupId())).collect(Collectors.toList());
-			Map<Long, PracticeGroup> idPracticeMap=new HashMap<>();
+			Map<Long, PracticeGroup> idPracticeMap = new HashMap<>();
 			if(!CollectionUtils.isEmpty(practiceIds)){
 				List<PracticeGroup> practiceGroups = practiceGroupDao.getWithIds(practiceIds);
                 idPracticeMap = practiceGroups.stream().collect(Collectors.toMap(PracticeGroup::getId, e->e));
@@ -4453,7 +4453,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				courseMergeCourseNumMap = MapUtil.convertIntegerMap(courseMergeCourseNum);
 			}
 
-			Set<Long> mergeCourseIds = results.stream().filter(e -> Objects.nonNull(e.getNewCourseId())).map(e -> e.getNewCourseId()).collect(Collectors.toSet());
+//			Set<Long> mergeCourseIds = results.stream().filter(e -> Objects.nonNull(e.getNewCourseId())).map(e -> e.getNewCourseId()).collect(Collectors.toSet());
 
 			//获取班级声部名称
             List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);

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

@@ -2443,6 +2443,17 @@
         <include refid="queryVipCourseScheduleIds"/>
     </select>
     <sql id="queryVipCourseScheduleIds">
+        <if test="mergeCourseType != null and mergeCourseType != ''">
+            <if test="mergeCourseType == 'MASTER'">
+                AND cs.new_course_id_ = cs.id_
+            </if>
+            <if test="mergeCourseType == 'ASSIST'">
+                AND cs.new_course_id_ > 0 AND cs.new_course_id_ != cs.id_
+            </if>
+            <if test="mergeCourseType == 'ALL'">
+                AND cs.new_course_id_ > 0
+            </if>
+        </if>
         <if test="isCallNames != null and isCallNames == 1">
             AND sa.id_ IS NOT NULL
         </if>

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

@@ -610,10 +610,13 @@
 		<result property="signInTime" column="signInTime"/>
 		<result property="studentSignInTime" column="studentSignInTime"/>
 		<result property="studentSignOutTime" column="studentSignOutTime"/>
+		<result property="complaintsStatus" column="complaints_status_"/>
+		<result property="disposeContent" column="dispose_content_"/>
 		<result property="teacherName" column="teacherName"/>
 		<result property="groupName" column="groupName"/>
 		<result property="groupId" column="group_id_"/>
 		<result property="studentNum" column="studentNum"/>
+		<result property="realStudentNum" column="realStudentNum"/>
 		<result property="teacherId" column="teacherId"/>
 		<result property="activeName" column="activeName"/>
 		<result property="vipActiveName" column="vip_active_name_"/>
@@ -653,11 +656,14 @@
 		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,
+		CASE WHEN ta.complaints_status_=0 THEN '拒绝' WHEN ta.complaints_status_ = 1 THEN '通过'
+		WHEN ta.complaints_status_=2 THEN '待处理' WHEN ta.complaints_status_ = 3 THEN '已撤销' END complaints_status_,ta.dispose_content_,
 		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(DISTINCT sp.id_) studentNum
+		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,COUNT(DISTINCT sp.id_) studentNum,COUNT(DISTINCT sa.id_) realStudentNum
 		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 `student_attendance` sa ON sa.`course_schedule_id_` = ts.`course_schedule_id_` AND sa.status_ = 'NORMAL'
 		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_
@@ -686,20 +692,22 @@
 		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,
+		CASE WHEN ta.complaints_status_=0 THEN '拒绝' WHEN ta.complaints_status_ = 1 THEN '通过'
+		WHEN ta.complaints_status_=2 THEN '待处理' WHEN ta.complaints_status_ = 3 THEN '已撤销' END complaints_status_,ta.dispose_content_,
 		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(DISTINCT sp.id_) studentNum,
+		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,COUNT(DISTINCT sp.id_) studentNum,COUNT(DISTINCT sa.id_) realStudentNum,
 		vg.online_classes_unit_price_,vg.offline_classes_unit_price_,
 		GROUP_CONCAT(sa.sign_in_time_) studentSignInTime,GROUP_CONCAT(sa.sign_out_time_) studentSignOutTime
 		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 `student_attendance` sa ON sa.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 `student_attendance` sa ON sa.`course_schedule_id_` = ts.`course_schedule_id_` AND sa.status_ = 'NORMAL'
 		LEFT JOIN vip_group vg ON (vg.id_ = ts.music_group_id_ AND ts.group_type_ = 'VIP')
 		LEFT JOIN vip_group_activity vga ON vg.vip_group_activity_id_ = vga.id_
 		LEFT JOIN organization vgo ON vgo.id_ = vg.organ_id_
@@ -727,19 +735,21 @@
 		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,
+		CASE WHEN ta.complaints_status_=0 THEN '拒绝' WHEN ta.complaints_status_ = 1 THEN '通过'
+		WHEN ta.complaints_status_=2 THEN '待处理' WHEN ta.complaints_status_ = 3 THEN '已撤销' END complaints_status_,ta.dispose_content_,
 		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(DISTINCT sp.id_) studentNum,
+		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,COUNT(DISTINCT sp.id_) studentNum,COUNT(DISTINCT sa.id_) realStudentNum,
 		GROUP_CONCAT(sa.sign_in_time_) studentSignInTime,GROUP_CONCAT(sa.sign_out_time_) studentSignOutTime
 		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 `student_attendance` sa ON sa.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 `student_attendance` sa ON sa.`course_schedule_id_` = ts.`course_schedule_id_` AND sa.status_ = 'NORMAL'
 		LEFT JOIN practice_group pg ON (pg.id_ = ts.music_group_id_ AND ts.group_type_ = 'PRACTICE')
 		LEFT JOIN organization pgo ON pgo.id_ = pg.organ_id_
 		WHERE cs.class_date_ BETWEEN #{firstDayOfMonth} AND #{lastDayOfMonth} AND cs.`del_flag_` != 1 AND cs.group_type_ = 'PRACTICE' AND ts.settlement_time_ IS NOT NULL

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

@@ -150,7 +150,8 @@
 
     <select id="findStudentsByOrganId" resultMap="studentManageListDto">
         SELECT o.`name_` organ_name_,s.`user_id_` ,su.`username_` ,su.`phone_` parents_phone_,su.`real_name_` ,su.`gender_` , su.organ_id_,
-		tu.`real_name_` teacher_name_,IF(s.service_tag_=2,0,s.service_tag_) service_tag_ ,s.`operating_tag_` , suca.`course_balance_` ,sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,
+		tu.`real_name_` teacher_name_,IF(s.service_tag_=2,0,s.service_tag_) service_tag_ ,s.`operating_tag_` , suca.`course_balance_` ,
+		sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,
 		case when su.password_ is null then false else true end isActive_,s.is_new_user_
 		FROM `student` s LEFT JOIN `sys_user` su on s.`user_id_` = su.`id_`
 		LEFT JOIN `organization` o on o.`id_` = su.`organ_id_`

+ 4 - 3
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -545,12 +545,13 @@ public class ExportController extends BaseController {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"课时编号", "老师编号", "老师姓名", "老师分部", "工作类别",
                     "课程分部", "课程组编号", "课程班名称", "乐团模式", "vip活动名称", "Vip课程类型", "阶梯奖励名称", "线上课/线下课", "线上课单价", "线下课单价",
                     "课程类别", "课时时长", "实际上课时长", "上课日期",
-                    "上课时间", "教师签到状态", "教师签退状态", "教师签到时间", "教师签退时间",
-                    "主辅", "上课地点", "应到学员", "学员签到时间", "学员签退时间", "课时课酬", "阶梯奖励"}, new String[]{
+                    "上课时间", "教师签到状态", "教师签退状态", "教师签到时间", "教师签退时间", "申诉处理状态", "处理意见",
+                    "主辅", "上课地点", "应到学员", "实际到课学员", "学员签到时间", "学员签退时间", "课时课酬", "阶梯奖励"}, new String[]{
                     "courseScheduleId", "teacherId", "teacherName", "teacherOrganName", "jobType",
                     "courseScheduleOrganName", "groupId", "groupName", "changeType", "vipActiveName", "vipCategoryName", "activeName", "teachMode", "onlineClassesUnitPrice", "offlineClassesUnitPrice",
                     "courseScheduleType", "signCourseScheduleTime", "currentTime", "classDate", "courseScheduleStartTime", "signInStatus",
-                    "signOutStatus", "signInTime", "signOutTime", "teacherRole", "address", "studentNum", "studentSignInTime", "studentSignOutTime", "price", "rewards"}, rows);
+                    "signOutStatus", "signInTime", "signOutTime","complaintsStatus", "disposeContent", "teacherRole", "address", "studentNum", "realStudentNum",
+                    "studentSignInTime", "studentSignOutTime", "price", "rewards"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             response.flushBuffer();