Browse Source

Merge branch 'online1' into maintenance_feature

周箭河 4 years ago
parent
commit
e6c6b8dcce

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

@@ -3,9 +3,7 @@ package com.ym.mec.biz.service.impl;
 import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
 import static com.ym.mec.biz.dal.enums.GroupType.MUSIC;
 import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
 import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
 import static com.ym.mec.biz.dal.enums.GroupType.VIP;
 import static com.ym.mec.biz.dal.enums.GroupType.VIP;
-import static com.ym.mec.biz.dal.enums.PracticeGroupType.CHARGE;
-import static com.ym.mec.biz.dal.enums.PracticeGroupType.FREE;
-import static com.ym.mec.biz.dal.enums.PracticeGroupType.TRIAL;
+import static com.ym.mec.biz.dal.enums.PracticeGroupType.*;
 
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
@@ -3325,6 +3323,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				// 删除课酬
 				// 删除课酬
 				List<Long> courseScheduleIdList = new ArrayList<Long>();
 				List<Long> courseScheduleIdList = new ArrayList<Long>();
 				courseScheduleIdList.add(courseScheduleId);
 				courseScheduleIdList.add(courseScheduleId);
+
+				List<CourseScheduleTeacherSalary> oldCourseScheduleTeacherSalaryList = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
+				Map<Long, List<CourseScheduleTeacherSalary>> courseSalaryListMap = new HashMap<>();
+				if(!CollectionUtils.isEmpty(oldCourseScheduleTeacherSalaryList)){
+					courseSalaryListMap = oldCourseScheduleTeacherSalaryList.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
+				}
+
 				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIdList);
 				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIdList);
 
 
 				for (Integer teacherId : newTeacherIdList) {
 				for (Integer teacherId : newTeacherIdList) {
@@ -3357,20 +3362,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						ts.setExpectSalary(teacherSalary);
 						ts.setExpectSalary(teacherSalary);
 
 
 					} else if (newCourseSchedule.getGroupType() == PRACTICE) {
 					} else if (newCourseSchedule.getGroupType() == PRACTICE) {
-						PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(newCourseSchedule.getMusicGroupId()));
-						if(Objects.isNull(practiceGroup)){
-							throw new BizException("课程组信息错误");
-						}
+						SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
+						BigDecimal freeTeacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());
+
 						List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
 						List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
 								.queryByUserId(teacherId);
 								.queryByUserId(teacherId);
-						if (teacherDefaultPracticeGroupSalaryList != null && teacherDefaultPracticeGroupSalaryList.size() > 0) {
-							ts.setExpectSalary(teacherDefaultPracticeGroupSalaryList.get(0).getMainTeacherSalary());
-						} else {
-							throw new BizException("请设置老师 的网管课课酬");
-						}
-						if(Objects.nonNull(practiceGroup)&& !PracticeGroupType.CHARGE.equals(practiceGroup.getType()) && !PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroup.getType())){
-							SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
-							ts.setExpectSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue()));
+						List<CourseScheduleTeacherSalary> teacherSalaries = courseSalaryListMap.get(ts.getCourseScheduleId());
+						if(!CollectionUtils.isEmpty(teacherSalaries)&&freeTeacherSalary.compareTo(teacherSalaries.get(0).getExpectSalary())==0){
+							ts.setExpectSalary(freeTeacherSalary);
+						}else{
+							if (teacherDefaultPracticeGroupSalaryList != null && teacherDefaultPracticeGroupSalaryList.size() > 0) {
+								ts.setExpectSalary(teacherDefaultPracticeGroupSalaryList.get(0).getMainTeacherSalary());
+							} else {
+								throw new BizException("请设置老师 的网管课课酬");
+							}
 						}
 						}
 					}
 					}
 					if(ts.getExpectSalary() == null){
 					if(ts.getExpectSalary() == null){
@@ -4571,26 +4576,26 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         courseScheduleDao.update(oldCourseSchedule);
         courseScheduleDao.update(oldCourseSchedule);
 
 
         PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(oldCourseSchedule.getMusicGroupId()));
         PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(oldCourseSchedule.getMusicGroupId()));
-		if(practiceGroup.getType() != TRIAL){
-			if(practiceGroup.getType() != FREE){
+
+		List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedule(courseScheduleId);
+		if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaries)){
+			SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
+			BigDecimal teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());
+			for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
+				courseScheduleTeacherSalary.setUserId(teacherId);
+				if(teacherSalary.compareTo(courseScheduleTeacherSalary.getExpectSalary())==0){
+					continue;
+				}
 				List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
 				List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
 				if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){
 				if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){
 					throw new BizException("请设置老师默认课酬");
 					throw new BizException("请设置老师默认课酬");
 				}
 				}
