学习成绩算分

master
yz 4 months ago
parent 575e6fdffd
commit 8226bd9443

@ -122,6 +122,9 @@ public class StuKnowledgeNote {
TestSysKnowledgeSummary sysKnowledgeSummary = null; TestSysKnowledgeSummary sysKnowledgeSummary = null;
try { try {
sysKnowledgeSummary = KnowledgeSummaryApi.getSysKnowledgeSummary(courseId, chapterId, schoolId, systemOwner); sysKnowledgeSummary = KnowledgeSummaryApi.getSysKnowledgeSummary(courseId, chapterId, schoolId, systemOwner);
if(sysKnowledgeSummary==null){
return new ResultEntity<>(HttpStatus.OK, "无知识概要");
}
} catch (IOException e) { } catch (IOException e) {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "资源中心接口异常"); return new ResultEntity<>(HttpStatus.BAD_REQUEST, "资源中心接口异常");
} }

@ -9,6 +9,7 @@ import com.sztzjy.financial_bigdata.mapper.StuTrainingMapper;
import com.sztzjy.financial_bigdata.mapper.SysWeightMapper; import com.sztzjy.financial_bigdata.mapper.SysWeightMapper;
import com.sztzjy.financial_bigdata.mapper.TrainingReportMapper; import com.sztzjy.financial_bigdata.mapper.TrainingReportMapper;
import com.sztzjy.financial_bigdata.resourceCenterAPI.CourseAPI; import com.sztzjy.financial_bigdata.resourceCenterAPI.CourseAPI;
import com.sztzjy.financial_bigdata.service.tea.ITeaGradeManageService;
import com.sztzjy.financial_bigdata.util.ResultEntity; import com.sztzjy.financial_bigdata.util.ResultEntity;
import com.sztzjy.financial_bigdata.util.file.IFileUtil; import com.sztzjy.financial_bigdata.util.file.IFileUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -43,13 +44,16 @@ public class StuScoreController {
private SysWeightMapper sysWeightMapper; private SysWeightMapper sysWeightMapper;
@Autowired @Autowired
private StuTrainingMapper stuTrainingMapper; private StuTrainingMapper stuTrainingMapper;
@Autowired
ITeaGradeManageService gradeManageService;
@AnonymousAccess @AnonymousAccess
@ApiOperation("***得分情况展示") @ApiOperation("***得分情况展示")
@PostMapping("getScoreInfo") @PostMapping("getScoreInfo")
public ResultEntity<StuTrainingDto> getScoreInfo(@RequestParam String userId, public ResultEntity<StuTrainingDto> getScoreInfo(@RequestParam String userId,
@RequestParam String chapterId, @RequestParam String chapterId,
@RequestParam String schoolId) { @RequestParam String schoolId,
@RequestParam String systemOwner) {
StuTrainingExample stuTrainingExample = new StuTrainingExample(); StuTrainingExample stuTrainingExample = new StuTrainingExample();
stuTrainingExample.createCriteria().andUserIdEqualTo(userId).andChapterIdEqualTo(chapterId); stuTrainingExample.createCriteria().andUserIdEqualTo(userId).andChapterIdEqualTo(chapterId);
List<StuTrainingWithBLOBs> stuTrainings = stuTrainingMapper.selectByExampleWithBLOBs(stuTrainingExample); List<StuTrainingWithBLOBs> stuTrainings = stuTrainingMapper.selectByExampleWithBLOBs(stuTrainingExample);
@ -64,16 +68,80 @@ public class StuScoreController {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "资源中心根据章节ID查询章节信息失败"); return new ResultEntity<>(HttpStatus.BAD_REQUEST, "资源中心根据章节ID查询章节信息失败");
} }
SysWeightExample sysWeightExample = new SysWeightExample(); SysWeightExample sysWeightExample = new SysWeightExample();
sysWeightExample.createCriteria().andCourseIdEqualTo(sysCourseChapter.getTwoId()).andSchoolIdEqualTo(schoolId); sysWeightExample.createCriteria().andCourseIdEqualTo(sysCourseChapter.getTwoId()).andSchoolIdEqualTo(schoolId).andSystemOwnerEqualTo(systemOwner);
List<SysWeight> sysWeights = sysWeightMapper.selectByExample(sysWeightExample); List<SysWeight> sysWeights = sysWeightMapper.selectByExample(sysWeightExample);
if (!sysWeights.isEmpty()) { if (!sysWeights.isEmpty()) {
SysWeight sysWeight = sysWeights.get(0); SysWeight sysWeight = sysWeights.get(0);
BeanUtils.copyProperties(sysWeight, stuTrainingDto); //五个权重 BeanUtils.copyProperties(sysWeight, stuTrainingDto); //五个权重
}else {
//设置默认权重
stuTrainingDto.setKnowledgeSummaryDefaultRule(BigDecimal.valueOf(60)); //知识概要默认计分规则 阅读1分钟得60分,1分钟以下不得分多1分钟加10分。
stuTrainingDto.setResourceLearningDefaultRule(BigDecimal.valueOf(60)); //资源学习默认计分规则 观看资源1分钟得60分,1分钟以下不得分多1分钟加10分。
stuTrainingDto.setLearningEvalDefaultRule(BigDecimal.valueOf(10)); //学习测评默认计分规则 客观题10分每道
stuTrainingDto.setExpTrainingDefautRule(BigDecimal.valueOf(2));//实训题,输错/选错次数扣2分最低0分
stuTrainingDto.setKnowledgeSummaryWeight(BigDecimal.valueOf(5));
stuTrainingDto.setResourceLearningWeight(BigDecimal.valueOf(5));
stuTrainingDto.setLearningEvalWeight(BigDecimal.valueOf(20));
stuTrainingDto.setExpTrainingWeight(BigDecimal.valueOf(60));
stuTrainingDto.setReportWeight(BigDecimal.valueOf(10));
} }
if (!stuTrainings.isEmpty()) { if (!stuTrainings.isEmpty()) {
StuTrainingWithBLOBs stuTrainingWithBLOBs = stuTrainings.get(0); StuTrainingWithBLOBs stuTrainingWithBLOBs = stuTrainings.get(0);
BeanUtils.copyProperties(stuTrainingWithBLOBs, stuTrainingDto); //四个完成情况和四个得分 BeanUtils.copyProperties(stuTrainingWithBLOBs, stuTrainingDto); //四个完成情况和四个得分
//知识概要得分
Integer knowledgeSummaryCompleteStatus=0;
BigDecimal knowledgeSummaryScore=BigDecimal.ZERO;
if(stuTrainingWithBLOBs.getKnowledgeSummaryCompleteStatus()!=null && stuTrainingWithBLOBs.getKnowledgeSummaryCompleteStatus()!=0){
knowledgeSummaryCompleteStatus=stuTrainingWithBLOBs.getKnowledgeSummaryCompleteStatus();
knowledgeSummaryScore=stuTrainingDto.getKnowledgeSummaryDefaultRule().add(BigDecimal.valueOf((knowledgeSummaryCompleteStatus-1)*10));
if(knowledgeSummaryScore.compareTo(BigDecimal.valueOf(100))>0){
knowledgeSummaryScore= BigDecimal.valueOf(100);
}
knowledgeSummaryScore=knowledgeSummaryScore.multiply(stuTrainingDto.getKnowledgeSummaryWeight().divide(BigDecimal.valueOf(100),2,BigDecimal.ROUND_HALF_UP));
}
stuTrainingDto.setKnowledgeSummaryScore(knowledgeSummaryScore);
//资源学习得分
Integer resourceLearningCompleteStatus=0;
BigDecimal resourceLearningScore=BigDecimal.ZERO;
if(stuTrainingWithBLOBs.getResourceLearningCompleteStatus()!=null && stuTrainingWithBLOBs.getResourceLearningCompleteStatus()!=0){
resourceLearningCompleteStatus=stuTrainingWithBLOBs.getResourceLearningCompleteStatus();
resourceLearningScore=stuTrainingDto.getResourceLearningDefaultRule().add(BigDecimal.valueOf((resourceLearningCompleteStatus-1)*10));
if(resourceLearningScore.compareTo(BigDecimal.valueOf(100))>0){
resourceLearningScore= BigDecimal.valueOf(100);
}
resourceLearningScore=resourceLearningScore.multiply(stuTrainingDto.getResourceLearningWeight().divide(BigDecimal.valueOf(100),2,BigDecimal.ROUND_HALF_UP));
}
stuTrainingDto.setResourceLearningScore(resourceLearningScore);
//学习评测得分
Integer learningEvalCompleteStatus=0;
BigDecimal learningEvalScore=BigDecimal.ZERO;
if(stuTrainingWithBLOBs.getLearningEvalCompleteStatus()!=null){
learningEvalCompleteStatus=stuTrainingWithBLOBs.getLearningEvalCompleteStatus();
learningEvalScore = BigDecimal.valueOf(100).subtract(stuTrainingDto.getLearningEvalDefaultRule().multiply(BigDecimal.valueOf(learningEvalCompleteStatus)));
if(learningEvalScore.compareTo(BigDecimal.valueOf(0))<0){
learningEvalScore= BigDecimal.valueOf(0);
}
stuTrainingDto.setLearningEvalScore(learningEvalScore.multiply(stuTrainingDto.getLearningEvalWeight().divide(BigDecimal.valueOf(100),2,BigDecimal.ROUND_HALF_UP)));
}else {
stuTrainingDto.setLearningEvalScore(learningEvalScore);
}
//实验实训分数计算
Integer expTrainingCompleteStatus=0;
BigDecimal expTrainingScore=BigDecimal.ZERO;
if(stuTrainingWithBLOBs.getExpTrainingCompleteStatus()!=null){
expTrainingCompleteStatus=stuTrainingWithBLOBs.getExpTrainingCompleteStatus();
expTrainingScore = BigDecimal.valueOf(100).subtract(stuTrainingDto.getExpTrainingDefautRule().multiply(BigDecimal.valueOf(expTrainingCompleteStatus)));
if(expTrainingScore.compareTo(BigDecimal.valueOf(0))<0){
expTrainingScore= BigDecimal.valueOf(0);
}
stuTrainingDto.setCaseStuScore(expTrainingScore.multiply(stuTrainingDto.getExpTrainingWeight().divide(BigDecimal.valueOf(100),2,BigDecimal.ROUND_HALF_UP)));
}else {
stuTrainingDto.setCaseStuScore(expTrainingScore);
}
TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(stuTrainingWithBLOBs.getReportId()); TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(stuTrainingWithBLOBs.getReportId());
//设置报告相关数据 //设置报告相关数据
if (trainingReport == null || trainingReport.getTeacherScore() == null) { if (trainingReport == null || trainingReport.getTeacherScore() == null) {

@ -30,8 +30,12 @@ public class KnowledgeSummaryApi {
.registerTypeAdapter(Date.class, new DateTypeAdapter()) .registerTypeAdapter(Date.class, new DateTypeAdapter())
.create(); .create();
Type listType = new TypeToken<TestSysKnowledgeSummary>() {}.getType(); Type listType = new TypeToken<TestSysKnowledgeSummary>() {}.getType();
TestSysKnowledgeSummary knowledgeSummarie = gson.fromJson(object.get("respString").toString(), listType); try {
return knowledgeSummarie; TestSysKnowledgeSummary knowledgeSummarie = gson.fromJson(object.get("respString").toString(), listType);
return knowledgeSummarie;
}catch (Exception e){
return null;
}
} }
} }

@ -72,7 +72,7 @@ public class ExerciseServiceImpl implements IExerciseService {
}else { }else {
if(StringUtils.isBlank(bloBs.getLearningEvalAnswer())){ //判断是否提交过 未提交 if(StringUtils.isBlank(bloBs.getLearningEvalAnswer())){ //判断是否提交过 未提交
if(bloBs.getLearningEvalIdlist()==null){ if(bloBs.getLearningEvalIdlist()==null){
List<SysObjectiveQuestions> objectiveQuestionList = ObjectiveApi.selectObjectQuestionListByChapterId(chapterId); List<SysObjectiveQuestions> objectiveQuestionList = ObjectiveApi.selectRandomObjectiveByChapterId(chapterId);
for (int i = 0; i < objectiveQuestionList.size(); i++) { for (int i = 0; i < objectiveQuestionList.size(); i++) {
SysObjectiveQuestions objectiveQuestion = objectiveQuestionList.get(i); SysObjectiveQuestions objectiveQuestion = objectiveQuestionList.get(i);
String objectiveId = objectiveQuestion.getObjectiveId(); String objectiveId = objectiveQuestion.getObjectiveId();
@ -122,6 +122,8 @@ public class ExerciseServiceImpl implements IExerciseService {
// } // }
List<String> stuAnswerList = new ArrayList<>(); List<String> stuAnswerList = new ArrayList<>();
BigDecimal learning_eval_score= BigDecimal.valueOf(0); BigDecimal learning_eval_score= BigDecimal.valueOf(0);
//记录错题数
Integer errorCount= 0;
List<String> objectiveIds=new ArrayList<>(); List<String> objectiveIds=new ArrayList<>();
for (int i = 0; i < objectiveQuestionDtoList.size(); i++) { for (int i = 0; i < objectiveQuestionDtoList.size(); i++) {
SysObjectiveQuestionDto sysObjectiveQuestionDto = objectiveQuestionDtoList.get(i); SysObjectiveQuestionDto sysObjectiveQuestionDto = objectiveQuestionDtoList.get(i);
@ -132,13 +134,15 @@ public class ExerciseServiceImpl implements IExerciseService {
stuAnswerList.add(stuAnswer); stuAnswerList.add(stuAnswer);
if(answer.equals(stuAnswer)){ if(answer.equals(stuAnswer)){
learning_eval_score= learning_eval_score.add(objectiveQuestion.getScore()); learning_eval_score= learning_eval_score.add(objectiveQuestion.getScore());
}else {
errorCount++;
} }
objectiveIds.add(objectiveId); objectiveIds.add(objectiveId);
} }
StuTrainingWithBLOBs bloBs = stuTrainingWithBLOBs.get(0); StuTrainingWithBLOBs bloBs = stuTrainingWithBLOBs.get(0);
bloBs.setLearningEvalAnswer(String.valueOf(stuAnswerList)); bloBs.setLearningEvalAnswer(String.valueOf(stuAnswerList));
bloBs.setLearningEvalScore(learning_eval_score); bloBs.setLearningEvalScore(learning_eval_score);
bloBs.setLearningEvalCompleteStatus(1); bloBs.setLearningEvalCompleteStatus(errorCount);
BigDecimal progress = bloBs.getProgress(); BigDecimal progress = bloBs.getProgress();
bloBs.setLearningEvalIdlist(String.valueOf(objectiveIds)); bloBs.setLearningEvalIdlist(String.valueOf(objectiveIds));
if(progress==null){ if(progress==null){

Loading…
Cancel
Save