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