| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- 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<KSDScore> 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<String> comName = competencies.getCompetency();
- List<String[]> subComName = competencies.getSub_competency();
- List<String> disName = competencies.getDispositions();
- this.userId = -1;
- this.treeScore = 0.0;
- // competencyTree.setUserId(-1);
- // competencyTree.setTreeScore(0.0);
- List<KSDScore> ksdScoreList = new ArrayList<>();
- //为每个大分支新建KSDScore
- for(int i=0;i<comName.size();i++){
- KSDScore ksdScore = new KSDScore();
- String com = comName.get(i);
- String[] subs = subComName.get(i);
- ksdScore.setCompetency(com);
- ksdScore.setTotalScore(0.0);
- List<KSScore> ksScoreList = new ArrayList<>();
- //为每个小分支新建KSScore
- for(int j=0;j<subs.length;j++){
- KSScore ksScore = new KSScore();
- String sub = subs[j];
- ksScore.setKnowledge(sub);
- Double[] doubles = new Double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
- ksScore.setSkillsAndScore(Arrays.asList(doubles));
- ksScoreList.add(ksScore);
- }
- //为每个大分支新建DScore
- List<DScore> dScoreList = new ArrayList<>();
- for(int j=0;j<disName.size();j++){
- DScore dScore = new DScore();
- dScore.setName(disName.get(j));
- dScore.setScore(0.0);
- dScoreList.add(dScore);
- }
- ksdScore.setKSScore(ksScoreList);
- ksdScore.setDScore(dScoreList);
- ksdScoreList.add(ksdScore);
- }
- // competencyTree.setSubCompetencyTree(ksdScoreList);
- this.subCompetencyTree = ksdScoreList;
- }
- public void display(){
- System.out.println(this.userId);
- System.out.println(this.treeScore);
- for(KSDScore ksdScore : this.subCompetencyTree){
- System.out.println(ksdScore.getCompetency());
- System.out.println(ksdScore.getTotalScore());
- for(KSScore ksScore : ksdScore.getKSScore()){
- System.out.print(ksScore.getKnowledge()+" ");
- }
- System.out.println();
- for(DScore dScore : ksdScore.getDScore()){
- System.out.print(dScore.getName()+" ");
- System.out.println(dScore.getScore());
- }
- }
- }
- }
|