Browse Source

1、待激活云教练导出文件新增【分部】【获得资格时间】字段

zouxuan 11 months ago
parent
commit
370706aaab

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

@@ -2826,9 +2826,9 @@ public class ExportController extends BaseController {
         }
         OutputStream outputStream = response.getOutputStream();
         try {
-            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学员姓名", "学员编号", "老师姓名", "老师编号",
-                    "课程组编号", "课程编号", "课程名称", "课程组类型", "课程类型", "上课时间","签到时间", "签退时间", "考勤状态","来源"}, new String[]{
-                    "courseSchedule.organization.name", "username", "userId", "courseSchedule.teacherName", "teacherId", "musicGroupId", "courseScheduleId",
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部", "学员姓名", "学员编号", "专业", "老师姓名", "老师编号",
+                    "课程组编号","课程组名称", "课程编号", "课程名称", "课程组类型", "课程类型", "上课时间","签到时间", "签退时间", "考勤状态","来源"}, new String[]{
+                    "courseSchedule.organization.name", "username", "userId","subjectName", "courseSchedule.teacherName", "teacherId", "musicGroupId", "musicGroupName", "courseScheduleId",
                     "courseSchedule.name", "groupType.desc", "courseSchedule.type.msg", "classTimeStr", "signInTime",
                     "signOutTime", "status.msg","joinCourseType.msg"}, rows);
             response.setContentType("application/octet-stream");

+ 12 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentAttendance.java

