Преглед на файлове

update:服务指标逻辑修改

yonge преди 3 години
родител
ревизия
008269e93d

+ 17 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupStudentMapperDao.java

@@ -1,20 +1,27 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.dto.*;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.ym.mec.biz.dal.dto.BaseMapDto;
+import com.ym.mec.biz.dal.dto.ClassGroupStudentInfoDto;
+import com.ym.mec.biz.dal.dto.ClassGroupStudentMapperDto;
+import com.ym.mec.biz.dal.dto.StudentAttendanceViewDto;
+import com.ym.mec.biz.dal.dto.StudentEduTeacherDto;
+import com.ym.mec.biz.dal.dto.StudentNameAndPhoneDto;
+import com.ym.mec.biz.dal.dto.TeacherClassStudentDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
 
 public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStudentMapper> {
 
@@ -479,4 +486,6 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
      */
     List<ClassGroup> getStudentClassGroupWithTeacher(@Param("studentIds") Set<Integer> studentIds,
                                                      @Param("teacherId") Integer teacherId);
+    
+    List<ClassGroupStudentMapperDto> queryByClassGroupType(@Param("musicGroupId") String musicGroupId,@Param("classGroupType") ClassGroupTypeEnum classGroupType,@Param("teacherRole") TeachTypeEnum teacherRole, @Param("studentIdList") List<Integer> studentIdList);
 }

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java

@@ -151,6 +151,4 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
     Set<Integer> queryTeacherIdsByClassGroupId(@Param("classGroupId") Integer classGroupId,
                                                @Param("musicGroupId") String musicGroupId,
                                                @Param("groupType") GroupType groupType);
-    
-    List<ClassGroupTeacherMapper> queryByClassGroupType(@Param("musicGroupId") String musicGroupId,@Param("classGroupType") ClassGroupTypeEnum classGroupType,@Param("teacherRole") TeachTypeEnum teacherRole);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ClassGroupStudentMapperDto.java

