zouxuan há 4 anos atrás
pai
commit
ebc23ff573

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

@@ -29,6 +29,7 @@ import java.util.TreeSet;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
 import org.apache.commons.collections.ListUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -92,35 +93,7 @@ import com.ym.mec.biz.dal.dto.TeacherRemarkCommitDto;
 import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.dto.VipGroupCourseAdjustInfoDto;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
-import com.ym.mec.biz.dal.entity.CourseGenerateDto;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
-import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
-import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
-import com.ym.mec.biz.dal.entity.CourseScheduleModifyLog;
-import com.ym.mec.biz.dal.entity.CourseScheduleReview;
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
-import com.ym.mec.biz.dal.entity.CoursesGroup;
-import com.ym.mec.biz.dal.entity.CoursesGroupModifyLog;
-import com.ym.mec.biz.dal.entity.Group;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.PracticeGroup;
-import com.ym.mec.biz.dal.entity.School;
-import com.ym.mec.biz.dal.entity.StudentAttendance;
-import com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto;
-import com.ym.mec.biz.dal.entity.Subject;
-import com.ym.mec.biz.dal.entity.SysConfig;
-import com.ym.mec.biz.dal.entity.Teacher;
-import com.ym.mec.biz.dal.entity.TeacherAttendance;
-import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
-import com.ym.mec.biz.dal.entity.TeacherDefaultPracticeGroupSalary;
-import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
-import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.StudentCourseScheduleRecordQueryInfo;
@@ -1450,6 +1423,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			int singleClassMinutes = DateUtil.minutesBetween(existCours.getStartClassTime(), existCours.getEndClassTime());
 
 			existCours.setClassDate(ac.getClassDate());
+			existCours.setUpdateTime(now);
 			existCours.setStartClassTime(ac.getStartClassTime());
 			existCours.setEndClassTime(DateUtil.addMinutes(existCours.getStartClassTime(), singleClassMinutes));
 
@@ -3122,8 +3096,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
 
-		List<CourseScheduleModifyLog> insertCourseScheduleModifyLogList = new ArrayList<CourseScheduleModifyLog>();
-
 		List<CourseScheduleStudentPayment> insertCourseScheduleStudentPaymentList = new ArrayList<CourseScheduleStudentPayment>();
 
 		for (CourseSchedule newCourseSchedule : newCourseSchedules) {
@@ -3380,23 +3352,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 					insertCourseScheduleTeacherSalaryList.add(ts);
 				}
 			}
-
-			// 调整日志
-			CourseScheduleModifyLog courseScheduleModifyLog = new CourseScheduleModifyLog();
-			courseScheduleModifyLog.setCourseScheduleId(courseScheduleId);
-			courseScheduleModifyLog.setCreateTime(date);
-			courseScheduleModifyLog.setCurrentCourseSchedule(JsonUtil.toJSONString(newCourseSchedule));
-			courseScheduleModifyLog.setPreviousCourseSchedule(JsonUtil.toJSONString(oldCourseSchedule));
-
-			SysUser sysUser = sysUserFeignService.queryUserInfo();
-			if (null == sysUser) {
-				throw new BizException("获取用户信息失败");
-			}
-
-			courseScheduleModifyLog.setOperatorId(sysUser.getId());
-
-			insertCourseScheduleModifyLogList.add(courseScheduleModifyLog);
-
 		}
 
 		if (insertTeacherAttendanceList.size() > 0) {
@@ -3407,10 +3362,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			courseScheduleTeacherSalaryDao.batchInsert(insertCourseScheduleTeacherSalaryList);
 		}
 
