From 1f9f1f3f29805171e4dd645cc25e45a0abc17052 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Sat, 23 Dec 2023 14:36:53 +0800
Subject: [PATCH] 候选人
---
src/main/java/org/springblade/modules/evaluate/service/impl/EvaluateResultServiceImpl.java | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 118 insertions(+), 0 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 420625b..376bd25 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
@@ -16,15 +16,35 @@
*/
package org.springblade.modules.evaluate.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.AllArgsConstructor;
+import org.springblade.common.cache.SysCache;
+import org.springblade.common.cache.UserCache;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.modules.assessment.wrapper.CandidateJsonObj;
+import org.springblade.modules.evaluate.entity.EvaluateCandidateEntity;
import org.springblade.modules.evaluate.entity.EvaluateResultEntity;
+import org.springblade.modules.evaluate.entity.EvaluateTaskEntity;
+import org.springblade.modules.evaluate.entity.EvaluateTaskSetEntity;
+import org.springblade.modules.evaluate.service.IEvaluateCandidateService;
+import org.springblade.modules.evaluate.service.IEvaluateTaskService;
+import org.springblade.modules.evaluate.service.IEvaluateTaskSetService;
import org.springblade.modules.evaluate.vo.EvaluateResultVO;
import org.springblade.modules.evaluate.excel.EvaluateResultExcel;
import org.springblade.modules.evaluate.mapper.EvaluateResultMapper;
import org.springblade.modules.evaluate.service.IEvaluateResultService;
+import org.springblade.modules.evaluate.wrapper.EvaluateResultWrapper;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IUserService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+
import java.util.List;
/**
@@ -34,13 +54,24 @@
* @since 2023-12-18
*/
@Service
+@AllArgsConstructor
public class EvaluateResultServiceImpl extends BaseServiceImpl<EvaluateResultMapper, EvaluateResultEntity> implements IEvaluateResultService {
+
+ private final IEvaluateTaskService evaluateTaskService;
+
+ private final IUserService userService;
+
+ private final IEvaluateCandidateService evaluateCandidateService;
@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)));
+ }
@Override
public List<EvaluateResultExcel> exportEvaluateResult(Wrapper<EvaluateResultEntity> queryWrapper) {
@@ -51,4 +82,91 @@
return evaluateResultList;
}
+ @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;
+ }
+
}
--
Gitblit v1.9.3