浏览代码

班级成绩查看导出

dzx 10 月之前
父节点
当前提交
5330a7934c

+ 1 - 1
src/main/java/com/xjrsoft/module/schedule/controller/ScheduleController.java

@@ -161,7 +161,7 @@ public class ScheduleController {
     public RT<Integer> currentWeek(CourseTableDto dto){
         BaseSemester baseSemester = semesterService.getCurrentSemester();
         if(baseSemester == null){
-            return RT.error("未能查询到当前周次");
+            return RT.ok();
         }
         LocalDateTime now = LocalDateTime.now();
         if(dto.getScheduleDate() != null){

+ 52 - 9
src/main/java/com/xjrsoft/module/xycxedu/service/impl/ExamSubjectScoreServiceImpl.java

@@ -195,8 +195,8 @@ public class ExamSubjectScoreServiceImpl extends MPJBaseServiceImpl<ExamSubjectS
         createTitle(workbook, sheet, titleList);
 
         //查询数据
-        dto.setSize(1);
-        dto.setLimit(1000);
+        dto.setSize(1000);
+        dto.setLimit(1);
         PageOutput<ClassStudentScorePageVo> studentScorePage = this.getClassStudentScorePage(dto);
         List<ClassStudentScorePageVo> list = studentScorePage.getList();
 
@@ -229,14 +229,19 @@ public class ExamSubjectScoreServiceImpl extends MPJBaseServiceImpl<ExamSubjectS
                 rowData.add(bd.toPlainString());
             }
 
-            Map<String, String> scoreMap = scoreList.stream().collect(Collectors.toMap(ClassStudentScoreTitleVo::getCourseId, ClassStudentScoreTitleVo::getScore));
+            Map<String, String> scoreMap = scoreList.stream().filter(x -> StrUtil.isNotEmpty(x.getScore())).collect(Collectors.toMap(ClassStudentScoreTitleVo::getCourseId, ClassStudentScoreTitleVo::getScore));
 
             for (ClassStudentScoreTitleVo scoreTitleVo : titleList) {
-                BigDecimal scorebd = new BigDecimal(scoreMap.get(scoreTitleVo.getCourseId()));
+                String score = scoreMap.get(scoreTitleVo.getCourseId());
+                if(StrUtil.isEmpty(score)){
+                    rowData.add("");
+                    continue;
+                }
+                BigDecimal scorebd = new BigDecimal(score);
                 if (scorebd.scale() <= 0) { // 如果是整数
-                    rowData.add(bd.toBigInteger().toString());
+                    rowData.add(scorebd.toBigInteger().toString());
                 } else {
-                    rowData.add(bd.toPlainString());
+                    rowData.add(scorebd.toPlainString());
                 }
             }
             excelDataList.add(rowData);
@@ -264,9 +269,47 @@ public class ExamSubjectScoreServiceImpl extends MPJBaseServiceImpl<ExamSubjectS
         cellStyle.setAlignment(HorizontalAlignment.CENTER);
 
         Row row = sheet.createRow(rowNumber);
-        for(int cellNumber = 0; cellNumber < titleList.size(); cellNumber ++){
-            ClassStudentScoreTitleVo titleVo = titleList.get(cellNumber);
-            Cell cell = row.createCell(cellNumber);
+
+        int cellNumber = 0;
+        Cell cell = row.createCell(cellNumber);
+        cell.setCellValue("序号");
+        cell.setCellStyle(cellStyle);
+
+        cellNumber ++;
+        cell = row.createCell(cellNumber);
+        cell.setCellValue("班级");
+        cell.setCellStyle(cellStyle);
+
+        cellNumber ++;
+        cell = row.createCell(cellNumber);
+        cell.setCellValue("性别");
+        cell.setCellStyle(cellStyle);
+
+        cellNumber ++;
+        cell = row.createCell(cellNumber);
+        cell.setCellValue("身份证号");
+        cell.setCellStyle(cellStyle);
+
+        cellNumber ++;
+        cell = row.createCell(cellNumber);
+        cell.setCellValue("手机号");
+        cell.setCellStyle(cellStyle);
+
+        cellNumber ++;
+        cell = row.createCell(cellNumber);
+        cell.setCellValue("班主任");
+        cell.setCellStyle(cellStyle);
+
+        cellNumber ++;
+        cell = row.createCell(cellNumber);
+        cell.setCellValue("总分");
+        cell.setCellStyle(cellStyle);
+
+
+        cellNumber ++;
+        for(int i = 0; i < titleList.size(); i ++){
+            ClassStudentScoreTitleVo titleVo = titleList.get(i);
+            cell = row.createCell(cellNumber + i);
             cell.setCellValue(titleVo.getName());
             cell.setCellStyle(cellStyle);
             sheet.setColumnWidth(cellNumber, 5 * 3 * 256);