Merge remote-tracking branch 'origin/main'

main
wanglei 6 months ago
commit 6a2314c481

@ -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

@ -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<KhVoteEmp> selectKhVoteEmpList(KhVoteEmp khVoteEmp)
{
public List<KhVoteEmp> 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<KhVoteEmp> voteEmpList = param.getVoteEmpList();
Date nowDate = DateUtils.getNowDate();
Long typeid = param.getKhitemTypeid();
// khVoteItemsMapper.s 从数据库获取分值
List<KhVoteItems> 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<String, BigDecimal> details = voteEmpList.stream().collect(Collectors.toMap(KhVoteEmp::getBkhdxName, KhVoteEmp::getScore));
recard.setVoteDetails(JSON.toJSONString(details));
}

Loading…
Cancel
Save