浏览代码

管乐迷新需求

zouxuan 2 年之前
父节点
当前提交
6643325904

+ 4 - 175
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.enums.SignInStatusEnum;
 import com.ym.mec.biz.dal.enums.SignOutStatusEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
 import java.util.Date;
 
@@ -13,6 +14,7 @@ import java.util.Date;
  * @Author Joburgess
  * @Date 2019/12/27
  */
+@Data
 public class CourseScheduleEndDto extends CourseSchedule {
 
     private String groupName;
@@ -61,179 +63,6 @@ public class CourseScheduleEndDto extends CourseSchedule {
     @ApiModelProperty(value = "被合并的课程ids,多个,分割")
     private String mergedCourseIds;
 
-    public Date getGenerateTime() {
-        return generateTime;
-    }
-
-    public void setGenerateTime(Date generateTime) {
-        this.generateTime = generateTime;
-    }
-
-    public Date getDealTime() {
-        return dealTime;
-    }
-
-    public void setDealTime(Date dealTime) {
-        this.dealTime = dealTime;
-    }
-
-    public String getEducationTeacherName() {
-        return educationTeacherName;
-    }
-
-    public void setEducationTeacherName(String educationTeacherName) {
-        this.educationTeacherName = educationTeacherName;
-    }
-
-    public boolean getBeMerged() {
-        return beMerged;
-    }
-
-    public void setBeMerged(boolean beMerged) {
-        this.beMerged = beMerged;
-    }
-
-    public PracticeGroup getPracticeGroup() {
-        return practiceGroup;
-    }
-
-    public void setPracticeGroup(PracticeGroup practiceGroup) {
-        this.practiceGroup = practiceGroup;
-    }
-
-    public String getSettlementTime() {
-        return settlementTime;
-    }
-
-    public void setSettlementTime(String settlementTime) {
-        this.settlementTime = settlementTime;
-    }
-
-    public SignInStatusEnum getSignInStatusEnum() {
-        return signInStatusEnum;
-    }
-
-    public void setSignInStatusEnum(SignInStatusEnum signInStatusEnum) {
-        this.signInStatusEnum = signInStatusEnum;
-    }
-
-    public SignOutStatusEnum getSignOutStatusEnum() {
-        return signOutStatusEnum;
-    }
-
-    public void setSignOutStatusEnum(SignOutStatusEnum signOutStatusEnum) {
-        this.signOutStatusEnum = signOutStatusEnum;
-    }
-
-    public String getStudentId() {
-        return studentId;
-    }
-
-    public void setStudentId(String studentId) {
-        this.studentId = studentId;
-    }
-
-    public String getSubjectName() {
-        return subjectName;
-    }
-
-    public void setSubjectName(String subjectName) {
-        this.subjectName = subjectName;
-    }
-
-    public String getRemark() {
-        return remark;
-    }
-
-    public void setRemark(String remark) {
-        this.remark = remark;
-    }
-
-    public Date getSignInTime() {
-        return signInTime;
-    }
-
-    public void setSignInTime(Date signInTime) {
-        this.signInTime = signInTime;
-    }
-
-    public Date getSignOutTime() {
-        return signOutTime;
-    }
-
-    public void setSignOutTime(Date signOutTime) {
-        this.signOutTime = signOutTime;
-    }
-
-    public int getIsSignIn() {
-        return isSignIn;
-    }
-
-    public void setIsSignIn(int isSignIn) {
-        this.isSignIn = isSignIn;
-    }
-
-    public int getIsSignOut() {
-        return isSignOut;
-    }
-
-    public void setIsSignOut(int isSignOut) {
-        this.isSignOut = isSignOut;
-    }
-
-    public YesOrNoEnum getIsCallNames() {
-        return isCallNames;
-    }
-
-    public void setIsCallNames(YesOrNoEnum isCallNames) {
-        this.isCallNames = isCallNames;
-    }
-
-    public String getOrganName() {
-        return organName;
-    }
-
-    public void setOrganName(String organName) {
-        this.organName = organName;
-    }
-
-    public String getTeacherName() {
-        return teacherName;
-    }
-
-    public void setTeacherName(String teacherName) {
-        this.teacherName = teacherName;
-    }
-
-    public String getGroupName() {
-        return groupName;
-    }
-
-    public void setGroupName(String groupName) {
-        this.groupName = groupName;
-    }
-
-	public String getIsComplaints() {
-		return isComplaints;
-	}
-
-	public void setIsComplaints(String isComplaints) {
-		this.isComplaints = isComplaints;
-	}
-
-    public String getCooperationOrgan() {
-        return cooperationOrgan;
-    }
-
-    public void setCooperationOrgan(String cooperationOrgan) {
-        this.cooperationOrgan = cooperationOrgan;
-    }
-
-    public String getMergedCourseIds() {
-        return mergedCourseIds;
-    }
-
-    public void setMergedCourseIds(String mergedCourseIds) {
-        this.mergedCourseIds = mergedCourseIds;
-    }
+    @ApiModelProperty(value = "助教老师姓名")
+    private String teachingUserNames;
 }

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

@@ -3989,9 +3989,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		List<CourseScheduleEndDto> results = courseScheduleDao.endFindCourseSchedules(params);
         if (!CollectionUtils.isEmpty(results)) {
             List<Long> courseScheduleIds = results.stream().map(CourseScheduleEndDto::getId).collect(Collectors.toList());
-            List<Integer> teacherIds=results.stream().filter(t->Objects.nonNull(t.getActualTeacherId())).map(CourseSchedule::getActualTeacherId).collect(Collectors.toList());
-
-            List<Map<Integer, String>> nameIdMaps = teacherDao.queryNameByIdList(teacherIds);
+            List<Integer> teacherIds = results.stream().filter(t->Objects.nonNull(t.getActualTeacherId())).map(CourseSchedule::getActualTeacherId).collect(Collectors.toList());
+			List<Integer> teachingUserIdsList = results.stream()
+					.filter(u -> StringUtils.isNotEmpty(u.getTeachingTeacherIds()))
+					.flatMap(u -> Arrays.stream(u.getTeachingTeacherIds().split(",")))
+					.filter(StringUtils::isNotEmpty)
+					.map(Integer::parseInt)
+					.distinct()
+					.collect(Collectors.toList());
+			if(CollectionUtils.isNotEmpty(teachingUserIdsList)){
+				teacherIds.addAll(teachingUserIdsList);
+			}
+			List<Map<Integer, String>> nameIdMaps = teacherDao.queryNameByIdList(teacherIds);
             Map<Integer, String> nameIdMap = MapUtil.convertIntegerMap(nameIdMaps);
 
 			List<Map<Long, Long>> courseMergeCourseNum = courseScheduleDao.countCourseMergeCourseNum(courseScheduleIds);
@@ -4007,7 +4016,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
             Map<Long, String> eduName = null;
             Map<String, MusicGroupBasicDto> cooperationMap = new HashMap<>();
-            if (queryInfo.getIsExport()) {
+            if (queryInfo.isExport()) {
                 List<Long> musicCourseIds = results.stream().filter(e -> e.getGroupType() == MUSIC).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
                 eduName = new HashMap<>(courseScheduleIds.size());
                 if (musicCourseIds != null && musicCourseIds.size() > 0) {
@@ -4029,6 +4038,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             }
 
             for (CourseScheduleEndDto result : results) {
+				if(StringUtils.isNotEmpty(result.getTeachingTeacherIds())){
+					List<String> ids = Arrays.stream(result.getTeachingTeacherIds().split(",")).collect(Collectors.toList());
+					StringBuffer sb = new StringBuffer();
+					for (String teachingId : ids) {
+						String teachingName = nameIdMap.get(Integer.parseInt(teachingId));
+						if(StringUtils.isNotEmpty(teachingName)){
+							if(sb.length() > 0){
+								sb.append(",");
+							}
+							sb.append(teachingName);
+						}
+					}
+					result.setTeachingUserNames(sb.toString());
+				}
                 if (eduName != null) {
                     result.setEducationTeacherName(eduName.get(result.getId()));
                 }

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

@@ -2823,9 +2823,9 @@ public class ExportServiceImpl implements ExportService {
                 row.setIsComplaints(StringUtils.equals(row.getIsComplaints(), "1") ? "有" : "无");
             }
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"分部名称", "乐团主管", "课程编号", "课程组编号", "开始时间", "结束时间","班级声部", "课程名称", "课程类型", "教学模式",
-                    "教学点", "课程状态", "指导老师", "是否点名", "是否有考勤申诉", "预计上课人数", "合作单位"}, new String[]{
+                    "教学点", "课程状态", "指导老师",  "助教", "是否点名", "是否有考勤申诉", "预计上课人数", "合作单位"}, new String[]{
                     "organName", "educationTeacherName", "id", "musicGroupId", "startClassTime", "endClassTime", "subjectName", "name",
-                    "groupType.desc", "teachMode.msg", "schoolName", "status.msg", "teacherName", "isCallNames.msg", "isComplaints", "studentNum", "cooperationOrgan"}, rows);
+                    "groupType.desc", "teachMode.msg", "schoolName", "status.msg", "teacherName",  "teachingUserNames", "isCallNames.msg", "isComplaints", "studentNum", "cooperationOrgan"}, rows);
             exportManagerDownload(workbook, managerDownload);
         } catch (Exception e) {
             e.printStackTrace();

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

@@ -408,7 +408,7 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 			params.put("classGroupIds",classGroupIds);
 		}
 		int count = indexErrDataRecordDao.historyErrCourseDataCount(params);