-				courseScheduleTeacherSalaryDao.batchUpdateTeacher(courseScheduleIds,teacherId);
-			}else{
-				List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedule(courseScheduleId);
-				if(!CollectionUtils.isEmpty(courseScheduleTeacherSalaries)){
-					SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
-					BigDecimal teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());
-					for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
-						courseScheduleTeacherSalary.setUserId(teacherId);
-						courseScheduleTeacherSalary.setExpectSalary(teacherSalary);
-					}
-					courseScheduleTeacherSalaryDao.batchUpdate(courseScheduleTeacherSalaries);
-				}
+				courseScheduleTeacherSalary.setExpectSalary(teacherDefaultPracticeGroupSalaries.get(0).getMainTeacherSalary());
 			}
 			}
+			courseScheduleTeacherSalaryDao.batchUpdate(courseScheduleTeacherSalaries);
 		}
 		}
+
+
         teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);
         teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);
 		//删除申述
 		//删除申述
 		courseScheduleComplaintsDao.delByCourseScheduleId(courseScheduleId);
 		courseScheduleComplaintsDao.delByCourseScheduleId(courseScheduleId);
@@ -4675,25 +4680,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			courseScheduleDao.batchUpdate(courseSchedules);
 			courseScheduleDao.batchUpdate(courseSchedules);
 			Set<Long> courseScheduleIds = courseSchedules.stream().map(e -> e.getId()).collect(Collectors.toSet());
 			Set<Long> courseScheduleIds = courseSchedules.stream().map(e -> e.getId()).collect(Collectors.toSet());
 			if(practiceGroup.getType() != TRIAL){
 			if(practiceGroup.getType() != TRIAL){
-				if(CHARGE == practiceGroup.getType()){
-					List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
-					if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){
-						throw new BizException("请设置老师默认课酬");
-					}
-					courseScheduleTeacherSalaryDao.batchUpdateTeacher(courseScheduleIds,teacherId);
-				}else{
-					List<CourseSchedule> groupNotStartCourses = courseScheduleDao.findGroupNotStartCourses(practiceGroupId, PRACTICE);
-					if(!CollectionUtils.isEmpty(groupNotStartCourses)){
-						SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
-						BigDecimal teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());
-						List<Long> courseIds = groupNotStartCourses.stream().map(CourseSchedule::getId).collect(Collectors.toList());
-						List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseIds);
-						for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
-							courseScheduleTeacherSalary.setUserId(teacherId);
-							courseScheduleTeacherSalary.setExpectSalary(teacherSalary);
+				List<CourseSchedule> groupNotStartCourses = courseScheduleDao.findGroupNotStartCourses(practiceGroupId, PRACTICE);
+				if(!CollectionUtils.isEmpty(groupNotStartCourses)){
+					SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
+					BigDecimal teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());
+					List<Long> courseIds = groupNotStartCourses.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+					List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseIds);
+					for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
+						courseScheduleTeacherSalary.setUserId(teacherId);
+						if(teacherSalary.compareTo(courseScheduleTeacherSalary.getExpectSalary())==0){
+							continue;
 						}
 						}
-						courseScheduleTeacherSalaryDao.batchUpdate(courseScheduleTeacherSalaries);
+						List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaries = teacherDefaultPracticeGroupSalaryDao.queryByUserId(teacherId);
+						if(teacherDefaultPracticeGroupSalaries == null || teacherDefaultPracticeGroupSalaries.size() == 0){
+							throw new BizException("请设置老师默认课酬");
+						}
+						courseScheduleTeacherSalary.setExpectSalary(teacherDefaultPracticeGroupSalaries.get(0).getMainTeacherSalary());
 					}
 					}
+					courseScheduleTeacherSalaryDao.batchUpdate(courseScheduleTeacherSalaries);
 				}
 				}
 			}
 			}
 			teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);
 			teacherAttendanceDao.batchUpdateTeacher(courseScheduleIds,teacherId);

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

@@ -53,13 +53,13 @@ public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVis
         SysUser user = teacherDao.getUser(studentVisit.getStudentId());
         SysUser user = teacherDao.getUser(studentVisit.getStudentId());
         studentVisit.setOrganId(user.getOrganId());
         studentVisit.setOrganId(user.getOrganId());
         studentVisit.setCreateTime(now);
         studentVisit.setCreateTime(now);
