diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhPingceController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhPingceController.java index 8fa43cd..e36c0ea 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhPingceController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhPingceController.java @@ -44,6 +44,10 @@ public class KhPingceController extends BaseController { private IKhPingceService khPingceService; @Autowired private IKhPcEmpService pcEmpService; + @Autowired + private IKhVoteService khVoteService; + @Autowired + private IKhVoteEmpService khVoteEmpService; /** * 查询考核评测列表 @@ -152,4 +156,58 @@ public class KhPingceController extends BaseController { } return toAjax(khPingceService.deleteKhPingceByIds(ids)); } + + /** + * 删除考核评测——————清理数据库时调用, 清除已完成的全部关联数据、进行中的仅清除voteemp已打票的成绩 保留考核项及关联的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 wPingces = khPingceService.selectKhPingceList(khPingce); + List 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 jxzPingces = khPingceService.selectKhPingceList(jxz); + List jxzIds = jxzPingces.stream().map(KhPingce::getId).collect(Collectors.toList()); + for (Long jxzId : jxzIds) { + KhVote vote = new KhVote(); + vote.setPingceId(jxzId); + List votes = khVoteService.selectKhVoteList(vote); + List 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 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); + } + } + } + } + } + return toAjax(1); + } } diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteController.java index c2d267a..6484e4f 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhVoteController.java @@ -97,7 +97,6 @@ public class KhVoteController extends BaseController { } } - } /** diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhPingceService.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhPingceService.java index 0d24324..d82cd7e 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhPingceService.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/IKhPingceService.java @@ -58,4 +58,6 @@ public interface IKhPingceService * @return 结果 */ public int deleteKhPingceById(Long id); + + int deleteKhPingceByIds2(Long[] toArray); } diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java index 21cf433..90d3cd6 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhEmployeeServiceImpl.java @@ -114,7 +114,7 @@ public class KhEmployeeServiceImpl implements IKhEmployeeService { param.setWordId(khEmployee.getWordId()); List e = khEmployeeMapper.selectKhEmployeeList(param); if (e!=null&& e.size() == 1) { - if(e.get(0).getId()!=khEmployee.getId()){ + if(!e.get(0).getId().equals(khEmployee.getId())){ return AjaxResult.error("修改失败,工号已存在!"); }else{//没有修改员工工号 则直接修改 return khEmployeeMapper.updateKhEmployee(khEmployee)>0 ? AjaxResult.success() : AjaxResult.error(); diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhPingceServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhPingceServiceImpl.java index e354f76..4de8c2d 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhPingceServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhPingceServiceImpl.java @@ -5,7 +5,11 @@ import java.util.stream.Collectors; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.kaohe.domain.KhPcEmp; +import com.ruoyi.kaohe.domain.KhVote; +import com.ruoyi.kaohe.domain.KhVoteEmp; import com.ruoyi.kaohe.mapper.KhPcEmpMapper; +import com.ruoyi.kaohe.mapper.KhVoteEmpMapper; +import com.ruoyi.kaohe.mapper.KhVoteMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.kaohe.mapper.KhPingceMapper; @@ -26,6 +30,11 @@ public class KhPingceServiceImpl implements IKhPingceService private KhPingceMapper khPingceMapper; @Autowired private KhPcEmpMapper khPcEmpMapper; + @Autowired + private KhVoteMapper khVoteMapper; + @Autowired + private KhVoteEmpMapper khVoteEmpMapper; + /** * 查询考核评测 @@ -100,6 +109,42 @@ public class KhPingceServiceImpl implements IKhPingceService } return r; } + @Override + @Transactional + public int deleteKhPingceByIds2(Long[] ids) + { + int r = khPingceMapper.deleteKhPingceByIds(ids); + for (Long id : ids) { + //删除原来关联的pcemp + KhPcEmp query = new KhPcEmp(); + query.setPcId(id); + List temItems = khPcEmpMapper.selectKhPcEmpList(query); + List pcEmpIds = temItems.stream().map(KhPcEmp::getId).collect(Collectors.toList()); + if (pcEmpIds != null && pcEmpIds.size() > 0) { + khPcEmpMapper.deleteKhPcEmpByIds(pcEmpIds.toArray(new Long[pcEmpIds.size()])); + } + //删除原来关联的vote及voteemp + KhVote vote = new KhVote(); + vote.setPingceId(id); + List votes = khVoteMapper.selectKhVoteList(vote); + List vIds = votes.stream().map(KhVote::getId).collect(Collectors.toList()); + if (vIds != null && vIds.size() > 0) { + //清除vote + khVoteMapper.deleteKhVoteByIds(vIds.toArray(new Long[vIds.size()])); + //清除voteemp + for (Long vId : vIds) { + KhVoteEmp vemp = new KhVoteEmp(); + vemp.setVoteId(vId); + List vEmps = khVoteEmpMapper.selectKhVoteEmpList(vemp); + List veIds = vEmps.stream().map(KhVoteEmp::getId).collect(Collectors.toList()); + if(veIds != null && veIds.size() > 0){ + khVoteEmpMapper.deleteKhVoteEmpByIds(veIds.toArray(new Long[veIds.size()])); + } + } + } + } + return r; + } /** * 删除考核评测信息 diff --git a/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhEmployeeMapper.xml b/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhEmployeeMapper.xml index 274911c..8de93b1 100644 --- a/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhEmployeeMapper.xml +++ b/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhEmployeeMapper.xml @@ -56,6 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and address = #{address} and contact = #{contact} and contact_phone = #{contactPhone} + and remark like concat('%', #{remark}, '%') diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml index f7b462f..f4fea40 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -66,9 +66,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"