package com.seecoder.dataanalysis.data.entity.competency; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; 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.List; @Document(collection = "competency_tree") @AllArgsConstructor @Accessors(chain = true) @Data public class CompetencyTree { /** * 学生ID,一个学生只能有一棵能力树 **/ @Id @Field("user_id") private Integer userId; /** * 能力树的总分 */ @Field("tree_score") private Double treeScore; /** * 一级子能力树 **/ @Field("sub_competency_tree") private List subCompetencyTree; public CompetencyTree(){ this.subCompetencyTree = new ArrayList<>(); } public CompetencyTree(Integer userId){ this.userId = userId; this.subCompetencyTree = new ArrayList<>(); } /** * 生成初始化好的能力树,用于可视化结果返回 * @return CompetencyTree 初始化好的能力树 */ public CompetencyTree(Competencies competencies){ CompetencyTree competencyTree = new CompetencyTree(); List comName = competencies.getCompetency(); List subComName = competencies.getSub_competency(); List disName = competencies.getDispositions(); this.userId = -1; this.treeScore = 0.0; // competencyTree.setUserId(-1); // competencyTree.setTreeScore(0.0); List ksdScoreList = new ArrayList<>(); //为每个大分支新建KSDScore for(int i=0;i ksScoreList = new ArrayList<>(); //为每个小分支新建KSScore for(int j=0;j dScoreList = new ArrayList<>(); for(int j=0;j