xiangpei
2025-05-14 47cd9ecc0eff38ffe6b3b794b2bf197e958f4403
src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java
@@ -7,7 +7,6 @@
import com.github.pagehelper.PageInfo;
import com.mindskip.xzs.base.BaseApiController;
import com.mindskip.xzs.base.RestResponse;
import com.mindskip.xzs.domain.Department;
import com.mindskip.xzs.domain.ExamPaperAnswer;
import com.mindskip.xzs.domain.ExamPaperSubject;
import com.mindskip.xzs.domain.Subject;
@@ -20,13 +19,11 @@
import com.mindskip.xzs.utility.DateTimeUtil;
import com.mindskip.xzs.utility.ExamUtil;
import com.mindskip.xzs.utility.PageInfoHelper;
import com.mindskip.xzs.utility.excel.ExcelUtils;
import com.mindskip.xzs.viewmodel.admin.paper.ExamPaperAnswerPageRequestVM;
import com.mindskip.xzs.viewmodel.student.exampaper.ExamPaperAnswerPageResponseVM;
import lombok.RequiredArgsConstructor;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
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;
@@ -39,6 +36,7 @@
import java.math.RoundingMode;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.stream.Collectors;
@RequiredArgsConstructor
@@ -141,7 +139,6 @@
    @RequestMapping(value = "/export", method = RequestMethod.GET)
    public void export(Integer id, Integer type, HttpServletResponse response) {
        try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build()) {
            // 部门考试统计sheet
            List<ExamPaperDataExportVO> list =  examPaperAnswerService.dataExport(new ExamPaperDataVO().setId(id).setType(type));
@@ -149,18 +146,15 @@
            excelWriter.write(list, writeSheet);
            // 考试详情sheet,一个单位一个sheet
            List<PaperExcelVO> paperDetailList = examPaperService.getPaperExcelById(id);
            List<Integer> deptIds = paperDetailList.stream().map(PaperExcelVO::getDeptId).collect(Collectors.toList());
            Map<Integer, List<Department>> deptMap = departmentService.gets(deptIds).stream().collect(Collectors.groupingBy(Department::getId));
            List<PaperExcelVO> paperDetailList = examPaperService.getRandomPaperExcelById(id);
            Map<Integer, List<PaperExcelVO>> deptDataMap = paperDetailList.stream().collect(Collectors.groupingBy(PaperExcelVO::getDeptId));
            deptDataMap.forEach((deptId, paperList) -> {
                List<Department> departments = deptMap.get(deptId);
                String name = "";
                if (CollectionUtils.isNotEmpty(departments)) {
                    name = departments.get(0).getName();
            Map<Integer, List<PaperExcelVO>> sortedDeptDataMap = new TreeMap<>(deptDataMap);
            sortedDeptDataMap.forEach((deptId, paperList) -> {
                if (CollectionUtils.isNotEmpty(paperList) && ObjectUtils.isNotEmpty(paperList.get(0))) {
                    String name = paperList.get(0).getDepartmentName();
                    WriteSheet writeSheetNext = EasyExcel.writerSheet(name).head(PaperExcelVO.class).build();
                    excelWriter.write(paperList, writeSheetNext);
                }
                WriteSheet writeSheetNext = EasyExcel.writerSheet(name).head(PaperExcelVO.class).build();
                excelWriter.write(paperList, writeSheetNext);
            });
        } catch (IOException e) {
            e.printStackTrace();