From 5016dc772bcb3fdba9ce6d255a5674f1a7160964 Mon Sep 17 00:00:00 2001 From: 龚焕茏 <2842157468@qq.com> Date: 星期一, 22 七月 2024 11:58:23 +0800 Subject: [PATCH] fix:成绩统计导出完善 --- src/main/java/com/mindskip/xzs/service/DepartmentService.java | 2 ++ src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java | 5 +++++ src/main/java/com/mindskip/xzs/domain/vo/PaperExcelVO.java | 3 +++ src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java | 7 ++++++- src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java | 2 +- src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java | 19 +++++++------------ 6 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java b/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java index cd5e1cf..b355128 100644 --- a/src/main/java/com/mindskip/xzs/controller/admin/ExamPaperAnswerController.java +++ b/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锛屼竴涓崟浣嶄竴涓猻heet 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(); diff --git a/src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java b/src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java index 6f77457..698a2c0 100644 --- a/src/main/java/com/mindskip/xzs/domain/vo/ExamPaperDataExportVO.java +++ b/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; } diff --git a/src/main/java/com/mindskip/xzs/domain/vo/PaperExcelVO.java b/src/main/java/com/mindskip/xzs/domain/vo/PaperExcelVO.java index 99c06aa..6891049 100644 --- a/src/main/java/com/mindskip/xzs/domain/vo/PaperExcelVO.java +++ b/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 diff --git a/src/main/java/com/mindskip/xzs/service/DepartmentService.java b/src/main/java/com/mindskip/xzs/service/DepartmentService.java index 5da9ddc..0896ade 100644 --- a/src/main/java/com/mindskip/xzs/service/DepartmentService.java +++ b/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); diff --git a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java index 0389eab..10c358e 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/DepartmentServiceImpl.java +++ b/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); } diff --git a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java b/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java index bda4cdf..4d74e62 100644 --- a/src/main/java/com/mindskip/xzs/service/impl/ExamPaperServiceImpl.java +++ b/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) { -- Gitblit v1.8.0