龚焕茏
2024-07-22 5016dc772bcb3fdba9ce6d255a5674f1a7160964
fix:成绩统计导出完善
6个文件已修改
38 ■■■■■ 已修改文件
src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/domain/vo/PaperExcelVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/DepartmentService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
@@ -149,17 +147,14 @@
            // 考试详情sheet,一个单位一个sheet
            List<PaperExcelVO> paperDetailList = examPaperService.getRandomPaperExcelById(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));
            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();
src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java
@@ -2,7 +2,7 @@
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.mindskip.xzs.utility.excel.ExcelExport;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -23,22 +23,27 @@
    @ExcelProperty("部门名称")
    @ExcelExport("部门名称")
    @ColumnWidth(40)
    private String name;
    @ExcelProperty("参考人数")
    @ExcelExport("参考人数")
    @ColumnWidth(20)
    private Integer factPeopleTotal;
    @ExcelProperty("参考人数百分比")
    @ExcelExport("参考人数百分比")
    @ColumnWidth(20)
    private BigDecimal referencePercentage;
    @ExcelProperty("平均分")
    @ExcelExport("平均分")
    @ColumnWidth(20)
    private BigDecimal averageScore;
    @ExcelProperty("总考试次数")
    @ExcelExport("总考试次数")
    @ColumnWidth(20)
    private Integer examTotal;
}
src/main/java/com/mindskip/xzs/domain/vo/PaperExcelVO.java
@@ -2,6 +2,7 @@
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.mindskip.xzs.utility.excel.ExcelExport;
import lombok.Data;
@@ -12,6 +13,7 @@
    @ExcelProperty("姓名")
    @ExcelExport("姓名")
    @ColumnWidth(50)
    private String name;
    @ExcelIgnore
@@ -19,6 +21,7 @@
    @ExcelProperty("部门")
    @ExcelExport("部门")
    @ColumnWidth(50)
    private String departmentName;
    @ExcelIgnore
src/main/java/com/mindskip/xzs/service/DepartmentService.java
@@ -41,6 +41,8 @@
    List<Department> gets(List<Integer> deptId);
    List<Department> getDepartmentByIds(List<Integer> deptId);
    Department getName(String name);
    List<BaseSelect> getDeptUserList(Integer deptId);
src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java
@@ -147,6 +147,11 @@
    }
    @Override
    public List<Department> getDepartmentByIds(List<Integer> deptId) {
        return departmentMapper.gets(deptId);
    }
    @Override
    public Department getName(String name) {
        return departmentMapper.getName(name);
    }
src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java
@@ -300,7 +300,7 @@
        }).collect(Collectors.toList());
        paperExcel.removeAll(needRemove);
        paperExcel.addAll(needAdd);
        return paperExcel;
        return paperExcel.stream().filter(e -> Objects.nonNull(e.getDeptId())).collect(Collectors.toList());
    }
    private void examPaperFromVM(ExamPaperEditRequestVM examPaperEditRequestVM, ExamPaper examPaper, List<ExamPaperTitleItemVM> titleItemsVM) {