Kaynağa Gözat

Merge remote-tracking branch 'origin/master'

zouxuan 4 yıl önce
ebeveyn
işleme
a74dea3fa5
17 değiştirilmiş dosya ile 95 ekleme ve 52 silme
  1. 10 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/IndexBaseDto.java
  2. 10 10
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java
  3. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/event/listener/GroupEventListener.java
  4. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  5. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  6. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  7. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java
  8. 20 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java
  9. 11 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  10. 9 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java
  11. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  12. 9 8
      mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml
  13. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml
  14. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java
  15. 5 2
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java
  16. 2 5
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherLeaveRecordController.java
  17. 5 2
      mec-web/src/main/java/com/ym/mec/web/controller/education/EducationCourseScheduleController.java

+ 10 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/IndexBaseDto.java

@@ -74,13 +74,17 @@ public class IndexBaseDto {
     public void setIndexMonthData(List<IndexBaseMonthData> indexMonthData, Date currentMonth) {
         this.indexMonthData = indexMonthData;
         if(!CollectionUtils.isEmpty(indexMonthData)){
-            BigDecimal total = indexMonthData.stream().map(IndexBaseMonthData::getTotalNum).reduce(BigDecimal.ZERO, BigDecimal::add);
-            if(IndexDataType.ACTIVATION_RATE.equals(dataType)){
-                if(total.compareTo(BigDecimal.ZERO)==0){
-                    this.percent = BigDecimal.ZERO;
+            if(dataType.getCollect()){
+                BigDecimal total = indexMonthData.stream().map(IndexBaseMonthData::getTotalNum).reduce(BigDecimal.ZERO, BigDecimal::add);
+                if(dataType.getPercent()){
+                    if(total.compareTo(BigDecimal.ZERO)==0){
+                        this.percent = BigDecimal.ZERO;
+                    }else{
+                        BigDecimal activateNum = indexMonthData.stream().map(IndexBaseMonthData::getActivateNum).reduce(BigDecimal.ZERO, BigDecimal::add);
+                        this.percent = activateNum.divide(total, CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN);
+                    }
                 }else{
-                    BigDecimal activateNum = indexMonthData.stream().map(IndexBaseMonthData::getActivateNum).reduce(BigDecimal.ZERO, BigDecimal::add);
-                    this.percent = activateNum.divide(total, CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_DOWN);
+                    this.percent = total;
                 }
             }else{
                 this.percent = indexMonthData.stream().filter(i->currentMonth.compareTo(i.getMonth())>=0).max(Comparator.comparing(IndexBaseMonthData::getMonth)).get().getPercent();

+ 10 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/IndexDataType.java

@@ -42,22 +42,22 @@ public enum IndexDataType implements BaseEnum<String, IndexDataType> {
     FINANCE_AMOUNT("FINANCE_AMOUNT","现金收入", false, false),
 
     //业务数据
-    HOMEWORK_CREATE_RATE("HOMEWORK_CREATE_RATE","作业布置率", true, false),
-    HOMEWORK_SUBMIT_RATE("HOMEWORK_SUBMIT_RATE","作业提交率", true, false),
-    HOMEWORK_COMMENT_RATE("HOMEWORK_COMMENT_RATE","作业点评率", true, false),
+    HOMEWORK_CREATE_RATE("HOMEWORK_CREATE_RATE","作业布置率", true, true),
+    HOMEWORK_SUBMIT_RATE("HOMEWORK_SUBMIT_RATE","作业提交率", true, true),
+    HOMEWORK_COMMENT_RATE("HOMEWORK_COMMENT_RATE","作业点评率", true, true),
 
     //课程数据
-    MUSIC_GROUP_COURSE("MUSIC_GROUP_COURSE","乐团课", false, false),
-    VIP_GROUP_COURSE("VIP_GROUP_COURSE","VIP课", false, false),
-    PRACTICE_GROUP_COURSE("PRACTICE_GROUP_COURSE","网管课", false, false),
+    MUSIC_GROUP_COURSE("MUSIC_GROUP_COURSE","乐团课", false, true),
+    VIP_GROUP_COURSE("VIP_GROUP_COURSE","VIP课", false, true),
+    PRACTICE_GROUP_COURSE("PRACTICE_GROUP_COURSE","网管课", false, true),
 
     //学员变动
-    ADD_STUDENT_REGISTRATION_NUM("ADD_STUDENT_REGISTRATION_NUM", "新增注册学员", false, false),
+    ADD_STUDENT_REGISTRATION_NUM("ADD_STUDENT_REGISTRATION_NUM", "新增注册学员", false, true),
     MUSIC_GROUP_STUDENT("MUSIC_GROUP_STUDENT","乐团在读学员", false, false),
-    NEWLY_STUDENT_NUM("NEWLY_STUDENT_NUM","乐团新增学员", false, false),
-    QUIT_MUSIC_GROUP_STUDENT_NUM("QUIT_MUSIC_GROUP_STUDENT_NUM","退团学员", false, false),
+    NEWLY_STUDENT_NUM("NEWLY_STUDENT_NUM","乐团新增学员", false, true),
+    QUIT_MUSIC_GROUP_STUDENT_NUM("QUIT_MUSIC_GROUP_STUDENT_NUM","退团学员", false, true),
     VIP_PRACTICE_STUDENT_NUM("VIP_PRACTICE_STUDENT_NUM", "VIP/网管在读", false, false),
-    VIP_PRACTICE_ADD_STUDENT_NUM("VIP_PRACTICE_ADD_STUDENT_NUM", "VIP/网管新增", false, false),
+    VIP_PRACTICE_ADD_STUDENT_NUM("VIP_PRACTICE_ADD_STUDENT_NUM", "VIP/网管新增", false, true),
     ;
 
     private String code;

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/event/listener/GroupEventListener.java

@@ -66,7 +66,7 @@ public class GroupEventListener {
             updateNum+=1;
         }
         LocalDate nowDate = LocalDate.now();
-        String dayStr = nowDate.plusDays(-1).toString();
+        String dayStr = nowDate.toString();
         IndexBaseMonthData indexBaseMonthData = null;
         switch (musicGroupStatusChangeEvent.getStudentMusicGroupStatus()){
             case NORMAL:

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

@@ -259,7 +259,7 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 	 * @Date: 2019/9/24
 	 * 课程交换
 	 */
-	void courseSwap(Long courseScheduleId1, Long courseScheduleId2);
+	void courseSwap(Long courseScheduleId1, Long courseScheduleId2, Boolean allowZeroSalary);
 
 	/**
 	 * @Author: Joburgess

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

@@ -3719,7 +3719,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void courseSwap(Long courseScheduleId1, Long courseScheduleId2) {
+    public void courseSwap(Long courseScheduleId1, Long courseScheduleId2, Boolean allowZeroSalary) {
         if (courseScheduleId1.equals(courseScheduleId2)) {
             throw new BizException("请选择不同的课程");
         }
@@ -3752,7 +3752,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         List<CourseSchedule> courseSchedules = new ArrayList<>();
         courseSchedules.add(courseSchedule1);
         courseSchedules.add(courseSchedule2);
-        classStartDateAdjust(courseSchedules);
+        courseAdjust(courseSchedules, allowZeroSalary);
     }
 
     @Override

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

@@ -227,8 +227,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		//学员变动
 		saveData(indexBaseMonthDataDao.getAddStudentRegistrationData(dayStr), dayStr, IndexDataType.ADD_STUDENT_REGISTRATION_NUM);
 		saveData(indexBaseMonthDataDao.getMusicStudentData(dayStr, null), dayStr, IndexDataType.MUSIC_GROUP_STUDENT);
-		saveData(null, dayStr, IndexDataType.NEWLY_STUDENT_NUM);
-		saveData(null, dayStr, IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
+		saveData(null, nowDate.toString(), IndexDataType.NEWLY_STUDENT_NUM);
+		saveData(null, nowDate.toString(), IndexDataType.QUIT_MUSIC_GROUP_STUDENT_NUM);
 		saveData(indexBaseMonthDataDao.getOtherStudentData(dayStr), dayStr, IndexDataType.VIP_PRACTICE_STUDENT_NUM);
 		saveData(indexBaseMonthDataDao.getVipPracticeAddStudentData(dayStr), dayStr, IndexDataType.VIP_PRACTICE_ADD_STUDENT_NUM);
 	}

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -15,6 +15,7 @@ import com.ym.mec.biz.dal.dto.MusicArrearageStudentDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
 import com.ym.mec.biz.dal.page.ArrearageStudentsQueryInfo;
+import com.ym.mec.biz.event.source.GroupEventSource;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
@@ -65,6 +66,8 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 	private StudentRegistrationDao studentRegistrationDao;
 	@Autowired
 	private SysMessageService sysMessageService;
+	@Autowired
+	private GroupEventSource groupEventSource;
 
 	@Override
 	public BaseDAO<Long, MusicGroupPaymentCalenderDetail> getDAO() {
@@ -120,6 +123,9 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 					studentRegistration.setPaymentStatus(YES);
 					studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
 					studentRegistrationDao.update(studentRegistration);
+
+					//统计变更学员数
+					groupEventSource.musicGroupStudentChangeEvent(calender.getMusicGroupId(), StudentMusicGroupStatusEnum.NORMAL, new ArrayList<>(Arrays.asList(e.getUserId())));
 				}
 			}
 		});

+ 20 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -28,6 +28,7 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
+import com.ym.mec.biz.event.source.GroupEventSource;
 import com.ym.mec.biz.service.*;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -132,6 +133,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	private MusicGroupPaymentCalenderStudentDetailDao musicGroupPaymentCalenderStudentDetailDao;
 	@Autowired
 	private StudentRegistrationDao studentRegistrationDao;
+	@Autowired
+	private GroupEventSource groupEventSource;
 
 	@Override
 	public BaseDAO<Long, MusicGroupPaymentCalender> getDAO() {
@@ -206,6 +209,16 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			musicGroupPaymentCalenderCourseSettingsList = new ArrayList<>();
 		}
 
+		// 必须课程缴费金额为0时,报名、续费不能建多期
+		if(paymentType == MUSIC_APPLY || paymentType == MUSIC_RENEW){
+			BigDecimal noOptionalCoursePrice = musicGroupPaymentCalenderCourseSettingsList.stream()
+					.filter(e -> !e.getIsStudentOptional()).map(MusicGroupPaymentCalenderCourseSettings::getCourseCurrentPrice)
+					.reduce(BigDecimal.ZERO, BigDecimal::add);
+			if(noOptionalCoursePrice.compareTo(BigDecimal.ZERO) <= 0 && musicGroupPaymentDateRangeList.size() > 1){
+				throw new BizException("必选课程缴费金额为0时不支持多周期缴费");
+			}
+		}
+
 		if (payUserType == SCHOOL) {
 			status = AUDITING;
 		} else {
@@ -804,6 +817,10 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 						,studentIds,courseIds,classGroupStudents,allLockCourseIds,batchNo,adjust.getMasterTotalPrice());
 			}
 		}
+
+		//统计变更学员数
+		groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.NORMAL, null);
+
 		return batchNo;
 	}
 
@@ -870,6 +887,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 					studentRegistration.setPaymentStatus(YES);
 					studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
 					studentRegistrationDao.update(studentRegistration);
+
+					//统计变更学员数
+					groupEventSource.musicGroupStudentChangeEvent(musicGroupPaymentCalender.getMusicGroupId(), StudentMusicGroupStatusEnum.NORMAL, new ArrayList<>(Arrays.asList(Integer.parseInt(studentId))));
 				}
 
 				// 学生加课程明细
@@ -1159,7 +1179,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			}
 			musicGroupPaymentCalenderDao.batchUpdate(musicGroupPaymentCalenders);
 		}
-
 	}
 
 	@Override

+ 11 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1911,9 +1911,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 musicGroupSubjectPlanDao.update(musicGroupSubjectPlan);
             }
 
-            //统计变更学员数
-            groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.QUIT, new ArrayList<>(Arrays.asList(userId)));
+            if(MusicGroupStatusEnum.PROGRESS.equals(musicGroup.getStatus())){
+                //统计变更学员数
+                groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.QUIT, new ArrayList<>(Arrays.asList(userId)));
 
+            }
             if (currentStudentMusicGroupStatus != StudentMusicGroupStatusEnum.NORMAL) {
                 return true;
             }
@@ -2089,8 +2091,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             musicGroupSubjectPlanDao.update(musicGroupSubjectPlan);
         }
 
-        //统计变更学员数
-        groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.QUIT, new ArrayList<>(Arrays.asList(userId)));
+        if(MusicGroupStatusEnum.PROGRESS.equals(musicGroup.getStatus())){
+            //统计变更学员数
+            groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.QUIT, new ArrayList<>(Arrays.asList(userId)));
+        }
 
         if (currentStudentMusicGroupStatus != StudentMusicGroupStatusEnum.NORMAL) {
             return true;
@@ -2309,6 +2313,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                 studentRegistration.setPaymentStatus(YES);
                 studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
                 studentRegistrationDao.update(studentRegistration);
+
+                //统计变更学员数
+                groupEventSource.musicGroupStudentChangeEvent(studentRegistration.getMusicGroupId(), StudentMusicGroupStatusEnum.NORMAL, new ArrayList<>(Arrays.asList(userId)));
             }
             /*if (musicGroupPaymentCalender.getType().equals(MusicGroupPaymentCalender.FeeType.ONLINE)) {
                 Integer getRemainNetworkClassTimes = musicGroupStudentFee.getRemainNetworkClassTimes() == null ? 0 : musicGroupStudentFee.getRemainNetworkClassTimes();

+ 9 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentExtracurricularExercisesSituationServiceImpl.java

@@ -344,9 +344,12 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			List<CourseSchedule> courseSchedules = courseScheduleDao.queryByCourseScheduleIds(params);
+			Map<Integer, ClassGroup> idClassGroupMap = new HashMap<>();
 			List<Integer> classGroupIds = courseSchedules.stream().map(CourseSchedule::getClassGroupId).collect(Collectors.toList());
-			List<ClassGroup> classGroups = classGroupDao.findByClassGroupIds(classGroupIds, null);
-			Map<Integer, ClassGroup> idClassGroupMap = classGroups.stream().collect(Collectors.toMap(ClassGroup::getId, c -> c, (c1, c2) -> c1));
+			if(!CollectionUtils.isEmpty(classGroupIds)){
+				List<ClassGroup> classGroups = classGroupDao.findByClassGroupIds(classGroupIds, null);
+				idClassGroupMap = classGroups.stream().collect(Collectors.toMap(ClassGroup::getId, c -> c, (c1, c2) -> c1));
+			}
 
 			List<CourseHomework> courseHomeworks = courseHomeworkDao.findByCourseSchedules(new ArrayList<>(courseIds));
 			Map<Long, Long> courseHomeworkMap = new HashMap<>();
@@ -367,7 +370,10 @@ public class StudentExtracurricularExercisesSituationServiceImpl extends BaseSer
 				}
 				dataList.add(tshd);
 			}
-			List<Subject> subjects = subjectDao.findBySubjectIds(new ArrayList<>(subjectIds));
+			List<Subject> subjects = new ArrayList<>();
+			if(!CollectionUtils.isEmpty(subjectIds)){
+				subjects = subjectDao.findBySubjectIds(new ArrayList<>(subjectIds));
+			}
 			for (TeacherServeHomeworkDto teacherServeHomeworkDto : dataList) {
 				if(idClassGroupMap.containsKey(teacherServeHomeworkDto.getClassGroupId())){
 					ClassGroup classGroup = idClassGroupMap.get(teacherServeHomeworkDto.getClassGroupId());

+ 0 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -808,9 +808,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             }
             studentRegistrationDao.updateCurrentClass(studentRegistration);
 
-            //统计变更学员数
-            groupEventSource.musicGroupStudentChangeEvent(musicGroupId, StudentMusicGroupStatusEnum.NORMAL, new ArrayList<>(Arrays.asList(userId)));
-
             return userId;
         }
     }

+ 9 - 8
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -166,7 +166,7 @@
 					 sr.user_id_
 				 FROM
 					 student_registration sr
-						 LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
+					LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
 				 WHERE
 					 mg.status_ IN ( 'PREPARE', 'PROGRESS' )
 				   AND sr.music_group_status_ = 'NORMAL'
@@ -182,6 +182,7 @@
 				 cs.del_flag_ = 0
 			   AND ( cs.is_lock_ = 0 OR cs.is_lock_ IS NULL )
 			   AND ( cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_ )
+			   AND cssp.group_type_ IN ('VIP', 'PRACTICE')
 			   AND cs.organ_id_ IS NOT NULL
 			   AND DATE_FORMAT(cssp.create_time_, '%Y-%m-%d')&lt;=#{dayStr}
 			)) u
@@ -222,7 +223,7 @@
 			COUNT( DISTINCT stu.user_id_ ) percent_
 		FROM
 			student stu
-				LEFT JOIN sys_user su ON stu.user_id_=su.id_
+			LEFT JOIN sys_user su ON stu.user_id_=su.id_
 		WHERE
 			su.del_flag_=0
 		  AND su.organ_id_ IS NOT NULL
@@ -238,7 +239,7 @@
 			#{dayStr} month_,
 			COUNT( DISTINCT stu.user_id_ ) total_num_,
 			COUNT( DISTINCT (CASE WHEN DATE_FORMAT( spo.create_time_, '%Y-%m-%d' ) &lt;= #{dayStr} THEN spo.user_id_ ELSE NULL END) ) activate_num_,
-			TRUNCATE(COUNT(DISTINCT spo.user_id_)/COUNT(DISTINCT stu.user_id_)*100, 2) percent_
+			TRUNCATE(COUNT(DISTINCT (CASE WHEN DATE_FORMAT( spo.create_time_, '%Y-%m-%d' ) &lt;= #{dayStr} THEN spo.user_id_ ELSE NULL END))/COUNT(DISTINCT stu.user_id_)*100, 2) percent_
 		FROM
 			student stu
 			LEFT JOIN sys_user su ON stu.user_id_=su.id_
@@ -247,7 +248,7 @@
 			su.del_flag_=0
 			  AND su.organ_id_ IS NOT NULL
 			  AND su.user_type_ LIKE '%STUDENT%'
-			  AND DATE_FORMAT(su.create_time_, '%Y-%m-%d')&lt;=#{dayStr}
+			  AND DATE_FORMAT(stu.create_time_, '%Y-%m-%d')&lt;=#{dayStr}
 		GROUP BY organ_id_
 		ORDER BY organ_id_;
 	</select>
@@ -368,6 +369,7 @@
 			LEFT JOIN sys_user su ON su.id_ = t.id_
 		WHERE
 			su.del_flag_ = 0
+		  	AND (t.demission_date_ IS NULl OR DATE_FORMAT(t.demission_date_, '%Y-%m-%d') &gt; #{dayStr})
 		  	<if test="isDemission==null">
 				AND su.lock_flag_ = 0
 			</if>
@@ -401,7 +403,7 @@
 			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 		  	AND m.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
-		  	AND m.group_type_!='DEMO'
+			AND NOT EXISTS (SELECT id_ FROM practice_group WHERE m.group_type_='PRACTICE' AND m.music_group_id_=id_ AND type_='TRIAL')
 			AND m.organ_id_ IS NOT NULL
 			<if test="groupType!=null">
 				AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -429,7 +431,7 @@
 			AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 			AND m.status_ = #{courseStatus, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 			AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
-			AND m.group_type_!='DEMO'
+			AND NOT EXISTS (SELECT id_ FROM practice_group WHERE m.group_type_='PRACTICE' AND m.music_group_id_=id_ AND type_='TRIAL')
 			AND m.organ_id_ IS NOT NULL
 			<if test="groupType!=null">
 				AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -454,7 +456,7 @@
 		m.del_flag_ = 0
 		AND (m.is_lock_ = 0 OR m.is_lock_ IS NULL)
 		AND (m.new_course_id_ IS NULL OR m.new_course_id_=m.id_)
-		AND m.group_type_!='DEMO'
+		AND NOT EXISTS (SELECT id_ FROM practice_group WHERE m.group_type_='PRACTICE' AND m.music_group_id_=id_ AND type_='TRIAL')
 		AND m.organ_id_ IS NOT NULL
 		<if test="groupType!=null">
 			AND m.group_type_ = #{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -512,7 +514,6 @@
 			AND cssp1.id_ IS NULL
 			AND su.organ_id_ IS NOT NULL
 			AND m.group_type_ IN ('VIP', 'PRACTICE')
-			AND m.status_ = 'NOT_START'
 			<if test="dayStr!=null and dayStr!=''">
 				AND DATE_FORMAT(s.create_time_, '%Y-%m-%d') = #{dayStr}
 			</if>

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

@@ -523,7 +523,7 @@
 			sees.teacher_id_,
 			su.real_name_ teacher_name_,
 			SUM(CASE sees.serve_type_ WHEN 'HOMEWORK' THEN sees.expect_exercises_num_ ELSE 0 END) homework_num_,
-			SUM(CASE sees.serve_type_ WHEN 'EXERCISE' THEN sees.expect_exercises_num_ ELSE 0 END) exercise_num_,
+			SUM(CASE sees.serve_type_ WHEN 'EXERCISE' THEN 1 ELSE 0 END) exercise_num_,
 			SUM(sees.expect_exercises_num_)>SUM(sees.actual_exercises_num_) un_done_
 		FROM
 			student_extracurricular_exercises_situation_ sees

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -274,7 +274,7 @@ public class TeacherCourseScheduleController extends BaseController {
         if(Objects.isNull(courseScheduleId1)||Objects.isNull(courseScheduleId2)){
             return failed("请指定课程!");
         }
-        scheduleService.courseSwap(courseScheduleId1,courseScheduleId2);
+        scheduleService.courseSwap(courseScheduleId1,courseScheduleId2, true);
         return succeed();
     }
 

+ 5 - 2
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -262,11 +262,14 @@ public class CourseScheduleController extends BaseController {
     @ApiOperation(value = "课时交换")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/courseSwap')")
     @GetMapping(value = "/courseSwap",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
-    public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2){
+    public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2, Boolean allowZeroSalary){
         if(Objects.isNull(courseScheduleId1)||Objects.isNull(courseScheduleId2)){
             return failed("请指定课程");
         }
-        courseScheduleService.courseSwap(courseScheduleId1,courseScheduleId2);
+        if(Objects.isNull(allowZeroSalary)){
+            allowZeroSalary = false;
+        }
+        courseScheduleService.courseSwap(courseScheduleId1,courseScheduleId2,allowZeroSalary);
         return succeed();
     }
 

+ 2 - 5
mec-web/src/main/java/com/ym/mec/web/controller/TeacherLeaveRecordController.java

@@ -61,11 +61,8 @@ public class TeacherLeaveRecordController extends BaseController {
 
     @ApiOperation(value = "请假审核")
     @PostMapping("/approve")
-    public HttpResponseResult approve(Long id, Integer userId, AuditStatusEnum status, String remark, Boolean allowZeroSalary) {
-        if(Objects.isNull(allowZeroSalary)){
-            allowZeroSalary = false;
-        }
-        teacherLeaveRecordService.approve(id,userId,status,remark, allowZeroSalary);
+    public HttpResponseResult approve(Long id, Integer userId, AuditStatusEnum status, String remark) {
+        teacherLeaveRecordService.approve(id,userId,status,remark, true);
         return succeed();
     }
 }

+ 5 - 2
mec-web/src/main/java/com/ym/mec/web/controller/education/EducationCourseScheduleController.java

@@ -65,11 +65,14 @@ public class EducationCourseScheduleController extends BaseController {
 
     @ApiOperation(value = "课时交换")
     @PostMapping(value = "/courseSwap",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
-    public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2){
+    public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2, Boolean allowZeroSalary){
         if(Objects.isNull(courseScheduleId1)||Objects.isNull(courseScheduleId2)){
             return failed("请指定课程!");
         }
-        scheduleService.courseSwap(courseScheduleId1,courseScheduleId2);
+        if(Objects.isNull(allowZeroSalary)){
+            allowZeroSalary = false;
+        }
+        scheduleService.courseSwap(courseScheduleId1,courseScheduleId2,allowZeroSalary);
         return succeed();
     }
 }