Files
UserclassService/src/main/java/com/yunhai/bschclassmanage/controller/api/SchCustomGroupController.java
T
2026-08-13 16:53:39 +08:00

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);
}
}