-		if (insertCourseScheduleModifyLogList.size() > 0) {
-			courseScheduleModifyLogDao.batchInsert(insertCourseScheduleModifyLogList);
-		}
-
 		if(newCourseSchedules.size() > 0){
 			courseScheduleDao.batchUpdate(newCourseSchedules);
             List<Integer> classGroupIds = newCourseSchedules.stream().filter(courseSchedule -> Objects.nonNull(courseSchedule.getClassGroupId())).map(CourseSchedule::getClassGroupId).collect(Collectors.toList());
@@ -3418,6 +3369,25 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 classGroupService.updateClassGroupsCourseInfo(classGroupIds);
             }
         }
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (null == sysUser) {
+			throw new BizException("获取用户信息失败");
+		}
+		List<CourseScheduleModifyLog> insertCourseScheduleModifyLogList = new ArrayList<>();
+		oldCourseScheduleList.forEach(e->{
+			// 调整日志
+			CourseScheduleModifyLog courseScheduleModifyLog = new CourseScheduleModifyLog();
+			courseScheduleModifyLog.setCourseScheduleId(e.getId());
+			courseScheduleModifyLog.setCreateTime(date);
+			courseScheduleModifyLog.setPreviousCourseSchedule(JsonUtil.toJSONString(e));
+			courseScheduleModifyLog.setCurrentCourseSchedule(JsonUtil.toJSONString(courseScheduleDao.get(e.getId())));
+			courseScheduleModifyLog.setOperatorId(sysUser.getId());
+			insertCourseScheduleModifyLogList.add(courseScheduleModifyLog);
+		});
+
+		if (insertCourseScheduleModifyLogList.size() > 0) {
+			courseScheduleModifyLogDao.batchInsert(insertCourseScheduleModifyLogList);
+		}
 
 		if(insertCourseScheduleStudentPaymentList.size() > 0){
 			courseScheduleStudentPaymentDao.batchInsert(insertCourseScheduleStudentPaymentList);
@@ -5139,4 +5109,49 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
 		return courseScheduleRateDtos;
 	}
+
+	@Override
+	public List<CourseScheduleAuditDetailDto> queryCourseAdjustDetail(Long courseScheduleId) {
+		//获取所有的更改记录
+		Map<String,Object> param = new HashMap(1);
+		param.put("courseScheduleId",courseScheduleId);
+		List<CourseScheduleModifyLog> scheduleModifyLogs = courseScheduleModifyLogDao.findAll(param);
+		if(scheduleModifyLogs == null || scheduleModifyLogs.size() == 0){
+			return null;
+		}
+		List<CourseScheduleAuditDetailDto> courseSchedules = new ArrayList<>();
+		for (int i = 0; i < scheduleModifyLogs.size(); i++) {
+			CourseScheduleModifyLog modifyLog = scheduleModifyLogs.get(i);
+			if(i == 0){
+				//如果是第一次调整
+				CourseScheduleAuditDetailDto dto = JSON.parseObject(modifyLog.getPreviousCourseSchedule(), CourseScheduleAuditDetailDto.class);
+				dto.setOperatorId(modifyLog.getOperatorId());
+				dto.setAuditTime(modifyLog.getCreateTime());
+				courseSchedules.add(dto);
+			}
+			if(i == 1){
+				continue;
+			}
+			CourseScheduleAuditDetailDto detailDto = JSON.parseObject(modifyLog.getCurrentCourseSchedule(), CourseScheduleAuditDetailDto.class);
+			detailDto.setOperatorId(modifyLog.getOperatorId());
+			detailDto.setAuditTime(modifyLog.getCreateTime());
+			courseSchedules.add(detailDto);
+		}
+		if(courseSchedules.size() > 0){
+			Set<Integer> actualTeacherIds = courseSchedules.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet());
+			actualTeacherIds.addAll(courseSchedules.stream().map(e -> e.getTeacherId()).collect(Collectors.toSet()));
+			actualTeacherIds.addAll(courseSchedules.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet()));
+			Set<Integer> schoolIds = courseSchedules.stream().map(e -> e.getSchoolId()).collect(Collectors.toSet());
+			Map<Integer, String> actualTeacherMap = getMap("sys_user", "id_", "real_name_", actualTeacherIds, Integer.class, String.class);
+			Map<Integer, String> schoolMap = getMap("school", "id_", "name_", schoolIds, Integer.class, String.class);
+			courseSchedules.forEach(e->{
+				e.setTeacherName(actualTeacherMap.get(e.getTeacherId()));
+				e.setActualTeacherName(actualTeacherMap.get(e.getActualTeacherId()));
+				e.setSchoolName(schoolMap.get(e.getSchoolId()));
+				e.setOperatorName(actualTeacherMap.get(e.getOperatorId()));
+			});
+			return courseSchedules;
+		}
+		return null;
+	}
 }