ScheduleMessageController.java 5.99 KB
package com.sincere.independence.controller;

import com.sincere.common.dto.independence.ClassModelDto;
import com.sincere.common.dto.independence.CourseDto;
import com.sincere.common.dto.independence.ScheduleDto;
import com.sincere.common.util.ExcelUtils;
import com.sincere.common.vo.BaseVo;
import com.sincere.common.vo.independence.paike.*;
import com.sincere.independence.feign.IndependenceFeign;
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
    IndependenceFeign independenceFeign;

    @ApiOperation("获取学校排课计划")
    @RequestMapping(value = "getScheduleList", method = RequestMethod.POST)
    public ScheduleListRepVo getScheduleList(@RequestBody SchoolIdReqVo schoolIdReqVo){
        return independenceFeign.getScheduleList(schoolIdReqVo.getSchoolId());
    }

    @ApiOperation("获取学校下所有班级信息")
    @RequestMapping(value = "getClassList", method = RequestMethod.POST)
    public ClassRepVo getClassList(@RequestBody SchoolIdReqVo schoolIdReqVo){
        return independenceFeign.getClassList(schoolIdReqVo.getSchoolId());
    }

    @ApiOperation("获取学校课程")
    @RequestMapping(value = "getCourseList", method = RequestMethod.POST)
    public CourseRepVo getCourseList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){
        return independenceFeign.getCourseList(scheduleIdReqVo.getScheduleId());
    }

    @ApiOperation("获取要学习某个学科的班级集合")
    @RequestMapping(value = "getCourseClassList", method = RequestMethod.POST)
    public List<GetCourseClassListRepVo> getCourseClassList(@RequestBody CourseClassReqVo courseClassReqVo){
        return independenceFeign.getCourseClassList(courseClassReqVo.getScheduleId(),courseClassReqVo.getCourseId());
    }

    @ApiOperation("获取班级排课课程")
    @RequestMapping(value = "getClassCourseList", method = RequestMethod.POST)
    public ClassCourseRepVo getClassCourseList(@RequestBody GetClassCourseReqVo getClassCourseReqVo){
        return independenceFeign.getClassCourseList(getClassCourseReqVo.getScheduleId(),getClassCourseReqVo.getClassId());
    }

    @ApiOperation("获取合班信息")
    @RequestMapping(value = "getJoinList", method = RequestMethod.POST)
    public JoinRepVo getJoinList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){
        return independenceFeign.getJoinList(scheduleIdReqVo.getScheduleId());
    }

    @ApiOperation("获取导入任课信息")
    @RequestMapping(value = "getTeacherClassList", method = RequestMethod.POST)
    public TeacherCourseRepVo getTeacherClassList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){
        return independenceFeign.getTeacherClassList(scheduleIdReqVo.getScheduleId());
    }

    @ApiOperation("获取主课,副科,公共课列表")
    @RequestMapping(value = "getCourseTypeList", method = RequestMethod.POST)
    public GetCourseTypeListRepVo getCourseTypeList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){
        return independenceFeign.getCourseTypeList(scheduleIdReqVo.getScheduleId());
    }

    @ApiOperation("获取未设置学科类型的科目")
    @RequestMapping(value = "getUnCourseList", method = RequestMethod.POST)
    public CourseRepVo getUnCourseList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){
        return independenceFeign.getUnCourseList(scheduleIdReqVo.getScheduleId());
    }

    @ApiOperation("删除设置的 主课 副科 公共课")
    @RequestMapping(value = "deleteCourseType", method = RequestMethod.POST)
    public BaseVo deleteCourseType(@RequestBody CourseClassReqVo courseClassReqVo){
        return independenceFeign.deleteCourseType(courseClassReqVo.getScheduleId(),courseClassReqVo.getCourseId());
    }

    @ApiOperation("获取设置的作息  获取排课计划详情")
    @RequestMapping(value = "getSchedule", method = RequestMethod.POST)
    public ScheduleDto getSchedule(@RequestBody ScheduleIdReqVo scheduleIdReqVo){
        return independenceFeign.getSchedule(scheduleIdReqVo.getScheduleId());
    }

    @ApiOperation("导出模板")
    @RequestMapping(value = "export", method = RequestMethod.GET)
    public void export(int scheduleId , HttpServletRequest request, HttpServletResponse response){
        ExcelUtils excelUtils = new ExcelUtils();
        ScheduleDto schedule = independenceFeign.getSchedule(scheduleId);
        List<String> headList = new ArrayList<>();
        headList.add("年级");
        headList.add("班级");
        List<CourseDto> courses = independenceFeign.getCourseBySchoolId(schedule.getSchoolId());
        for(CourseDto course : courses){
            headList.add(course.getCourseName());
            headList.add("任课老师");

        }
        List<String> heardKey = new ArrayList<>();
        heardKey.add("grade");
        heardKey.add("class");
        List<Map<String , String >> data = new ArrayList<>();
        List<ClassModelDto> list = independenceFeign.getClassModelBySchoolId(schedule.getSchoolId());
        for(ClassModelDto classModel : list){
            Map<String ,String> 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){

        }
    }
}