修改算分接口

master
xiaoCJ 2 years ago
parent bdcc8aab2c
commit 9eae6adbec

@ -200,8 +200,8 @@ public class TrainingScoreController {
// 老师端报告提交页面查询
@GetMapping("/teacherGetReport")
public PageInfo<ReportDto> getReport(@RequestParam Integer index, @RequestParam Integer size,
@RequestParam(required = false) Double operatorWeight,
@RequestParam(required = false) Double reportWeight,
@RequestParam Double operatorWeight,
@RequestParam Double reportWeight,
@RequestParam(required = false) String keyWord,
@RequestParam(required = false) String stuClass) {
return trainingScoreService.teacherGetReport(index, size, reportWeight, operatorWeight, keyWord, stuClass);

@ -34,10 +34,11 @@ public class ReportDto {
"stuClass='" + stuClass + '\'' +
", stuNumber='" + stuNumber + '\'' +
", name='" + name + '\'' +
", reportSubmissionScore=" + trainingReportScore +
", trainingReportScore=" + trainingReportScore +
", trainingOperationScore=" + trainingOperationScore +
", scoreTotal=" + scoreTotal +
", fileName='" + fileName + '\'' +
", userId=" + userId +
'}';
}
@ -65,10 +66,6 @@ public class ReportDto {
this.name = name;
}
public Double getReportSubmissionScore() {
return trainingReportScore;
}
public Double getTrainingReportScore() {
return trainingReportScore;
}
@ -77,14 +74,13 @@ public class ReportDto {
this.trainingReportScore = trainingReportScore;
}
public void setTrainingOperationScore(Double trainingOperationScore) {
this.trainingOperationScore = trainingOperationScore;
}
public Double getTrainingOperationScore() {
return trainingOperationScore;
}
public void setTrainingOperationScore(Double trainingOperationScore) {
this.trainingOperationScore = trainingOperationScore;
}
public Double getScoreTotal() {
return scoreTotal;

@ -23,6 +23,7 @@ import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.text.DecimalFormat;
import java.util.*;
@Service
@ -149,13 +150,9 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
if (sysTrainingScore.getTotalscore() != null &&
sysTrainingScore.getTrainingReportScore() != null &&
sysTrainingScore.getTrainingOperationScore() != null) {
if (reportWeight==null){
reportWeight=0.1;
}if (operatorWeight==null){
operatorWeight=0.9;
}
double reportScore = (sysTrainingScore.getTrainingReportScore().doubleValue() )* reportWeight;
double reportScore = (sysTrainingScore.getTrainingReportScore().doubleValue()) * reportWeight;
double operatorScore = (sysTrainingScore.getTrainingOperationScore().doubleValue()) * operatorWeight;
double totalScore = reportScore + operatorScore;
// 使用数据库中的分数创建ReportDto
ReportDto reportDto = new ReportDto(
user.getStuClass(),
@ -163,7 +160,7 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
user.getUserName(),
reportScore,
operatorScore,
sysTrainingScore.getTotalscore(),
totalScore,
sysTrainingScore.getReportFilename()
);
reportDto.setUserId(user.getUserId());
@ -189,13 +186,9 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
if (sysTrainingScore.getTotalscore() != null &&
sysTrainingScore.getTrainingReportScore() != null &&
sysTrainingScore.getTrainingOperationScore() != null) {
if (reportWeight==null){
reportWeight=0.1;
}if (operatorWeight==null){
operatorWeight=0.9;
}
double reportScore = (sysTrainingScore.getTrainingReportScore().doubleValue() )* reportWeight;
double reportScore = (sysTrainingScore.getTrainingReportScore().doubleValue()) * reportWeight;
double operatorScore = (sysTrainingScore.getTrainingOperationScore().doubleValue()) * operatorWeight;
double totalScore = reportScore + operatorScore;
// 使用数据库中的分数创建ReportDto
ReportDto reportDto = new ReportDto(
sysUser.getStuClass(),
@ -203,7 +196,7 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
sysUser.getUserName(),
reportScore,
operatorScore,
sysTrainingScore.getTotalscore(),
totalScore,
sysTrainingScore.getReportFilename()
);
reportDto.setUserId(sysUser.getUserId());
@ -215,7 +208,7 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
}
}
}
PageInfo<ReportDto> pageInfo= new PageInfo<>(reportDtoList);
PageInfo<ReportDto> pageInfo = new PageInfo<>(reportDtoList);
pageInfo.setTotal(total);
return pageInfo;
}
@ -229,6 +222,7 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
// 算分
private ReportDto createReportDto(SysTrainingScore sysTrainingScore, SysUser user, Double reportWeight, Double operatorWeight) {
DecimalFormat df = new DecimalFormat("#.##"); // 指定保留两位小数
ReportDto reportDto = new ReportDto();
reportDto.setFileName(sysTrainingScore.getReportFilename());
Integer reportScore = sysTrainingScore.getTrainingReportScore(); // 报告成绩
@ -258,6 +252,9 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
if (reportScore != null && trainingOperationScore != null) {
Double resultReportScore = reportScore * reportWeight; //报告成绩 加权重后
Double resultOperationScore = trainingOperationScore * operatorWeight; //操作成绩 加权重后
resultReportScore = Double.valueOf(df.format(resultReportScore)); // 格式化结果
resultOperationScore = Double.valueOf(df.format(resultOperationScore));
Double totalScore = resultReportScore + resultOperationScore; //总成绩
reportDto.setTrainingReportScore(resultReportScore);
@ -272,12 +269,16 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
return reportDto;
} //当两个成绩有一个时,也需要查询返回已有的 (不能算权重) 只有一个时不计算权重 否则查询一次就会算一次哦
else if (reportScore != null) { // 当只有报告成绩可用时
reportDto.setTrainingReportScore(reportScore.doubleValue() * reportWeight);
double resultReportScore = reportScore.doubleValue() * reportWeight;
resultReportScore = Double.parseDouble(df.format(resultReportScore));
reportDto.setTrainingReportScore(resultReportScore);
sysTrainingScore.setPreTrainingReportScore(reportScore);
trainingScoreMapper.updateByPrimaryKeySelective(sysTrainingScore);
return reportDto;
} else if (trainingOperationScore != null) { // 当只有操作成绩可用时
reportDto.setTrainingOperationScore(trainingOperationScore.doubleValue() * operatorWeight);
double resultOperationScore = trainingOperationScore.doubleValue() * operatorWeight;
resultOperationScore = Double.parseDouble(df.format(resultOperationScore));
reportDto.setTrainingOperationScore(resultOperationScore);
trainingScoreMapper.updateByPrimaryKeySelective(sysTrainingScore);
return reportDto;
} else {

Loading…
Cancel
Save