From 03388da14240d0173cd22c332ba3905b57c2d870 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Mon, 25 Dec 2023 17:44:33 +0800
Subject: [PATCH] 解决选出候选人不正确问题
---
src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java | 38 +++++++++++++++++++++-----------------
1 files changed, 21 insertions(+), 17 deletions(-)
diff --git a/src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java b/src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java
index 65e4451..2f0f5da 100644
--- a/src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java
+++ b/src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java
@@ -25,6 +25,7 @@
import org.springblade.common.cache.UserCache;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.modules.assessment.wrapper.CandidateJsonObj;
+import org.springblade.modules.assessment.wrapper.UserJsonObj;
import org.springblade.modules.evaluate.entity.EvaluateCandidateEntity;
import org.springblade.modules.evaluate.entity.EvaluateResultEntity;
import org.springblade.modules.evaluate.entity.EvaluateTaskEntity;
@@ -45,6 +46,7 @@
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.transaction.annotation.Transactional;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -69,8 +71,8 @@
}
@Override
- public IPage<EvaluateResultVO> selectEvaluateResultGroupBeId(IPage<EvaluateResultVO> page, EvaluateResultVO evaluateResult) {
- return page.setRecords(EvaluateResultWrapper.build().listVO(baseMapper.selectEvaluateResultGroupBeId(page, evaluateResult)));
+ public IPage<EvaluateResultVO> selectEvaluateResultGroupBeId(IPage<EvaluateResultVO> page, EvaluateResultVO evaluateResult,List<Long> userIds) {
+ return page.setRecords(EvaluateResultWrapper.build().listVO(baseMapper.selectEvaluateResultGroupBeId(page, evaluateResult, userIds)));
}
@Override
@@ -94,19 +96,14 @@
//判断评分是否完成 0:type 判断设置的部门员工是否完成评分 1:type 判断设置的部门是否完成评分
if (evaluateResult.getType() == 0) {
List<CandidateJsonObj> candidateJsonObjs = JSONArray.parseArray(JSON.toJSONString(taskPO.getCandidateNum()),CandidateJsonObj.class);
- String deptIdsStr = "";
-
+ List<Long> deptIds = new ArrayList<>();
for (CandidateJsonObj obj:candidateJsonObjs) {
- if (StringUtil.isNotBlank(deptIdsStr)) {
- deptIdsStr += "," + obj.getDeptId();
- } else {
- deptIdsStr = obj.getDeptId() + "";
- }
+ deptIds.add(obj.getDeptId());
}
//根据部门获取所有用户数量
QueryWrapper<User> queryWrapper = new QueryWrapper();
- queryWrapper.in("dept_id", deptIdsStr);
+ queryWrapper.in("dept_id", deptIds);
// 拿到设置部门所有用户数量
Long userByDeptIdsCount = userService.count(queryWrapper);
@@ -130,7 +127,12 @@
EvaluateResultVO vo = new EvaluateResultVO();
vo.setType(0);
vo.setEvaluateTaskId(evaluateResult.getEvaluateTaskId());
- IPage<EvaluateResultVO> evaluateResultVOIPage = selectEvaluateResultGroupBeId(page,vo);
+ List<Long> userIds = new ArrayList<>();
+ for (UserJsonObj userJsonObj:obj.getUsers()) {
+ userIds.add(userJsonObj.getId());
+ }
+
+ IPage<EvaluateResultVO> evaluateResultVOIPage = selectEvaluateResultGroupBeId(page,vo,userIds);
for (EvaluateResultVO resultVO:evaluateResultVOIPage.getRecords()) {
EvaluateCandidateEntity evaluateCandidate = new EvaluateCandidateEntity();
@@ -152,14 +154,16 @@
resultEntityQueryWrapper.eq("evaluate_task_id", evaluateResult.getEvaluateTaskId());
Long evaluateResultCount = count(resultEntityQueryWrapper);
- //部门评优数量和所有用户匹配
- QueryWrapper<User> queryWrapper = new QueryWrapper();
- queryWrapper.in("user_type", 2);//员工用户
- // 拿到设置部门所有用户数量
- Long userByDeptIdsCount = userService.count(queryWrapper);
+ //部门评优数量和所有用户匹配 修改为选定的评定人
+ List<CandidateJsonObj> candidateJsonObjs = JSONArray.parseArray(JSON.toJSONString(taskPO.getCandidateNum()),CandidateJsonObj.class);
+ int setUserCount = 0;
+ for (CandidateJsonObj obj:candidateJsonObjs) {
+ List<UserJsonObj> userJsonObjs = obj.getUsers();
+ setUserCount += userJsonObjs.size();
+ }
// 相同需要设置任务状态为已完成 不同不处理
- if (userByDeptIdsCount == evaluateResultCount) {
+ if (setUserCount == evaluateResultCount) {
taskPO.setEvaluateState(2);//结束
evaluateTaskService.updateById(taskPO);
}
--
Gitblit v1.9.3