@@ -9,6 +9,8 @@ public class ClassGroupStudentMapperDto extends ClassGroupStudentMapper {
 
     @ApiModelProperty(value = "科目名称(声部名称)",required = true)
     private String subjectName;
+    
+    private Integer teacherId;
 
     public Integer actualSubjectId() {
         return actualSubjectId;
@@ -25,4 +27,12 @@ public class ClassGroupStudentMapperDto extends ClassGroupStudentMapper {
     public void setSubjectName(String subjectName) {
         this.subjectName = subjectName;
     }
+
+	public Integer getTeacherId() {
+		return teacherId;
+	}
+
+	public void setTeacherId(Integer teacherId) {
+		this.teacherId = teacherId;
+	}
 }

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentExtracurricularExercisesSituation.java

@@ -228,6 +228,31 @@ public class StudentExtracurricularExercisesSituation extends BaseEntity {
 	}
 
 	@Override
+	public int hashCode() {
+		Object[] objs = { monday, studentId, teacherId, serveType };
+		int result = 1;
+		for (Object obj : objs) {
+			result = 31 * result + obj.hashCode();
+		}
+		return result;
+	}
+
+	@Override
+	public boolean equals(Object obj) {
+
+		if (obj instanceof StudentExtracurricularExercisesSituation) {
+
+			StudentExtracurricularExercisesSituation dto = (StudentExtracurricularExercisesSituation) obj;
+
+			if (this.monday.equals(dto.getMonday()) && this.studentId.intValue() == dto.getStudentId() && this.teacherId.intValue() == dto.getTeacherId()
+					&& this.serveType.equals(dto.getServeType())) {
+				return true;
+			}
+		}
+		return false;
+	}
+
+	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}

+ 21 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -28,7 +28,6 @@ import org.springframework.util.CollectionUtils;
 
 import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
-import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
 import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao;
 import com.ym.mec.biz.dal.dao.ExtracurricularExercisesReplyDao;
@@ -38,11 +37,11 @@ import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.dao.StudentExtracurricularExercisesSituationDao;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.ClassGroupStudentMapperDto;
 import com.ym.mec.biz.dal.dto.IndexBaseDto;
 import com.ym.mec.biz.dal.dto.StudentServeCourseDto;
 import com.ym.mec.biz.dal.dto.StudentServeCourseHomeworkDto;
 import com.ym.mec.biz.dal.dto.StudentServeDto;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
@@ -56,6 +55,7 @@ import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.IndexDataType;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.service.StudentServeService;
@@ -95,9 +95,6 @@ public class StudentServeServiceImpl implements StudentServeService {
     @Autowired
     private StudentRegistrationDao studentRegistrationDao;
     
-    @Autowired
-    private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
-
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void exercisesSituationStatistics(String monday, Integer tenantId) {
@@ -463,21 +460,24 @@ public class StudentServeServiceImpl implements StudentServeService {
 			musicGroupId = entry.getKey();
 			
 			MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-			if(musicGroup == null){
+			if(musicGroup == null || musicGroup.getStatus() != MusicGroupStatusEnum.PROGRESS){
 				continue;
 			}
+			Map<Integer,Integer> studentTeacherMapper = null;
 			
-			teacherType = musicGroup.getExtracurricularTeacher();
-			List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperDao.queryByClassGroupType(musicGroupId, teacherType, TeachTypeEnum.BISHOP);
+			teacherType = musicGroup.getExtracurricularTeacher() == null ? ClassGroupTypeEnum.NORMAL : musicGroup.getExtracurricularTeacher();
+			List<ClassGroupStudentMapperDto> classGroupStudentMapperDtoList = classGroupStudentMapperDao.queryByClassGroupType(musicGroupId, teacherType, TeachTypeEnum.BISHOP, entry.getValue());
+			if(classGroupStudentMapperDtoList != null){
+				studentTeacherMapper = classGroupStudentMapperDtoList.stream().collect(Collectors.toMap(ClassGroupStudentMapperDto :: getUserId, ClassGroupStudentMapperDto :: getTeacherId));
+			}
 			
 			userCourseMap = musicGroupStudentCurrentWeekCourseMap.get(musicGroupId);
 			
 			for(Integer studentId : entry.getValue()){
 				//在当前乐团,学生本周是否有课
-				studentServeCourseDto = userCourseMap.get(studentId);
-				if(studentServeCourseDto == null){//如果本周没课
+				if(userCourseMap == null || userCourseMap.get(studentId) == null){//如果本周没课
 					
-					if(classGroupTeacherMapperList == null || classGroupTeacherMapperList.size() == 0){
+					if(studentTeacherMapper == null || (teacherId = studentTeacherMapper.get(studentId)) == null){
 						continue;
 					}
 					
@@ -488,16 +488,20 @@ public class StudentServeServiceImpl implements StudentServeService {
 					teacherCourseNumMap.put(teacherId, teacherCourseNumMap.get(teacherId) == null ? 1 : teacherCourseNumMap.get(teacherId) + 1);
 					studentTeacherCourseNumMap.put(studentId, teacherCourseNumMap);
 					
-					teacherId = classGroupTeacherMapperList.get(0).getUserId();
-
 					//本周没有课,布置课外训练
 					studentExtracurricularExercisesSituation = new StudentExtracurricularExercisesSituation(studentId, teacherId,
 							nowDate.get(DateUtil.weekFields.weekOfYear()), DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"), DateUtil.stringToDate(
 									sunDayDate.toString(), "yyyy-MM-dd"), "EXERCISE", null);
+					
+					
 					studentExtracurricularExercisesSituation.setExpectExercisesNum(teacherCourseNumMap.get(teacherId));
+					if(results.contains(studentExtracurricularExercisesSituation)){
+						results.remove(studentExtracurricularExercisesSituation);
+					}
 					results.add(studentExtracurricularExercisesSituation);
 				}else{//如果本周有课
-					
+
+					studentServeCourseDto = userCourseMap.get(studentId);
 					teacherId = studentServeCourseDto.getActualTeacherId();
 					
 					teacherCourseMap = studentTeacherCourseMap.get(studentId);
@@ -533,6 +537,9 @@ public class StudentServeServiceImpl implements StudentServeService {
                     
                     studentExtracurricularExercisesSituation.setNotOverCourseIds(StringUtils.join(courseIdList, ","));
                     studentExtracurricularExercisesSituation.setNotOverCourseNum(courseIdList.size());
+					if(results.contains(studentExtracurricularExercisesSituation)){
+						results.remove(studentExtracurricularExercisesSituation);
+					}
                     results.add(studentExtracurricularExercisesSituation);
 				}
 			}

+ 18 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupStudentMapperMapper.xml

@@ -24,6 +24,10 @@
         <result property="phone" column="phone_"/>
     </resultMap>
 
+    <resultMap id="ClassGroupStudentMapperDto" type="com.ym.mec.biz.dal.dto.ClassGroupStudentMapperDto" extends="ClassGroupStudentMapper">
+        <result property="teacherId" column="teacher_id_"/>
+    </resultMap>
+
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="ClassGroupStudentMapper">
 		SELECT * FROM class_group_student_mapper WHERE id_ = #{id} 
@@ -680,4 +684,18 @@
             AND cg.id_ IS NOT NULL
         ORDER BY cg.id_ DESC
     </select>
+    
+    <select id="queryByClassGroupType" resultMap="ClassGroupStudentMapperDto">
+    
+    	SELECT cgsm.*,cgtm.user_id_ teacher_id_ from class_group_student_mapper cgsm LEFT JOIN class_group cg on cgsm.class_group_id_ = cg.id_
+		LEFT JOIN class_group_teacher_mapper cgtm on cgsm.class_group_id_ = cgtm.class_group_id_
+		WHERE cgtm.music_group_id_ = #{musicGroupId} and cg.type_ = #{classGroupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} 
+        and cgtm.teacher_role_ = #{teacherRole,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and cg.del_flag_ = 0
+		and cgsm.user_id_ IN
+                <foreach collection="studentIdList" item="studentId" open="(" close=")" separator=",">
+                    #{studentId}
+                </foreach>
+        group by cgsm.user_id_
+        
+    </select>
 </mapper>

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

@@ -243,11 +243,4 @@
             </if>
         </where>
     </sql>
-    
-    <select id="queryByClassGroupType" resultMap="ClassGroupTeacherMapper">
-        SELECT cgtm.* FROM class_group_teacher_mapper cgtm left join class_group cg on cgtm.class_group_id_ = cg.id_ 
-        where music_group_id_ = #{musicGroupId} and cg.type_ = #{classGroupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} 
-        and cgtm.teacher_role_ = #{teacherRole,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and cg.del_flag_ = 0
-        ORDER BY id_
-    </select>
 </mapper>

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

@@ -619,7 +619,7 @@
         WHERE cssp.tenant_id_ = #{tenantId}
             AND (cs.del_flag_ IS NULL OR cs.del_flag_=0)
             AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
-            AND cs.class_date_between #{monday} and #{sunday}
+            AND cs.class_date_ between #{monday} and #{sunday}
             AND cs.type_ IN ('SINGLE', 'TRAINING_SINGLE', 'MIX', 'TRAINING_MIX')
             <if test="studentIds!=null and studentIds.size()>0">
                 AND cssp.user_id_ IN

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

@@ -1813,7 +1813,7 @@
     	select sr.* from student_registration sr 
     	left join music_group mg ON mg.id_ = sr.music_group_id_
     	left join student s on s.user_id_ = sr.user_id_
-    	where s.service_tag_ = 1 AND (stu.service_tag_update_time_ IS NULL OR stu.service_tag_update_time_&lt;#{nextMonday})
+    	where s.service_tag_ = 1 AND (s.service_tag_update_time_ IS NULL OR s.service_tag_update_time_&lt;#{nextMonday})
     	and sr.music_group_status_ = 'NORMAL' AND mg.status_ = 'PROGRESS' and sr.tenant_id_ = #{tenantId}
     </select>
 </mapper>

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

@@ -364,7 +364,7 @@ public class TaskController extends BaseController {
 	@GetMapping("/exercisesSituationStatistics")
 	public void exercisesSituationStatistics(String monday){
 		TenantContextHolder.setTenantId(1);
-		studentServeService.exercisesSituationStatistics2(monday,null,1);
+		studentServeService.exercisesSituationStatistics2(monday,1);
 		TenantContextHolder.clearTenantId();
 //		studentServeService.exercisesSituationStatistics2(null,new ArrayList<>(Arrays.asList(1095257)));
 //		studentServeService.exercisesSituationStatistics(null);