From d2cf8a7f7bcf49ace058d9eec587d75c4f764a2e Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 02 Jan 2024 11:56:13 +0800
Subject: [PATCH] 考核任务设置被考核人

---
 src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java |   99 ++++++++-----------------------------------------
 1 files changed, 16 insertions(+), 83 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 376bd25..ab3a20c 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
@@ -23,8 +23,11 @@
 import lombok.AllArgsConstructor;
 import org.springblade.common.cache.SysCache;
 import org.springblade.common.cache.UserCache;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.tool.utils.Func;
 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,7 +48,10 @@
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
+
+import static org.springblade.common.cache.CacheNames.EVALUATE_CANDIDATE_DEPT_KEY;
 
 /**
  * 评优结果 服务实现类
@@ -63,14 +69,21 @@
 
 	private final IEvaluateCandidateService evaluateCandidateService;
 
+	private final BladeRedis bladeRedis;
+
 	@Override
 	public IPage<EvaluateResultVO> selectEvaluateResultPage(IPage<EvaluateResultVO> page, EvaluateResultVO evaluateResult) {
 		return page.setRecords(baseMapper.selectEvaluateResultPage(page, evaluateResult));
 	}
 
 	@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
+	public IPage<EvaluateResultVO> selectEvaluateResultByScoreIdsGroupBeId(IPage<EvaluateResultVO> page, EvaluateResultVO evaluateResult, List<Long> scoreUserIds) {
+		return page.setRecords(EvaluateResultWrapper.build().listVO(baseMapper.selectEvaluateResultGroupBeId(page, evaluateResult, scoreUserIds)));
 	}
 
 	@Override
@@ -85,88 +98,8 @@
 	@Override
 	@Transactional
 	public boolean saveOrUpdate(EvaluateResultEntity evaluateResult) {
-		boolean ret = super.saveOrUpdate(evaluateResult);
 
-		// 是否评分完成判断此操作
-		if (ret) {
-			EvaluateTaskEntity taskPO = evaluateTaskService.getById(evaluateResult.getEvaluateTaskId());
-
-			//判断评分是否完成   0:type 判断设置的部门员工是否完成评分    1:type 判断设置的部门是否完成评分
-			if (evaluateResult.getType() == 0) {
-				List<CandidateJsonObj> candidateJsonObjs = JSONArray.parseArray(JSON.toJSONString(taskPO.getCandidateNum()),CandidateJsonObj.class);
-				String deptIdsStr = "";
-
-				for (CandidateJsonObj obj:candidateJsonObjs) {
-					if (StringUtil.isNotBlank(deptIdsStr)) {
-						deptIdsStr += "," + obj.getDeptId();
-					} else {
-						deptIdsStr = obj.getDeptId() + "";
-					}
-				}
-
-				//根据部门获取所有用户数量
-				QueryWrapper<User> queryWrapper = new QueryWrapper();
-				queryWrapper.in("dept_id", deptIdsStr);
-				// 拿到设置部门所有用户数量
-				Long userByDeptIdsCount = userService.count(queryWrapper);
-
-				//用户数量和评优数据进行匹配 相同需要设置任务状态为已完成
-				QueryWrapper<EvaluateResultEntity> resultEntityQueryWrapper = new QueryWrapper<>();
-				resultEntityQueryWrapper.eq("evaluate_task_id", evaluateResult.getEvaluateTaskId());
-				Long evaluateResultCount = count(resultEntityQueryWrapper);
-
-				// 相同需要设置任务状态为已完成 不同不处理
-				if (userByDeptIdsCount == evaluateResultCount) {
-					taskPO.setCandidateState(2);//结束
-					evaluateTaskService.updateById(taskPO);
-
-					//保存候选人信息
-					for (CandidateJsonObj obj:candidateJsonObjs) {
-						Integer val = obj.getVal();
-
-						Page<EvaluateResultVO> page = new Page<>();
-						page.setCurrent(1);
-						page.setSize(val);
-						EvaluateResultVO vo = new EvaluateResultVO();
-						vo.setType(0);
-						vo.setEvaluateTaskId(evaluateResult.getEvaluateTaskId());
-						IPage<EvaluateResultVO> evaluateResultVOIPage = selectEvaluateResultGroupBeId(page,vo);
-
-						for (EvaluateResultVO resultVO:evaluateResultVOIPage.getRecords()) {
-							EvaluateCandidateEntity evaluateCandidate = new EvaluateCandidateEntity();
-							evaluateCandidate.setEvaluateTaskId(evaluateResult.getEvaluateTaskId());
-							evaluateCandidate.setEvaluateTaskName(taskPO.getTaskName());
-							User user = UserCache.getUser(resultVO.getBeId());
-							evaluateCandidate.setUserId(user.getId());
-							evaluateCandidate.setUserName(user.getName());
-							evaluateCandidate.setDeptName(SysCache.getDeptName(Long.valueOf(user.getDeptId())));
-							evaluateCandidate.setPostName(SysCache.getPostName(Long.valueOf(user.getPostId())));
-							evaluateCandidateService.save(evaluateCandidate);
-						}
-					}
-
-				}
-
-			} else if (evaluateResult.getType() == 1) {
-				QueryWrapper<EvaluateResultEntity> resultEntityQueryWrapper = new QueryWrapper<>();
-				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);
-
-				// 相同需要设置任务状态为已完成 不同不处理
-				if (userByDeptIdsCount == evaluateResultCount) {
-					taskPO.setCandidateState(2);//结束
-					evaluateTaskService.updateById(taskPO);
-				}
-			}
-		}
-
-		return ret;
+		return super.saveOrUpdate(evaluateResult);
 	}
 
 }

--
Gitblit v1.9.3