package com.jevon.controller; import com.jevon.model.*; import com.jevon.service.*; import com.jevon.utils.ExcelUtils; import com.jevon.vo.BaseVo; import com.jevon.vo.rep.*; import com.jevon.vo.req.CourseClassReqVo; import com.jevon.vo.req.GetClassCourseReqVo; import com.jevon.vo.req.ScheduleIdReqVo; import com.jevon.vo.req.SchoolIdReqVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author chen * @version 1.0 * @date 2019/10/11 0011 14:00 */ @RestController @Api(value = "获取信息") public class ScheduleMessageController { @Autowired ScheduleService scheduleService; @Autowired CourseService courseService; @Autowired ClassCourseService classCourseService; @Autowired ClassModelService classModelService; @Autowired JoinClassService joinClassService; @Autowired TeacherClassService teacherClassService; @ApiOperation("获取学校排课计划") @RequestMapping(value = "getScheduleList", method = RequestMethod.POST) public ScheduleListRepVo getScheduleList(@RequestBody SchoolIdReqVo schoolIdReqVo){ ScheduleListRepVo scheduleListRepVo = new ScheduleListRepVo(); scheduleListRepVo.setData(scheduleService.selectBySchool(schoolIdReqVo.getSchoolId())); return scheduleListRepVo; } @ApiOperation("获取学校下所有班级信息") @RequestMapping(value = "getClassList", method = RequestMethod.POST) public ClassRepVo getClassList(@RequestBody SchoolIdReqVo schoolIdReqVo){ ClassRepVo classRepVo = new ClassRepVo(); classRepVo.setData(classModelService.selectBySchoolId(schoolIdReqVo.getSchoolId())); return classRepVo; } @ApiOperation("获取学校课程") @RequestMapping(value = "getCourseList", method = RequestMethod.POST) public CourseRepVo getCourseList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ CourseRepVo courseRepVo = new CourseRepVo(); Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); if(schedule == null){ courseRepVo.setSuccess(false); courseRepVo.setMessage("请先创建计划"); return courseRepVo; } courseRepVo.setData(courseService.selectBySchoolId(schedule.getSchoolId())); return courseRepVo; } @ApiOperation("获取要学习某个学科的班级集合") @RequestMapping(value = "getCourseClassList", method = RequestMethod.POST) public List getCourseClassList(@RequestBody CourseClassReqVo courseClassReqVo){ List repVos = new ArrayList<>(); Schedule schedule = scheduleService.selectById(courseClassReqVo.getScheduleId()); if(schedule == null){ return null; } TeacherClass search = new TeacherClass(); search.setSchoolId(schedule.getSchoolId()); search.setTeam(schedule.getTeam()); String courseName =courseService.selectBySchoolIdAndCourseId(schedule.getSchoolId(),courseClassReqVo.getCourseId()).getCourseName(); search.setCourseName(courseName); List list = teacherClassService.selectByCourseName(search); for(TeacherClass teacherClass : list){ GetCourseClassListRepVo repVo = new GetCourseClassListRepVo(); repVo.setClassId(teacherClass.getClassId()); repVo.setClassName(classModelService.selectByPrimaryKey(teacherClass.getClassId()).getClassName()); repVo.setCourseId(courseClassReqVo.getCourseId()); repVo.setCourseName(courseName); repVo.setTeacherName(teacherClass.getTeacherName()); repVos.add(repVo); } return repVos; } @ApiOperation("获取班级排课课程") @RequestMapping(value = "getClassCourseList", method = RequestMethod.POST) public ClassCourseRepVo getClassCourseList(@RequestBody GetClassCourseReqVo getClassCourseReqVo){ ClassCourseRepVo classCourseRepVo = new ClassCourseRepVo(); Schedule schedule = scheduleService.selectById(getClassCourseReqVo.getScheduleId()); if(schedule == null){ classCourseRepVo.setSuccess(false); classCourseRepVo.setMessage("请先创建计划"); return classCourseRepVo; } ClassCourse search = new ClassCourse(); search.setClassId(getClassCourseReqVo.getClassId()); search.setSingleOrDouble(1); search.setTeam(schedule.getTeam()); List list = classCourseService.selectByClassIdAndSingleOrDouble(search); classCourseRepVo.setData(list); int max = schedule.getMorning() + schedule.getAfternoon() + schedule.getNight() ; for(int i = 1 ; i < 6 ; i++){ System.out.print("周"+i+" "); for(int j = 1 ; j < max ; j++){ System.out.print(getClassCourse(list,i,j).getCourseName() + " "); } System.out.println(); } return classCourseRepVo; } //查所在课表中 返回某天某节课 private ClassCourse getClassCourse(List list , int week , int courseNumber){ ClassCourse result = null ; for(ClassCourse classCourse : list){ if(classCourse.getWeek() == week && classCourse.getCourseNumber() == courseNumber){ result = classCourse ; break; } } return result; } @ApiOperation("获取合班信息") @RequestMapping(value = "getJoinList", method = RequestMethod.POST) public JoinRepVo getJoinList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ JoinRepVo joinRepVo = new JoinRepVo(); Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); JoinClass joinClass = new JoinClass(); joinClass.setSchoolId(schedule.getSchoolId()); joinClass.setTeam(schedule.getTeam()); List list = joinClassService.selectByCourse(joinClass); List joinDetails = new ArrayList<>(); for(JoinClass temp : list){ boolean flag = false ; ClassModel classModel = classModelService.selectByPrimaryKey(temp.getClassId()); for(JoinDetail joinDetail : joinDetails){ if(temp.getCourseGroup() == joinDetail.getCourseGroup()){ flag = true; if(!joinDetail.getClassName().contains(classModel.getClassName())){ joinDetail.setClassName(joinDetail.getClassName()+","+classModel.getClassName()); } } } if(!flag){ JoinDetail joinDetail = new JoinDetail(); joinDetail.setCourseGroup(temp.getCourseGroup()); joinDetail.setClassName(classModel.getClassName()); joinDetail.setCourseName(temp.getCourseName()); TeacherClass search = new TeacherClass(); search.setSchoolId(schedule.getSchoolId()); search.setTeam(schedule.getTeam()); search.setClassId(temp.getClassId()); search.setCourseName(temp.getCourseName()); joinDetail.setTeacherName(teacherClassService.selectByCourseAndClass(search).getTeacherName()); joinDetails.add(joinDetail); } } joinRepVo.setData(joinDetails); return joinRepVo; } @ApiOperation("获取导入任课信息") @RequestMapping(value = "getTeacherClassList", method = RequestMethod.POST) public TeacherCourseRepVo getTeacherClassList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ TeacherCourseRepVo teacherCourseRepVo = new TeacherCourseRepVo(); Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); TeacherClass temp = new TeacherClass(); temp.setSchoolId(schedule.getSchoolId()); temp.setTeam(schedule.getTeam()); List data = new ArrayList<>(); List courseNameList = new ArrayList<>(); List teacherClasses = teacherClassService.selectBySchoolAndTeam(temp); for(TeacherClass teacherClass :teacherClasses){ boolean isExist = false; if(!courseNameList.contains(teacherClass.getCourseName())){ courseNameList.add(teacherClass.getCourseName()); } for(ClassCourseVO classCourseVO : data){ if(classCourseVO.getClassId() == teacherClass.getClassId()){ isExist = true ; ClassCourseDetailVo classCourseDetailVo = new ClassCourseDetailVo(teacherClass); List classCourseDetailVos = classCourseVO.getList(); classCourseDetailVos.add(classCourseDetailVo); classCourseVO.setAllCount(classCourseVO.getAllCount()+teacherClass.getTimes()); classCourseVO.setList(classCourseDetailVos); } } if(!isExist){ ClassCourseVO classCourseVO = new ClassCourseVO(); classCourseVO.setClassId(teacherClass.getClassId()); classCourseVO.setAllCount(teacherClass.getTimes()); classCourseVO.setClassName(classModelService.selectByPrimaryKey(teacherClass.getClassId()).getClassName()); List classCourseDetailVos = new ArrayList<>(); classCourseDetailVos.add(new ClassCourseDetailVo(teacherClass)); classCourseVO.setList(classCourseDetailVos); data.add(classCourseVO); } } teacherCourseRepVo.setData(data); teacherCourseRepVo.setCourseNameList(courseNameList); return teacherCourseRepVo; } @ApiOperation("获取主课,副科,公共课列表") @RequestMapping(value = "getCourseTypeList", method = RequestMethod.POST) public GetCourseTypeListRepVo getCourseTypeList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ GetCourseTypeListRepVo getCourseTypeListRepVo = new GetCourseTypeListRepVo(); List data = new ArrayList<>(); Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); if(schedule == null){ getCourseTypeListRepVo.setSuccess(false); getCourseTypeListRepVo.setMessage("请先创建计划"); return getCourseTypeListRepVo; } for(int i = 1 ; i <=3 ; i++){ CourseTypeListVO vo = new CourseTypeListVO(); vo.setCourseType(i); switch (i){ case 1 : vo.setCourseTypeName("主课"); break; case 2: vo.setCourseTypeName("副科"); break; case 3: vo.setCourseTypeName("公共课"); break; } Course course = new Course(); course.setSchoolId(schedule.getSchoolId()); course.setCourseType(i); vo.setList(courseService.selectByCourse(course)); data.add(vo); } getCourseTypeListRepVo.setData(data); getCourseTypeListRepVo.setScheduleId(schedule.getSchoolId()); return getCourseTypeListRepVo; } @ApiOperation("获取未设置学科类型的科目") @RequestMapping(value = "getUnCourseList", method = RequestMethod.POST) public CourseRepVo getUnCourseList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ CourseRepVo courseRepVo = new CourseRepVo(); Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); if(schedule == null){ courseRepVo.setSuccess(false); courseRepVo.setMessage("请先创建计划"); return courseRepVo; } Course course = new Course(); course.setSchoolId(schedule.getSchoolId()); course.setCourseType(0); courseRepVo.setData(courseService.selectByCourse(course)); return courseRepVo; } @ApiOperation("删除设置的 主课 副科 公共课") @RequestMapping(value = "deleteCourseType", method = RequestMethod.POST) public BaseVo deleteCourseType(@RequestBody CourseClassReqVo courseClassReqVo){ BaseVo baseVo = new BaseVo(); Schedule schedule = scheduleService.selectById(courseClassReqVo.getScheduleId()); if(schedule == null){ baseVo.setSuccess(false); baseVo.setMessage("请先创建计划"); return baseVo; } if(teacherClassService.selectHasSchedule(schedule.getSchoolId(),schedule.getTeam()) > 0){ baseVo.setSuccess(false); baseVo.setMessage("已经排课,不能再删除"); return baseVo; } courseService.updateCourseType(courseClassReqVo.getCourseId(),0,schedule.getSchoolId()); return baseVo; } @ApiOperation("获取设置的作息 获取排课计划详情") @RequestMapping(value = "getSchedule", method = RequestMethod.POST) public Schedule getSchedule(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); return schedule; } @ApiOperation("导出模板") @RequestMapping(value = "export", method = RequestMethod.GET) public void export(int scheduleId , HttpServletRequest request, HttpServletResponse response){ ExcelUtils excelUtils = new ExcelUtils(); Schedule schedule = scheduleService.selectById(scheduleId); List headList = new ArrayList<>(); headList.add("年级"); headList.add("班级"); List courses = courseService.selectBySchoolId2(schedule.getSchoolId()); for(Course course : courses){ headList.add(course.getCourseName()); headList.add("任课老师"); } List heardKey = new ArrayList<>(); heardKey.add("grade"); heardKey.add("class"); List> data = new ArrayList<>(); List list = classModelService.selectBySchoolId(schedule.getSchoolId()); for(ClassModel classModel : list){ Map map = new HashMap<>(); map.put("grade",classModel.getGrade()); map.put("class",classModel.getClassName()); data.add(map); } excelUtils.setHeardList(headList); excelUtils.setHeardKey(heardKey); excelUtils.setData(data); try{ excelUtils.exportExport(request,response); }catch (Exception e){ } } }