Ver código fonte

代码调整

wangliang 11 meses atrás
pai
commit
2d3055dc6a

+ 22 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TRBasicInfoServiceImpl.java

@@ -41,7 +41,6 @@ import org.springframework.util.CollectionUtils;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.util.*;
-import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -683,7 +682,7 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             examStudent_cells_1.add(Cells.of("行政班级").center().create());
             examStudent_cells_2.addAll(examStudent_cells_1);
 
-            Map<Long, Integer> targetUsualScoreSizeMap = new LinkedHashMap<>();
+            Map<String, Integer> targetUsualScoreSizeMap = new LinkedHashMap<>();
             Map<Long, BigDecimal> targetCourseDegreeMap = new LinkedHashMap<>();
             TRExamStudent trExamStudentTemp = trExamStudentList.get(0);
 
@@ -703,9 +702,9 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             List<CourseTargetWebDto> courseTargetWebDtoList = reportCourseEvaluationResultDto.getTargetList();
             for (CourseTargetWebDto c : courseTargetWebDtoList) {
                 if (!CollectionUtils.isEmpty(c.getEvaluationList())) {
-                    targetUsualScoreSizeMap.put(c.getTargetId(), c.getEvaluationList().size() - 1);
+                    targetUsualScoreSizeMap.put(c.getTargetName(), c.getEvaluationList().size() - 1);
                 } else {
-                    targetUsualScoreSizeMap.put(c.getTargetId(), 0);
+                    targetUsualScoreSizeMap.put(c.getTargetName(), 0);
                 }
                 targetCourseDegreeMap.put(c.getTargetId(), c.getEvaluationValue());
             }
@@ -747,6 +746,14 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             }
 
             List<BigDecimal> scoreList = new ArrayList<>();
+            List<TRExamStudent> sortTrExamStudentList = new ArrayList<>();
+            sortTrExamStudentList.addAll(trExamStudentList.subList(trExamStudentList.size() - 2, trExamStudentList.size()));
+
+            Collections.reverse(sortTrExamStudentList);
+            trExamStudentList.remove(trExamStudentList.size() - 1);
+            trExamStudentList.remove(trExamStudentList.size() - 1);
+            trExamStudentList.addAll(sortTrExamStudentList);
+
             List<TRExamStudent> trExamStudentNewList = new ArrayList<>();
             trExamStudentNewList.addAll(trExamStudentList);
             trExamStudentNewList.remove(trExamStudentNewList.size() - 1);
@@ -859,16 +866,18 @@ public class TRBasicInfoServiceImpl extends ServiceImpl<TRBasicInfoMapper, TRBas
             mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, 0), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, 3)));
 
             //动态扩展列
-            AtomicInteger initNum = new AtomicInteger(4);
-            targetUsualScoreSizeMap.forEach((k, v) -> {
-                int increaseNum = 1;
-                while (increaseNum <= v) {
-                    mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, initNum.get()), MergeCellRule.Grid.of(0, initNum.get() + increaseNum)));
-                    mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 2, initNum.get()), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 2, initNum.get() + increaseNum)));
-                    increaseNum++;
+            List<CellRenderData> cellRenderDataList = examStudent_header_1.getCells();
+            for (int i = 0; i < cellRenderDataList.size(); i++) {
+                CellRenderData cellRenderData = cellRenderDataList.get(i);
+                String key = cellRenderData.getParagraphs().get(0).getContents().get(0).toString();
+                if (targetUsualScoreSizeMap.containsKey(key)) {
+                    Integer cellNum = targetUsualScoreSizeMap.get(key);
+                    if (cellNum.intValue() > 0) {
+                        mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, i), MergeCellRule.Grid.of(0, i + cellNum)));
+                        mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 2, i), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 2, i + cellNum)));
+                    }
                 }
-                initNum.set(initNum.get() + increaseNum);
-            });
+            }
             mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, 4), MergeCellRule.Grid.of(rowRenderDataExamStudent.length - 1, cellSize - 1)));
             mergeCellRuleExamStudent.getMapping().add(new MergeCellRule.GridRule(MergeCellRule.Grid.of(0, rowRenderDataExamStudent[rowRenderDataExamStudent.length - 1].getCells().size() - 1), MergeCellRule.Grid.of(1, rowRenderDataExamStudent[rowRenderDataExamStudent.length - 1].getCells().size() - 1)));