Merge remote-tracking branch 'origin/main'

main
wanglei 5 months ago
commit 9f6af41378

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

Loading…
Cancel
Save