diff --git a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java index ac03c43..1981e31 100644 --- a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java +++ b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java @@ -200,8 +200,8 @@ public class TrainingScoreController { // 老师端报告提交页面查询 @GetMapping("/teacherGetReport") public PageInfo 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); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ReportDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ReportDto.java index 305b92c..975f68f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ReportDto.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/ReportDto.java @@ -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; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java index a220398..e3f1987 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java @@ -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 pageInfo= new PageInfo<>(reportDtoList); + PageInfo 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 {