-		if(queryInfo.getIsExport() && count > 50000){
+		if(queryInfo.isExport() && count > 50000){
 			throw new BizException("数据集太大,不能导出.最大数据集不能超过50000");
 		}
 		pageInfo.setTotal(count);
@@ -433,7 +433,7 @@ public class IndexErrDataRecordServiceImpl extends BaseServiceImpl<Long, IndexEr
 			List<Map<Integer, String>> classGroupSubjectNameMaps = classGroupDao.findClassGroupSubjectNameMaps(courseScheduleIds);
 			Map<Integer, String> classGroupSubjectNameMap = MapUtil.convertIntegerMap(classGroupSubjectNameMaps);
 			Map<Long, String> eduName = null;
-			if(queryInfo.getIsExport()){
+			if(queryInfo.isExport()){
 				List<Long> musicCourseIds = results.stream().filter(e -> e.getGroupType() == MUSIC).map(CourseScheduleEndDto::getId).collect(Collectors.toList());
 				eduName = new HashMap<>(courseScheduleIds.size());
 				if(musicCourseIds != null && musicCourseIds.size() > 0){

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

@@ -67,6 +67,7 @@
         <result column="isCallNames" property="isCallNames" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="is_complaints_" property="isComplaints"/>
         <result column="merged_course_ids_" property="mergedCourseIds"/>
+        <result column="teachingTeacherIds" property="teachingTeacherIds"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseScheduleDto" id="courseScheduleDto" extends="CourseSchedule">
@@ -2404,33 +2405,17 @@
 
     <select id="endFindCourseSchedules" resultMap="CourseScheduleEndDto">
         SELECT
-            cs.id_ id_,
-            cs.new_course_id_,
-            cs.group_type_,
-            cs.music_group_id_,
-            cs.class_group_id_,
-            cs.status_,
-            cs.name_,
-            cs.class_date_,
-            CONCAT(cs.class_date_,' ',cs.start_class_time_) course_start_time_,
+            cs.id_ id_,cs.new_course_id_,cs.group_type_,cs.music_group_id_,cs.class_group_id_,
+            cs.status_,cs.name_,cs.class_date_,CONCAT(cs.class_date_,' ',cs.start_class_time_) course_start_time_,
             CONCAT(cs.class_date_,' ',cs.end_class_time_) course_end_time_,
-            cs.actual_teacher_id_,
-            cs.teach_mode_,
-            cs.type_,
-            cs.schoole_id_,
-            cs.create_time_,
-            cs.is_lock_,
-            cs.organ_id_,
-            cs.member_flag_,
-            cs.new_course_id_,
-            s.name_ schoole_name_,
-            o.name_ organ_name_,
+            cs.actual_teacher_id_,cs.teach_mode_,cs.type_,cs.schoole_id_,cs.create_time_,cs.is_lock_,
+            cs.organ_id_,cs.member_flag_,cs.new_course_id_,s.name_ schoole_name_,o.name_ organ_name_,
             CASE WHEN COUNT(CASE WHEN sa.id_ IS NULL OR (sa.status_ = 'LEAVE' AND sa.remark_ IS NOT NULL) THEN NULL ELSE 1 END) > 0 THEN 1 ELSE 0 END isCallNames,
             CASE WHEN COUNT(CASE WHEN ta.is_complaints_ = 1 THEN 1 ELSE NULL END) > 0 THEN '1' ELSE '0' END is_complaints_,
             (
                 select group_concat(csd.id_) from course_schedule csd
                 where csd.del_flag_ = 0 and csd.id_ != csd.new_course_id_  and csd.new_course_id_ = cs.new_course_id_
-            ) as merged_course_ids_
+            ) as merged_course_ids_,GROUP_CONCAT(distinct CASE WHEN csts.teacher_role_ = 'TEACHING' THEN csts.user_id_ END) teachingTeacherIds
         FROM
             course_schedule cs
             LEFT JOIN school s ON cs.schoole_id_=s.id_
@@ -2445,22 +2430,22 @@
                 AND cssp.user_id_ = sa.user_id_
             </if>
             <include refid="endFindCourseSchedulesCondition"/>
-        GROUP BY
-            cs.class_date_,
-            cs.start_class_time_,
-            cs.id_
-        ORDER BY
-            cs.class_date_,
-            cs.start_class_time_,
-            cs.id_
+        GROUP BY cs.class_date_, cs.start_class_time_, cs.id_
+        <if test="hasTeaching != null">
+            <if test="hasTeaching == true">
+                HAVING teachingTeacherIds IS NOT NULL
+            </if>
+            <if test="hasTeaching == false">
+                HAVING teachingTeacherIds IS NULL
+            </if>
+        </if>
+        ORDER BY cs.class_date_, cs.start_class_time_, cs.id_
         <include refid="global.limit"/>
     </select>
 
     <select id="endCountCourseSchedules" resultType="int">
-        SELECT
-        COUNT(DISTINCT cs.id_)
-        FROM
-        course_schedule cs
+        SELECT COUNT(c.id_) FROM (
+        SELECT cs.id_,GROUP_CONCAT(distinct CASE WHEN csts.teacher_role_ = 'TEACHING' THEN csts.user_id_ END) teachingTeacherIds FROM course_schedule cs
         <if test="studentId != null or searchType == 'TEACHER_ERR_ATTENDANCE' or searchType == 'STUDENT_ERR_ATTENDANCE'">
             LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
         </if>
@@ -2471,6 +2456,15 @@
         LEFT JOIN teacher_attendance ta on ta.course_schedule_id_ = cs.id_
         LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
         <include refid="endFindCourseSchedulesCondition"/>
+        GROUP BY cs.id_
+        <if test="hasTeaching != null">
+            <if test="hasTeaching == true">
+                HAVING teachingTeacherIds IS NOT NULL
+            </if>
+            <if test="hasTeaching == false">
+                HAVING teachingTeacherIds IS NULL
+            </if>
+        </if>) c
     </select>
     <select id="findClassGroupCourseSchedulesWithDate" resultMap="CourseSchedule">
         SELECT <include refid="resultSql"/>
@@ -2558,7 +2552,7 @@
             AND cs.teach_mode_ = #{teachMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
         <if test="teacherIdList != null">
-            AND csts.user_id_=#{teacherIdList}
+            AND csts.user_id_ = #{teacherIdList}
         </if>
         <if test="teachType != null">
             AND csts.teacher_role_ = #{teachType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -2575,14 +2569,6 @@
         <if test="tenantId != null">
             AND cs.tenant_id_ = #{tenantId}
         </if>
-        <if test="hasTeaching != null">
-            <if test="hasTeaching == 'true'">
-
-            </if>
-            <if test="hasTeaching == 'false'">
-
-            </if>
-        </if>
         <if test="searchType == 'TEACHER_ERR_ATTENDANCE'">
             AND ta.teacher_id_ = cs.actual_teacher_id_
             AND cs.status_ = 'OVER'

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

@@ -1892,7 +1892,7 @@ public class ExportController extends BaseController {
         }
         queryInfo.setPage(1);
         queryInfo.setRows(49999);
-        queryInfo.setIsExport(true);
+        queryInfo.setExport(true);
         ManagerDownload managerDownload = exportService.saveManagerDownload(ExportTypeEnum.COURSE_SCHEDULE, sysUser.getId());
         TenantContextHolder.setTenantId(tenantId);
         HttpResponseResult succeed = exportService.asyncExport(() -> exportService.superFindCourseSchedules(queryInfo, managerDownload), managerDownload.getName());