diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java index f0fbe61..7c0f743 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.kaohe.service.impl; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -155,9 +156,8 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { BigDecimal optionC = voteEmp.getOptionC().add(oldvoteEmp.getOptionC()); BigDecimal optionD = voteEmp.getOptionD().add(oldvoteEmp.getOptionD()); voteEmp.setVoteNum(oldvoteEmp.getVoteNum().add(num)); - BigDecimal avgScore = optionA.multiply(a).add( - optionB.multiply(b).add(optionC.multiply(c).add(optionD.multiply(d))) - ).divide(voteEmp.getVoteNum()); + BigDecimal avgScore = (optionA.multiply(a).add(optionB.multiply(b).add(optionC.multiply(c).add(optionD.multiply(d))) + )).divide(voteEmp.getVoteNum(),4, RoundingMode.HALF_UP); voteEmp.setAvgScore(avgScore);//投票后计算平均分 if (oldvoteEmp.getPercentage() != null) { //计算最后得分 voteEmp.setEndScore(avgScore.multiply(oldvoteEmp.getPercentage())); @@ -169,14 +169,14 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { voteEmp.setVoteScore(sumScore); //修改投票人数 平均分*占比=最后得分 voteEmp.setVoteNum(oldvoteEmp.getVoteNum().add(num)); - voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum())); + voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum(),4, RoundingMode.HALF_UP)); voteEmp.setEndScore(voteEmp.getAvgScore().multiply(oldvoteEmp.getPercentage())); } else {//单独评分 不占比 以平均分为最后得分 BigDecimal sumScore = voteEmp.getScore().add(oldvoteEmp.getVoteScore()); voteEmp.setVoteNum(oldvoteEmp.getVoteNum() .add(num)); voteEmp.setVoteScore(sumScore); - voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum())); + voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum(),4, RoundingMode.HALF_UP)); voteEmp.setEndScore(voteEmp.getAvgScore()); } khVoteEmpMapper.updateKhVoteEmp(voteEmp);