|
|
|
@ -9,6 +9,7 @@ import com.sztzjy.financial_bigdata.mapper.StuTrainingMapper;
|
|
|
|
|
import com.sztzjy.financial_bigdata.mapper.SysWeightMapper;
|
|
|
|
|
import com.sztzjy.financial_bigdata.mapper.TrainingReportMapper;
|
|
|
|
|
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.file.IFileUtil;
|
|
|
|
|
import io.swagger.annotations.Api;
|
|
|
|
@ -43,13 +44,16 @@ public class StuScoreController {
|
|
|
|
|
private SysWeightMapper sysWeightMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
private StuTrainingMapper stuTrainingMapper;
|
|
|
|
|
@Autowired
|
|
|
|
|
ITeaGradeManageService gradeManageService;
|
|
|
|
|
|
|
|
|
|
@AnonymousAccess
|
|
|
|
|
@ApiOperation("***得分情况展示")
|
|
|
|
|
@PostMapping("getScoreInfo")
|
|
|
|
|
public ResultEntity<StuTrainingDto> getScoreInfo(@RequestParam String userId,
|
|
|
|
|
@RequestParam String chapterId,
|
|
|
|
|
@RequestParam String schoolId) {
|
|
|
|
|
@RequestParam String schoolId,
|
|
|
|
|
@RequestParam String systemOwner) {
|
|
|
|
|
StuTrainingExample stuTrainingExample = new StuTrainingExample();
|
|
|
|
|
stuTrainingExample.createCriteria().andUserIdEqualTo(userId).andChapterIdEqualTo(chapterId);
|
|
|
|
|
List<StuTrainingWithBLOBs> stuTrainings = stuTrainingMapper.selectByExampleWithBLOBs(stuTrainingExample);
|
|
|
|
@ -64,16 +68,80 @@ public class StuScoreController {
|
|
|
|
|
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "资源中心根据章节ID查询章节信息失败");
|
|
|
|
|
}
|
|
|
|
|
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);
|
|
|
|
|
if (!sysWeights.isEmpty()) {
|
|
|
|
|
SysWeight sysWeight = sysWeights.get(0);
|
|
|
|
|
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()) {
|
|
|
|
|
StuTrainingWithBLOBs stuTrainingWithBLOBs = stuTrainings.get(0);
|
|
|
|
|
|
|
|
|
|
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());
|
|
|
|
|
//设置报告相关数据
|
|
|
|
|
if (trainingReport == null || trainingReport.getTeacherScore() == null) {
|
|
|
|
|