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 org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.domain.BaseEntity;
import java.math.BigDecimal;
/** /**
* kh_vote_items * kh_vote_items
@ -24,7 +25,7 @@ public class KhVoteItems extends BaseEntity
/** 分数 */ /** 分数 */
@Excel(name = "分数") @Excel(name = "分数")
private Long score; private BigDecimal score;
public void setId(Long id) public void setId(Long id)
{ {
@ -46,14 +47,12 @@ public class KhVoteItems extends BaseEntity
return vitemName; return vitemName;
} }
public void setScore(Long score) public BigDecimal getScore() {
{ return score;
this.score = score;
} }
public Long getScore() public void setScore(BigDecimal score) {
{ this.score = score;
return score;
} }
@Override @Override

@ -10,6 +10,7 @@ import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.kaohe.domain.KhVoteItems;
import com.ruoyi.kaohe.domain.KhVoteRecard; import com.ruoyi.kaohe.domain.KhVoteRecard;
import com.ruoyi.kaohe.domain.KhVoteRecardParam; import com.ruoyi.kaohe.domain.KhVoteRecardParam;
import com.ruoyi.kaohe.mapper.KhVoteItemsMapper; import com.ruoyi.kaohe.mapper.KhVoteItemsMapper;
@ -23,13 +24,12 @@ import org.springframework.transaction.annotation.Transactional;
/** /**
* Service * Service
* *
* @author hs * @author hs
* @date 2025-06-17 * @date 2025-06-17
*/ */
@Service @Service
public class KhVoteEmpServiceImpl implements IKhVoteEmpService public class KhVoteEmpServiceImpl implements IKhVoteEmpService {
{
@Autowired @Autowired
private KhVoteEmpMapper khVoteEmpMapper; private KhVoteEmpMapper khVoteEmpMapper;
@Autowired @Autowired
@ -39,75 +39,69 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService
/** /**
* *
* *
* @param id * @param id
* @return * @return
*/ */
@Override @Override
public KhVoteEmp selectKhVoteEmpById(Long id) public KhVoteEmp selectKhVoteEmpById(Long id) {
{
return khVoteEmpMapper.selectKhVoteEmpById(id); return khVoteEmpMapper.selectKhVoteEmpById(id);
} }
/** /**
* *
* *
* @param khVoteEmp * @param khVoteEmp
* @return * @return
*/ */
@Override @Override
public List<KhVoteEmp> selectKhVoteEmpList(KhVoteEmp khVoteEmp) public List<KhVoteEmp> selectKhVoteEmpList(KhVoteEmp khVoteEmp) {
{
return khVoteEmpMapper.selectKhVoteEmpList(khVoteEmp); return khVoteEmpMapper.selectKhVoteEmpList(khVoteEmp);
} }
/** /**
* *
* *
* @param khVoteEmp * @param khVoteEmp
* @return * @return
*/ */
@Override @Override
public int insertKhVoteEmp(KhVoteEmp khVoteEmp) public int insertKhVoteEmp(KhVoteEmp khVoteEmp) {
{
khVoteEmp.setCreateTime(DateUtils.getNowDate()); khVoteEmp.setCreateTime(DateUtils.getNowDate());
return khVoteEmpMapper.insertKhVoteEmp(khVoteEmp); return khVoteEmpMapper.insertKhVoteEmp(khVoteEmp);
} }
/** /**
* *
* *
* @param khVoteEmp * @param khVoteEmp
* @return * @return
*/ */
@Override @Override
public int updateKhVoteEmp(KhVoteEmp khVoteEmp) public int updateKhVoteEmp(KhVoteEmp khVoteEmp) {
{
khVoteEmp.setUpdateTime(DateUtils.getNowDate()); khVoteEmp.setUpdateTime(DateUtils.getNowDate());
return khVoteEmpMapper.updateKhVoteEmp(khVoteEmp); return khVoteEmpMapper.updateKhVoteEmp(khVoteEmp);
} }
/** /**
* *
* *
* @param ids * @param ids
* @return * @return
*/ */
@Override @Override
public int deleteKhVoteEmpByIds(Long[] ids) public int deleteKhVoteEmpByIds(Long[] ids) {
{
return khVoteEmpMapper.deleteKhVoteEmpByIds(ids); return khVoteEmpMapper.deleteKhVoteEmpByIds(ids);
} }
/** /**
* *
* *
* @param id * @param id
* @return * @return
*/ */
@Override @Override
public int deleteKhVoteEmpById(Long id) public int deleteKhVoteEmpById(Long id) {
{
return khVoteEmpMapper.deleteKhVoteEmpById(id); return khVoteEmpMapper.deleteKhVoteEmpById(id);
} }
@ -119,28 +113,41 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService
List<KhVoteEmp> voteEmpList = param.getVoteEmpList(); List<KhVoteEmp> voteEmpList = param.getVoteEmpList();
Date nowDate = DateUtils.getNowDate(); Date nowDate = DateUtils.getNowDate();
Long typeid = param.getKhitemTypeid(); Long typeid = param.getKhitemTypeid();
// khVoteItemsMapper.s 从数据库获取分值 List<KhVoteItems> voteItems = khVoteItemsMapper.selectKhVoteItemsList(null);//从数据库获取分值
BigDecimal a = new BigDecimal("100"); BigDecimal a = new BigDecimal("100");
BigDecimal b = new BigDecimal("80"); BigDecimal b = new BigDecimal("80");
BigDecimal c = new BigDecimal("60"); BigDecimal c = new BigDecimal("60");
BigDecimal d = new BigDecimal("40"); 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); voteEmp.setUpdateTime(nowDate);
//根据id查询数据得到之前的值 //根据id查询数据得到之前的值
KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId()); KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId());
if (typeid.equals(1L)) {//选项评分 if (typeid.equals(1L)) {//选项评分
//存储投票详情到map //存储投票详情到map
if(voteEmp.getOptionA().compareTo(BigDecimal.ZERO)==1){ if (voteEmp.getOptionA().compareTo(BigDecimal.ZERO) == 1) {
xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionA()); xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionA());
} }
if(voteEmp.getOptionB().compareTo(BigDecimal.ZERO)==1){ if (voteEmp.getOptionB().compareTo(BigDecimal.ZERO) == 1) {
xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionB()); xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionB());
} }
if(voteEmp.getOptionC().compareTo(BigDecimal.ZERO)==1){ if (voteEmp.getOptionC().compareTo(BigDecimal.ZERO) == 1) {
xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionC()); xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionC());
} }
if(voteEmp.getOptionD().compareTo(BigDecimal.ZERO)==1){ if (voteEmp.getOptionD().compareTo(BigDecimal.ZERO) == 1) {
xuanxiangDetails.put(voteEmp.getBkhdxName(),voteEmp.getOptionD()); xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionD());
} }
//修改投票情况 //修改投票情况
BigDecimal optionA = voteEmp.getOptionA().add(oldvoteEmp.getOptionA()); 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))) optionB.multiply(b).add(optionC.multiply(c).add(optionD.multiply(d)))
).divide(voteEmp.getVoteNum()); ).divide(voteEmp.getVoteNum());
voteEmp.setAvgScore(avgScore);//投票后计算平均分 voteEmp.setAvgScore(avgScore);//投票后计算平均分
if(voteEmp.getPercentage()!=null){ //计算最后得分 if (voteEmp.getPercentage() != null) { //计算最后得分
voteEmp.setEndScore(avgScore.multiply(voteEmp.getPercentage())); voteEmp.setEndScore(avgScore.multiply(voteEmp.getPercentage()));
} }
}else if(typeid.equals(2L)){//占比评分 } else if (typeid.equals(2L)) {//占比评分
BigDecimal sumScore = voteEmp.getScore().add(oldvoteEmp.getVoteScore()); BigDecimal sumScore = voteEmp.getScore().add(oldvoteEmp.getVoteScore());
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()));
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));
@ -181,7 +188,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService
recard.setVoteTime(nowDate); recard.setVoteTime(nowDate);
if (typeid.equals(1L)) {//选项评分 if (typeid.equals(1L)) {//选项评分
recard.setVoteDetails(JSON.toJSONString(xuanxiangDetails)); recard.setVoteDetails(JSON.toJSONString(xuanxiangDetails));
}else{ } else {
Map<String, BigDecimal> details = voteEmpList.stream().collect(Collectors.toMap(KhVoteEmp::getBkhdxName, KhVoteEmp::getScore)); Map<String, BigDecimal> details = voteEmpList.stream().collect(Collectors.toMap(KhVoteEmp::getBkhdxName, KhVoteEmp::getScore));
recard.setVoteDetails(JSON.toJSONString(details)); recard.setVoteDetails(JSON.toJSONString(details));
} }

Loading…
Cancel
Save