|
|
|
@ -20,6 +20,8 @@ import com.ruoyi.kaohe.domain.KhVoteEmp;
|
|
|
|
import com.ruoyi.kaohe.service.IKhVoteEmpService;
|
|
|
|
import com.ruoyi.kaohe.service.IKhVoteEmpService;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 投票选项Service业务层处理
|
|
|
|
* 投票选项Service业务层处理
|
|
|
|
*
|
|
|
|
*
|
|
|
|
@ -106,26 +108,36 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService {
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional
|
|
|
|
@Transactional
|
|
|
|
public AjaxResult voteSubmit(KhVoteRecardParam param) {
|
|
|
|
public AjaxResult voteSubmit(KhVoteRecardParam param) {
|
|
|
|
Map<String, BigDecimal> xuanxiangDetails = new HashMap<>();
|
|
|
|
Map<String, String> xuanxiangDetails = new LinkedHashMap<>();
|
|
|
|
BigDecimal num = new BigDecimal("1");//投票人数+1
|
|
|
|
BigDecimal num = new BigDecimal("1");//投票人数+1
|
|
|
|
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();
|
|
|
|
|
|
|
|
//选项评分
|
|
|
|
|
|
|
|
if (typeid.equals(1L)) {
|
|
|
|
List<KhVoteItems> voteItems = khVoteItemsMapper.selectKhVoteItemsList(null);//从数据库获取分值
|
|
|
|
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");
|
|
|
|
|
|
|
|
String aName = "优秀";
|
|
|
|
|
|
|
|
String bName = "合格";
|
|
|
|
|
|
|
|
String cName = "基本合格";
|
|
|
|
|
|
|
|
String dName = "不合格";
|
|
|
|
if (voteItems != null && voteItems.size() > 0) {
|
|
|
|
if (voteItems != null && voteItems.size() > 0) {
|
|
|
|
for (KhVoteItems voteItem : voteItems) {
|
|
|
|
for (KhVoteItems voteItem : voteItems) {
|
|
|
|
if (voteItem.getId() == 1) {
|
|
|
|
if (voteItem.getId() == 1) {
|
|
|
|
a = voteItem.getScore();
|
|
|
|
a = voteItem.getScore();
|
|
|
|
|
|
|
|
aName = voteItem.getVitemName();
|
|
|
|
} else if (voteItem.getId() == 2) {
|
|
|
|
} else if (voteItem.getId() == 2) {
|
|
|
|
b = voteItem.getScore();
|
|
|
|
b = voteItem.getScore();
|
|
|
|
|
|
|
|
bName = voteItem.getVitemName();
|
|
|
|
} else if (voteItem.getId() == 3) {
|
|
|
|
} else if (voteItem.getId() == 3) {
|
|
|
|
c = voteItem.getScore();
|
|
|
|
c = voteItem.getScore();
|
|
|
|
|
|
|
|
cName = voteItem.getVitemName();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
d = voteItem.getScore();
|
|
|
|
d = voteItem.getScore();
|
|
|
|
|
|
|
|
dName = voteItem.getVitemName();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -133,19 +145,22 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService {
|
|
|
|
voteEmp.setUpdateTime(nowDate);
|
|
|
|
voteEmp.setUpdateTime(nowDate);
|
|
|
|
//根据id查询数据得到之前的值
|
|
|
|
//根据id查询数据得到之前的值
|
|
|
|
KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId());
|
|
|
|
KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId());
|
|
|
|
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.getBkhdxId().toString(), voteEmp.getBkhdxName()+":优秀");
|
|
|
|
|
|
|
|
xuanxiangDetails.put(voteEmp.getBkhdxName(), aName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (voteEmp.getOptionB().compareTo(BigDecimal.ZERO) == 1) {
|
|
|
|
if (voteEmp.getOptionB().compareTo(BigDecimal.ZERO) == 1) {
|
|
|
|
xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionB());
|
|
|
|
//xuanxiangDetails.put(voteEmp.getBkhdxId().toString(), voteEmp.getBkhdxName()+":合格");
|
|
|
|
|
|
|
|
xuanxiangDetails.put(voteEmp.getBkhdxName(), bName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (voteEmp.getOptionC().compareTo(BigDecimal.ZERO) == 1) {
|
|
|
|
if (voteEmp.getOptionC().compareTo(BigDecimal.ZERO) == 1) {
|
|
|
|
xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionC());
|
|
|
|
//xuanxiangDetails.put(voteEmp.getBkhdxId().toString(), voteEmp.getBkhdxName()+":基本合格");
|
|
|
|
|
|
|
|
xuanxiangDetails.put(voteEmp.getBkhdxName(), cName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (voteEmp.getOptionD().compareTo(BigDecimal.ZERO) == 1) {
|
|
|
|
if (voteEmp.getOptionD().compareTo(BigDecimal.ZERO) == 1) {
|
|
|
|
xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getOptionD());
|
|
|
|
//xuanxiangDetails.put(voteEmp.getBkhdxId().toString(), voteEmp.getBkhdxName()+":不合格");
|
|
|
|
|
|
|
|
xuanxiangDetails.put(voteEmp.getBkhdxName(), dName);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//修改投票情况
|
|
|
|
//修改投票情况
|
|
|
|
BigDecimal optionA = voteEmp.getOptionA().add(oldvoteEmp.getOptionA());
|
|
|
|
BigDecimal optionA = voteEmp.getOptionA().add(oldvoteEmp.getOptionA());
|
|
|
|
@ -165,23 +180,36 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService {
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
voteEmp.setEndScore(avgScore);
|
|
|
|
voteEmp.setEndScore(avgScore);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
khVoteEmpMapper.updateKhVoteEmp(voteEmp);
|
|
|
|
|
|
|
|
}
|
|
|
|
} else if (typeid.equals(2L)) {//占比评分
|
|
|
|
} else if (typeid.equals(2L)) {//占比评分
|
|
|
|
|
|
|
|
for (KhVoteEmp voteEmp : voteEmpList) {
|
|
|
|
|
|
|
|
voteEmp.setUpdateTime(nowDate);
|
|
|
|
|
|
|
|
//根据id查询数据得到之前的值
|
|
|
|
|
|
|
|
KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId());
|
|
|
|
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(), 4, RoundingMode.HALF_UP));
|
|
|
|
voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum(), 4, RoundingMode.HALF_UP));
|
|
|
|
voteEmp.setEndScore(voteEmp.getAvgScore().multiply(oldvoteEmp.getPercentage()));
|
|
|
|
voteEmp.setEndScore(voteEmp.getAvgScore().multiply(oldvoteEmp.getPercentage()));
|
|
|
|
|
|
|
|
khVoteEmpMapper.updateKhVoteEmp(voteEmp);
|
|
|
|
|
|
|
|
}
|
|
|
|
} else {//单独评分 不占比 以平均分为最后得分
|
|
|
|
} else {//单独评分 不占比 以平均分为最后得分
|
|
|
|
|
|
|
|
for (KhVoteEmp voteEmp : voteEmpList) {
|
|
|
|
|
|
|
|
voteEmp.setUpdateTime(nowDate);
|
|
|
|
|
|
|
|
//根据id查询数据得到之前的值
|
|
|
|
|
|
|
|
KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId());
|
|
|
|
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(), 4, RoundingMode.HALF_UP));
|
|
|
|
voteEmp.setAvgScore(sumScore.divide(voteEmp.getVoteNum(), 4, RoundingMode.HALF_UP));
|
|
|
|
voteEmp.setEndScore(voteEmp.getAvgScore());
|
|
|
|
voteEmp.setEndScore(voteEmp.getAvgScore());
|
|
|
|
}
|
|
|
|
|
|
|
|
khVoteEmpMapper.updateKhVoteEmp(voteEmp);
|
|
|
|
khVoteEmpMapper.updateKhVoteEmp(voteEmp);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//存储投票记录
|
|
|
|
//存储投票记录
|
|
|
|
KhVoteRecard recard = new KhVoteRecard();
|
|
|
|
KhVoteRecard recard = new KhVoteRecard();
|
|
|
|
recard.setVoteId(param.getVoteId());
|
|
|
|
recard.setVoteId(param.getVoteId());
|
|
|
|
@ -192,10 +220,15 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService {
|
|
|
|
if (typeid.equals(1L)) {//选项评分
|
|
|
|
if (typeid.equals(1L)) {//选项评分
|
|
|
|
recard.setVoteDetails(JSON.toJSONString(xuanxiangDetails));
|
|
|
|
recard.setVoteDetails(JSON.toJSONString(xuanxiangDetails));
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
List<String> details = voteEmpList.stream()
|
|
|
|
for (KhVoteEmp voteEmp : voteEmpList) {
|
|
|
|
|
|
|
|
//xuanxiangDetails.put(voteEmp.getBkhdxId().toString(), voteEmp.getBkhdxName()+":"+voteEmp.getScore());
|
|
|
|
|
|
|
|
xuanxiangDetails.put(voteEmp.getBkhdxName(), voteEmp.getScore().toString());
|
|
|
|
|
|
|
|
recard.setVoteDetails(JSON.toJSONString(xuanxiangDetails));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
/*List<String> details = voteEmpList.stream()
|
|
|
|
.map(emp -> emp.getBkhdxName() + " : " + emp.getScore())
|
|
|
|
.map(emp -> emp.getBkhdxName() + " : " + emp.getScore())
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
recard.setVoteDetails(JSON.toJSONString(details));
|
|
|
|
recard.setVoteDetails(JSON.toJSONString(details));*/
|
|
|
|
}
|
|
|
|
}
|
|
|
|
khVoteRecardMapper.insertKhVoteRecard(recard);
|
|
|
|
khVoteRecardMapper.insertKhVoteRecard(recard);
|
|
|
|
return AjaxResult.success();
|
|
|
|
return AjaxResult.success();
|
|
|
|
|