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 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> sheets = new ArrayList<>(); List list = new ArrayList<>(); { CustomGroupExcelColumn column = new CustomGroupExcelColumn(); column.setGroupName("示例:语文组"); column.setGroupType("示例:年级组"); column.setGradeBin("示例:高一年级"); column.setGradeBin("示例:语文,数学"); column.setLeaderName("示例:张三"); column.setMemberName("示例:张三"); list.add(column); } List teaNames=schTeacherService.getSchTeacherList(schId).stream().map(s->s.getName()).collect(Collectors.toList()); List gradeNames=baseSchsystemGradeService.getGradeSelect(schId,null,null) .stream().map(s->s.getName()).collect(Collectors.toList()); List subjectNames=schDicSubjectService.getSchSubList(schId,null) .stream().map(s->s.getName()).collect(Collectors.toList()); List groupNames=CustomGroupType.list().stream() .map(s->s.getName()).collect(Collectors.toList()); ExportParams params1 = new ExportParams("自定义组导入",comSchTreeService.getSchoolName(schId)); Map sheet1 = new HashMap<>(); sheet1.put("title",params1); sheet1.put("entity", CustomGroupExcelColumn.class); sheet1.put("data", list); sheets.add(sheet1); List 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 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); } }