@@ -26,6 +26,9 @@ public class StudentAttendance extends BaseEntity {
 	/** 乐团 */
 	@ApiModelProperty(value = "乐团",required = false)
 	private String musicGroupId;
+
+	@ApiModelProperty(value = "乐团",required = false)
+	private String musicGroupName;
 	
 	/** 班级 */
 	@ApiModelProperty(value = "班级",required = false)
@@ -114,7 +117,15 @@ public class StudentAttendance extends BaseEntity {
     @ApiModelProperty(value = "加入课程类型 PURCHASE:购买 SHARE:分享")
     private JoinCourseType joinCourseType;
 
-    public JoinCourseType getJoinCourseType() {
+	public String getMusicGroupName() {
+		return musicGroupName;
+	}
+
+	public void setMusicGroupName(String musicGroupName) {
+		this.musicGroupName = musicGroupName;
+	}
+
+	public JoinCourseType getJoinCourseType() {
         return joinCourseType;
     }
 

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/StudentAttendanceService.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.dal.page.ExportStudentAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
@@ -100,7 +101,7 @@ public interface StudentAttendanceService extends BaseService<Long, StudentAtten
 	 * @param queryInfo
 	 * @return
 	 */
-	PageInfo<StudentAttendance> findStudentAttendance(QueryInfo queryInfo);
+	PageInfo<StudentAttendance> findStudentAttendance(StudentAttendanceQueryInfo queryInfo);
 
 	/**
 	 * 修复连堂课学生签到记录

+ 44 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java

@@ -34,6 +34,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.util.CollectionUtils;
 
 import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
@@ -72,8 +73,11 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
     @Autowired
     private StudentDao studentDao;
     @Autowired
+    private TeacherDao teacherDao;
+    @Autowired
+    private SubjectDao subjectDao;
+    @Autowired
     private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
-
     @Autowired
     private SchoolStaffService schoolStaffService;
 
@@ -681,7 +685,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
     }
 
     @Override
-    public PageInfo<StudentAttendance> findStudentAttendance(QueryInfo queryInfo) {
+    public PageInfo<StudentAttendance> findStudentAttendance(StudentAttendanceQueryInfo queryInfo) {
         PageInfo<StudentAttendance> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
@@ -696,12 +700,46 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
                 dataList = new ArrayList<>();
             }
             if(dataList.size() > 0){
+                //获取乐团编号
+                Set<String> musicGroupIds = dataList.stream().map(e -> e.getMusicGroupId()).collect(Collectors.toSet());
+                //只有后台列表需要乐团名称
+                Map<String,String> musicGroupMap = new HashMap<>();
+                if(StringUtils.equals(queryInfo.getGroupType(),"MUSIC")){
+                    musicGroupMap = MapUtil.convertIntegerMap(musicGroupDao.queryMusicGroupNameMap(musicGroupIds));
+                }
+                //获取学员编号
+                List<Integer> userIds = dataList.stream().map(e -> e.getUserId()).distinct().collect(Collectors.toList());
+                Map<Integer,SimpleUserDto> studentMap = teacherDao.getUsersSimpleInfo(userIds).stream().collect(Collectors.toMap(SimpleUserDto::getUserId, Function.identity()));
+                Map<Integer,StudentSubjectDto> subjectMap = subjectDao.getSubjectByStudentId(new HashSet(userIds)).stream().collect(Collectors.toMap(StudentSubjectDto::getStudentId, Function.identity()));
+                //获取老师编号
+                List<Integer> teacherIds = dataList.stream().map(e -> e.getTeacherId()).distinct().collect(Collectors.toList());
+                Map<Integer,SimpleUserDto> teacherMap = teacherDao.getUsersSimpleInfo(teacherIds).stream().collect(Collectors.toMap(SimpleUserDto::getUserId, Function.identity()));
+
                 for(StudentAttendance sa : dataList){
+                    SimpleUserDto simpleUserDto = studentMap.get(sa.getUserId());
+                    if(simpleUserDto != null){
+                        sa.setUsername(simpleUserDto.getNickName());
+                        sa.setPhone(simpleUserDto.getPhone());
+                        sa.setAvatar(simpleUserDto.getAvatar());
+                    }
+                    StudentSubjectDto studentSubjectDto = subjectMap.get(sa.getUserId());
+                    if(studentSubjectDto != null){
+                        sa.setSubjectName(studentSubjectDto.getSubjectName());
+                    }
+                    SimpleUserDto teacher = teacherMap.get(sa.getTeacherId());
+                    if(teacher != null){
+                        CourseSchedule courseSchedule = sa.getCourseSchedule();
+                        courseSchedule.setTeacherName(teacher.getUserName());
+                        sa.setTeacherAvatar(teacher.getAvatar());
+                    }
                     if(sa.getGroupType() == GroupType.MUSIC){
-                        Set<Integer> userId = new HashSet<Integer>();
-                        userId.add(sa.getUserId());
-                        Map<Integer,String> paymentStatusMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.queryUserCoursePaymentStatus(userId,sa.getMusicGroupId()));
-                        sa.setPaymentStatus(paymentStatusMap.get(sa.getUserId()));
+                        sa.setMusicGroupName(musicGroupMap.get(sa.getMusicGroupId()));
+                        if(dataList.size() <= 50){
+                            Set<Integer> userId = new HashSet<Integer>();
+                            userId.add(sa.getUserId());
+                            Map<Integer,String> paymentStatusMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.queryUserCoursePaymentStatus(userId,sa.getMusicGroupId()));
+                            sa.setPaymentStatus(paymentStatusMap.get(sa.getUserId()));
+                        }
                     }
                 }
             }

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

@@ -479,7 +479,7 @@
     <select id="findStudentAttendance" resultMap="StudentAttendance">
         SELECT cssp.id_,cssp.course_schedule_id_,cssp.user_id_,cssp.group_type_,cssp.music_group_id_,sa.sign_in_time_,sa.sign_out_time_,
                CASE WHEN sa.status_ IS NULL and cs.status_ = 'OVER' THEN 'TRUANT' ELSE sa.status_ END status_,
-        su.username_,su.phone_,su.avatar_,cs.teach_mode_,cs.type_ course_type_,o.name_ organ_name_,tu.real_name_ teacher_name_,tu.avatar_ teacher_avatar_,
+        cs.teach_mode_,cs.type_ course_type_,o.name_ organ_name_,
         cs.name_ course_schedule_name_,cs.status_ course_status_,
         cs.actual_teacher_id_ teacher_id_,cssp.join_course_type_ as join_course_type_,
         CONCAT(cs.class_date_,' ',cs.start_class_time_,'-',cs.end_class_time_) classTimeStr,
@@ -489,8 +489,6 @@
         FROM course_schedule_student_payment cssp
         LEFT JOIN course_schedule cs on cs.id_ = cssp.course_schedule_id_
         LEFT JOIN student_attendance sa on cssp.course_schedule_id_ = sa.course_schedule_id_ and cssp.user_id_ = sa.user_id_
-        LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
-        LEFT JOIN sys_user tu on tu.id_ = cs.actual_teacher_id_
         LEFT JOIN organization o on o.id_ = cs.organ_id_
         <include refid="findStudentAttendanceSql"/>
         GROUP BY cssp.id_