|
|
@@ -2,7 +2,6 @@ package com.seecoder.dataanalysis.analysis.impl;
|
|
|
|
|
|
import cn.seecoder.bok.common.vo.QuestionVO;
|
|
|
import com.seecoder.dataanalysis.analysis.EvalDataAnalysisService;
|
|
|
-import com.seecoder.dataanalysis.controller.EvalController;
|
|
|
import com.seecoder.dataanalysis.data.dao.competency.CompetencyTreeDao;
|
|
|
import com.seecoder.dataanalysis.data.dao.eval.EvalExamInfoDao;
|
|
|
import com.seecoder.dataanalysis.data.dao.eval.EvalExamRecordDao;
|
|
|
@@ -63,34 +62,34 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
modelTree.setUserId(userId);
|
|
|
modelTree.setTreeScore(competencyTree.getTreeScore());
|
|
|
|
|
|
- List<KSDScore> modelKSD = modelTree.getSubCompetencyTree();
|
|
|
- List<KSDScore> tarKSD = competencyTree.getSubCompetencyTree();
|
|
|
+ List<KSDScore> modelKSD = modelTree.getTableData();
|
|
|
+ List<KSDScore> tarKSD = competencyTree.getTableData();
|
|
|
|
|
|
dfsInit(tarKSD,modelKSD);
|
|
|
|
|
|
- modelTree.setSubCompetencyTree(modelKSD);
|
|
|
+ modelTree.setTableData(modelKSD);
|
|
|
|
|
|
return modelTree;
|
|
|
}
|
|
|
|
|
|
void dfsInit(List<KSDScore> tarKSD,List<KSDScore> modelKSD){
|
|
|
for(KSDScore ksdScore :tarKSD){
|
|
|
- String tarCom1 = ksdScore.getCompetency();
|
|
|
+ String tarCom1 = ksdScore.getName();
|
|
|
//寻找在modelTree中对应的部分
|
|
|
for(KSDScore ksdModel : modelKSD){
|
|
|
- if(ksdModel.getCompetency().equals(tarCom1)){
|
|
|
+ if(ksdModel.getName().equals(tarCom1)){
|
|
|
//修改总分数
|
|
|
- ksdModel.setTotalScore(ksdScore.getTotalScore());
|
|
|
+ ksdModel.setScore(ksdScore.getScore());
|
|
|
//修改skills分数
|
|
|
- List<Double> after = ksdModel.getSkillsAndScores();
|
|
|
- for(int i=0;i<ksdScore.getSkillsAndScores().size();i++){
|
|
|
- after.set(i,ksdScore.getSkillsAndScores().get(i));
|
|
|
+ List<Double> after = ksdModel.getSkills();
|
|
|
+ for(int i = 0; i<ksdScore.getSkills().size(); i++){
|
|
|
+ after.set(i,ksdScore.getSkills().get(i));
|
|
|
}
|
|
|
- ksdModel.setSkillsAndScores(after);
|
|
|
+ ksdModel.setSkills(after);
|
|
|
//修改Disposition分数
|
|
|
- if(ksdModel.getDScore()!=null && ksdModel.getDScore().size()>0){
|
|
|
- for(DScore dScore :ksdScore.getDScore()){
|
|
|
- for(DScore dModel : ksdModel.getDScore()){
|
|
|
+ if(ksdModel.getDisposition()!=null && ksdModel.getDisposition().size()>0){
|
|
|
+ for(DScore dScore :ksdScore.getDisposition()){
|
|
|
+ for(DScore dModel : ksdModel.getDisposition()){
|
|
|
if(dScore.getName().equals(dModel.getName())){
|
|
|
dModel.setScore(dScore.getScore());
|
|
|
break;
|
|
|
@@ -136,7 +135,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
}
|
|
|
|
|
|
//数据取完,开始进行KSD分析和入库
|
|
|
- List<KSDScore> subTree = competencyTree.getSubCompetencyTree();
|
|
|
+ List<KSDScore> subTree = competencyTree.getTableData();
|
|
|
//难度由1-5,分别对应1.0, 1.25, 1.5, 1.75, 2.0的得分系数
|
|
|
Integer difficulty = evalExamInfo.getDifficulty();
|
|
|
String disposition = evalExamInfo.getDisposition();
|
|
|
@@ -165,7 +164,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
if(coms.length > 1){
|
|
|
String com2 = coms[1];
|
|
|
for(;index1<subTree.size();index1++){
|
|
|
- if(subTree.get(index1).getCompetency().equals(com1)){
|
|
|
+ if(subTree.get(index1).getName().equals(com1)){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -178,7 +177,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
int index2 = 0;
|
|
|
for(;index2<subTree.get(index1).getChildren().size();index2++){
|
|
|
// System.out.println(subTree.get(index1).getChildren().get(index2).getCompetency());
|
|
|
- if(subTree.get(index1).getChildren().get(index2).getCompetency().split("\\.")[1].equals(com2)){
|
|
|
+ if(subTree.get(index1).getChildren().get(index2).getName().split("\\.")[1].equals(com2)){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -190,7 +189,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
|
|
|
//处理完考试中的每个问题后,更新能力树
|
|
|
competencyTree.setTreeScore(tree_Score);
|
|
|
- competencyTree.setSubCompetencyTree(subTree);
|
|
|
+ competencyTree.setTableData(subTree);
|
|
|
competencyTreeDao.save(competencyTree);
|
|
|
|
|
|
return competencyTree;
|
|
|
@@ -223,7 +222,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
}
|
|
|
|
|
|
//数据取完,开始进行KSD分析和入库
|
|
|
- List<KSDScore> subTree = competencyTree.getSubCompetencyTree();
|
|
|
+ List<KSDScore> subTree = competencyTree.getTableData();
|
|
|
//难度由1-5,分别对应1.0, 1.25, 1.5, 1.75, 2.0的得分系数
|
|
|
Integer difficulty = evalExamInfo.getDifficulty();
|
|
|
String disposition = evalExamInfo.getDisposition();
|
|
|
@@ -258,7 +257,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
if(coms.length > 1){
|
|
|
String com2 = coms[1];
|
|
|
for(;index1<subTree.size();index1++){
|
|
|
- if(subTree.get(index1).getCompetency().equals(com1)){
|
|
|
+ if(subTree.get(index1).getName().equals(com1)){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -269,7 +268,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
String com3 = coms[2];
|
|
|
int index2 = 0;
|
|
|
for(;index2<subTree.get(index1).getChildren().size();index2++){
|
|
|
- if(subTree.get(index1).getChildren().get(index2).getCompetency().split("\\.")[1].equals(com2)){
|
|
|
+ if(subTree.get(index1).getChildren().get(index2).getName().split("\\.")[1].equals(com2)){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
@@ -281,7 +280,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
|
|
|
//处理完考试中的每个问题后,更新能力树
|
|
|
competencyTree.setTreeScore(tree_Score);
|
|
|
- competencyTree.setSubCompetencyTree(subTree);
|
|
|
+ competencyTree.setTableData(subTree);
|
|
|
competencyTreeDao.save(competencyTree);
|
|
|
|
|
|
return competencyTree;
|
|
|
@@ -293,7 +292,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
KSDScore changeKSD = new KSDScore();
|
|
|
for (KSDScore ksdScore : sub) {
|
|
|
// System.out.println(ksdScore.getCompetency());
|
|
|
- if (ksdScore.getCompetency().equals(pre+com)) {
|
|
|
+ if (ksdScore.getName().equals(pre+com)) {
|
|
|
existCom = true;
|
|
|
changeKSD = ksdScore;
|
|
|
break;
|
|
|
@@ -305,25 +304,25 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
List<Double> addS = Arrays.asList(ds);
|
|
|
List<KSDScore> addChild = new ArrayList<>();
|
|
|
|
|
|
- changeKSD.setCompetency(pre+com);
|
|
|
- changeKSD.setTotalScore(0.0);
|
|
|
- changeKSD.setSkillsAndScores(addS);
|
|
|
- changeKSD.setDScore(addD);
|
|
|
+ changeKSD.setName(pre+com);
|
|
|
+ changeKSD.setScore(0.0);
|
|
|
+ changeKSD.setSkills(addS);
|
|
|
+ changeKSD.setDisposition(addD);
|
|
|
changeKSD.setChildren(addChild);
|
|
|
}
|
|
|
- Double totalScore = changeKSD.getTotalScore();
|
|
|
+ Double totalScore = changeKSD.getScore();
|
|
|
totalScore += addScore;
|
|
|
- changeKSD.setTotalScore(totalScore);
|
|
|
+ changeKSD.setScore(totalScore);
|
|
|
//增加Skills
|
|
|
- List<Double> skillsAndScore = changeKSD.getSkillsAndScores();
|
|
|
+ List<Double> skillsAndScore = changeKSD.getSkills();
|
|
|
Double skillScore = skillsAndScore.get(weight-1);
|
|
|
skillScore += addScore;
|
|
|
skillsAndScore.set(weight-1,skillScore);
|
|
|
- changeKSD.setSkillsAndScores(skillsAndScore);
|
|
|
+ changeKSD.setSkills(skillsAndScore);
|
|
|
//增加Disposition
|
|
|
if(disposition != null){
|
|
|
boolean existD = false;
|
|
|
- List<DScore> subD = changeKSD.getDScore();
|
|
|
+ List<DScore> subD = changeKSD.getDisposition();
|
|
|
DScore changeD = new DScore();
|
|
|
for (DScore dScore : subD) {
|
|
|
if (dScore.getName().equals(disposition)) {
|
|
|
@@ -342,7 +341,7 @@ public class EvalDataAnalysisServiceImpl implements EvalDataAnalysisService {
|
|
|
if (!existD) {
|
|
|
subD.add(changeD);
|
|
|
}
|
|
|
- changeKSD.setDScore(subD);
|
|
|
+ changeKSD.setDisposition(subD);
|
|
|
}else {
|
|
|
System.out.println("disposition信息不存在");
|
|
|
}
|