Ver Fonte

日常更新

wangliang há 4 anos atrás
pai
commit
3ce9339c4d

+ 13 - 1
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/QuestionResult.java

@@ -23,14 +23,26 @@ public class QuestionResult implements Serializable {
     @ApiModelProperty(value = "dimensionList")
     private List<DimensionInfoResult> dimensionList;
 
+    @ApiModelProperty(value = "abilityDimensionList")
+    private List<DimensionInfoResult> abilityDimensionList;
+
     public QuestionResult() {
 
     }
 
-    public QuestionResult(String paperType, List<TBPaperStructResult> cellList, List<DimensionInfoResult> dimensionList) {
+    public QuestionResult(String paperType, List<TBPaperStructResult> cellList, List<DimensionInfoResult> dimensionList, List<DimensionInfoResult> abilityDimensionList) {
         this.paperType = paperType;
         this.cellList = cellList;
         this.dimensionList = dimensionList;
+        this.abilityDimensionList = abilityDimensionList;
+    }
+
+    public List<DimensionInfoResult> getAbilityDimensionList() {
+        return abilityDimensionList;
+    }
+
+    public void setAbilityDimensionList(List<DimensionInfoResult> abilityDimensionList) {
+        this.abilityDimensionList = abilityDimensionList;
     }
 
     public String getPaperType() {

+ 28 - 3
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/ReportCommonServiceImpl.java

@@ -430,13 +430,20 @@ public class ReportCommonServiceImpl implements ReportCommonService {
                 cell.setPaperType(null);
             }
 
-            Set<String> knowledgeDimensionSet = new HashSet<>();
+            Set<String> knowledgeDimensionSet = new HashSet<>(), abilityDimensionSet = new HashSet<>();
             for (TBPaperStructResult cell : cellList) {
                 String knowledgeDimension = cell.getKnowledgeDimension();
                 String[] arr = knowledgeDimension.split(",");
                 knowledgeDimensionSet.addAll(Arrays.asList(arr));
+
+                if (Objects.nonNull(cell.getAbilityDimension())) {
+                    String abilityDimension = cell.getAbilityDimension();
+                    String[] arrAbilityDimension = abilityDimension.split(",");
+                    abilityDimensionSet.addAll(Arrays.asList(arrAbilityDimension));
+                }
             }
             List<String> knowledgeDimensionSort = MathUtil.sortDimension(new ArrayList<>(knowledgeDimensionSet)); // 经过特殊排序的知识点集合
+            List<String> abilityDimensionSort = MathUtil.sortDimension(new ArrayList<>(abilityDimensionSet)); // 经过特殊排序的知识点集合
 
             List<DimensionInfoResult> dimensionList = new ArrayList<>();
             for (String dimensionCode : knowledgeDimensionSort) {
@@ -455,11 +462,29 @@ public class ReportCommonServiceImpl implements ReportCommonService {
                 } else {
                     dimensionName = nameTwoList.get(0);
                 }
-
                 dimensionList.add(new DimensionInfoResult(dimensionCode, dimensionName));
             }
-            questionList.add(new QuestionResult(paperType, cellList, dimensionList));
 
+            List<DimensionInfoResult> abilityDimensionList = new ArrayList<>();
+            for (String dimensionCode : abilityDimensionSort) {
+                String dimensionName = "";
+                List<String> nameTwoList = dimensionDataSource.stream()
+                        .filter(e -> dimensionCode.equals(e.getCodeSecond()))
+                        .map(e -> e.getNameSecond()).collect(Collectors.toList());
+                if (nameTwoList.size() < 1) {
+                    List<String> tmpList = dimensionDataSource.stream()
+                            .filter(e -> dimensionCode.equals(e.getCodePrimary()))
+                            .map(e -> e.getNamePrimary()).collect(Collectors.toList());
+                    if (tmpList.size() == 0) {
+                        continue;
+                    }
+                    dimensionName = tmpList.get(0);
+                } else {
+                    dimensionName = nameTwoList.get(0);
+                }
+                abilityDimensionList.add(new DimensionInfoResult(dimensionCode, dimensionName));
+            }
+            questionList.add(new QuestionResult(paperType, cellList, dimensionList, abilityDimensionList));
         }
         return new QuestionListResult(questionList);
     }