-        if(Objects.nonNull(studentVisit.getObjectId())){
+        if(Objects.nonNull(studentVisit.getObjectId()) && "考勤申诉".equals(studentVisit.getPurpose())){
             CourseScheduleStudentPayment courseScheduleStudentPayment = courseScheduleStudentPaymentDao.get(studentVisit.getObjectId());
             CourseScheduleStudentPayment courseScheduleStudentPayment = courseScheduleStudentPaymentDao.get(studentVisit.getObjectId());
             if(Objects.isNull(courseScheduleStudentPayment)){
             if(Objects.isNull(courseScheduleStudentPayment)){
                 throw new BizException("学员课程信息不存在");
                 throw new BizException("学员课程信息不存在");
             }
             }
             StudentAttendance studentAttendance = studentAttendanceDao.findByStatusAndCourseScheduleId(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getCourseScheduleId().intValue());
             StudentAttendance studentAttendance = studentAttendanceDao.findByStatusAndCourseScheduleId(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getCourseScheduleId().intValue());
-            if (studentAttendance == null && "考勤申诉".equals(studentVisit.getPurpose())) {
+            if (studentAttendance == null) {
                 studentAttendance = new StudentAttendance();
                 studentAttendance = new StudentAttendance();
                 studentAttendance.setClassGroupId(courseScheduleStudentPayment.getClassGroupId());
                 studentAttendance.setClassGroupId(courseScheduleStudentPayment.getClassGroupId());
                 studentAttendance.setCourseScheduleId(courseScheduleStudentPayment.getCourseScheduleId());
                 studentAttendance.setCourseScheduleId(courseScheduleStudentPayment.getCourseScheduleId());

+ 4 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultPracticeGroupSalaryServiceImpl.java

@@ -87,6 +87,7 @@ public class TeacherDefaultPracticeGroupSalaryServiceImpl extends BaseServiceImp
 					}
 					}
 
 
 					SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
 					SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
+					BigDecimal freeTeacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());
 
 
 					Date date = new Date();
 					Date date = new Date();
 
 
@@ -95,12 +96,10 @@ public class TeacherDefaultPracticeGroupSalaryServiceImpl extends BaseServiceImp
 					for (CourseScheduleTeacherSalary ts : updateTeacherSalaryList) {
 					for (CourseScheduleTeacherSalary ts : updateTeacherSalaryList) {
 						if (origSalary != null && origSalary.getMainTeacherSalary().compareTo(ts.getExpectSalary()) == 0
 						if (origSalary != null && origSalary.getMainTeacherSalary().compareTo(ts.getExpectSalary()) == 0
 								&& origSalary.getMainTeacherSalary().compareTo(salary) != 0) {
 								&& origSalary.getMainTeacherSalary().compareTo(salary) != 0) {
-							PracticeGroup practiceGroup = idGroupMap.get(Long.valueOf(ts.getMusicGroupId()));
-							if(Objects.nonNull(practiceGroup)&& !PracticeGroupType.CHARGE.equals(practiceGroup.getType()) && !PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroup.getType())){
-								ts.setExpectSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue()));
-							}else{
-								ts.setExpectSalary(salary);
+							if(freeTeacherSalary.compareTo(ts.getExpectSalary())==0){
+								continue;
 							}
 							}
+							ts.setExpectSalary(salary);
 							ts.setUpdateTime(date);
 							ts.setUpdateTime(date);
 							list.add(ts);
 							list.add(ts);
 						}
 						}

+ 14 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -2353,7 +2353,13 @@
             LEFT JOIN organization o ON cs.organ_id_=o.id_
             LEFT JOIN organization o ON cs.organ_id_=o.id_
             LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
             LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
             left join teacher_attendance ta on ta.course_schedule_id_ = cs.id_
             left join teacher_attendance ta on ta.course_schedule_id_ = cs.id_
-            LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
+            <if test="searchType == 'ERR_ATTENDANCE'">
+                LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
+                LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND cssp.user_id_ = sa.user_id_
+            </if>
+            <if test="searchType != 'ERR_ATTENDANCE'">
+                LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
+            </if>
             <include refid="endFindCourseSchedulesCondition"/>
             <include refid="endFindCourseSchedulesCondition"/>
         GROUP BY
         GROUP BY
             cs.class_date_,
             cs.class_date_,
@@ -2371,7 +2377,13 @@
         COUNT(DISTINCT cs.id_)
         COUNT(DISTINCT cs.id_)
         FROM
         FROM
         course_schedule cs
         course_schedule cs
-        LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
+        <if test="searchType == 'ERR_ATTENDANCE'">
+            LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
+            LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_ AND cssp.user_id_ = sa.user_id_
+        </if>
+        <if test="searchType != 'ERR_ATTENDANCE'">
+            LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
+        </if>
         LEFT JOIN teacher_attendance ta on ta.course_schedule_id_ = cs.id_
         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_
         LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
         <include refid="endFindCourseSchedulesCondition"/>
         <include refid="endFindCourseSchedulesCondition"/>

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

@@ -588,7 +588,8 @@
     <select id="getAttendanceError" resultType="int">
     <select id="getAttendanceError" resultType="int">
 		SELECT COUNT(DISTINCT c.id_) FROM (SELECT cs.id_ FROM course_schedule cs
 		SELECT COUNT(DISTINCT c.id_) FROM (SELECT cs.id_ FROM course_schedule cs
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
-		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
+		LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
+		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
 		WHERE ta.teacher_id_ = cs.actual_teacher_id_
 		WHERE ta.teacher_id_ = cs.actual_teacher_id_
 		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01'
 		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01'
 		AND ta.sign_in_status_ IS NOT NULL AND ta.sign_out_status_ IS NOT NULL
 		AND ta.sign_in_status_ IS NOT NULL AND ta.sign_out_status_ IS NOT NULL