|
|
|
|
@ -11,18 +11,12 @@ import com.ruoyi.kaohe.domain.*;
|
|
|
|
|
import com.ruoyi.kaohe.service.IKhPcEmpService;
|
|
|
|
|
import com.ruoyi.kaohe.service.IKhVoteEmpService;
|
|
|
|
|
import com.ruoyi.kaohe.service.IKhVoteService;
|
|
|
|
|
import com.ruoyi.kaohe.service.impl.KhVoteServiceImpl;
|
|
|
|
|
import com.ruoyi.kaohe.util.PinYinUtil;
|
|
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.PutMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
import com.ruoyi.common.annotation.Log;
|
|
|
|
|
import com.ruoyi.common.core.controller.BaseController;
|
|
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
|
|
@ -158,56 +152,176 @@ public class KhPingceController extends BaseController {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除考核评测——————清理数据库时调用, 清除已完成的全部关联数据、进行中的仅清除voteemp已打票的成绩 保留考核项及关联的voteemp
|
|
|
|
|
* vote_recard表直接全部清除 截断表即可
|
|
|
|
|
* 考核任务 修改被考核对象(添加/删除被考核对象)
|
|
|
|
|
* 传参:id、pcBkhdxs、addOrDel、bkhdxType
|
|
|
|
|
*/
|
|
|
|
|
// @PreAuthorize("@ss.hasPermi('kaohe:pingce:remove')")
|
|
|
|
|
// @PreAuthorize("@ss.hasPermi('kaohe:pingce:modifyBkhdx')")
|
|
|
|
|
@Log(title = "考核评测", businessType = BusinessType.UPDATE)
|
|
|
|
|
@PutMapping("/modifyBkhdx")
|
|
|
|
|
@Transactional
|
|
|
|
|
public AjaxResult modifyBkhdx(@RequestBody ModifyBkhdxParam bkhdxParam) {
|
|
|
|
|
Long id = bkhdxParam.getId();
|
|
|
|
|
List<Bkhdx> pcEmps = bkhdxParam.getPcBkhdxs();
|
|
|
|
|
if (pcEmps == null || pcEmps.size() <= 0) {
|
|
|
|
|
return AjaxResult.error("选择的被考核对象为空!");
|
|
|
|
|
}
|
|
|
|
|
//查询已发布考核项vote
|
|
|
|
|
KhVote vote = new KhVote();
|
|
|
|
|
vote.setPingceId(id);
|
|
|
|
|
List<KhVote> khVotes = khVoteService.selectKhVoteList(vote);
|
|
|
|
|
|
|
|
|
|
if (bkhdxParam.getAddOrDel().equals("0")) { //0添加被考核对象 1删除
|
|
|
|
|
for (Bkhdx item : pcEmps) {
|
|
|
|
|
KhPcEmp pcEmp = new KhPcEmp();
|
|
|
|
|
pcEmp.setPcId(bkhdxParam.getId());
|
|
|
|
|
pcEmp.setBkhdxId(item.getBkhdxId());
|
|
|
|
|
pcEmp.setBkhdxName(item.getBkhdxName());
|
|
|
|
|
pcEmp.setDeptId(item.getDeptId());
|
|
|
|
|
pcEmp.setDeptName(item.getDeptName());
|
|
|
|
|
pcEmpService.insertKhPcEmp(pcEmp);
|
|
|
|
|
}
|
|
|
|
|
//已发布考核需添加对应考核项的关联人
|
|
|
|
|
if (khVotes != null && khVotes.size() > 0) {
|
|
|
|
|
for (KhVote khVote : khVotes) {
|
|
|
|
|
for (Bkhdx item : pcEmps) {
|
|
|
|
|
//新增投票选项关联表
|
|
|
|
|
KhVoteEmp voteEmp = new KhVoteEmp();
|
|
|
|
|
voteEmp.setBkhdxId(item.getBkhdxId());
|
|
|
|
|
voteEmp.setBkhdxName(item.getBkhdxName());
|
|
|
|
|
voteEmp.setVoteId(khVote.getId());
|
|
|
|
|
voteEmp.setVoteTitle(khVote.getVoteTitle());
|
|
|
|
|
voteEmp.setPercentage(khVote.getPercentage());
|
|
|
|
|
voteEmp.setKhitemTypeid(khVote.getKhitemTypeid());
|
|
|
|
|
if (khVote.getKhitemTypeid().equals(1L)) {
|
|
|
|
|
voteEmp.setOptionA(BigDecimal.ZERO);
|
|
|
|
|
voteEmp.setOptionB(BigDecimal.ZERO);
|
|
|
|
|
voteEmp.setOptionC(BigDecimal.ZERO);
|
|
|
|
|
voteEmp.setOptionD(BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
khVoteEmpService.insertKhVoteEmp(voteEmp);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
//删除关联
|
|
|
|
|
KhPcEmp query = new KhPcEmp();
|
|
|
|
|
query.setPcId(id);
|
|
|
|
|
List<KhPcEmp> temItems = pcEmpService.selectKhPcEmpList(query);
|
|
|
|
|
List<Long> ids = temItems.stream().map(KhPcEmp::getId).collect(Collectors.toList());
|
|
|
|
|
if (ids != null && ids.size() > 0) {
|
|
|
|
|
pcEmpService.deleteKhPcEmpByIds(ids.toArray(new Long[ids.size()]));
|
|
|
|
|
}
|
|
|
|
|
//已发布考核vote 删除对应数据
|
|
|
|
|
if (khVotes != null && khVotes.size() > 0) {
|
|
|
|
|
List<Long> veIds = new ArrayList<>();
|
|
|
|
|
for (KhVote khVote : khVotes) {
|
|
|
|
|
KhVoteEmp vEmp = new KhVoteEmp();
|
|
|
|
|
vEmp.setVoteId(khVote.getId());
|
|
|
|
|
List<KhVoteEmp> khVEmps = khVoteEmpService.selectKhVoteEmpList(vEmp);
|
|
|
|
|
for (Bkhdx item : pcEmps) {
|
|
|
|
|
for (KhVoteEmp khVEmp : khVEmps) {
|
|
|
|
|
if (khVEmp.getBkhdxId().equals(item.getBkhdxId())) {
|
|
|
|
|
veIds.add(khVEmp.getId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (veIds.size() > 0) {
|
|
|
|
|
khVoteEmpService.deleteKhVoteEmpByIds(veIds.toArray(new Long[veIds.size()]));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return AjaxResult.success();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* ids传入为null——————清理数据库时调用, 清除已完成的全部关联数据、进行中的仅清除voteemp的打票成绩 保留考核项及关联的voteemp
|
|
|
|
|
* ids有值 按任务id-----修改所有关联的vote的voteemp数据为原始状态
|
|
|
|
|
* 清理数据库时:vote_recard表手动直接全部清除 截断表即可
|
|
|
|
|
*/
|
|
|
|
|
// @PreAuthorize("@ss.hasPermi('kaohe:pingce:remove')")
|
|
|
|
|
@Log(title = "考核评测", businessType = BusinessType.DELETE)
|
|
|
|
|
@DeleteMapping("/clean")
|
|
|
|
|
@Transactional
|
|
|
|
|
public AjaxResult removeTest() {
|
|
|
|
|
//已完成
|
|
|
|
|
KhPingce khPingce = new KhPingce();
|
|
|
|
|
khPingce.setState("2");
|
|
|
|
|
List<KhPingce> wPingces = khPingceService.selectKhPingceList(khPingce);
|
|
|
|
|
List<Long> wIds = wPingces.stream().map(KhPingce::getId).collect(Collectors.toList());
|
|
|
|
|
khPingceService.deleteKhPingceByIds2(wIds.toArray(new Long[wIds.size()]));
|
|
|
|
|
|
|
|
|
|
//进行中 的数据 清除关联的vote及voteemp数据为原始状态
|
|
|
|
|
KhPingce jxz = new KhPingce();
|
|
|
|
|
jxz.setState("1");
|
|
|
|
|
List<KhPingce> jxzPingces = khPingceService.selectKhPingceList(jxz);
|
|
|
|
|
List<Long> jxzIds = jxzPingces.stream().map(KhPingce::getId).collect(Collectors.toList());
|
|
|
|
|
for (Long jxzId : jxzIds) {
|
|
|
|
|
KhVote vote = new KhVote();
|
|
|
|
|
vote.setPingceId(jxzId);
|
|
|
|
|
List<KhVote> votes = khVoteService.selectKhVoteList(vote);
|
|
|
|
|
List<Long> vIds = votes.stream().map(KhVote::getId).collect(Collectors.toList());
|
|
|
|
|
if (vIds != null && vIds.size() > 0) {
|
|
|
|
|
//修改voteemp
|
|
|
|
|
for (Long vId : vIds) {
|
|
|
|
|
KhVoteEmp vemp = new KhVoteEmp();
|
|
|
|
|
vemp.setVoteId(vId);
|
|
|
|
|
List<KhVoteEmp> vEmps = khVoteEmpService.selectKhVoteEmpList(vemp);
|
|
|
|
|
if(vEmps != null && vEmps.size() > 0){
|
|
|
|
|
//修改关联的员工数据到最初创建状态
|
|
|
|
|
for (KhVoteEmp uPEmp : vEmps) {
|
|
|
|
|
uPEmp.setVoteNum(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setVoteScore(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setAvgScore(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setEndScore(BigDecimal.ZERO);
|
|
|
|
|
if(uPEmp.getKhitemTypeid().equals(1L)){
|
|
|
|
|
uPEmp.setOptionA(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setOptionB(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setOptionC(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setOptionD(BigDecimal.ZERO);
|
|
|
|
|
public AjaxResult removeTest(@RequestParam Long[] ids) {
|
|
|
|
|
if(ids!=null&&ids.length>0){ //按任务id-----修改所有关联的vote的voteemp数据为原始状态
|
|
|
|
|
for (Long jxzId : ids) {
|
|
|
|
|
KhVote vote = new KhVote();
|
|
|
|
|
vote.setPingceId(jxzId);
|
|
|
|
|
List<KhVote> votes = khVoteService.selectKhVoteList(vote);
|
|
|
|
|
List<Long> vIds = votes.stream().map(KhVote::getId).collect(Collectors.toList());
|
|
|
|
|
if (vIds != null && vIds.size() > 0) {
|
|
|
|
|
//修改voteemp
|
|
|
|
|
for (Long vId : vIds) {
|
|
|
|
|
KhVoteEmp vemp = new KhVoteEmp();
|
|
|
|
|
vemp.setVoteId(vId);
|
|
|
|
|
List<KhVoteEmp> vEmps = khVoteEmpService.selectKhVoteEmpList(vemp);
|
|
|
|
|
if (vEmps != null && vEmps.size() > 0) {
|
|
|
|
|
//修改关联的员工数据到最初创建状态
|
|
|
|
|
for (KhVoteEmp uPEmp : vEmps) {
|
|
|
|
|
uPEmp.setVoteNum(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setVoteScore(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setAvgScore(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setEndScore(BigDecimal.ZERO);
|
|
|
|
|
if (uPEmp.getKhitemTypeid().equals(1L)) {
|
|
|
|
|
uPEmp.setOptionA(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setOptionB(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setOptionC(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setOptionD(BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
khVoteEmpService.updateKhVoteEmp(uPEmp);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}else{//null认为清理所有 (已完成删除全部数据,进行中数据清除评分数据)
|
|
|
|
|
//已完成的数据直接清除任务及所有关联数据————完全删除已完成任务
|
|
|
|
|
KhPingce khPingce = new KhPingce();
|
|
|
|
|
khPingce.setState("2");
|
|
|
|
|
List<KhPingce> wPingces = khPingceService.selectKhPingceList(khPingce);
|
|
|
|
|
if (wPingces != null && wPingces.size() > 0) {
|
|
|
|
|
List<Long> wIds = wPingces.stream().map(KhPingce::getId).collect(Collectors.toList());
|
|
|
|
|
khPingceService.deleteKhPingceByIds2(wIds.toArray(new Long[wIds.size()]));
|
|
|
|
|
}
|
|
|
|
|
//进行中 的数据 修改关联的vote及voteemp数据为原始状态
|
|
|
|
|
KhPingce jxz = new KhPingce();
|
|
|
|
|
jxz.setState("1");
|
|
|
|
|
List<KhPingce> jxzPingces = khPingceService.selectKhPingceList(jxz);
|
|
|
|
|
List<Long> jxzIds = jxzPingces.stream().map(KhPingce::getId).collect(Collectors.toList());
|
|
|
|
|
for (Long jxzId : jxzIds) {
|
|
|
|
|
KhVote vote = new KhVote();
|
|
|
|
|
vote.setPingceId(jxzId);
|
|
|
|
|
List<KhVote> votes = khVoteService.selectKhVoteList(vote);
|
|
|
|
|
List<Long> vIds = votes.stream().map(KhVote::getId).collect(Collectors.toList());
|
|
|
|
|
if (vIds != null && vIds.size() > 0) {
|
|
|
|
|
//修改voteemp
|
|
|
|
|
for (Long vId : vIds) {
|
|
|
|
|
KhVoteEmp vemp = new KhVoteEmp();
|
|
|
|
|
vemp.setVoteId(vId);
|
|
|
|
|
List<KhVoteEmp> vEmps = khVoteEmpService.selectKhVoteEmpList(vemp);
|
|
|
|
|
if (vEmps != null && vEmps.size() > 0) {
|
|
|
|
|
//修改关联的员工数据到最初创建状态
|
|
|
|
|
for (KhVoteEmp uPEmp : vEmps) {
|
|
|
|
|
uPEmp.setVoteNum(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setVoteScore(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setAvgScore(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setEndScore(BigDecimal.ZERO);
|
|
|
|
|
if (uPEmp.getKhitemTypeid().equals(1L)) {
|
|
|
|
|
uPEmp.setOptionA(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setOptionB(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setOptionC(BigDecimal.ZERO);
|
|
|
|
|
uPEmp.setOptionD(BigDecimal.ZERO);
|
|
|
|
|
}
|
|
|
|
|
khVoteEmpService.updateKhVoteEmp(uPEmp);
|
|
|
|
|
}
|
|
|
|
|
khVoteEmpService.updateKhVoteEmp(uPEmp);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return toAjax(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|