diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteItems.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteItems.java index 86e5ef7..1051ffc 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteItems.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/domain/KhVoteItems.java @@ -4,6 +4,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import java.math.BigDecimal; /** * 投票项对象 kh_vote_items @@ -24,7 +25,7 @@ public class KhVoteItems extends BaseEntity /** 分数 */ @Excel(name = "分数") - private Long score; + private BigDecimal score; public void setId(Long id) { @@ -46,14 +47,12 @@ public class KhVoteItems extends BaseEntity return vitemName; } - public void setScore(Long score) - { - this.score = score; + public BigDecimal getScore() { + return score; } - public Long getScore() - { - return score; + public void setScore(BigDecimal score) { + this.score = score; } @Override 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 6f57b44..1eefc81 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 @@ -10,6 +10,7 @@ import java.util.stream.Collectors; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.kaohe.domain.KhVoteItems; import com.ruoyi.kaohe.domain.KhVoteRecard; import com.ruoyi.kaohe.domain.KhVoteRecardParam; import com.ruoyi.kaohe.mapper.KhVoteItemsMapper; @@ -23,13 +24,12 @@ import org.springframework.transaction.annotation.Transactional; /** * 投票选项Service业务层处理 - * + * * @author hs * @date 2025-06-17 */ @Service -public class KhVoteEmpServiceImpl implements IKhVoteEmpService -{ +public class KhVoteEmpServiceImpl implements IKhVoteEmpService { @Autowired private KhVoteEmpMapper khVoteEmpMapper; @Autowired @@ -39,75 +39,69 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService /** * 查询投票选项 - * + * * @param id 投票选项主键 * @return 投票选项 */ @Override - public KhVoteEmp selectKhVoteEmpById(Long id) - { + public KhVoteEmp selectKhVoteEmpById(Long id) { return khVoteEmpMapper.selectKhVoteEmpById(id); } /** * 查询投票选项列表 - * + * * @param khVoteEmp 投票选项 * @return 投票选项 */ @Override - public List selectKhVoteEmpList(KhVoteEmp khVoteEmp) - { + public List selectKhVoteEmpList(KhVoteEmp khVoteEmp) { return khVoteEmpMapper.selectKhVoteEmpList(khVoteEmp); } /** * 新增投票选项 - * + * * @param khVoteEmp 投票选项 * @return 结果 */ @Override - public int insertKhVoteEmp(KhVoteEmp khVoteEmp) - { + public int insertKhVoteEmp(KhVoteEmp khVoteEmp) { khVoteEmp.setCreateTime(DateUtils.getNowDate()); return khVoteEmpMapper.insertKhVoteEmp(khVoteEmp); } /** * 修改投票选项 - * + * * @param khVoteEmp 投票选项 * @return 结果 */ @Override - public int updateKhVoteEmp(KhVoteEmp khVoteEmp) - { + public int updateKhVoteEmp(KhVoteEmp khVoteEmp) { khVoteEmp.setUpdateTime(DateUtils.getNowDate()); return khVoteEmpMapper.updateKhVoteEmp(khVoteEmp); } /** * 批量删除投票选项 - * + * * @param ids 需要删除的投票选项主键 * @return 结果 */ @Override - public int deleteKhVoteEmpByIds(Long[] ids) - { + public int deleteKhVoteEmpByIds(Long[] ids) { return khVoteEmpMapper.deleteKhVoteEmpByIds(ids); } /** * 删除投票选项信息 - * + * * @param id 投票选项主键 * @return 结果 */ @Override - public int deleteKhVoteEmpById(Long id) - { + public int deleteKhVoteEmpById(Long id) { return khVoteEmpMapper.deleteKhVoteEmpById(id); } @@ -119,28 +113,41 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService List voteEmpList = param.getVoteEmpList(); Date nowDate = DateUtils.getNowDate(); Long typeid = param.getKhitemTypeid(); - // khVoteItemsMapper.s 从数据库获取分值 + List voteItems = khVoteItemsMapper.selectKhVoteItemsList(null);//从数据库获取分值 BigDecimal a = new BigDecimal("100"); BigDecimal b = new BigDecimal("80"); BigDecimal c = new BigDecimal("60"); BigDecimal d = new BigDecimal("40"); - for(KhVoteEmp voteEmp:voteEmpList){ + if(voteItems!=null&&voteItems.size()>0){ + for (KhVoteItems voteItem : voteItems) { + if (voteItem.getId() == 1) { + a = voteItem.getScore(); + } else if (voteItem.getId() == 2) { + b = voteItem.getScore(); + } else if (voteItem.getId() == 3) { + c = voteItem.getScore(); + } else { + d = voteItem.getScore(); + } + } + } + for (KhVoteEmp voteEmp : voteEmpList) { voteEmp.setUpdateTime(nowDate); //根据id查询数据得到之前的值 KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId()); if (typeid.equals(1L)) {//选项评分 //存储投票详情到map - if(voteEmp.getOptionA().compareTo(BigDecimal.ZERO)==1){ - xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionA()); + if (voteEmp.getOptionA().compareTo(BigDecimal.ZERO) == 1) { + xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionA()); } - if(voteEmp.getOptionB().compareTo(BigDecimal.ZERO)==1){ - xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionB()); + if (voteEmp.getOptionB().compareTo(BigDecimal.ZERO) == 1) { + xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionB()); } - if(voteEmp.getOptionC().compareTo(BigDecimal.ZERO)==1){ - xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionC()); + if (voteEmp.getOptionC().compareTo(BigDecimal.ZERO) == 1) { + xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionC()); } - if(voteEmp.getOptionD().compareTo(BigDecimal.ZERO)==1){ - xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionD()); + if (voteEmp.getOptionD().compareTo(BigDecimal.ZERO) == 1) { + xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionD()); } //修改投票情况 BigDecimal optionA = voteEmp.getOptionA().add(oldvoteEmp.getOptionA()); @@ -152,17 +159,17 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService optionB.multiply(b).add(optionC.multiply(c).add(optionD.multiply(d))) ).divide(voteEmp.getVoteNum()); voteEmp.setAvgScore(avgScore);//投票后计算平均分 - if(voteEmp.getPercentage()!=null){ //计算最后得分 + if (voteEmp.getPercentage() != null) { //计算最后得分 voteEmp.setEndScore(avgScore.multiply(voteEmp.getPercentage())); } - }else if(typeid.equals(2L)){//占比评分 + } else if (typeid.equals(2L)) {//占比评分 BigDecimal sumScore = voteEmp.getScore().add(oldvoteEmp.getVoteScore()); voteEmp.setVoteScore(sumScore); //修改投票人数 平均分*占比=最后得分 voteEmp.setVoteNum(oldvoteEmp.getVoteNum().add(num)); voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum())); voteEmp.setEndScore(voteEmp.getAvgScore().multiply(oldvoteEmp.getPercentage())); - }else{//单独评分 不占比 以平均分为最后得分 + } else {//单独评分 不占比 以平均分为最后得分 BigDecimal sumScore = voteEmp.getScore().add(oldvoteEmp.getVoteScore()); voteEmp.setVoteNum(oldvoteEmp.getVoteNum() .add(num)); @@ -181,7 +188,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService recard.setVoteTime(nowDate); if (typeid.equals(1L)) {//选项评分 recard.setVoteDetails(JSON.toJSONString(xuanxiangDetails)); - }else{ + } else { Map details = voteEmpList.stream().collect(Collectors.toMap(KhVoteEmp::getBkhdxName, KhVoteEmp::getScore)); recard.setVoteDetails(JSON.toJSONString(details)); }