160 lines
6.0 KiB
Java
160 lines
6.0 KiB
Java
package com.yunhai.bschclassmanage.controller.api;
|
|
|
|
|
|
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
|
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
|
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
|
import com.yunhai.bschclassmanage.config.Config;
|
|
import com.yunhai.bschclassmanage.enums.CustomGroupType;
|
|
import com.yunhai.bschclassmanage.model.dto.AddMemberDTO;
|
|
import com.yunhai.bschclassmanage.model.dto.SchCustomGroupDTO;
|
|
import com.yunhai.bschclassmanage.model.dto.SetLeaderDTO;
|
|
import com.yunhai.bschclassmanage.model.excel.CustomGroupExcelColumn;
|
|
import com.yunhai.bschclassmanage.model.excel.ImportRuleExcelColumn;
|
|
import com.yunhai.bschclassmanage.model.vo.SchCustomGroupVO;
|
|
import com.yunhai.bschclassmanage.service.*;
|
|
import com.yunhai.bschclassmanage.utils.EasyPoiUtils;
|
|
import com.yunhai.bschclassmanage.utils.UserContext;
|
|
import org.apache.poi.ss.usermodel.Workbook;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.validation.Valid;
|
|
import java.util.ArrayList;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@RestController
|
|
@RequestMapping(Config.API_PATH+"/group/")
|
|
@CrossOrigin(originPatterns = {"*"}, allowCredentials = "true")
|
|
public class SchCustomGroupController {
|
|
|
|
@Autowired
|
|
private ISchCustomGroupService schCustomGroupService; // 使用接口
|
|
|
|
@Autowired
|
|
private IBaseSchsystemGradeService baseSchsystemGradeService;
|
|
|
|
@Autowired
|
|
private ISchDicSubjectService schDicSubjectService; //使用接口
|
|
|
|
@Autowired
|
|
private IComSchTreeService comSchTreeService;
|
|
|
|
@Autowired
|
|
private ISchTeacherService schTeacherService;
|
|
|
|
@GetMapping("getSchCustomGroup")
|
|
public List<SchCustomGroupVO> getSchCustomGroup(@RequestParam Integer type) {
|
|
return schCustomGroupService.getSchCustomGroup(UserContext.getSchId(),type);
|
|
}
|
|
|
|
@PostMapping("saveSchCustomGroup")
|
|
public void saveSchCustomGroup(@Valid @RequestBody SchCustomGroupDTO dto) {
|
|
schCustomGroupService.saveSchCustomGroup(UserContext.getCurrentUser(),dto);
|
|
}
|
|
|
|
@PostMapping("saveMembers")
|
|
public void saveMembers(@Valid @RequestBody AddMemberDTO dto) {
|
|
schCustomGroupService.saveMembers(UserContext.getCurrentUser(),dto);
|
|
}
|
|
|
|
@PostMapping("setLeaders")
|
|
public void setLeaders(@Valid @RequestBody SetLeaderDTO dto) {
|
|
schCustomGroupService.setLeaders(UserContext.getCurrentUser(),dto);
|
|
}
|
|
|
|
@PostMapping("deleteSchCustomGroup")
|
|
public void deleteSchCustomGroup(@RequestParam Integer groupId) {
|
|
schCustomGroupService.deleteSchCustomGroup(UserContext.getCurrentUser(),groupId);
|
|
}
|
|
|
|
|
|
@GetMapping("downloadTemplate")
|
|
public void downloadTemplate(HttpServletResponse response, Integer schId) {
|
|
String fileName = "教师分组导入模板";
|
|
List<Map<String, Object>> sheets = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
List<CustomGroupExcelColumn> list = new ArrayList<>();
|
|
{
|
|
CustomGroupExcelColumn column = new CustomGroupExcelColumn();
|
|
column.setGroupName("示例:语文组");
|
|
column.setGroupType("示例:年级组");
|
|
column.setGradeBin("示例:高一年级");
|
|
column.setGradeBin("示例:语文,数学");
|
|
column.setLeaderName("示例:张三");
|
|
column.setMemberName("示例:张三");
|
|
list.add(column);
|
|
}
|
|
|
|
List<String> teaNames=schTeacherService.getSchTeacherList(schId).stream().map(s->s.getName()).collect(Collectors.toList());
|
|
|
|
List<String> gradeNames=baseSchsystemGradeService.getGradeSelect(schId,null,null)
|
|
.stream().map(s->s.getName()).collect(Collectors.toList());
|
|
|
|
List<String> subjectNames=schDicSubjectService.getSchSubList(schId,null)
|
|
.stream().map(s->s.getName()).collect(Collectors.toList());
|
|
|
|
List<String> groupNames=CustomGroupType.list().stream()
|
|
.map(s->s.getName()).collect(Collectors.toList());
|
|
|
|
ExportParams params1 = new ExportParams("自定义组导入",comSchTreeService.getSchoolName(schId));
|
|
Map<String, Object> sheet1 = new HashMap<>();
|
|
sheet1.put("title",params1);
|
|
sheet1.put("entity", CustomGroupExcelColumn.class);
|
|
sheet1.put("data", list);
|
|
sheets.add(sheet1);
|
|
|
|
List<ImportRuleExcelColumn> ruleList = new ArrayList<>();
|
|
|
|
ImportRuleExcelColumn rule1 = new ImportRuleExcelColumn();
|
|
rule1.setRuleItem("组长/组员");
|
|
rule1.setDescription("多选");
|
|
rule1.setContent(String.join(",",teaNames));
|
|
ruleList.add(rule1);
|
|
|
|
ImportRuleExcelColumn rule2 = new ImportRuleExcelColumn();
|
|
rule2.setRuleItem("年级");
|
|
rule2.setDescription("多选");
|
|
rule2.setContent(String.join(",",gradeNames));
|
|
ruleList.add(rule2);
|
|
|
|
ImportRuleExcelColumn rule3 = new ImportRuleExcelColumn();
|
|
rule3.setRuleItem("学科");
|
|
rule3.setDescription("多选");
|
|
rule3.setContent(String.join(",",subjectNames));
|
|
ruleList.add(rule3);
|
|
|
|
ImportRuleExcelColumn rule4 = new ImportRuleExcelColumn();
|
|
rule4.setRuleItem("组类型");
|
|
rule4.setDescription("单选");
|
|
rule4.setContent(String.join(",",groupNames));
|
|
ruleList.add(rule4);
|
|
|
|
ExportParams params2 = new ExportParams("导入规则", "导入规则");
|
|
|
|
Map<String, Object> sheet2 = new HashMap<>();
|
|
sheet2.put("title", params2);
|
|
sheet2.put("entity", ImportRuleExcelColumn.class);
|
|
sheet2.put("data", ruleList);
|
|
sheets.add(sheet2);
|
|
|
|
Workbook workbook = ExcelExportUtil.exportExcel(sheets, ExcelType.HSSF);
|
|
EasyPoiUtils.downLoadExcel(fileName + ".xls", response, workbook);
|
|
}
|
|
|
|
|
|
@PostMapping("importCustomGroup")
|
|
public void importCustomGroup(@RequestPart("file") MultipartFile file) {
|
|
schCustomGroupService.importCustomGroup(UserContext.getCurrentUser(),file);
|
|
}
|
|
}
|