From 54c3da43fd94c86364ea7596b38ae078b9c8b38a Mon Sep 17 00:00:00 2001 From: 陈杰 <504987307@qq.com> Date: Fri, 18 Oct 2019 08:28:34 +0800 Subject: [PATCH] 1 --- pom.xml | 2 +- src/main/java/com/jevon/controller/InitController.java | 421 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/com/jevon/controller/LearnController.java | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/controller/MessageController.java | 316 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- src/main/java/com/jevon/controller/ScheduleController.java | 5 +++-- src/main/java/com/jevon/controller/ScheduleInitController.java | 415 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/controller/ScheduleMessageController.java | 322 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/jevon/mapper/CourseMapper.java | 2 ++ src/main/java/com/jevon/service/CourseService.java | 2 ++ src/main/java/com/jevon/service/impl/CourseServiceImpl.java | 5 +++++ src/main/java/com/jevon/vo/req/InitAnalyseReqVo.java | 28 ++++++++++++++++++++++++++++ src/main/resources/application.yml | 25 +++++++++---------------- src/main/resources/logback.xml | 2 +- src/main/resources/mapping/CourseMapper.xml | 4 ++++ 14 files changed, 869 insertions(+), 757 deletions(-) delete mode 100644 src/main/java/com/jevon/controller/InitController.java create mode 100644 src/main/java/com/jevon/controller/LearnController.java delete mode 100644 src/main/java/com/jevon/controller/MessageController.java create mode 100644 src/main/java/com/jevon/controller/ScheduleInitController.java create mode 100644 src/main/java/com/jevon/controller/ScheduleMessageController.java create mode 100644 src/main/java/com/jevon/vo/req/InitAnalyseReqVo.java diff --git a/pom.xml b/pom.xml index 9d08942..401fb22 100644 --- a/pom.xml +++ b/pom.xml @@ -19,7 +19,6 @@ httpclient 4.3 - com.microsoft.sqlserver mssql-jdbc @@ -97,6 +96,7 @@ 4.1.0 + org.mybatis.spring.boot diff --git a/src/main/java/com/jevon/controller/InitController.java b/src/main/java/com/jevon/controller/InitController.java deleted file mode 100644 index 4d8db70..0000000 --- a/src/main/java/com/jevon/controller/InitController.java +++ /dev/null @@ -1,421 +0,0 @@ -package com.jevon.controller; - -import com.alibaba.fastjson.JSONObject; -import com.jevon.model.*; -import com.jevon.service.*; -import com.jevon.utils.HttpClientUtils; -import com.jevon.vo.BaseVo; -import com.jevon.vo.rep.InitRepVo; -import com.jevon.vo.rep.ScheduleRepVo; -import com.jevon.vo.req.CreateScheduleReqVo; -import com.jevon.vo.req.InitTeacherCourseReqVo; -import com.jevon.vo.req.ScheduleIdReqVo; -import com.jevon.vo.req.UpdateScheduleReqVo; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.apache.commons.lang3.StringUtils; -import org.apache.poi.hssf.usermodel.HSSFWorkbook; -import org.apache.poi.ss.usermodel.*; -import org.apache.poi.xssf.usermodel.XSSFWorkbook; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.transaction.annotation.Transactional; -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 java.io.File; -import java.io.FileInputStream; -import java.util.*; - -@RestController -@RequestMapping(value = "/init") -@Api(value = "排课表") -public class InitController { - - @Autowired - ClassModelService classModelService; - - @Autowired - TeacherClassService teacherClassService; - - @Autowired - CourseService courseService ; - - @Autowired - TeacherService teacherService; - - @Autowired - ScheduleService scheduleService; - - @Autowired - TeacherCourseService teacherCourseService; - - @Autowired - JoinClassService joinClassService; - - @Autowired - ClassCourseService classCourseService; - - private static String url = "http://60.190.202.57:1000"; - - private static String staticUrl = "F://wwwroot//smartcampus"; - - @ApiOperation("创建排课计划 ") - @RequestMapping(value = "createSchedule", method = RequestMethod.POST) - public ScheduleRepVo createSchedule(@RequestBody CreateScheduleReqVo createScheduleReqVo){ - ScheduleRepVo baseVo = new ScheduleRepVo(); - Schedule schedule = new Schedule(); - schedule.setTeam(createScheduleReqVo.getTeam()); - schedule.setScheduleName(createScheduleReqVo.getScheduleName()); - schedule.setSchoolId(createScheduleReqVo.getSchoolId()); - Schedule temp = scheduleService.selectBySchoolAndTeam(schedule); - if(temp == null){ - scheduleService.insert(schedule); - }else { - baseVo.setSuccess(false); - baseVo.setMessage("该学校该学年学期已创建了排课计划"); - return baseVo; - } - temp = scheduleService.selectBySchoolAndTeam(schedule); - initMessage(schedule.getSchoolId()); - baseVo.setScheduleId(temp.getId()); - return baseVo; - } - - @ApiOperation("更新计划") - @RequestMapping(value = "updateSchedule", method = RequestMethod.POST) - public BaseVo updateSchedule(@RequestBody UpdateScheduleReqVo updateScheduleReqVo){ - BaseVo baseVo = new BaseVo(); - Schedule schedule = scheduleService.selectById(updateScheduleReqVo.getScheduleId()); - schedule.setScheduleName(updateScheduleReqVo.getScheduleName()); - schedule.setTeam(updateScheduleReqVo.getTeam()); - scheduleService.update(schedule); - return baseVo; - } - - @ApiOperation("复制") - @RequestMapping(value = "copySchedule", method = RequestMethod.POST) - public BaseVo copySchedule(@RequestBody UpdateScheduleReqVo updateScheduleReqVo){ - BaseVo baseVo = new BaseVo(); - Schedule schedule = scheduleService.selectById(updateScheduleReqVo.getScheduleId()); - if(schedule == null){ - baseVo.setMessage("原始课表不存在"); - baseVo.setSuccess(false); - return baseVo; - } - Schedule temp = new Schedule(); - temp.setSchoolId(schedule.getSchoolId()); - temp.setTeam(updateScheduleReqVo.getTeam()); - Schedule result = scheduleService.selectBySchoolAndTeam(temp); - if(result != null){ - baseVo.setMessage("该学年学期已创建课表计划"); - baseVo.setSuccess(false); - return baseVo; - } - temp.setScheduleName(updateScheduleReqVo.getScheduleName()); - scheduleService.insert(temp); - Date date = new Date(); - //复制 classCourse teacherClass teacherCourse - List classCourses = classCourseService.copyClassCourse(schedule.getSchoolId(),schedule.getTeam()); - for(ClassCourse classCourse :classCourses){ - classCourse.setSchoolId(temp.getSchoolId()); - classCourse.setTeam(temp.getTeam()); - classCourse.setCreateTime(date); - } - classCourseService.insertBatch(classCourses); - TeacherClass teacherClass = new TeacherClass(); - teacherClass.setSchoolId(schedule.getSchoolId()); - teacherClass.setTeam(schedule.getTeam()); - List teacherClasses = teacherClassService.selectBySchoolAndTeam(teacherClass); - for(TeacherClass teacherClass1 :teacherClasses){ - teacherClass1.setSchoolId(temp.getSchoolId()); - teacherClass1.setTeam(temp.getTeam()); - teacherClass1.setCreateTime(date); - } - teacherClassService.insertBatch(teacherClasses); - - List teacherCourses = teacherCourseService.selectBySchoolIdAndTeam(schedule.getSchoolId(),schedule.getTeam()); - for(TeacherCourse teacherCourse : teacherCourses){ - teacherCourse.setSchoolId(temp.getSchoolId()); - teacherCourse.setTeam(temp.getTeam()); - teacherCourse.setCreateTime(date); - } - teacherCourseService.insertBatch(teacherCourses); - return baseVo; - } - - @ApiOperation("删除排课计划") - @RequestMapping(value = "deleteSchedule", method = RequestMethod.POST) - public BaseVo deleteSchedule(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ - BaseVo baseVo = new BaseVo(); - Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); - if(schedule == null){ - baseVo.setSuccess(false); - baseVo.setMessage("无排课计划"); - return baseVo; - } - teacherCourseService.deleteBySchoolIdAndTeam(schedule.getSchoolId(),schedule.getTeam()); - joinClassService.deleteBySchoolIdAndTeam(schedule.getSchoolId(),schedule.getTeam()); - classCourseService.deleteBySchoolIdAndTeam(schedule.getSchoolId(),schedule.getTeam()); - TeacherClass teacherClass = new TeacherClass(); - teacherClass.setSchoolId(schedule.getSchoolId()); - teacherClass.setTeam(schedule.getTeam()); - teacherClassService.deleteBySchoolAndTeam(teacherClass); - courseService.initSchoolId(schedule.getSchoolId()); - scheduleService.deleteBySchedule(schedule.getId()); - return baseVo; - } - - @ApiOperation("获取基础信息") - @RequestMapping(value = "getInitMessage", method = RequestMethod.POST) - public InitRepVo getInitMessage(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ - InitRepVo initRepVo = new InitRepVo(); - Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); - if(schedule == null){ - initRepVo.setSuccess(false); - initRepVo.setMessage("没有改排课计划"); - return initRepVo; - } - List courses = courseService.selectBySchoolId(schedule.getSchoolId()); - List teachers = teacherService.selectBySchoolId(schedule.getSchoolId()); - List classModels = classModelService.selectBySchoolId(schedule.getSchoolId()); - initRepVo.setClassNumber(classModels.size()); - initRepVo.setCourseNumber(courses.size()); - initRepVo.setTeacherNumber(teachers.size()); - return initRepVo; - } - - @Transactional - @ApiOperation("教师授课信息") - @RequestMapping(value = "initTeacherCourse", method = RequestMethod.POST) - public BaseVo initTeacherCourse(@RequestBody InitTeacherCourseReqVo initTeacherCourseReqVo){ - BaseVo baseVo = new BaseVo(); - Date date = new Date(); - try{ - TeacherClass temp = new TeacherClass(); - Schedule schedule = scheduleService.selectById(initTeacherCourseReqVo.getScheduleId()); - if(schedule != null && schedule.getSpeed() == 2) { - temp.setSchoolId(schedule.getSchoolId()); - temp.setTeam(schedule.getTeam()); - List list = teacherClassService.selectBySchoolAndTeam(temp); - if (list != null && list.size() > 0) { - teacherClassService.deleteBySchoolAndTeam(temp); - } - String fileUrl = initTeacherCourseReqVo.getUrl(); - fileUrl = fileUrl.replace(url, staticUrl); - File excelFile = new File(fileUrl); - // 获得工作簿 - String file = excelFile.getName(); - Workbook workbook = null; - if (file.endsWith("xls")) { - workbook = new HSSFWorkbook(new FileInputStream(excelFile)); - } else { - workbook = new XSSFWorkbook(new FileInputStream(excelFile)); - } - // 获得工作表 - Sheet sheet = workbook.getSheetAt(0); - int rows = sheet.getPhysicalNumberOfRows(); - Map courseTeacherMap = new HashMap<>(); - int courseNumber = 0; - List teacherClasses = new ArrayList<>(); - for (int i = 0; i < rows; i++) { - // 获取第i行数据 - Row sheetRow = sheet.getRow(i); - if (i == 0) { - //获取表头 - int j = 1; - while (sheetRow.getCell(2 * j) != null && StringUtils.isNotBlank(sheetRow.getCell(2 * j).getStringCellValue().trim())) { - Course course = courseService.selectBySchoolIdAndCourseName(schedule.getSchoolId(), sheetRow.getCell(2 * j).getStringCellValue().trim()); - courseTeacherMap.put(j, course); - j++; - } - courseNumber = j - 1; - } else { - if (StringUtils.isBlank(sheetRow.getCell(0).getStringCellValue().trim())) { - continue; - } - String className = sheetRow.getCell(1).getStringCellValue().trim(); - ClassModel classModel = new ClassModel(); - classModel.setSchoolId(schedule.getSchoolId()); - classModel.setClassName(className); - classModel.setGrade(sheetRow.getCell(0).getStringCellValue().trim()); - ClassModel resultClass = classModelService.selectBySchoolIdAndClassNameAndGrade(classModel); - for (int j = 1; j <= courseNumber; j++) { - Cell cell = sheetRow.getCell(2 * j); - if (cell != null) { - cell.setCellType(CellType.STRING); - String times = sheetRow.getCell(2 * j).getStringCellValue().trim(); - if (StringUtils.isNotBlank((times))) { - Course course = courseTeacherMap.get(j); - String teacherName = sheetRow.getCell(2 * j + 1).getStringCellValue().trim(); - Teacher teacher = new Teacher(); - teacher.setTeacherName(teacherName); - teacher.setSchoolId(schedule.getSchoolId()); - Teacher resultTeacher = teacherService.selectByTeacher(teacher); - if (course != null && resultTeacher != null) { - TeacherClass teacherClass = new TeacherClass(); - teacherClass.setTeam(schedule.getTeam()); - teacherClass.setSchoolId(schedule.getSchoolId()); - teacherClass.setCourseName(course.getCourseName()); - teacherClass.setTeacherName(resultTeacher.getTeacherName()); - teacherClass.setTeacherId(resultTeacher.getTeacherId()); - teacherClass.setGrade(sheetRow.getCell(0).getStringCellValue().trim()); - teacherClass.setClassId(resultClass.getClassId()); - String[] msg = times.split("\\+"); - if (msg.length > 1) { - //有联课 - teacherClass.setJoinTimes(Integer.valueOf(msg[1])); - teacherClass.setTimes(Integer.valueOf(msg[1]) * 2 + Integer.valueOf(msg[0])); - } else { - teacherClass.setJoinTimes(0); - teacherClass.setTimes(Integer.valueOf(msg[0])); - } - teacherClass.setStatus(0); - teacherClass.setCreateTime(date); - teacherClasses.add(teacherClass); - } else { - baseVo.setMessage("课程或老师缺失"); - baseVo.setSuccess(false); - return baseVo; - } - } - - } - } - } - } - teacherClassService.insertBatch(teacherClasses); - schedule.setSpeed(3); - scheduleService.updateSpeed(schedule); - }else { - baseVo.setMessage("排课计划不存在或已导入"); - baseVo.setSuccess(false); - } - }catch (Exception e){ - System.out.println(e); - baseVo.setSuccess(false); - } - return baseVo; - } - - - private void initMessage(int schoolId){ - JSONObject teacherList = HttpClientUtils.httpGet(url+"/api/EasyN/GetSchoolTeacher?SchoolId="+schoolId); - List openTeacherList = (List)teacherList.get("data"); - List teachers = new ArrayList<>(); - for(JSONObject json :openTeacherList){ - Teacher teacher = new Teacher(); - teacher.setSchoolId(Integer.valueOf(json.get("school_id").toString())); - teacher.setTeacherId(Integer.valueOf(json.get("teacher_id").toString())); - teacher.setTeacherName(json.get("name").toString()); - teachers.add(teacher); - } - initTeacher(teachers); - JSONObject classList = HttpClientUtils.httpGet(url+"/api/EasyN/GetSchoolClass?SchoolId="+schoolId); - List openClasses = (List)classList.get("data"); - List classModels = new ArrayList<>(); - for(JSONObject json :openClasses){ - ClassModel classModel = new ClassModel(); - classModel.setSchoolId(Integer.valueOf(json.get("school_id").toString())); - classModel.setClassId(Integer.valueOf(json.get("class_id").toString())); - classModel.setGrade(json.get("gardeName").toString()); - classModel.setClassName(json.get("class_name").toString()); - classModels.add(classModel); - } - initClass(classModels); - JSONObject courseList = HttpClientUtils.httpGet(url+"/api/EasyN/GetSchoolSubject?SchoolId="+schoolId); - List openCourses = (List)courseList.get("data"); - List courses = new ArrayList<>(); - for(JSONObject json :openCourses){ - Course course = new Course(); - course.setSchoolId(Integer.valueOf(json.get("school_id").toString())); - course.setCourseId(Integer.valueOf(json.get("subject_id").toString())); - course.setCourseName(json.get("subject_name").toString()); - course.setCourseType(0); - courses.add(course); - } - initCourse(courses); - } - public BaseVo initCourse(List courseList){ - BaseVo baseVo = new BaseVo(); - List list = courseService.selectBySchoolId(courseList.get(0).getSchoolId()); - if(list != null && list.size() > 0){ - courseService.deleteSchoolId(courseList.get(0).getSchoolId()); - } - for(Course course : courseList){ - if(course.getCourseId() == 0 || StringUtils.isBlank(course.getCourseName())){ - baseVo.setSuccess(false); - baseVo.setMessage("缺少参数"); - break; - } - } - if(baseVo.isSuccess()){ - courseService.insertBatch(courseList); - baseVo.setSuccess(true); - return baseVo; - }else { - return baseVo; - } - } - - public BaseVo initClass(List classList){ - BaseVo baseVo = new BaseVo(); - List list = classModelService.selectBySchoolId(classList.get(0).getSchoolId()); - if(list != null && list.size() > 0){ - classModelService.deleteSchool(classList.get(0).getSchoolId()); - } - for(ClassModel classModel : classList){ - if(classModel.getClassId() == 0 || StringUtils.isBlank(classModel.getClassName()) || - StringUtils.isBlank(classModel.getGrade()) || classModel.getSchoolId() == 0){ - baseVo.setSuccess(false); - baseVo.setMessage("缺少参数"); - break; - } - } - if(baseVo.isSuccess()){ - classModelService.insertBatch(classList); - baseVo.setSuccess(true); - return baseVo; - }else { - return baseVo; - } - } - - public BaseVo initTeacher(List teacherList){ - List result = new ArrayList<>(); - for(Teacher teacher : teacherList){ - boolean isExist = false; - for(Teacher t : result){ - if(t.getTeacherName().equals(teacher.getTeacherName())){ - isExist = true; - } - } - if(!isExist){ - result.add(teacher); - } - } - BaseVo baseVo = new BaseVo(); - List list = teacherService.selectBySchoolId(result.get(0).getSchoolId()); - if(list != null && list.size()>0){ - teacherService.deleteSchool(result.get(0).getSchoolId()); - } - for(Teacher teacher : result){ - if(teacher.getSchoolId() == 0 || StringUtils.isBlank(teacher.getTeacherName()) || - teacher.getTeacherId() == 0){ - baseVo.setSuccess(false); - baseVo.setMessage("缺少参数"); - break; - } - } - if(baseVo.isSuccess()){ - teacherService.insertBatch(result); - baseVo.setSuccess(true); - return baseVo; - }else { - return baseVo; - } - } - -} diff --git a/src/main/java/com/jevon/controller/LearnController.java b/src/main/java/com/jevon/controller/LearnController.java new file mode 100644 index 0000000..ce56901 --- /dev/null +++ b/src/main/java/com/jevon/controller/LearnController.java @@ -0,0 +1,77 @@ +package com.jevon.controller; + +import com.jevon.model.*; +import com.jevon.vo.BaseVo; +import com.jevon.vo.req.InitAnalyseReqVo; +import io.swagger.annotations.Api; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.io.File; +import java.io.FileInputStream; +import java.util.*; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/17 0017 13:33 + */ +@RestController +@RequestMapping(value = "/learn") +@Api(value = "学情分析") +public class LearnController { + + + public BaseVo initAnalyse(@RequestBody InitAnalyseReqVo initAnalyseReqVo){ + BaseVo baseVo = new BaseVo(); + Date date = new Date(); + try{ + String fileUrl = initAnalyseReqVo.getUrl(); + File excelFile = new File(fileUrl); + // 获得工作簿 + String file = excelFile.getName(); + Workbook workbook = null; + if (file.endsWith("xls")) { + workbook = new HSSFWorkbook(new FileInputStream(excelFile)); + } else { + workbook = new XSSFWorkbook(new FileInputStream(excelFile)); + } + // 获得工作表 + Sheet sheet = workbook.getSheetAt(0); + int rows = sheet.getPhysicalNumberOfRows(); + int column = 0 ; + int courseNumber = 0; + for (int i = 0; i < rows; i++) { + // 获取第i行数据 + Row sheetRow = sheet.getRow(i); + if (i == 0) { + //获取标题 + String title = sheetRow.getCell(0).getStringCellValue().trim(); + }else if(i == 1){ + //获取表头 + int j = 0 ; + while (sheetRow.getCell(j) != null && StringUtils.isNotBlank(sheetRow.getCell(j).getStringCellValue().trim())) { + j++ ; + } + column = j ; + } else { + for (int j = 0; j < column; j++) { + Cell cell = sheetRow.getCell(j); + if(cell != null){ + cell.setCellType(CellType.STRING); + } + } + } + } + }catch (Exception e){ + System.out.println(e); + baseVo.setSuccess(false); + } + return baseVo; + } +} diff --git a/src/main/java/com/jevon/controller/MessageController.java b/src/main/java/com/jevon/controller/MessageController.java deleted file mode 100644 index 11f93c1..0000000 --- a/src/main/java/com/jevon/controller/MessageController.java +++ /dev/null @@ -1,316 +0,0 @@ -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 MessageController { - - @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()); - classCourseRepVo.setData(classCourseService.selectByClassIdAndSingleOrDouble(search)); - return classCourseRepVo; - } - - @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(); - List headList = new ArrayList<>(); - headList.add("年级"); - headList.add("班级"); - List heardKey = new ArrayList<>(); - heardKey.add("grade"); - heardKey.add("class"); - List> data = new ArrayList<>(); - Schedule schedule = scheduleService.selectById(scheduleId); - 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){ - - } - } -} diff --git a/src/main/java/com/jevon/controller/ScheduleController.java b/src/main/java/com/jevon/controller/ScheduleController.java index 0538732..06eb654 100644 --- a/src/main/java/com/jevon/controller/ScheduleController.java +++ b/src/main/java/com/jevon/controller/ScheduleController.java @@ -518,7 +518,7 @@ public class ScheduleController { classCourse.setCourseOpenId(course.getCourseId()); classCourse.setCourseName(teacherClass.getCourseName()); //判断当天是否已经排该课程 - if(classCourseService.selectCourseByClassIdAndWeek(classCourse) > 0){ + if(classCourseService.selectCourseByClassIdAndWeek(classCourse) > 1){ break; } TeacherCourse searchTeacherCourse = new TeacherCourse(); @@ -640,7 +640,8 @@ public class ScheduleController { weekChange = weekChange + 5; } List list = classCourseService.selectWeekCourse(classCourse.getClassId(),weekChange,classCourse.getSingleOrDouble(),teacherClass.getCourseName(),teacherClass.getTeam()); - if(list.size() > 0){ + //查询当天是否已经有该节课,扩大了 + if(list.size() > 1){ continue; } for(int j = -1 ; j<=1 ; j++){ diff --git a/src/main/java/com/jevon/controller/ScheduleInitController.java b/src/main/java/com/jevon/controller/ScheduleInitController.java new file mode 100644 index 0000000..74616e2 --- /dev/null +++ b/src/main/java/com/jevon/controller/ScheduleInitController.java @@ -0,0 +1,415 @@ +package com.jevon.controller; + +import com.alibaba.fastjson.JSONObject; +import com.jevon.model.*; +import com.jevon.service.*; +import com.jevon.utils.HttpClientUtils; +import com.jevon.vo.BaseVo; +import com.jevon.vo.rep.InitRepVo; +import com.jevon.vo.rep.ScheduleRepVo; +import com.jevon.vo.req.CreateScheduleReqVo; +import com.jevon.vo.req.InitTeacherCourseReqVo; +import com.jevon.vo.req.ScheduleIdReqVo; +import com.jevon.vo.req.UpdateScheduleReqVo; +import com.sun.xml.bind.v2.runtime.unmarshaller.IntArrayData; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.transaction.annotation.Transactional; +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 java.io.File; +import java.io.FileInputStream; +import java.util.*; + +@RestController +@RequestMapping(value = "/init") +@Api(value = "排课表") +public class ScheduleInitController { + + @Autowired + ClassModelService classModelService; + + @Autowired + TeacherClassService teacherClassService; + + @Autowired + CourseService courseService ; + + @Autowired + TeacherService teacherService; + + @Autowired + ScheduleService scheduleService; + + @Autowired + TeacherCourseService teacherCourseService; + + @Autowired + JoinClassService joinClassService; + + @Autowired + ClassCourseService classCourseService; + + @Value("${remoting.url}") + private String url ; + @Value("${remoting.prefixFile}") + private String staticUrl ; + + @ApiOperation("创建排课计划 ") + @RequestMapping(value = "createSchedule", method = RequestMethod.POST) + public ScheduleRepVo createSchedule(HttpServletRequest request){ + ScheduleRepVo baseVo = new ScheduleRepVo(); + Schedule schedule = new Schedule(); + schedule.setTeam(request.getParameter("team")); + schedule.setScheduleName(request.getParameter("scheduleName")); + schedule.setSchoolId(Integer.valueOf(request.getParameter("schoolId"))); + Schedule temp = scheduleService.selectBySchoolAndTeam(schedule); + if(temp == null){ + scheduleService.insert(schedule); + }else { + baseVo.setSuccess(false); + baseVo.setMessage("该学校该学年学期已创建了排课计划"); + return baseVo; + } + temp = scheduleService.selectBySchoolAndTeam(schedule); + initMessage(schedule.getSchoolId()); + baseVo.setScheduleId(temp.getId()); + return baseVo; + } + + @ApiOperation("更新计划") + @RequestMapping(value = "updateSchedule", method = RequestMethod.POST) + public BaseVo updateSchedule(@RequestBody UpdateScheduleReqVo updateScheduleReqVo){ + BaseVo baseVo = new BaseVo(); + Schedule schedule = scheduleService.selectById(updateScheduleReqVo.getScheduleId()); + schedule.setScheduleName(updateScheduleReqVo.getScheduleName()); + schedule.setTeam(updateScheduleReqVo.getTeam()); + scheduleService.update(schedule); + return baseVo; + } + + @ApiOperation("复制") + @RequestMapping(value = "copySchedule", method = RequestMethod.POST) + public BaseVo copySchedule(@RequestBody UpdateScheduleReqVo updateScheduleReqVo){ + BaseVo baseVo = new BaseVo(); + Schedule schedule = scheduleService.selectById(updateScheduleReqVo.getScheduleId()); + if(schedule == null){ + baseVo.setMessage("原始课表不存在"); + baseVo.setSuccess(false); + return baseVo; + } + Schedule temp = new Schedule(); + temp.setSchoolId(schedule.getSchoolId()); + temp.setTeam(updateScheduleReqVo.getTeam()); + Schedule result = scheduleService.selectBySchoolAndTeam(temp); + if(result != null){ + baseVo.setMessage("该学年学期已创建课表计划"); + baseVo.setSuccess(false); + return baseVo; + } + temp.setScheduleName(updateScheduleReqVo.getScheduleName()); + scheduleService.insert(temp); + Date date = new Date(); + //复制 classCourse teacherClass teacherCourse + List classCourses = classCourseService.copyClassCourse(schedule.getSchoolId(),schedule.getTeam()); + for(ClassCourse classCourse :classCourses){ + classCourse.setSchoolId(temp.getSchoolId()); + classCourse.setTeam(temp.getTeam()); + classCourse.setCreateTime(date); + } + classCourseService.insertBatch(classCourses); + TeacherClass teacherClass = new TeacherClass(); + teacherClass.setSchoolId(schedule.getSchoolId()); + teacherClass.setTeam(schedule.getTeam()); + List teacherClasses = teacherClassService.selectBySchoolAndTeam(teacherClass); + for(TeacherClass teacherClass1 :teacherClasses){ + teacherClass1.setSchoolId(temp.getSchoolId()); + teacherClass1.setTeam(temp.getTeam()); + teacherClass1.setCreateTime(date); + } + teacherClassService.insertBatch(teacherClasses); + + List teacherCourses = teacherCourseService.selectBySchoolIdAndTeam(schedule.getSchoolId(),schedule.getTeam()); + for(TeacherCourse teacherCourse : teacherCourses){ + teacherCourse.setSchoolId(temp.getSchoolId()); + teacherCourse.setTeam(temp.getTeam()); + teacherCourse.setCreateTime(date); + } + teacherCourseService.insertBatch(teacherCourses); + return baseVo; + } + + @ApiOperation("删除排课计划") + @RequestMapping(value = "deleteSchedule", method = RequestMethod.POST) + public BaseVo deleteSchedule(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ + BaseVo baseVo = new BaseVo(); + Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); + if(schedule == null){ + baseVo.setSuccess(false); + baseVo.setMessage("无排课计划"); + return baseVo; + } + teacherCourseService.deleteBySchoolIdAndTeam(schedule.getSchoolId(),schedule.getTeam()); + joinClassService.deleteBySchoolIdAndTeam(schedule.getSchoolId(),schedule.getTeam()); + classCourseService.deleteBySchoolIdAndTeam(schedule.getSchoolId(),schedule.getTeam()); + TeacherClass teacherClass = new TeacherClass(); + teacherClass.setSchoolId(schedule.getSchoolId()); + teacherClass.setTeam(schedule.getTeam()); + teacherClassService.deleteBySchoolAndTeam(teacherClass); + courseService.initSchoolId(schedule.getSchoolId()); + scheduleService.deleteBySchedule(schedule.getId()); + return baseVo; + } + + @ApiOperation("获取基础信息") + @RequestMapping(value = "getInitMessage", method = RequestMethod.POST) + public InitRepVo getInitMessage(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ + InitRepVo initRepVo = new InitRepVo(); + Schedule schedule = scheduleService.selectById(scheduleIdReqVo.getScheduleId()); + if(schedule == null){ + initRepVo.setSuccess(false); + initRepVo.setMessage("没有改排课计划"); + return initRepVo; + } + List courses = courseService.selectBySchoolId2(schedule.getSchoolId()); + List teachers = teacherService.selectBySchoolId(schedule.getSchoolId()); + List classModels = classModelService.selectBySchoolId(schedule.getSchoolId()); + initRepVo.setClassNumber(classModels.size()); + initRepVo.setCourseNumber(courses.size()); + initRepVo.setTeacherNumber(teachers.size()); + return initRepVo; + } + + @Transactional + @ApiOperation("教师授课信息") + @RequestMapping(value = "initTeacherCourse", method = RequestMethod.POST) + public BaseVo initTeacherCourse(@RequestBody InitTeacherCourseReqVo initTeacherCourseReqVo){ + BaseVo baseVo = new BaseVo(); + Date date = new Date(); + try{ + TeacherClass temp = new TeacherClass(); + Schedule schedule = scheduleService.selectById(initTeacherCourseReqVo.getScheduleId()); + if(schedule != null && schedule.getSpeed() == 2) { + temp.setSchoolId(schedule.getSchoolId()); + temp.setTeam(schedule.getTeam()); + List list = teacherClassService.selectBySchoolAndTeam(temp); + if (list != null && list.size() > 0) { + teacherClassService.deleteBySchoolAndTeam(temp); + } + String fileUrl = initTeacherCourseReqVo.getUrl(); + fileUrl = fileUrl.replace(url, staticUrl); + File excelFile = new File(fileUrl); + // 获得工作簿 + String file = excelFile.getName(); + Workbook workbook = null; + if (file.endsWith("xls")) { + workbook = new HSSFWorkbook(new FileInputStream(excelFile)); + } else { + workbook = new XSSFWorkbook(new FileInputStream(excelFile)); + } + // 获得工作表 + Sheet sheet = workbook.getSheetAt(0); + int rows = sheet.getPhysicalNumberOfRows(); + Map courseTeacherMap = new HashMap<>(); + int courseNumber = 0; + List teacherClasses = new ArrayList<>(); + for (int i = 0; i < rows; i++) { + // 获取第i行数据 + Row sheetRow = sheet.getRow(i); + if (i == 0) { + //获取表头 + int j = 1; + while (sheetRow.getCell(2 * j) != null && StringUtils.isNotBlank(sheetRow.getCell(2 * j).getStringCellValue().trim())) { + Course course = courseService.selectBySchoolIdAndCourseName(schedule.getSchoolId(), sheetRow.getCell(2 * j).getStringCellValue().trim()); + courseTeacherMap.put(j, course); + j++; + } + courseNumber = j - 1; + } else { + if (StringUtils.isBlank(sheetRow.getCell(0).getStringCellValue().trim())) { + continue; + } + String className = sheetRow.getCell(1).getStringCellValue().trim(); + ClassModel classModel = new ClassModel(); + classModel.setSchoolId(schedule.getSchoolId()); + classModel.setClassName(className); + classModel.setGrade(sheetRow.getCell(0).getStringCellValue().trim()); + ClassModel resultClass = classModelService.selectBySchoolIdAndClassNameAndGrade(classModel); + for (int j = 1; j <= courseNumber; j++) { + Cell cell = sheetRow.getCell(2 * j); + if (cell != null) { + cell.setCellType(CellType.STRING); + String times = sheetRow.getCell(2 * j).getStringCellValue().trim(); + if (StringUtils.isNotBlank((times))) { + Course course = courseTeacherMap.get(j); + String teacherName = sheetRow.getCell(2 * j + 1).getStringCellValue().trim(); + Teacher teacher = new Teacher(); + teacher.setTeacherName(teacherName); + teacher.setSchoolId(schedule.getSchoolId()); + Teacher resultTeacher = teacherService.selectByTeacher(teacher); + if (course != null && resultTeacher != null) { + TeacherClass teacherClass = new TeacherClass(); + teacherClass.setTeam(schedule.getTeam()); + teacherClass.setSchoolId(schedule.getSchoolId()); + teacherClass.setCourseName(course.getCourseName()); + teacherClass.setTeacherName(resultTeacher.getTeacherName()); + teacherClass.setTeacherId(resultTeacher.getTeacherId()); + teacherClass.setGrade(sheetRow.getCell(0).getStringCellValue().trim()); + teacherClass.setClassId(resultClass.getClassId()); + String[] msg = times.split("\\+"); + if (msg.length > 1) { + //有联课 + teacherClass.setJoinTimes(Integer.valueOf(msg[1])); + teacherClass.setTimes(Integer.valueOf(msg[1]) * 2 + Integer.valueOf(msg[0])); + } else { + teacherClass.setJoinTimes(0); + teacherClass.setTimes(Integer.valueOf(msg[0])); + } + teacherClass.setStatus(0); + teacherClass.setCreateTime(date); + teacherClasses.add(teacherClass); + } else { + baseVo.setMessage("课程或老师缺失"); + baseVo.setSuccess(false); + return baseVo; + } + } + + } + } + } + } + teacherClassService.insertBatch(teacherClasses); + schedule.setSpeed(3); + scheduleService.updateSpeed(schedule); + }else { + baseVo.setMessage("排课计划不存在或已导入"); + baseVo.setSuccess(false); + } + }catch (Exception e){ + System.out.println(e); + baseVo.setSuccess(false); + } + return baseVo; + } + + private void initMessage(int schoolId){ + JSONObject teacherList = HttpClientUtils.httpGet(url+"/api/EasyN/GetSchoolTeacher?SchoolId="+schoolId); + List openTeacherList = (List)teacherList.get("data"); + List teachers = new ArrayList<>(); + for(JSONObject json :openTeacherList){ + Teacher teacher = new Teacher(); + teacher.setSchoolId(Integer.valueOf(json.get("school_id").toString())); + teacher.setTeacherId(Integer.valueOf(json.get("teacher_id").toString())); + teacher.setTeacherName(json.get("name").toString()); + teachers.add(teacher); + } + initTeacher(teachers); + JSONObject classList = HttpClientUtils.httpGet(url+"/api/EasyN/GetSchoolClass?SchoolId="+schoolId); + List openClasses = (List)classList.get("data"); + List classModels = new ArrayList<>(); + for(JSONObject json :openClasses){ + ClassModel classModel = new ClassModel(); + classModel.setSchoolId(Integer.valueOf(json.get("school_id").toString())); + classModel.setClassId(Integer.valueOf(json.get("class_id").toString())); + classModel.setGrade(json.get("gardeName").toString()); + classModel.setClassName(json.get("class_name").toString()); + classModels.add(classModel); + } + initClass(classModels); + JSONObject courseList = HttpClientUtils.httpGet(url+"/api/EasyN/GetSchoolSubject?SchoolId="+schoolId); + List openCourses = (List)courseList.get("data"); + List courses = new ArrayList<>(); + for(JSONObject json :openCourses){ + Course course = new Course(); + course.setSchoolId(Integer.valueOf(json.get("school_id").toString())); + course.setCourseId(Integer.valueOf(json.get("subject_id").toString())); + course.setCourseName(json.get("subject_name").toString()); + course.setCourseType(0); + courses.add(course); + } + initCourse(courses); + } + + public BaseVo initCourse(List courseList){ + BaseVo baseVo = new BaseVo(); + courseService.deleteSchoolId(courseList.get(0).getSchoolId()); + for(Course course : courseList){ + if(course.getCourseId() == 0 || StringUtils.isBlank(course.getCourseName())){ + baseVo.setSuccess(false); + baseVo.setMessage("缺少参数"); + break; + } + } + if(baseVo.isSuccess()){ + courseService.insertBatch(courseList); + baseVo.setSuccess(true); + return baseVo; + }else { + return baseVo; + } + } + + public BaseVo initClass(List classList){ + BaseVo baseVo = new BaseVo(); + classModelService.deleteSchool(classList.get(0).getSchoolId()); + for(ClassModel classModel : classList){ + if(classModel.getClassId() == 0 || StringUtils.isBlank(classModel.getClassName()) || + StringUtils.isBlank(classModel.getGrade()) || classModel.getSchoolId() == 0){ + baseVo.setSuccess(false); + baseVo.setMessage("缺少参数"); + break; + } + } + if(baseVo.isSuccess()){ + classModelService.insertBatch(classList); + baseVo.setSuccess(true); + return baseVo; + }else { + return baseVo; + } + } + + public BaseVo initTeacher(List teacherList){ + List result = new ArrayList<>(); + for(Teacher teacher : teacherList){ + boolean isExist = false; + for(Teacher t : result){ + if(t.getTeacherName().equals(teacher.getTeacherName())){ + isExist = true; + } + } + if(!isExist && StringUtils.isNotBlank(teacher.getTeacherName())){ + result.add(teacher); + } + } + BaseVo baseVo = new BaseVo(); + teacherService.deleteSchool(result.get(0).getSchoolId()); + for(Teacher teacher : result){ + if(teacher.getSchoolId() == 0 || StringUtils.isBlank(teacher.getTeacherName()) || + teacher.getTeacherId() == 0){ + baseVo.setSuccess(false); + baseVo.setMessage("缺少参数"); + break; + } + } + if(baseVo.isSuccess()){ + teacherService.insertBatch(result); + baseVo.setSuccess(true); + return baseVo; + }else { + return baseVo; + } + } + +} diff --git a/src/main/java/com/jevon/controller/ScheduleMessageController.java b/src/main/java/com/jevon/controller/ScheduleMessageController.java new file mode 100644 index 0000000..5fc3ebf --- /dev/null +++ b/src/main/java/com/jevon/controller/ScheduleMessageController.java @@ -0,0 +1,322 @@ +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()); + classCourseRepVo.setData(classCourseService.selectByClassIdAndSingleOrDouble(search)); + return classCourseRepVo; + } + + @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){ + + } + } +} diff --git a/src/main/java/com/jevon/mapper/CourseMapper.java b/src/main/java/com/jevon/mapper/CourseMapper.java index 944b19b..6981026 100644 --- a/src/main/java/com/jevon/mapper/CourseMapper.java +++ b/src/main/java/com/jevon/mapper/CourseMapper.java @@ -15,6 +15,8 @@ public interface CourseMapper { List selectBySchoolId(int schoolId); + List selectBySchoolId2(int schoolId); + List selectByCourse(Course course); int updateCourseType(Course course); diff --git a/src/main/java/com/jevon/service/CourseService.java b/src/main/java/com/jevon/service/CourseService.java index 351f7fe..573fb27 100644 --- a/src/main/java/com/jevon/service/CourseService.java +++ b/src/main/java/com/jevon/service/CourseService.java @@ -15,6 +15,8 @@ public interface CourseService { List selectBySchoolId(int schoolId); + List selectBySchoolId2(int schoolId); + List selectByCourse(Course course); Course selectBySchoolIdAndCourseId(int schoolId , int courseId); diff --git a/src/main/java/com/jevon/service/impl/CourseServiceImpl.java b/src/main/java/com/jevon/service/impl/CourseServiceImpl.java index 2035387..6da1ff2 100644 --- a/src/main/java/com/jevon/service/impl/CourseServiceImpl.java +++ b/src/main/java/com/jevon/service/impl/CourseServiceImpl.java @@ -30,6 +30,11 @@ public class CourseServiceImpl implements CourseService { } @Override + public List selectBySchoolId2(int schoolId) { + return courseMapper.selectBySchoolId2(schoolId); + } + + @Override public List selectByCourse(Course course) { return courseMapper.selectByCourse(course); } diff --git a/src/main/java/com/jevon/vo/req/InitAnalyseReqVo.java b/src/main/java/com/jevon/vo/req/InitAnalyseReqVo.java new file mode 100644 index 0000000..773d1f0 --- /dev/null +++ b/src/main/java/com/jevon/vo/req/InitAnalyseReqVo.java @@ -0,0 +1,28 @@ +package com.jevon.vo.req; + +/** + * @author chen + * @version 1.0 + * @date 2019/10/17 0017 13:36 + */ +public class InitAnalyseReqVo { + + private int analyseId ; + private String url ; + + public int getAnalyseId() { + return analyseId; + } + + public void setAnalyseId(int analyseId) { + this.analyseId = analyseId; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 549eb41..cb6bce9 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -2,26 +2,13 @@ server: port: 8008 spring: - freemarker: - template-loader-path: classpath:/templates/ - prefix: - suffix: .html - ##是否允许使用request - allow-request-override: true - request-context-attribute: request - - cache: false - check-template-location: true - charset: UTF-8 - content-type: text/html;charset=UTF-8 - expose-request-attributes: false - expose-session-attributes: false - expose-spring-macro-helpers: false - datasource: username: SZJXTUSER password: xst200919 url: jdbc:sqlserver://60.190.202.57:14333;database=SmartPaike +# username: szjxtuser +# password: RQminVCJota3H1u8bBYH +# url: jdbc:sqlserver://116.62.155.137:33419;database=SmartCampus_java driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver filters: stat maxActive: 20 @@ -52,3 +39,9 @@ pagehelper: Logger: level: com.jevon.mapper: info + +remoting: + url: http://60.190.202.57:1000 + prefixFile: F://wwwroot//smartcampus +# url: http://campus.myjxt.com +# prefixFile: E://wwwhtdocs//SmartCampus diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml index dc79309..c82670e 100644 --- a/src/main/resources/logback.xml +++ b/src/main/resources/logback.xml @@ -5,7 +5,7 @@     - +         diff --git a/src/main/resources/mapping/CourseMapper.xml b/src/main/resources/mapping/CourseMapper.xml index b3d5ba6..aa8fb7b 100644 --- a/src/main/resources/mapping/CourseMapper.xml +++ b/src/main/resources/mapping/CourseMapper.xml @@ -22,6 +22,10 @@ and sz_sch_course.course_name in ( select course_name from sz_sch_teacher_class where school_id = #{schoolId}) + + delete from sz_sch_course where school_Id =#{schoolId} -- libgit2 0.21.0