|
|
|
@ -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;
|
|
|
|
@ -28,8 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
* @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
|
|
|
|
@ -44,8 +44,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService
|
|
|
|
* @return 投票选项
|
|
|
|
* @return 投票选项
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public KhVoteEmp selectKhVoteEmpById(Long id)
|
|
|
|
public KhVoteEmp selectKhVoteEmpById(Long id) {
|
|
|
|
{
|
|
|
|
|
|
|
|
return khVoteEmpMapper.selectKhVoteEmpById(id);
|
|
|
|
return khVoteEmpMapper.selectKhVoteEmpById(id);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -56,8 +55,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService
|
|
|
|
* @return 投票选项
|
|
|
|
* @return 投票选项
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<KhVoteEmp> selectKhVoteEmpList(KhVoteEmp khVoteEmp)
|
|
|
|
public List<KhVoteEmp> selectKhVoteEmpList(KhVoteEmp khVoteEmp) {
|
|
|
|
{
|
|
|
|
|
|
|
|
return khVoteEmpMapper.selectKhVoteEmpList(khVoteEmp);
|
|
|
|
return khVoteEmpMapper.selectKhVoteEmpList(khVoteEmp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -68,8 +66,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService
|
|
|
|
* @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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -81,8 +78,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService
|
|
|
|
* @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);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -94,8 +90,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService
|
|
|
|
* @return 结果
|
|
|
|
* @return 结果
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public int deleteKhVoteEmpByIds(Long[] ids)
|
|
|
|
public int deleteKhVoteEmpByIds(Long[] ids) {
|
|
|
|
{
|
|
|
|
|
|
|
|
return khVoteEmpMapper.deleteKhVoteEmpByIds(ids);
|
|
|
|
return khVoteEmpMapper.deleteKhVoteEmpByIds(ids);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -106,8 +101,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService
|
|
|
|
* @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));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|