From d2a8e733b62b8201af59206efb63e7d20177e8da Mon Sep 17 00:00:00 2001 From: hshansha Date: Tue, 11 Nov 2025 11:05:20 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E9=99=90=E5=88=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/kaohe/controller/KhTemplateController.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhTemplateController.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhTemplateController.java index ea258a0..75bda9f 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhTemplateController.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/controller/KhTemplateController.java @@ -205,14 +205,13 @@ public class KhTemplateController extends BaseController @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Long[] ids) { - //修改,当考核任务再用这个模板时 不允许修改 + //当有考核任务引用这个模板时 不允许修改 for(Long id:ids){ KhPingce pingce = new KhPingce(); pingce.setTemplateId(id); - pingce.setState("0"); - List khPingces = pingceService.selectKhUsedPingceList(pingce); + List khPingces = pingceService.selectKhPingceList(pingce); if(khPingces!=null&&khPingces.size()>0){ - return AjaxResult.error("有考核任务已使用模板,不能删除"); + return AjaxResult.error("有考核任务引用模板,不能删除"); } } return toAjax(khTemplateService.deleteKhTemplateByIds(ids)); From d6c6ea2af609b3165606410c681e6c768d2716e3 Mon Sep 17 00:00:00 2001 From: hshansha Date: Tue, 11 Nov 2025 11:05:55 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=BC=80=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/kaohe/controller/KhVoteController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 aa805cc..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 @@ -46,7 +46,7 @@ public class KhVoteController extends BaseController { @Autowired private IKhTemItemService khTemItemService; - /*@Scheduled(cron = "0 * * * * ?") // 每分钟的第0秒执行一次 监测时间修改评分状态 + @Scheduled(cron = "0 * * * * ?") // 每分钟的第0秒执行一次 监测时间修改评分状态 public void performTask() { System.out.println("进入定时任务-------------------------------------------------------------"); //获取所有未完成的评分任务 @@ -97,7 +97,7 @@ public class KhVoteController extends BaseController { } } - }*/ + } /** * 查询投票评测列表 From 064c06f124a9718c79a0b00b14b812adf1294da2 Mon Sep 17 00:00:00 2001 From: hshansha Date: Tue, 11 Nov 2025 11:07:30 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=84=E5=88=86?= =?UTF-8?q?=E6=97=B6=E7=89=88=E6=9C=AC=E4=B9=90=E8=A7=82=E9=94=81=E6=92=A4?= =?UTF-8?q?=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/KhVoteEmpServiceImpl.java | 24 +++++++++---------- .../mapper/kaohe/KhVoteEmpMapper.xml | 6 ++--- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java index 40ee37b..d276723 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java @@ -165,7 +165,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { // 最大重试次数 // final int MAX_RETRY_COUNT = 3; int retryCount = 0; - while (true) { + /* while (true) {*/ voteEmp.setUpdateTime(nowDate); //根据id查询数据得到原值及版本号 KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId()); @@ -206,7 +206,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { } voteEmp.setVersion(oldvoteEmp.getVersion()); int result = khVoteEmpMapper.updateKhVoteEmp(voteEmp); - if (result > 0) { + /*if (result > 0) { break; } else { // 更新失败,版本冲突,增加重试计数 @@ -217,19 +217,19 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { System.out.println("-----------版本冲突," + voteEmp.getBkhdxName() + "第" + retryCount + "次重试"); // 等待一段时间后重试,避免立即重试导致的持续冲突 try { - Thread.sleep(500 * retryCount); // 重试间隔递增 + Thread.sleep(1000 * retryCount); // 重试间隔递增 } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException("重试过程异常中断-------------", e); } // } } - } + }*/ } } else if (typeid.equals(2L)) {//占比评分 for (KhVoteEmp voteEmp : voteEmpList) { int retryCount = 0; - while (true) { + /* while (true) {*/ voteEmp.setUpdateTime(nowDate); //根据id查询数据得到之前的值 KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId()); @@ -241,7 +241,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { voteEmp.setEndScore(voteEmp.getAvgScore().multiply(oldvoteEmp.getPercentage())); voteEmp.setVersion(oldvoteEmp.getVersion()); int result = khVoteEmpMapper.updateKhVoteEmp(voteEmp); - if (result > 0) { + /*if (result > 0) { break; } else { // 更新失败,版本冲突,增加重试计数 @@ -252,18 +252,18 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { System.out.println("-----------版本冲突," + voteEmp.getBkhdxName() + "第" + retryCount + "次重试"); // 等待一段时间后重试,避免立即重试导致的持续冲突 try { - Thread.sleep(500 * retryCount); // 重试间隔递增 + Thread.sleep(1000 * retryCount); // 重试间隔递增 } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException("重试过程异常中断-------------", e); } } - } + }*/ } } else {//单独评分 不占比 以平均分为最后得分 for (KhVoteEmp voteEmp : voteEmpList) { int retryCount = 0; - while (true) { + /* while (true) {*/ voteEmp.setUpdateTime(nowDate); //根据id查询数据得到之前的值 KhVoteEmp oldvoteEmp = khVoteEmpMapper.selectKhVoteEmpById(voteEmp.getId()); @@ -275,7 +275,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { voteEmp.setEndScore(voteEmp.getAvgScore()); voteEmp.setVersion(oldvoteEmp.getVersion()); int result = khVoteEmpMapper.updateKhVoteEmp(voteEmp); - if (result > 0) { + /*if (result > 0) { break; } else { // 更新失败,版本冲突,增加重试计数 @@ -286,13 +286,13 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { System.out.println("-----------版本冲突," + voteEmp.getBkhdxName() + "第" + retryCount + "次重试"); // 等待一段时间后重试,避免立即重试导致的持续冲突 try { - Thread.sleep(500 * retryCount); // 重试间隔递增 + Thread.sleep(1000 * retryCount); // 重试间隔递增 } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new RuntimeException("重试过程异常中断-------------", e); } } - } + }*/ } } diff --git a/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhVoteEmpMapper.xml b/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhVoteEmpMapper.xml index a47139f..5ff5838 100644 --- a/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhVoteEmpMapper.xml +++ b/ruoyi-kaohe/src/main/resources/mapper/kaohe/KhVoteEmpMapper.xml @@ -140,10 +140,10 @@ update_by = #{updateBy}, update_time = #{updateTime}, remark = #{remark}, - version = version + 1 + - - WHERE id = #{id} AND version = #{version} + + WHERE id = #{id} From a9b34f690d140fff9ae15e318a3de9b8e0dbc14b Mon Sep 17 00:00:00 2001 From: hshansha Date: Tue, 11 Nov 2025 13:37:17 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=92=A4=E9=94=80=E5=BC=82=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java | 2 +- .../java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index 4bd33a1..bfb7c9f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -12,7 +12,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; * @author ruoyi */ @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }) -@EnableAsync +//@EnableAsync @EnableScheduling public class RuoYiApplication { diff --git a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java index d276723..39e6156 100644 --- a/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java +++ b/ruoyi-kaohe/src/main/java/com/ruoyi/kaohe/service/impl/KhVoteEmpServiceImpl.java @@ -114,7 +114,7 @@ public class KhVoteEmpServiceImpl implements IKhVoteEmpService { @Override @Transactional - @Async("threadPoolTaskExecutor") + // @Async("threadPoolTaskExecutor") public AjaxResult voteSubmit(KhVoteRecardParam param) { System.out.println("------------------------开始异步批量处理用户数据,线程:" + Thread.currentThread().getName()); Map xuanxiangDetails = new LinkedHashMap<>(); From 67822a9d9d3de3bf86a1bfbc1c2d2bbf63617ef7 Mon Sep 17 00:00:00 2001 From: hshansha Date: Tue, 11 Nov 2025 17:26:16 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E8=80=83=E6=A0=B8=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=80=83=E6=A0=B8=E5=AF=B9=E8=B1=A1=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E3=80=81=E6=B8=85=E7=90=86=E6=95=B0=E6=8D=AE=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kaohe/controller/KhPingceController.java | 55 ++++++++++++++----- 1 file changed, 40 insertions(+), 15 deletions(-) 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 df16a3b..d9e3bb4 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 @@ -8,9 +8,7 @@ import javax.servlet.http.HttpServletResponse; import com.alibaba.fastjson2.JSONObject; 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.*; import com.ruoyi.kaohe.service.impl.KhVoteServiceImpl; import com.ruoyi.kaohe.util.PinYinUtil; import org.springframework.security.access.prepost.PreAuthorize; @@ -21,7 +19,6 @@ import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.enums.BusinessType; -import com.ruoyi.kaohe.service.IKhPingceService; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; @@ -42,6 +39,8 @@ public class KhPingceController extends BaseController { private IKhVoteService khVoteService; @Autowired private IKhVoteEmpService khVoteEmpService; + @Autowired + private IKhVoteRecardService khVoteRecardService; /** * 查询考核评测列表 @@ -156,7 +155,7 @@ public class KhPingceController extends BaseController { * 传参:id、pcBkhdxs、addOrDel、bkhdxType */ // @PreAuthorize("@ss.hasPermi('kaohe:pingce:modifyBkhdx')") - @Log(title = "考核评测", businessType = BusinessType.UPDATE) + @Log(title = "任务添加/删除被考核对象", businessType = BusinessType.UPDATE) @PutMapping("/modifyBkhdx") @Transactional public AjaxResult modifyBkhdx(@RequestBody ModifyBkhdxParam bkhdxParam) { @@ -204,10 +203,17 @@ public class KhPingceController extends BaseController { } } else { //删除关联 + List ids = new ArrayList<>(); KhPcEmp query = new KhPcEmp(); query.setPcId(id); - List temItems = pcEmpService.selectKhPcEmpList(query); - List ids = temItems.stream().map(KhPcEmp::getId).collect(Collectors.toList()); + List pcEmpsItems = pcEmpService.selectKhPcEmpList(query); + for (Bkhdx pcEmp : pcEmps) { + for (KhPcEmp pcEmpsItem : pcEmpsItems) { + if (pcEmpsItem.getBkhdxId().equals(pcEmp.getBkhdxId())) { + ids.add(pcEmpsItem.getId()); + } + } + } if (ids != null && ids.size() > 0) { pcEmpService.deleteKhPcEmpByIds(ids.toArray(new Long[ids.size()])); } @@ -237,18 +243,18 @@ public class KhPingceController extends BaseController { /** * ids传入为null——————清理数据库时调用, 清除已完成的全部关联数据、进行中的仅清除voteemp的打票成绩 保留考核项及关联的voteemp - * 清理数据库时:vote_recard表手动直接全部清除 截断表即可 + * 清理数据库时:vote_recard表截断表即可 * ids有值 按任务id-----修改所有关联的vote的voteemp数据为原始状态 */ // @PreAuthorize("@ss.hasPermi('kaohe:pingce:remove')") - @Log(title = "考核评测", businessType = BusinessType.DELETE) + @Log(title = "任务清除打分数据", businessType = BusinessType.DELETE) @DeleteMapping("/clean") @Transactional public AjaxResult removeTest(@RequestParam Long[] ids) { if (ids != null && ids.length > 0) { //按任务id-----修改所有关联的vote的voteemp数据为原始状态 - for (Long jxzId : ids) { + for (Long cleanId : ids) { KhVote vote = new KhVote(); - vote.setPingceId(jxzId); + vote.setPingceId(cleanId); List votes = khVoteService.selectKhVoteList(vote); if (votes != null && votes.size() > 0) { List vIds = votes.stream().map(KhVote::getId).collect(Collectors.toList()); @@ -274,9 +280,18 @@ public class KhPingceController extends BaseController { } } } + //清空投票记录表 根据pcId查询 + KhVoteRecard vr = new KhVoteRecard(); + vr.setPcId(cleanId); + List khVoteRecards = khVoteRecardService.selectKhVoteRecardList(vr); + if (khVoteRecards != null & khVoteRecards.size() > 0) { + List vrIds = khVoteRecards.stream().map(KhVoteRecard::getId).collect(Collectors.toList()); + khVoteRecardService.deleteKhVoteRecardByIds(vrIds.toArray(new Long[vrIds.size()])); + } } } - } else {//null认为清理所有 (已完成删除全部数据,进行中数据清除评分数据) + return toAjax(1); + } /*else {//null认为清理所有 (已完成删除全部数据,进行中数据清除评分数据) //已完成的数据直接清除任务及所有关联数据————完全删除已完成任务 KhPingce khPingce = new KhPingce(); khPingce.setState("2"); @@ -289,7 +304,7 @@ public class KhPingceController extends BaseController { KhPingce jxz = new KhPingce(); jxz.setState("1"); List jxzPingces = khPingceService.selectKhPingceList(jxz); - if(jxzPingces!=null&&jxzPingces.size()>0){ + if (jxzPingces != null && jxzPingces.size() > 0) { List jxzIds = jxzPingces.stream().map(KhPingce::getId).collect(Collectors.toList()); for (Long jxzId : jxzIds) { KhVote vote = new KhVote(); @@ -319,11 +334,21 @@ public class KhPingceController extends BaseController { } } } + + //清空投票记录表 根据pcId查询 + KhVoteRecard vr = new KhVoteRecard(); + vr.setPcId(jxzId); + List khVoteRecards = khVoteRecardService.selectKhVoteRecardList(vr); + if (khVoteRecards != null & khVoteRecards.size() > 0) { + List vrIds = khVoteRecards.stream().map(KhVoteRecard::getId).collect(Collectors.toList()); + khVoteRecardService.deleteKhVoteRecardByIds(vrIds.toArray(new Long[vrIds.size()])); + } } } } - } + AjaxResult.success("按要求清理数据库成功") + }*/ - return toAjax(1); + return AjaxResult.error("请选择需要清理的考核任务!"); } }