package com.seecoder.dataanalysis.data.entity.eval; import com.seecoder.dataanalysis.data.entity.competency.KSScore; import com.seecoder.dataanalysis.vo.question.CompleteQuestionVO; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import org.jetbrains.annotations.NotNull; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Field; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; /** * @author Peng Yiyan */ @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) @Data public class Question { /** * 题目id */ private String questionId; // /** // * 题目总分值 // */ // private Double questionScore; /** * 题目难度,用于Skills */ private Integer weight; /** * 题目考察的能力,可能考察多种不同能力,所以用list存储 */ private List competencies; // /** // * 题目考察的K-S对,和competencies中的下标一一对应 // */ // private List ksScores; /** * 解析CompleteQuestionVO的内容,并放入Question中 * @param completeQuestionVO */ public Question(CompleteQuestionVO completeQuestionVO){ this.setQuestionId(completeQuestionVO.getId()); this.setWeight(completeQuestionVO.getWeight()); List knowledgeList = completeQuestionVO.getKnowledgeId(); // String[] testArray = new String[]{"SR.RV.RT","SR.RV","SR.RC.INRP","SC","SC.RT","SR","SSR"}; // List knowledgeList = Arrays.asList(testArray); // Collections.sort(knowledgeList,(a,b) -> b.split(".").length - a.split(".").length); Collections.sort(knowledgeList,(a,b) -> countPoint(b) - countPoint(a)); // for(String str : knowledgeList) // System.out.println(str); //处理重复知识点后的结果数组 List after = new ArrayList<>(); after.add(knowledgeList.get(0)); int index = 1; for(;index