投票记录方式修改

main
hshansha 1 month ago
parent c879dac412
commit d9e042017a

@ -237,21 +237,21 @@ public class KhPingceController extends BaseController {
/** /**
* idsnull voteemp voteemp * idsnull voteemp voteemp
* ids id-----votevoteemp
* vote_recard * vote_recard
* ids id-----votevoteemp
*/ */
// @PreAuthorize("@ss.hasPermi('kaohe:pingce:remove')") // @PreAuthorize("@ss.hasPermi('kaohe:pingce:remove')")
@Log(title = "考核评测", businessType = BusinessType.DELETE) @Log(title = "考核评测", businessType = BusinessType.DELETE)
@DeleteMapping("/clean") @DeleteMapping("/clean")
@Transactional @Transactional
public AjaxResult removeTest(@RequestParam Long[] ids) { public AjaxResult removeTest(@RequestParam Long[] ids) {
if(ids!=null&&ids.length>0){ //按任务id-----修改所有关联的vote的voteemp数据为原始状态 if (ids != null && ids.length > 0) { //按任务id-----修改所有关联的vote的voteemp数据为原始状态
for (Long jxzId : ids) { for (Long jxzId : ids) {
KhVote vote = new KhVote(); KhVote vote = new KhVote();
vote.setPingceId(jxzId); vote.setPingceId(jxzId);
List<KhVote> votes = khVoteService.selectKhVoteList(vote); List<KhVote> votes = khVoteService.selectKhVoteList(vote);
List<Long> vIds = votes.stream().map(KhVote::getId).collect(Collectors.toList()); if (votes != null && votes.size() > 0) {
if (vIds != null && vIds.size() > 0) { List<Long> vIds = votes.stream().map(KhVote::getId).collect(Collectors.toList());
//修改voteemp //修改voteemp
for (Long vId : vIds) { for (Long vId : vIds) {
KhVoteEmp vemp = new KhVoteEmp(); KhVoteEmp vemp = new KhVoteEmp();
@ -276,7 +276,7 @@ public class KhPingceController extends BaseController {
} }
} }
} }
}else{//null认为清理所有 (已完成删除全部数据,进行中数据清除评分数据) } else {//null认为清理所有 (已完成删除全部数据,进行中数据清除评分数据)
//已完成的数据直接清除任务及所有关联数据————完全删除已完成任务 //已完成的数据直接清除任务及所有关联数据————完全删除已完成任务
KhPingce khPingce = new KhPingce(); KhPingce khPingce = new KhPingce();
khPingce.setState("2"); khPingce.setState("2");
@ -289,32 +289,34 @@ public class KhPingceController extends BaseController {
KhPingce jxz = new KhPingce(); KhPingce jxz = new KhPingce();
jxz.setState("1"); jxz.setState("1");
List<KhPingce> jxzPingces = khPingceService.selectKhPingceList(jxz); List<KhPingce> jxzPingces = khPingceService.selectKhPingceList(jxz);
List<Long> jxzIds = jxzPingces.stream().map(KhPingce::getId).collect(Collectors.toList()); if(jxzPingces!=null&&jxzPingces.size()>0){
for (Long jxzId : jxzIds) { List<Long> jxzIds = jxzPingces.stream().map(KhPingce::getId).collect(Collectors.toList());
KhVote vote = new KhVote(); for (Long jxzId : jxzIds) {
vote.setPingceId(jxzId); KhVote vote = new KhVote();
List<KhVote> votes = khVoteService.selectKhVoteList(vote); vote.setPingceId(jxzId);
List<Long> vIds = votes.stream().map(KhVote::getId).collect(Collectors.toList()); List<KhVote> votes = khVoteService.selectKhVoteList(vote);
if (vIds != null && vIds.size() > 0) { if (votes != null && votes.size() > 0) {
//修改voteemp List<Long> vIds = votes.stream().map(KhVote::getId).collect(Collectors.toList());
for (Long vId : vIds) { //修改voteemp
KhVoteEmp vemp = new KhVoteEmp(); for (Long vId : vIds) {
vemp.setVoteId(vId); KhVoteEmp vemp = new KhVoteEmp();
List<KhVoteEmp> vEmps = khVoteEmpService.selectKhVoteEmpList(vemp); vemp.setVoteId(vId);
if (vEmps != null && vEmps.size() > 0) { List<KhVoteEmp> vEmps = khVoteEmpService.selectKhVoteEmpList(vemp);
//修改关联的员工数据到最初创建状态 if (vEmps != null && vEmps.size() > 0) {
for (KhVoteEmp uPEmp : vEmps) { //修改关联的员工数据到最初创建状态
uPEmp.setVoteNum(BigDecimal.ZERO); for (KhVoteEmp uPEmp : vEmps) {
uPEmp.setVoteScore(BigDecimal.ZERO); uPEmp.setVoteNum(BigDecimal.ZERO);
uPEmp.setAvgScore(BigDecimal.ZERO); uPEmp.setVoteScore(BigDecimal.ZERO);
uPEmp.setEndScore(BigDecimal.ZERO); uPEmp.setAvgScore(BigDecimal.ZERO);
if (uPEmp.getKhitemTypeid().equals(1L)) { uPEmp.setEndScore(BigDecimal.ZERO);
uPEmp.setOptionA(BigDecimal.ZERO); if (uPEmp.getKhitemTypeid().equals(1L)) {
uPEmp.setOptionB(BigDecimal.ZERO); uPEmp.setOptionA(BigDecimal.ZERO);
uPEmp.setOptionC(BigDecimal.ZERO); uPEmp.setOptionB(BigDecimal.ZERO);
uPEmp.setOptionD(BigDecimal.ZERO); uPEmp.setOptionC(BigDecimal.ZERO);
uPEmp.setOptionD(BigDecimal.ZERO);
}
khVoteEmpService.updateKhVoteEmp(uPEmp);
} }
khVoteEmpService.updateKhVoteEmp(uPEmp);
} }
} }
} }

@ -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,46 +108,59 @@ 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();
List<KhVoteItems> voteItems = khVoteItemsMapper.selectKhVoteItemsList(null);//从数据库获取分值 //选项评分
BigDecimal a = new BigDecimal("100"); if (typeid.equals(1L)) {
BigDecimal b = new BigDecimal("80"); List<KhVoteItems> voteItems = khVoteItemsMapper.selectKhVoteItemsList(null);//从数据库获取分值
BigDecimal c = new BigDecimal("60"); BigDecimal a = new BigDecimal("100");
BigDecimal d = new BigDecimal("40"); BigDecimal b = new BigDecimal("80");
if(voteItems!=null&&voteItems.size()>0){ BigDecimal c = new BigDecimal("60");
for (KhVoteItems voteItem : voteItems) { BigDecimal d = new BigDecimal("40");
if (voteItem.getId() == 1) { String aName = "优秀";
a = voteItem.getScore(); String bName = "合格";
} else if (voteItem.getId() == 2) { String cName = "基本合格";
b = voteItem.getScore(); String dName = "不合格";
} else if (voteItem.getId() == 3) { if (voteItems != null && voteItems.size() > 0) {
c = voteItem.getScore(); for (KhVoteItems voteItem : voteItems) {
} else { if (voteItem.getId() == 1) {
d = voteItem.getScore(); a = voteItem.getScore();
aName = voteItem.getVitemName();
} else if (voteItem.getId() == 2) {
b = voteItem.getScore();
bName = voteItem.getVitemName();
} else if (voteItem.getId() == 3) {
c = voteItem.getScore();
cName = voteItem.getVitemName();
} else {
d = voteItem.getScore();
dName = voteItem.getVitemName();
}
} }
} }
} for (KhVoteEmp voteEmp : voteEmpList) {
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)) {//选项评分
//存储投票详情到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());
@ -154,7 +169,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService {
BigDecimal optionD = voteEmp.getOptionD().add(oldvoteEmp.getOptionD()); BigDecimal optionD = voteEmp.getOptionD().add(oldvoteEmp.getOptionD());
voteEmp.setVoteNum(oldvoteEmp.getVoteNum().add(num)); voteEmp.setVoteNum(oldvoteEmp.getVoteNum().add(num));
BigDecimal avgScore = (optionA.multiply(a).add(optionB.multiply(b).add(optionC.multiply(c).add(optionD.multiply(d))) BigDecimal avgScore = (optionA.multiply(a).add(optionB.multiply(b).add(optionC.multiply(c).add(optionD.multiply(d)))
)).divide(voteEmp.getVoteNum(),4, RoundingMode.HALF_UP); )).divide(voteEmp.getVoteNum(), 4, RoundingMode.HALF_UP);
voteEmp.setAvgScore(avgScore);//投票后计算平均分 voteEmp.setAvgScore(avgScore);//投票后计算平均分
voteEmp.setOptionA(optionA); voteEmp.setOptionA(optionA);
voteEmp.setOptionB(optionB); voteEmp.setOptionB(optionB);
@ -162,26 +177,39 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService {
voteEmp.setOptionD(optionD); voteEmp.setOptionD(optionD);
if (oldvoteEmp.getPercentage() != null) { //计算最后得分 if (oldvoteEmp.getPercentage() != null) { //计算最后得分
voteEmp.setEndScore(avgScore.multiply(oldvoteEmp.getPercentage())); voteEmp.setEndScore(avgScore.multiply(oldvoteEmp.getPercentage()));
}else{ } else {
voteEmp.setEndScore(avgScore); voteEmp.setEndScore(avgScore);
} }
} else if (typeid.equals(2L)) {//占比评分 khVoteEmpMapper.updateKhVoteEmp(voteEmp);
}
} 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()));
} else {//单独评分 不占比 以平均分为最后得分 khVoteEmpMapper.updateKhVoteEmp(voteEmp);
}
} 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();

Loading…
Cancel
Save